/*______________________________________________________________________
|        ______   |
|      /      /   |
|     /    O /    |      ___________________________________________
|    /    / /     |
|   /    / /  /|  |       U I Z E     J A V A S C R I P T     A P I
|  /____/ /__/_|  |      ___________________________________________
|            |__  |
|_________________|
|
|           TITLE : Uize Foundation
|         VERSION : 1.1.0
|            TYPE : Object Definition
|          AUTHOR : Chris van Rensburg (http://www.tomkidding.com)
|       COPYRIGHT : (c)2003-2005 Chris van Rensburg
|     DESCRIPTION : Implements a JavaScript foundation class from which other modules
|                   can inherit
|_______________________________________________________________________*/
(function(){var a_a='undefined',a_b='string',a_c=false,a_d=true,a_e=null,a_f=function(){},a_g=a_f.prototype;Uize=a_f;function a_h(a_i,a_j,a_k){if(typeof a_j=='function'){a_i.TEMPORARY_METHOD=a_j;a_i.TEMPORARY_METHOD(a_k);
delete a_i.TEMPORARY_METHOD;}else if(typeof a_j==a_b){a_i[a_j](a_k);}}function a_l(a_m,a_n){var a_o=function(a_p){var a_q=this,a_r=a_q.objectClass;a_q.objectName='_GIN_'+(a_s=(typeof a_s!=a_a)? ++a_s:0);a_r.instances[a_r.instances.length]=window[a_q.objectName]=a_q;var a_t=a_r.constructorChain;for(var a_u=0;a_u<a_t.length;a_u++)a_h(a_q,a_t[a_u],a_p);var a_v={};for(var a_w in a_r.propertyProfiles)a_v[a_w]=a_r.get(a_w);a_q.set(a_x(a_v,a_p));return a_q;};for(var a_y in a_m){if(a_y!='prototype')a_o[a_y]=a_m[a_y];}a_o.propertyMap=a_x({},a_m.propertyMap);a_o.propertyProfiles=a_x({},a_m.propertyProfiles);a_o.instances=[];for(var a_y in a_m.prototype)a_o.prototype[a_y]=a_m.prototype[a_y];a_o.prototype.objectClass=a_o;a_o.constructorChain=(a_m.constructorChain?a_m.constructorChain:[]).concat(a_n);return a_o;};function a_x(a_i,a_p){if(typeof a_p=='object'){for(var a_w in a_p)a_i[a_w]=a_p[a_w];}return a_i;}function a_z(a_i){return typeof a_i.objectName!=a_a}function a_A(a_B){
return(typeof a_B.objectName!=a_a)?a_B.objectClass:a_B;}function a_C(a_D,a_p){var a_E=a_D;if(typeof a_E==a_b){for(var a_w in a_p)a_E=a_E.replace(new RegExp('\\[#'+a_w+'\\]','gi'),a_p[a_w]);}return a_E;}function a_F(a_D){return a_C(a_D,{pathToResources:a_G,objectName:this.objectName});}function a_H(a_q,a_w){var a_I=a_A(a_q).propertyProfiles;return(typeof a_I[a_w]!=a_a)?a_I[a_w].a_J:a_w;}function a_K(a_w){return this[a_H(this,a_w)];}function a_L(a_p){var a_q=this,a_r=a_A(a_q),a_I=a_r.propertyProfiles,a_M=a_r.propertyMap,a_N={};for(var a_w in a_p){var a_O=a_H(a_q,a_w);if(typeof a_p[a_w]!=a_a&&a_p[a_w]!=a_q[a_O]){if(typeof a_I[a_w]==a_a&&typeof a_M[a_O]==a_a){var a_P={};a_P[a_O]=a_O;a_r.registerProperties(a_P);}a_N[a_O]=a_M[a_O];a_q[a_O]=a_p[a_w];}}if(a_z(a_q)){for(a_w in a_N)a_h(a_q,a_N[a_w].a_Q);}}function a_R(a_I){var a_q=this,a_r=a_A(a_q);if(typeof a_I!=a_a){for(var a_O in a_I){var a_S=a_I[a_O],a_T=typeof a_S=='object',a_w=a_T?a_S.name:a_S,a_y=a_r.propertyProfiles[a_w]=a_r.propertyMap[a_O]={a_J:a_O};if(a_T){
if(typeof a_S.onChange!=a_a)a_y.a_Q=a_S.onChange;}}}}function a_U(a_V,a_p){if(typeof a_V==a_b)eval(a_V);else if(typeof a_V=='function')a_V(a_p);}function a_W(a_X,a_V){var a_q=this;if(typeof a_q.eventHandlers==a_a)a_q.eventHandlers=[];a_q.eventHandlers[a_q.eventHandlers.length]={a_X:a_X,a_V:a_V};}function a_Y(a_X,a_V){var a_q=this;if(a_q.hasEventFired(a_X)){a_U(a_V);}else{if(typeof a_q.onceEventHandlers==a_a)a_q.onceEventHandlers={};if(typeof a_q.onceEventHandlers[a_X]!=a_b)a_q.onceEventHandlers[a_X]='';a_q.onceEventHandlers[a_X]+=a_V+';';}}function a_Z(a_0,a_1){var a_q=this,a_2=a_q.eventHandlers;if(typeof a_2!=a_a){if(typeof a_q.onceEventHandlers==a_a)a_q.onceEventHandlers={};var a_3={};if(typeof a_0=='object'){a_x(a_3,a_0);}else{a_3.name=a_0;}a_x(a_3,a_1);a_3.instance=a_q;var a_X=a_3.name,a_4=(typeof a_q.onceEventHandlers[a_X]==a_b)?a_q.onceEventHandlers[a_X]:'';a_q.onceEventHandlers[a_X]=a_d;if(a_4!='')a_U(a_4);for(var a_5=0;a_5<a_2.length;a_5++){var a_6=a_2[a_5];if(a_6!=a_e&&(a_6.a_X==a_X||a_6.a_X=='*'))
a_U(a_6.a_V,a_3);}}}function a_7(a_X){return typeof this.onceEventHandlers!=a_a&&this.onceEventHandlers[a_X]===a_d;}function a_8(a_X,a_V){var a_q=this;if(typeof a_q.eventHandlers!=a_a){var a_2=a_q.eventHandlers;for(var a_5=0;a_5<a_2.length;a_5++){var a_6=a_2[a_5];if(a_6!=a_e&&(typeof a_V==a_a||a_6.a_V==a_V))a_2[a_5]=a_e;}}}function a_9(a_j){var a_q=this;if(a_z(a_q)){a_h(a_q,a_j);}else{for(var a_ba=0;a_ba<a_q.instances.length;a_ba++)a_q.instances[a_ba].doForInstance(a_j);}}function a_bb(a_i,a_j){if(typeof a_i=='object'){if(typeof a_i.length=='number'){for(var a_bc=0;a_bc<a_i.length;a_bc++)a_bb(a_i[a_bc],a_j);}else if(typeof a_j==a_b&&typeof a_i[a_j]!=a_a){a_i[a_j]();}else if(typeof a_i.objectClass!=a_a){a_h(a_i,a_j);}else{for(var a_bd in a_i)a_bb(a_i[a_bd],a_j);}}}function a_be(a_bf){var a_E='';if(typeof document.getElementsByTagName!=a_a){var a_bg=document.getElementsByTagName('SCRIPT');for(var a_bh=0;a_bh<a_bg.length;a_bh++){var a_bi=a_bg[a_bh].src,a_bj=a_bi.indexOf(a_bf);if(a_bj!= -1){
a_E=a_bi.substr(0,a_bi.lastIndexOf('/',a_bj)+1);break;}}}return a_E;}var a_G=a_be('Uize.js');a_f.pathToResources=a_G;a_f.addEventHandler=a_g.addEventHandler=a_W;a_f.doForInstance=a_g.doForInstance=a_9;a_f.doOnceEvent=a_g.doOnceEvent=a_Y;a_f.fireEvent=a_g.fireEvent=a_Z;a_f.get=a_g.get=a_K;a_f.hasEventFired=a_g.hasEventFired=a_7;a_f.registerProperties=a_g.registerProperties=a_R;a_f.removeEventHandler=a_g.removeEventHandler=a_8;a_f.set=a_g.set=a_L;a_g.substituteResources=a_F;a_f.addPropertiesToObject=a_x;a_f.doForObjects=a_bb;a_f.execHandler=a_U;a_f.getPathToLibrary=a_be;a_f.isInstance=a_z;a_f.subclass=function(a_n){return a_l(this,a_n)};a_f.substituteInto=a_C;})();
