
/*
	"Hemi" JavaScript Framework
	Engine for Web Applications 3.1
	Composite file "hemi.comp.js" release: 3.1.9
	Copyright 2002 - 2010. All Rights Reserved.
	Author: Stephen W. Cote
	Email: sw.cote@gmail.com
	Project: http://www.whitefrost.com/Hemi/
	BSD License: http://www.whitefrost.com/Hemi.license.txt
*/
(function(){H.namespace("app",H,{createApplicationSpace:
function(e,p,s,f){H.include("hemi.app.space");H.include("hemi.app.comp");if(!e){e=document.createElement("div");e.className="space";if(!p)p=document.body;if(s)p.insertBefore(e,s);else p.appendChild(e);}return H.app.space.service.createSpace(e,0,0,0,f);},createComponent:
function(o,s,r){var x=0;if(s&&s.space_state!=4){H.logError("Cannot dynamically create and bind a node to a component inside an initializing space");return;}H.include("hemi.data.form");H.include("hemi.object.xhtml");r=(r?r:H.GetSpecifiedAttribute(o,"rid"));x=H.object.xhtml.newInstance(o,1,r,(s?s.space_id:0),H.data.form.service,0,0,0);if(s){s.addSpaceObject(x,r);x.post_init();}return x;},createApplicationComponent:
function(s,o,p,r){var x=0,a=0,_a;if(o&&p&&p.space_state!=4){H.logError("Cannot dynamically create and bind a node to a component inside an initializing space");return;}H.include("hemi.app.comp");H.include("hemi.data.form");H.include("hemi.object.xhtml");_a=H.app.comp;var h=0;if(s){if(!s.match(/\.xml/))h=H.hemi_base+"Components/component."+s.toLowerCase()+".xml";else{h=s;s=h.match(/(component\.)?([\S][^\.]*)\.xml/)[2];}}if(o){r=(r?r:H.GetSpecifiedAttribute(o,"rid"));x=H.object.xhtml.newInstance(o,1,r,(p?p.space_id:0),H.data.form.service,0,0,0);a=_a.newInstance(0,0,x.getObjectId(),0,0,1);}else{a=_a.newInstance(r,0,(p?p.getObjectId():0));}a.setAsync(0);if(s)a.loadComponent(s,h);else a.importComponentDefinition("",0,r);if(x&&p){p.addSpaceObject(x,(r?r:H.GetSpecifiedAttribute(o,"rid")));x.post_init();}return a;},getWindowManager:
function(){var o,m="manager";o=H.registry.service.getObject(m);if(!o){H.app.createApplicationComponent(m,0,H.app.getPrimarySpace(),m);o=H.registry.service.getObject(m);}return o;},createWindow:
function(t,l,n,v,b,a,f){H.include("hemi.app.comp");H.include("hemi.app.space");var o=(D.TO(v)?v:H.app.space.service.getSpace(v)),m,c,b1,b2,u,d;if(!o)o=H.app.getPrimarySpace();if(!o){H.logError("Invalid space");return;}m=H.app.getWindowManager();if(n){c=m.GetWindowByName(n);if(c){if(c.getHideOnClose()&&c.getIsClosed()){c.open();}b1=c.getManageMaximize();b2=c.getManageMinimize();c.setManageMaximize(0);c.setManageMinimize(0);c.restore();c.getFocus();c.setManageMaximize(b1);c.setManageMinimize(b2);m.CenterWindow(c);return;}}u=H.guid();if(!n)n=u;if(!t)t=n;d=document.createElement("div");if(b)document.body.appendChild(d);else o.space_element.appendChild(d);c=H.app.createApplicationComponent("window",d,o,n);c.setTemplateIsSpace(1);if(typeof a=="object"){for(var i in a){c.p[i]=a[i];}}c.post_init();c.o.body.appendChild(document.createTextNode("[ ... loading ...]"));c.setCanResize(1);c.resizeTo(500,300);c.setIsBound((b?0:1));c.local_template_init=f;c.setTitle(t);c.setStatus("");c.setHideOnClose(1);m.CenterWindow(c);c.getFocus();c.loadTemplate(l);return c;},getPrimarySpace:
function(){H.include("hemi.app.space");var o,_s=H.app.space.service;o=_s.getPrimarySpace();if(!o)_s.loadSpaces();return _s.getPrimarySpace();}});}());
/* End Hemi Framework 3.1 */

