with(phi.classes)
{
	Jit.get('0a391363b64a4').state.persistent.state = {"alias":"main","background-image":"e123dc73b64a4","height":"","repeat-x":true,"width":""};
	Jit.get('83f1d684b64a4').state.persistent.state = {"alias":"body","height":"600px","margin":"","margin-left":"auto","margin-right":"auto","width":"960px"};
	Jit.get('b18c99e6b64a4').state.persistent.state = {"alias":"join button","float":"right","height":"40px","width":"227px"};
	Jit.get('9c735d58b64a4').state.persistent.state = {"alias":"watch demo","clear":"both","float":"right","height":"61px","margin-bottom":"","padding-bottom":"","width":"227px"};
	Jit.get('c68c4765b64a4').state.persistent.state = {"alias":"logo","height":"76px","margin-top":"","padding-bottom":"42px","width":"306px"};
	Jit.get('395d9ac4b64a4').state.persistent.state = {"alias":"Header Image","float":"left","height":"322px","width":"703px"};
	Jit.get('79d7450bb64a4').state.persistent.state = {"alias":"yellow bar","background-color":"#fce045","float":"right","height":"43px","width":"714px"};
	Jit.get('653d084bb64a4').state.persistent.state = {"alias":"grey bar","background-color":"#9a9a9a","float":"left","height":"43px","width":"227px"};
	Jit.get('c6cd63f0c64a4').state.persistent.state = {"alias":"system copy","float":"left","height":"450px","margin-bottom":"","margin-top":"","padding-bottom":"","padding-left":"","padding-top":"10px","position":"static","width":"227px"};
	Jit.get('bd30cd87c64a4').state.persistent.state = {"alias":"examples","float":"right","height":"405px","width":"715px"};
	Jit.get('aef3c058b74a4').state.persistent.state = {"alias":"Blog","float":"right","height":"300px","width":"715px"};
	Jit.get('bac4eb77b64a4').state.persistent.state = {"href":"http:\/\/redwerks.org\/kommonwealth-site\/join","image":"6d985657b64a4","rollover":"751ac367b64a4"};
	Jit.get('779273c8b64a4').state.persistent.state = {"file":"0ac5e0c8b64a4","href":"http:\/\/www.redwerks.org\/kommonwealth","padding-bottom":"10px","padding-top":"10px"};
	Jit.get('27e16309b64a4').state.persistent.state = {"alias":"top text","height":"233px","width":"227px"};
	Jit.get('6bef2995b64a4').state.persistent.state = {"file":"2333f695b64a4","padding-top":"5px"};
	Jit.get('626ba4e4b64a4').state.persistent.state = {"file":"61bc91e4b64a4"};
	Jit.get('cac6dc80c64a4').state.persistent.state = {"file":"58b70a80c64a4","padding-left":"5px","padding-top":"13px"};
	Jit.get('9205ed60c64a4').state.persistent.state = {"file":"5c6f7b60c64a4","padding-left":"5px","padding-top":"12px"};
	Jit.get('d8ba4f7ca74a4').state.persistent.state = {"alias":"includes","height":"30px","width":"227px"};
	Jit.get('a5f48721c64a4').state.persistent.state = {"content":"<p>Instantly create websites with clean, valid CSS that meets compliance standards, all in a WYSIWYG platform where your clients can easily update their own content, with your permission of course.<\/p>","padding-bottom":"20px"};
	Jit.get('508d10bca74a4').state.persistent.state = {"alias":"acc","height":"","width":"227px"};
	Jit.get('9c307f18c64a4').state.persistent.state = {"color":"#000","contentbgcolor":"#fff","contentborder":"#fff1px solid #000","headerbgcolor":"","headerbgcolorsel":"","headerbgimage":"09cf6309a74a4","headerbgselectstate":true,"headerborder":"18px","headerheight":"18px","headerspacing":"2px","headerwidth":"17px","height":"400px","padding-top":"10px","width":"714px"};
	Jit.get('06c26cf8b74a4').state.persistent.state = {"alias":"blog title","height":"60px","width":"600px"};
	Jit.get('0a3b047ab74a4').state.persistent.state = {"alias":"RSS Container","float":"right","height":"250px","width":"715px"};
	Jit.get('22e1c3a9b64a4').state.persistent.state = {"content":"<p>A human body is the perfect balance of form and function. It is the golden ratio on which all design standards are measured. We created Kommonwealth to work like the human body does: reflective, reactive and rational. And we built it for designers who need flexibility and resiliance in their sites, in perfect balance.&nbsp; <\/p>","padding-top":"40px"};
	Jit.get('9750ca2da74a4').state.persistent.state = {"file":"3405272da74a4"};
	Jit.get('ae6b2eaea74a4').state.persistent.state = {"background-color":"#fff","border-color":"","border-style":"solid","border-width":"","color":"#000","headerbgcolor":"#fff","headerheight":"20px","headerpadding":"","height":"","width":"227px"};
	Jit.get('28e10128c64a4').state.persistent.state = {"alias":"one","virtualheader":"1"};
	Jit.get('d6394228c64a4').state.persistent.state = {"alias":"two","virtualheader":"2"};
	Jit.get('bc053599b74a4').state.persistent.state = {"file":"2b8b1d89b74a4","float":"left","padding-top":"40px"};
	Jit.get('991e0d1bb74a4').state.persistent.state = {"feed":"http:\/\/blog.kommonwealth.com\/feed\/","limit":"1"};
	Jit.get('072adc75b74a4').state.persistent.state = {"virtualheader":"Containers and grids"};
	Jit.get('0baa8165b74a4').state.persistent.state = {"virtualheader":"Clean CSS code"};
	Jit.get('1f5d0295b74a4').state.persistent.state = {"virtualheader":"Graphics App Style UI"};
	Jit.get('32925885b74a4').state.persistent.state = {"virtualheader":"CMS"};
	Jit.get('505231bea74a4').state.persistent.state = {"alias":"containers and grids","virtualheader":"Full control"};
	Jit.get('8d324423b74a4').state.persistent.state = {"height":"","virtualheader":"Portable to all web programs"};
	Jit.get('9578afaea74a4').state.persistent.state = {"virtualheader":"Cheap and fast"};
	Jit.get('ff16e845b74a4').state.persistent.state = {"virtualheader":"Reverse mullet approach"};
	Jit.get('e47d5eb0c74a4').state.persistent.state = {"file":"fb152bb0c74a4"};
	Jit.get('c1b6da505e5a4').state.persistent.state = {"file":"661d2df05e5a4"};
	Jit.get('7dfb51e0c74a4').state.persistent.state = {"file":"7ac3b7d0c74a4"};
	Jit.get('b95a62d7b74a4').state.persistent.state = {"content":"<p>Kommonwealth uses relative positioning to allow for dynamic and flexible sites. Many drag-and-drop systems don&rsquo;t make this distinction, and only static designs are possible. We help you create clean divs within containers that simplify your web development process while giving you complete control. You can create your own templates or work from a white screen.<\/p>"};
	Jit.get('030429ac4e5a4').state.persistent.state = {"content":"<p>You don't need to learn any code and yet Kommonwealth doesn't limit your creativity or applications. Kommonwealth is point and click driven, and yet it produces proper CSS and JavaScript. You can re-use the code by exporting it to conventional web editing programs.<\/p>"};
	Jit.get('f5e471b34a4a4').state.persistent.state = {"content":"<p>Kommonwealth is like an online version of the tools designers are most familiar with, giving you control over every pixel. Each new element is added to a layer, which you can change whenever you want. We&rsquo;ve also included productivity tools that make it easy for you to create large, integrated corporate sites. These tools include easy-to-use Global Style Sheets.<\/p>"};
	Jit.get('233dd4dc4e5a4').state.persistent.state = {"content":"<p>The Kommonwealth CMS is made differently than other systems, in that you can pick and choose which text boxes your clients are allowed to change. As a designer, you control what and when your clients can manipulate in the system through one-click changes.<\/p>"};
	Jit.get('c0f194cfa74a4').state.persistent.state = {"content":"<p>Because we focus on the needs of designers, Kommonwealth has been created to keep designers in control. This means that code is developed for you, but you have the power to make changes both online and offline. In addition, you can decide if and where your clients can manage their own content. Kommonwealth allows you to build your own templates or work from a white screen.<\/p>"};
	Jit.get('ab6ea374b74a4').state.persistent.state = {"content":"<p>Use the system online, or export your site to conventional web editing tools like Dreamweaver. Reuse the code outside Kommonwealth for any project. We&rsquo;ve also included productivity tools that make it easy for you to create large, integrated corporate sites. These tools include easy-to-use Global Style Sheets.<\/p>","height":""};
	Jit.get('0e858601b74a4').state.persistent.state = {"content":"<p>You don't need to learn any code and yet Kommonwealth doesn't limit your creativity or applications. Kommonwealth is point and click driven, and yet it produces proper CSS and JavaScript. You can re-use the code by exporting it to conventional web editing programs.<\/p>"};
	Jit.get('3d79d92d4e5a4').state.persistent.state = {"content":"<p>Fun and games in the front, business in the back. We&rsquo;re all about providing designers with the power they need to make fabulous sites that are not limited by templates. The system allows you to import Flash, as well as create and manipulate JavaScript effects like Tabs, Carousels, Image Zoom, and Accordions. You can also use these effects in combination.&nbsp; <\/p>"};

}
with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

this.canHaveChildren = function() { return true };

this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
};

this.buttons = [];
phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.buttons).remove();
		me.buttons = [];
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout);
	}
};

this.mouseover = function(e) {
	if( !me.buttons.length ) {
		me.buttons = $('<div class=phi-buttonbuttons>').appendTo('body')
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-options.png" class=phi-imageoptions alt=options title="Options" />')
					.click(function(e) { e.preventDefault(); $(me.node()).phiPopup(me.openOptions); })
			).get();
	}
	
	var off = $(me.node()).offset();
	$(me.buttons).css({
		position: 'absolute',
		top: off.top + 3 - $('body').offset().top,
		left: off.left + $(me.node()).outerWidth() - 13*3/*$(me.buttons).outerWidth()*/ - 3,
		zIndex: 99999
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.node()).find('.phi-buttonbuttons').remove();
};

this.openOptions = function() {
	$(this).append(
		'<h3>Normal state</h3>',
		$('<label>').append(
			'<span>Image</span>',
			phi.input.fileInput(me.state.persistent.get('image'), function(file) {
				me.state.persistent.set('image', file || "");
			})
		),
		'<h3>Rollover (mouse hover)</h3>',
		$('<label>').append(
			'<span>Rollover image</span>',
			phi.input.fileInput(me.state.persistent.get('rollover'), function(file) {
				me.state.persistent.set('rollover', file || "");
			})
		),
		'<h3>Selected state & Linking</h3>',
		$('<label>').append(
			'<span>Selected state image</span>',
			phi.input.fileInput(me.state.persistent.get('selected'), function(file) {
				me.state.persistent.set('selected', file || "");
			})
		),
		$('<label>').append(
			'<span>Link to:</span>',
			$('<input type=text name=href />').val(me.state.persistent.get('href', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('href', $(this).val());
						me.refresh();
					}
				})
		)
	);
};

this.onStateChange = function(state, changed) {
	if( state !== me.state.persistent ) return;
	if( 'href' in changed ) {
		$(me.node()).attr('href', state.get('href'));
	}
	if( 'image' in changed || 'rollover' in changed || 'selected' in changed ) {
		setTimeout(function() { me.refresh(); }, 500);
	}
};
}
/** End/DYNAMIC **/
	}).apply(Jit.get('bac4eb77b64a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

var href;
this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
	
	$(me.node()).click(function() {
		if(me.state.persistent.get('lightbox')) {
			if(phi.lightimage && phi.lightimage.uid == me.uid()) return;
			if(phi.lightimage) phi.lightimage.close();
			function close() {
				delete phi.lightimage;
				var off = $(img).offset();
				$(zoom).animate({
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				}, {complete: function() {$(this).remove();}});
			}
			phi.lightimage = {
				uid: me.uid(),
				close: close
			};
			
			var img = this;
			var zoom;
			var off = $(img).offset();
			var tag = $('<img/>')
				.attr({alt:img.alt, src: phi.fileURL({uid: me.state.persistent.get('file')})})
				.css({
					position: 'absolute',
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				})
				.appendTo('body').hide();
			
			phi.fileinfo(me.state.persistent.get('file'), function(f) {
				var win = { w: $(window).width(), h: $(window).height() };
				var max = { w: win.w-100, h: win.h-100 };
				var size = { w: f.width, h: f.height };
				if( size.w > max.w || size.h > max.h ) {
					var wratio = max.w/size.w, hratio = max.h/size.h;
					var ratio = Math.min(wratio, hratio);
					size.w = size.w*ratio;
					size.h = size.h*ratio;
				}
				zoom = tag.show().animate({
					top: win.h/2-size.h/2,
					left: win.w/2-size.w/2,
					height: size.h,
					width: size.w
				}).click(close);
			});
		} else if(href = me.state.persistent.get('href')) window.location = href;
	});
};

this.buttons = [];

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.buttons).remove();
		me.buttons = [];
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout);
	}
};

this.mouseover = function(e) {
	if( !me.buttons.length ) {
		me.buttons = $('<div class=phi-imagebuttons>').appendTo('body')
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-options.png" class=phi-imageoptions alt=options title="Options" />')
					.click(function() { e.preventDefault();$(me.node()).phiPopup(me.openOptions); }),
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-imageedit alt=edit title="Change image" />')
					.click(function() { e.preventDefault();
						phi.input.file(function(file)
						{
							me.state.persistent.set('file', file);
							me.refresh();
						});
					})
			).get();
	}
	
	var off = $(me.node()).offset();
	$(me.buttons).css({
		position: 'absolute',
		top: off.top + 3 - $('body').offset().top,
		left: off.left + $(me.node()).outerWidth() - 13*3/*$(me.buttons).outerWidth()*/ - 3,
		zIndex: 99999
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.buttons).remove();
	me.buttons = [];
};

this.openOptions = function() {
	$(this).append(
		$('<label>').append(
			$('<input type=checkbox name=height value=on />').val(me.state.persistent.get('lightbox', ""))
				.change(function(e) {
					me.state.persistent.set('lightbox', this.checked ? 'on' : '');
				}),
			'<span>Use lightbox</span>'
		),
		'or',
		$('<label>').append(
			'<span>Link to:</span>',
			$('<input type=text name=href />').val(me.state.persistent.get('href', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('href', $(this).val());
						me.refresh();
					}
				})
		)
	);
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('779273c8b64a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

var href;
this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
	
	$(me.node()).click(function() {
		if(me.state.persistent.get('lightbox')) {
			if(phi.lightimage && phi.lightimage.uid == me.uid()) return;
			if(phi.lightimage) phi.lightimage.close();
			function close() {
				delete phi.lightimage;
				var off = $(img).offset();
				$(zoom).animate({
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				}, {complete: function() {$(this).remove();}});
			}
			phi.lightimage = {
				uid: me.uid(),
				close: close
			};
			
			var img = this;
			var zoom;
			var off = $(img).offset();
			var tag = $('<img/>')
				.attr({alt:img.alt, src: phi.fileURL({uid: me.state.persistent.get('file')})})
				.css({
					position: 'absolute',
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				})
				.appendTo('body').hide();
			
			phi.fileinfo(me.state.persistent.get('file'), function(f) {
				var win = { w: $(window).width(), h: $(window).height() };
				var max = { w: win.w-100, h: win.h-100 };
				var size = { w: f.width, h: f.height };
				if( size.w > max.w || size.h > max.h ) {
					var wratio = max.w/size.w, hratio = max.h/size.h;
					var ratio = Math.min(wratio, hratio);
					size.w = size.w*ratio;
					size.h = size.h*ratio;
				}
				zoom = tag.show().animate({
					top: win.h/2-size.h/2,
					left: win.w/2-size.w/2,
					height: size.h,
					width: size.w
				}).click(close);
			});
		} else if(href = me.state.persistent.get('href')) window.location = href;
	});
};

this.buttons = [];

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.buttons).remove();
		me.buttons = [];
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout);
	}
};

this.mouseover = function(e) {
	if( !me.buttons.length ) {
		me.buttons = $('<div class=phi-imagebuttons>').appendTo('body')
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-options.png" class=phi-imageoptions alt=options title="Options" />')
					.click(function() { e.preventDefault();$(me.node()).phiPopup(me.openOptions); }),
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-imageedit alt=edit title="Change image" />')
					.click(function() { e.preventDefault();
						phi.input.file(function(file)
						{
							me.state.persistent.set('file', file);
							me.refresh();
						});
					})
			).get();
	}
	
	var off = $(me.node()).offset();
	$(me.buttons).css({
		position: 'absolute',
		top: off.top + 3 - $('body').offset().top,
		left: off.left + $(me.node()).outerWidth() - 13*3/*$(me.buttons).outerWidth()*/ - 3,
		zIndex: 99999
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.buttons).remove();
	me.buttons = [];
};

this.openOptions = function() {
	$(this).append(
		$('<label>').append(
			$('<input type=checkbox name=height value=on />').val(me.state.persistent.get('lightbox', ""))
				.change(function(e) {
					me.state.persistent.set('lightbox', this.checked ? 'on' : '');
				}),
			'<span>Use lightbox</span>'
		),
		'or',
		$('<label>').append(
			'<span>Link to:</span>',
			$('<input type=text name=href />').val(me.state.persistent.get('href', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('href', $(this).val());
						me.refresh();
					}
				})
		)
	);
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('6bef2995b64a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

var href;
this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
	
	$(me.node()).click(function() {
		if(me.state.persistent.get('lightbox')) {
			if(phi.lightimage && phi.lightimage.uid == me.uid()) return;
			if(phi.lightimage) phi.lightimage.close();
			function close() {
				delete phi.lightimage;
				var off = $(img).offset();
				$(zoom).animate({
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				}, {complete: function() {$(this).remove();}});
			}
			phi.lightimage = {
				uid: me.uid(),
				close: close
			};
			
			var img = this;
			var zoom;
			var off = $(img).offset();
			var tag = $('<img/>')
				.attr({alt:img.alt, src: phi.fileURL({uid: me.state.persistent.get('file')})})
				.css({
					position: 'absolute',
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				})
				.appendTo('body').hide();
			
			phi.fileinfo(me.state.persistent.get('file'), function(f) {
				var win = { w: $(window).width(), h: $(window).height() };
				var max = { w: win.w-100, h: win.h-100 };
				var size = { w: f.width, h: f.height };
				if( size.w > max.w || size.h > max.h ) {
					var wratio = max.w/size.w, hratio = max.h/size.h;
					var ratio = Math.min(wratio, hratio);
					size.w = size.w*ratio;
					size.h = size.h*ratio;
				}
				zoom = tag.show().animate({
					top: win.h/2-size.h/2,
					left: win.w/2-size.w/2,
					height: size.h,
					width: size.w
				}).click(close);
			});
		} else if(href = me.state.persistent.get('href')) window.location = href;
	});
};

this.buttons = [];

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.buttons).remove();
		me.buttons = [];
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout);
	}
};

this.mouseover = function(e) {
	if( !me.buttons.length ) {
		me.buttons = $('<div class=phi-imagebuttons>').appendTo('body')
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-options.png" class=phi-imageoptions alt=options title="Options" />')
					.click(function() { e.preventDefault();$(me.node()).phiPopup(me.openOptions); }),
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-imageedit alt=edit title="Change image" />')
					.click(function() { e.preventDefault();
						phi.input.file(function(file)
						{
							me.state.persistent.set('file', file);
							me.refresh();
						});
					})
			).get();
	}
	
	var off = $(me.node()).offset();
	$(me.buttons).css({
		position: 'absolute',
		top: off.top + 3 - $('body').offset().top,
		left: off.left + $(me.node()).outerWidth() - 13*3/*$(me.buttons).outerWidth()*/ - 3,
		zIndex: 99999
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.buttons).remove();
	me.buttons = [];
};

this.openOptions = function() {
	$(this).append(
		$('<label>').append(
			$('<input type=checkbox name=height value=on />').val(me.state.persistent.get('lightbox', ""))
				.change(function(e) {
					me.state.persistent.set('lightbox', this.checked ? 'on' : '');
				}),
			'<span>Use lightbox</span>'
		),
		'or',
		$('<label>').append(
			'<span>Link to:</span>',
			$('<input type=text name=href />').val(me.state.persistent.get('href', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('href', $(this).val());
						me.refresh();
					}
				})
		)
	);
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('626ba4e4b64a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

var href;
this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
	
	$(me.node()).click(function() {
		if(me.state.persistent.get('lightbox')) {
			if(phi.lightimage && phi.lightimage.uid == me.uid()) return;
			if(phi.lightimage) phi.lightimage.close();
			function close() {
				delete phi.lightimage;
				var off = $(img).offset();
				$(zoom).animate({
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				}, {complete: function() {$(this).remove();}});
			}
			phi.lightimage = {
				uid: me.uid(),
				close: close
			};
			
			var img = this;
			var zoom;
			var off = $(img).offset();
			var tag = $('<img/>')
				.attr({alt:img.alt, src: phi.fileURL({uid: me.state.persistent.get('file')})})
				.css({
					position: 'absolute',
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				})
				.appendTo('body').hide();
			
			phi.fileinfo(me.state.persistent.get('file'), function(f) {
				var win = { w: $(window).width(), h: $(window).height() };
				var max = { w: win.w-100, h: win.h-100 };
				var size = { w: f.width, h: f.height };
				if( size.w > max.w || size.h > max.h ) {
					var wratio = max.w/size.w, hratio = max.h/size.h;
					var ratio = Math.min(wratio, hratio);
					size.w = size.w*ratio;
					size.h = size.h*ratio;
				}
				zoom = tag.show().animate({
					top: win.h/2-size.h/2,
					left: win.w/2-size.w/2,
					height: size.h,
					width: size.w
				}).click(close);
			});
		} else if(href = me.state.persistent.get('href')) window.location = href;
	});
};

this.buttons = [];

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.buttons).remove();
		me.buttons = [];
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout);
	}
};

this.mouseover = function(e) {
	if( !me.buttons.length ) {
		me.buttons = $('<div class=phi-imagebuttons>').appendTo('body')
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-options.png" class=phi-imageoptions alt=options title="Options" />')
					.click(function() { e.preventDefault();$(me.node()).phiPopup(me.openOptions); }),
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-imageedit alt=edit title="Change image" />')
					.click(function() { e.preventDefault();
						phi.input.file(function(file)
						{
							me.state.persistent.set('file', file);
							me.refresh();
						});
					})
			).get();
	}
	
	var off = $(me.node()).offset();
	$(me.buttons).css({
		position: 'absolute',
		top: off.top + 3 - $('body').offset().top,
		left: off.left + $(me.node()).outerWidth() - 13*3/*$(me.buttons).outerWidth()*/ - 3,
		zIndex: 99999
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.buttons).remove();
	me.buttons = [];
};

this.openOptions = function() {
	$(this).append(
		$('<label>').append(
			$('<input type=checkbox name=height value=on />').val(me.state.persistent.get('lightbox', ""))
				.change(function(e) {
					me.state.persistent.set('lightbox', this.checked ? 'on' : '');
				}),
			'<span>Use lightbox</span>'
		),
		'or',
		$('<label>').append(
			'<span>Link to:</span>',
			$('<input type=text name=href />').val(me.state.persistent.get('href', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('href', $(this).val());
						me.refresh();
					}
				})
		)
	);
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('cac6dc80c64a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

var href;
this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
	
	$(me.node()).click(function() {
		if(me.state.persistent.get('lightbox')) {
			if(phi.lightimage && phi.lightimage.uid == me.uid()) return;
			if(phi.lightimage) phi.lightimage.close();
			function close() {
				delete phi.lightimage;
				var off = $(img).offset();
				$(zoom).animate({
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				}, {complete: function() {$(this).remove();}});
			}
			phi.lightimage = {
				uid: me.uid(),
				close: close
			};
			
			var img = this;
			var zoom;
			var off = $(img).offset();
			var tag = $('<img/>')
				.attr({alt:img.alt, src: phi.fileURL({uid: me.state.persistent.get('file')})})
				.css({
					position: 'absolute',
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				})
				.appendTo('body').hide();
			
			phi.fileinfo(me.state.persistent.get('file'), function(f) {
				var win = { w: $(window).width(), h: $(window).height() };
				var max = { w: win.w-100, h: win.h-100 };
				var size = { w: f.width, h: f.height };
				if( size.w > max.w || size.h > max.h ) {
					var wratio = max.w/size.w, hratio = max.h/size.h;
					var ratio = Math.min(wratio, hratio);
					size.w = size.w*ratio;
					size.h = size.h*ratio;
				}
				zoom = tag.show().animate({
					top: win.h/2-size.h/2,
					left: win.w/2-size.w/2,
					height: size.h,
					width: size.w
				}).click(close);
			});
		} else if(href = me.state.persistent.get('href')) window.location = href;
	});
};

this.buttons = [];

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.buttons).remove();
		me.buttons = [];
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout);
	}
};

this.mouseover = function(e) {
	if( !me.buttons.length ) {
		me.buttons = $('<div class=phi-imagebuttons>').appendTo('body')
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-options.png" class=phi-imageoptions alt=options title="Options" />')
					.click(function() { e.preventDefault();$(me.node()).phiPopup(me.openOptions); }),
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-imageedit alt=edit title="Change image" />')
					.click(function() { e.preventDefault();
						phi.input.file(function(file)
						{
							me.state.persistent.set('file', file);
							me.refresh();
						});
					})
			).get();
	}
	
	var off = $(me.node()).offset();
	$(me.buttons).css({
		position: 'absolute',
		top: off.top + 3 - $('body').offset().top,
		left: off.left + $(me.node()).outerWidth() - 13*3/*$(me.buttons).outerWidth()*/ - 3,
		zIndex: 99999
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.buttons).remove();
	me.buttons = [];
};

this.openOptions = function() {
	$(this).append(
		$('<label>').append(
			$('<input type=checkbox name=height value=on />').val(me.state.persistent.get('lightbox', ""))
				.change(function(e) {
					me.state.persistent.set('lightbox', this.checked ? 'on' : '');
				}),
			'<span>Use lightbox</span>'
		),
		'or',
		$('<label>').append(
			'<span>Link to:</span>',
			$('<input type=text name=href />').val(me.state.persistent.get('href', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('href', $(this).val());
						me.refresh();
					}
				})
		)
	);
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('9205ed60c64a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
};

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' || o.mode == 'edit' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.node()).find('.phi-textedit').remove();
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout)
	}
};

this.mouseover = function(e) {
	var buttons = $(me.node()).find('.phi-textbuttons');
	if( !buttons.length ) {
		buttons = $('<div class=phi-textbuttons>').prependTo(me.node())
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-textedit alt=edit title="Edit text" />')
					.click(function(e) {
						e.preventDefault(); e.stopPropagation();
						$(this).remove();
						phi.edit.editor('text', function() { this.doEdit.call(me) });
					})
			);
	}
	
	var off = $(me.node()).position();
	buttons.css({
		position: 'absolute',
		top: off.top + 3,
		left: off.left + $(me.node()).outerWidth() - buttons.outerWidth() - 3
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.node()).find('.phi-textbuttons').remove();
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('a5f48721c64a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

this.canHaveChildren = function() { return true };
this.children = function() { return Jit.prototype.children.call( this, '> .phi-carousel > .phi-carousel-inner > .phi-carousel-item > [phi:iid]' ); }

this.onLoad = function() {
	//$(me.node()).find('> .phi-carousel > .phi-carousel-item:not(:first)').hide();
	var n = $(me.node()).find('> .phi-carousel > .phi-carousel-inner');
	n.css({width: n.children().length * n.outerWidth()});
	$(me.node()).find('> ul').click(this.event);
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
};

this.event = function(e) {
	var t = $(e.target).closest('.phi-carousel-tab');
	if( $(e.target).closest('.phi-edit').length ) {
		//var jit = h.next().find('> *').toJits()[0];
		var jit = $(t.attr('href')).find('> *').toJits()[0];
		
		var oldVal = jit.state.persistent.get('virtualheader', 'Untitled');
		
		var input = $('<input type=text />').val(oldVal);
		
		t.find('span.center span').replaceWith( input );
		
		input.focus();
		
		input.blur(function(e) {
			if( $(this).val() != oldVal )
				jit.state.persistent.set('virtualheader', $(this).val());
			$(this).replaceWith($('<span/>').text($(this).val()));
		});
		
		e.preventDefault();
		e.stopPropagation();
		return false;
	}
	
	if( !t.length ) return;
	//$(me.node()).find('> .phi-tabs > .phi-carousel-item').fadeOut();
	//h.next().stop().slideDown();
	me.open(t.attr('href'));
	e.preventDefault();
	e.stopPropagation();
};

this.open = function(id) {
	$(me.node()).find('> ul > a').removeClass('selected').filter('[href="'+id+'"]').addClass('selected');
	//var tabs = $(me.node()).find('.phi-carousel .phi-carousel-item');
	//tabs.hide();
	//tabs.filter(id).eq(0).show();
	$(me.node()).find('.phi-carousel > .phi-carousel-inner').animate({left:
		-$(me.node()).find('.phi-carousel > .phi-carousel-inner > .phi-carousel-item').filter(id).position().left});
}

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' ) {
		$(me.node()).find('> ul > .phi-carousel-tab > .phi-edit').remove();
		$(me.node()).find('> ul > .phi-carousel-tab').append('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class="phi-edit" alt="edit" title="Edit header" />');
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.node()).find('> ul > .phi-carousel-tab > .phi-edit, > .phi-carouseledit').remove();
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout);
	}
};

this.mouseover = function(e) {
	var buttons = $(me.node()).find('> .phi-carouselbuttons');
	if( !buttons.length ) {
		buttons = $('<div class=phi-carouselbuttons>').appendTo('body')
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-tabsedit alt=edit title="Edit tabs" />')
					.click(function() { $(me.node()).phiPopup(me.openEdit); }),
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-add.png" class=phi-tabsadd alt=add title="Add item" />')
					.click(function(e) {
						me.createJit('container', function() {
							me.refresh();
						});
					})
			);
	}
	//var off = $(me.node()).offset();
	buttons.css({
		position: 'absolute',
		top: 0, right: 0,
		//top: off.top + 3,
		//left: off.left + $(me.node()).outerWidth() - buttons.outerWidth() - 3,
		zIndex: 99999
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.node()).find('> .phi-carouselsbuttons').remove();
};

this.openEdit = function() {
	$(this).append(
		'<h3>Tabs</h3>',
		$('<label>').append(
			'<span>Height</span>',
			$('<input type=text name=headerheight />').val(me.state.persistent.get('headerheight', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('headerheight', $(this).val());
					}
				})
		),
		$('<label>').append(
			'<span>Width</span>',
			$('<input type=text name=headerwidth />').val(me.state.persistent.get('headerwidth', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('headerwidth', $(this).val());
					}
				})
		),
		$('<span>').append(
			'<span>Position:</span>',
			$('<label>').append(
				$('<input type=radio name=headerposition value=top>')
					.attr('selected', me.state.persistent.get('headerposition', 'top') == 'top' ? 'selected' : '')
					.change(function(e) {
						me.state.persistent.set('headerposition', 'top');
					}),
				'<span>Top<span>'
			),
			$('<label>').append(
				$('<input type=radio name=headerposition value=bottom>')
					.attr('selected', me.state.persistent.get('headerposition', 'top') == 'bottom' ? 'selected' : '')
					.change(function(e) {
						me.state.persistent.set('headerposition', 'bottom');
					}),
				'<span>Bottom<span>'
			)
		),
		$('<label>').append(
			'<span>Side spacing</span>',
			$('<input type=text name=headerspacing />').val(me.state.persistent.get('headerspacing', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('headerspacing', $(this).val());
					}
				})
		),
		$('<label>').append(
			'<span>Text color</span>',
			$('<input type=text name=headercolor />').val(me.state.persistent.get('headercolor', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('headercolor', $(this).val());
					}
				})
		),
		$('<label>').append(
			'<span>Background Color</span>',
			$('<input type=text name=headerbgcolor />').val(me.state.persistent.get('headerbgcolor', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('headerbgcolor', $(this).val());
					}
				})
		),
		$('<label>').append(
			'<span>Background Color (on select)</span>',
			$('<input type=text name=headerbgcolorsel />').val(me.state.persistent.get('headerbgcolorsel', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('headerbgcolorsel', $(this).val());
					}
				})
		),
		'or',
		$('<label>').append(
			'<span>Background Image</span>',
			phi.input.fileInput(me.state.persistent.get('headerbgimage'), function(file) {
				me.state.persistent.set('headerbgimage', file || "");
			})
		),
		$('<label>').append(
			'<span>Image border (number of pixles to chop off)</span>',
			$('<input type=text name=headerborder />').val(me.state.persistent.get('headerborder', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('headerborder', $(this).val());
					}
				})
		),
		$('<label>').append(
			$('<input type=checkbox name=headerbgselectstate>')
				.change(function(e) {
					me.state.persistent.set('headerbgselectstate', this.checked);
				}),
			'<span>This image has a selected state.</span> (The image has two tab images on it, the default on the top, and a selected version below. If you check this then note that the height will be ignored)'
		),
		'<h3>Content area</h3>',
		$('<label>').append(
			'<span>Background color:</span>',
			$('<input type=text name=bgcolor />').val(me.state.persistent.get('contentbgcolor', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('contentbgcolor', $(this).val());
					}
				})
		),
		$('<label>').append(
			'<span>Border (size style color):</span>',
			$('<input type=text name=border />').val(me.state.persistent.get('contentborder', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('contentborder', $(this).val());
					}
				})
		)
	);
};

this.onStateChange = function(state, changed) {
	if( state !== me.state.persistent ) return;
	if( 'headerheight' in changed ) {
		$(me.node()).find('> ul > a, > ul > a > span').css({
			height: state.get('headerheight', ""),
			lineHeight: state.get('headerheight', "")
		});
	}
	if( 'headerwidth' in changed ) {
		$(me.node()).find('> ul > a, > ul > a > span').css({
			width: state.get('headerwidth', "")
		});
	}
	if( 'headerspacing' in changed ) {
		$(me.node()).find('> ul > a').css({
			marginLeft: state.get('headerspacing', ""),
			marginRight: state.get('headerspacing', "")
		});
	}
	if( 'headercolor' in changed ) {
		$(me.node()).find('> ul > a').css('color', state.get('headercolor', ""));
	}
	if( 'headerbgcolor' in changed ) {
		$(me.node()).find('> ul > a').css('background-color', state.get('headerbgcolor', ""));
	}
	if( 'contentbgcolor' in changed ) {
		$(me.node()).find('> .phi-tabs').css('background-color', state.get('contentbgcolor', ""));
	}
	if( 'contentborder' in changed ) {
		$(me.node()).find('> .phi-tabs').css('border', state.get('contentborder', ""));
	}
	if( 'headerposition' in changed || 'headerbgimage' in changed || 'headerborder' in changed || 'headerbgselectstate' in changed || 'width' in changed || 'height' in changed ) {
		setTimeout(function() { me.refresh(); }, 500);
	}
};
}
/** End/DYNAMIC **/
	}).apply(Jit.get('9c307f18c64a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
};

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' || o.mode == 'edit' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.node()).find('.phi-textedit').remove();
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout)
	}
};

this.mouseover = function(e) {
	var buttons = $(me.node()).find('.phi-textbuttons');
	if( !buttons.length ) {
		buttons = $('<div class=phi-textbuttons>').prependTo(me.node())
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-textedit alt=edit title="Edit text" />')
					.click(function(e) {
						e.preventDefault(); e.stopPropagation();
						$(this).remove();
						phi.edit.editor('text', function() { this.doEdit.call(me) });
					})
			);
	}
	
	var off = $(me.node()).position();
	buttons.css({
		position: 'absolute',
		top: off.top + 3,
		left: off.left + $(me.node()).outerWidth() - buttons.outerWidth() - 3
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.node()).find('.phi-textbuttons').remove();
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('22e1c3a9b64a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

var href;
this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
	
	$(me.node()).click(function() {
		if(me.state.persistent.get('lightbox')) {
			if(phi.lightimage && phi.lightimage.uid == me.uid()) return;
			if(phi.lightimage) phi.lightimage.close();
			function close() {
				delete phi.lightimage;
				var off = $(img).offset();
				$(zoom).animate({
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				}, {complete: function() {$(this).remove();}});
			}
			phi.lightimage = {
				uid: me.uid(),
				close: close
			};
			
			var img = this;
			var zoom;
			var off = $(img).offset();
			var tag = $('<img/>')
				.attr({alt:img.alt, src: phi.fileURL({uid: me.state.persistent.get('file')})})
				.css({
					position: 'absolute',
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				})
				.appendTo('body').hide();
			
			phi.fileinfo(me.state.persistent.get('file'), function(f) {
				var win = { w: $(window).width(), h: $(window).height() };
				var max = { w: win.w-100, h: win.h-100 };
				var size = { w: f.width, h: f.height };
				if( size.w > max.w || size.h > max.h ) {
					var wratio = max.w/size.w, hratio = max.h/size.h;
					var ratio = Math.min(wratio, hratio);
					size.w = size.w*ratio;
					size.h = size.h*ratio;
				}
				zoom = tag.show().animate({
					top: win.h/2-size.h/2,
					left: win.w/2-size.w/2,
					height: size.h,
					width: size.w
				}).click(close);
			});
		} else if(href = me.state.persistent.get('href')) window.location = href;
	});
};

this.buttons = [];

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.buttons).remove();
		me.buttons = [];
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout);
	}
};

this.mouseover = function(e) {
	if( !me.buttons.length ) {
		me.buttons = $('<div class=phi-imagebuttons>').appendTo('body')
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-options.png" class=phi-imageoptions alt=options title="Options" />')
					.click(function() { e.preventDefault();$(me.node()).phiPopup(me.openOptions); }),
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-imageedit alt=edit title="Change image" />')
					.click(function() { e.preventDefault();
						phi.input.file(function(file)
						{
							me.state.persistent.set('file', file);
							me.refresh();
						});
					})
			).get();
	}
	
	var off = $(me.node()).offset();
	$(me.buttons).css({
		position: 'absolute',
		top: off.top + 3 - $('body').offset().top,
		left: off.left + $(me.node()).outerWidth() - 13*3/*$(me.buttons).outerWidth()*/ - 3,
		zIndex: 99999
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.buttons).remove();
	me.buttons = [];
};

this.openOptions = function() {
	$(this).append(
		$('<label>').append(
			$('<input type=checkbox name=height value=on />').val(me.state.persistent.get('lightbox', ""))
				.change(function(e) {
					me.state.persistent.set('lightbox', this.checked ? 'on' : '');
				}),
			'<span>Use lightbox</span>'
		),
		'or',
		$('<label>').append(
			'<span>Link to:</span>',
			$('<input type=text name=href />').val(me.state.persistent.get('href', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('href', $(this).val());
						me.refresh();
					}
				})
		)
	);
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('9750ca2da74a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

this.canHaveChildren = function() { return true };
this.children = function() { return Jit.prototype.children.call( this, '> div > [phi:iid]' ); }

this.event = function(e) {
	var h = $(e.target).closest('.phi-accordion-header');
	if( $(e.target).closest('.phi-edit').length ) {
		var jit = h.next().find('> *').toJits()[0];
		
		var oldVal = jit.state.persistent.get('virtualheader', 'Untitled');
		
		var input = $('<input type=text />').val(oldVal);
		
		h.find('span').replaceWith( input );
		
		input.focus();
		
		input.blur(function(e) {
			if( $(this).val() != oldVal )
				jit.state.persistent.set('virtualheader', $(this).val());
			$(this).replaceWith($('<span/>').text($(this).val()));
		});
		
		e.preventDefault();
		e.stopPropagation();
		return false;
	}
	

	if( !h.length ) return;
	$(me.node()).find('> .item').slideUp();
	h.next().stop().slideDown();
	e.preventDefault();
	e.stopPropagation();
};

this.onLoad = function() {
	me.state.live.set('item', 0)
	$(me.node()).find('> .item:not(:first)').hide();
	$(me.node()).click(this.event);
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
};

this.open = function(i) { $(me.node()).find('> .item').stop().slideUp().eq(i).stop().slideDown(); me.state.live.set('item', i); }
this.openAll = function() { $(me.node()).find('> .item').stop().slideDown(); me.state.live.set('item', -1); };
this.closeAll = function() { $(me.node()).find('> .item').stop().slideUp(); me.state.live.set('item', -1); };

this.prev = function() {
	var i = me.state.live.get('item');
	if( --i < 0 ) i = $(me.node()).find('> .item').length-1;
	me.open(i);
};

this.next = function() {
	var i = me.state.live.get('item');
	if( ++i >= $(me.node()).find('> .item').length ) i = 0;
	me.open(i);
};

this.buttons = [];
this.add = [];
this.mouseover = function(e) {
	if( !me.buttons.length ) {
		me.buttons = $('<div class=phi-accordionbuttons>').appendTo('body')
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-accordionedit alt=edit title="Edit accordion" />')
					.click(function() { $(me.node()).phiPopup(me.openEdit); }),
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-open.png" class=phi-accordionopen alt=edit title="Open all" />')
					.click(me.openAll),
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-close.png" class=phi-accordionclose alt=edit title="Close all" />')
					.click(me.closeAll)
			);
	}
	if( !me.add.length ) {
		me.add = $('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-add.png" class=phi-accordionadd alt=add title="Add item" />')
			.appendTo('body')
			.click(function(e) {
				me.createJit('container', function() {
					me.refresh();
				});
			});
	}
	
	var off = $(me.node()).offset();
	$(me.buttons).css({
		position: 'absolute',
		top: off.top + 3,
		left: off.left + $(me.node()).outerWidth()/* - buttons.outerWidth()*/ - 16*3 - 3,
		zIndex: 99999
	});
	$(me.add).css({
		position: 'absolute',
		top: off.top + $(me.node()).outerHeight() - 16 - 3,
		left: off.left + $(me.node()).outerWidth() - 16 - 3,
		zIndex: 99999
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.buttons).remove();
	me.buttons = [];
	$(me.add).remove();
	me.add = [];
};

this.openEdit = function() {
	$(this).append(
		'<h3>Headers</h3>',
		$('<label>').append(
			'<span>Height</span>',
			$('<input type=text name=height />').val(me.state.persistent.get('headerheight', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('headerheight', $(this).val());
					}
				})
		),
		$('<label>').append(
			'<span>Background Color</span>',
			$('<input type=text name=bgcolor />').val(me.state.persistent.get('headerbgcolor', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('headerbgcolor', $(this).val());
					}
				})
		),
		$('<label>').append(
			'<span>Background Image</span>',
			phi.input.fileInput(me.state.persistent.get('headerbgimage'), function(file) {
				me.state.persistent.set('headerbgimage', file || "");
			})
		),
		$('<label>').append(
			'<span>Padding</span>',
			$('<input type=text name=padding />').val(me.state.persistent.get('headerpadding', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('headerpadding', $(this).val());
					}
				})
		)
	);
};

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' ) {
		$(me.node()).find('.phi-accordion-header .phi-edit').remove();
		$(me.node()).find('.phi-accordion-header').append('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class="phi-edit" alt="edit" title="Edit header" />');
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
		me.openAll();
	} else {
		$(me.buttons).remove();
		me.buttons = [];
		$(me.add).remove();
		me.add = [];
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout);
		me.open(0);
	}
};

this.onStateChange = function(state, changed) {
	if( state !== me.state.persistent ) return;
	if( 'headerheight' in changed ) {
		$(me.node()).find('.phi-accordion-header').css({
			height: state.get('headerheight', ""),
			lineHeight: state.get('headerheight', "")
		});
	}
	if( 'headerbgcolor' in changed ) {
		$(me.node()).find('.phi-accordion-header').css('background-color', state.get('headerbgcolor', ""));
	}
	if( 'headerpadding' in changed ) {
		$(me.node()).find('.phi-accordion-header').css('padding-left', state.get('headerpadding', ""));
	}
	if( 'headerbgimage' in changed ) {
		var img = state.get('headerbgimage', "");
		if(!img) $(me.node()).find('.phi-accordion-header').css('background-image', "");
		else phi.ask({whatis: 'file:info', of: state.get('headerbgimage')}, function(q) {
			$(me.node()).find('.phi-accordion-header').css('background-image', 'url('+q.answer.url+')');
		});
	}
};
}
/** End/DYNAMIC **/
	}).apply(Jit.get('ae6b2eaea74a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

var href;
this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
	
	$(me.node()).click(function() {
		if(me.state.persistent.get('lightbox')) {
			if(phi.lightimage && phi.lightimage.uid == me.uid()) return;
			if(phi.lightimage) phi.lightimage.close();
			function close() {
				delete phi.lightimage;
				var off = $(img).offset();
				$(zoom).animate({
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				}, {complete: function() {$(this).remove();}});
			}
			phi.lightimage = {
				uid: me.uid(),
				close: close
			};
			
			var img = this;
			var zoom;
			var off = $(img).offset();
			var tag = $('<img/>')
				.attr({alt:img.alt, src: phi.fileURL({uid: me.state.persistent.get('file')})})
				.css({
					position: 'absolute',
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				})
				.appendTo('body').hide();
			
			phi.fileinfo(me.state.persistent.get('file'), function(f) {
				var win = { w: $(window).width(), h: $(window).height() };
				var max = { w: win.w-100, h: win.h-100 };
				var size = { w: f.width, h: f.height };
				if( size.w > max.w || size.h > max.h ) {
					var wratio = max.w/size.w, hratio = max.h/size.h;
					var ratio = Math.min(wratio, hratio);
					size.w = size.w*ratio;
					size.h = size.h*ratio;
				}
				zoom = tag.show().animate({
					top: win.h/2-size.h/2,
					left: win.w/2-size.w/2,
					height: size.h,
					width: size.w
				}).click(close);
			});
		} else if(href = me.state.persistent.get('href')) window.location = href;
	});
};

this.buttons = [];

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.buttons).remove();
		me.buttons = [];
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout);
	}
};

this.mouseover = function(e) {
	if( !me.buttons.length ) {
		me.buttons = $('<div class=phi-imagebuttons>').appendTo('body')
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-options.png" class=phi-imageoptions alt=options title="Options" />')
					.click(function() { e.preventDefault();$(me.node()).phiPopup(me.openOptions); }),
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-imageedit alt=edit title="Change image" />')
					.click(function() { e.preventDefault();
						phi.input.file(function(file)
						{
							me.state.persistent.set('file', file);
							me.refresh();
						});
					})
			).get();
	}
	
	var off = $(me.node()).offset();
	$(me.buttons).css({
		position: 'absolute',
		top: off.top + 3 - $('body').offset().top,
		left: off.left + $(me.node()).outerWidth() - 13*3/*$(me.buttons).outerWidth()*/ - 3,
		zIndex: 99999
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.buttons).remove();
	me.buttons = [];
};

this.openOptions = function() {
	$(this).append(
		$('<label>').append(
			$('<input type=checkbox name=height value=on />').val(me.state.persistent.get('lightbox', ""))
				.change(function(e) {
					me.state.persistent.set('lightbox', this.checked ? 'on' : '');
				}),
			'<span>Use lightbox</span>'
		),
		'or',
		$('<label>').append(
			'<span>Link to:</span>',
			$('<input type=text name=href />').val(me.state.persistent.get('href', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('href', $(this).val());
						me.refresh();
					}
				})
		)
	);
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('bc053599b74a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

var href;
this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
	
	$(me.node()).click(function() {
		if(me.state.persistent.get('lightbox')) {
			if(phi.lightimage && phi.lightimage.uid == me.uid()) return;
			if(phi.lightimage) phi.lightimage.close();
			function close() {
				delete phi.lightimage;
				var off = $(img).offset();
				$(zoom).animate({
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				}, {complete: function() {$(this).remove();}});
			}
			phi.lightimage = {
				uid: me.uid(),
				close: close
			};
			
			var img = this;
			var zoom;
			var off = $(img).offset();
			var tag = $('<img/>')
				.attr({alt:img.alt, src: phi.fileURL({uid: me.state.persistent.get('file')})})
				.css({
					position: 'absolute',
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				})
				.appendTo('body').hide();
			
			phi.fileinfo(me.state.persistent.get('file'), function(f) {
				var win = { w: $(window).width(), h: $(window).height() };
				var max = { w: win.w-100, h: win.h-100 };
				var size = { w: f.width, h: f.height };
				if( size.w > max.w || size.h > max.h ) {
					var wratio = max.w/size.w, hratio = max.h/size.h;
					var ratio = Math.min(wratio, hratio);
					size.w = size.w*ratio;
					size.h = size.h*ratio;
				}
				zoom = tag.show().animate({
					top: win.h/2-size.h/2,
					left: win.w/2-size.w/2,
					height: size.h,
					width: size.w
				}).click(close);
			});
		} else if(href = me.state.persistent.get('href')) window.location = href;
	});
};

this.buttons = [];

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.buttons).remove();
		me.buttons = [];
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout);
	}
};

this.mouseover = function(e) {
	if( !me.buttons.length ) {
		me.buttons = $('<div class=phi-imagebuttons>').appendTo('body')
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-options.png" class=phi-imageoptions alt=options title="Options" />')
					.click(function() { e.preventDefault();$(me.node()).phiPopup(me.openOptions); }),
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-imageedit alt=edit title="Change image" />')
					.click(function() { e.preventDefault();
						phi.input.file(function(file)
						{
							me.state.persistent.set('file', file);
							me.refresh();
						});
					})
			).get();
	}
	
	var off = $(me.node()).offset();
	$(me.buttons).css({
		position: 'absolute',
		top: off.top + 3 - $('body').offset().top,
		left: off.left + $(me.node()).outerWidth() - 13*3/*$(me.buttons).outerWidth()*/ - 3,
		zIndex: 99999
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.buttons).remove();
	me.buttons = [];
};

this.openOptions = function() {
	$(this).append(
		$('<label>').append(
			$('<input type=checkbox name=height value=on />').val(me.state.persistent.get('lightbox', ""))
				.change(function(e) {
					me.state.persistent.set('lightbox', this.checked ? 'on' : '');
				}),
			'<span>Use lightbox</span>'
		),
		'or',
		$('<label>').append(
			'<span>Link to:</span>',
			$('<input type=text name=href />').val(me.state.persistent.get('href', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('href', $(this).val());
						me.refresh();
					}
				})
		)
	);
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('e47d5eb0c74a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

var href;
this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
	
	$(me.node()).click(function() {
		if(me.state.persistent.get('lightbox')) {
			if(phi.lightimage && phi.lightimage.uid == me.uid()) return;
			if(phi.lightimage) phi.lightimage.close();
			function close() {
				delete phi.lightimage;
				var off = $(img).offset();
				$(zoom).animate({
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				}, {complete: function() {$(this).remove();}});
			}
			phi.lightimage = {
				uid: me.uid(),
				close: close
			};
			
			var img = this;
			var zoom;
			var off = $(img).offset();
			var tag = $('<img/>')
				.attr({alt:img.alt, src: phi.fileURL({uid: me.state.persistent.get('file')})})
				.css({
					position: 'absolute',
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				})
				.appendTo('body').hide();
			
			phi.fileinfo(me.state.persistent.get('file'), function(f) {
				var win = { w: $(window).width(), h: $(window).height() };
				var max = { w: win.w-100, h: win.h-100 };
				var size = { w: f.width, h: f.height };
				if( size.w > max.w || size.h > max.h ) {
					var wratio = max.w/size.w, hratio = max.h/size.h;
					var ratio = Math.min(wratio, hratio);
					size.w = size.w*ratio;
					size.h = size.h*ratio;
				}
				zoom = tag.show().animate({
					top: win.h/2-size.h/2,
					left: win.w/2-size.w/2,
					height: size.h,
					width: size.w
				}).click(close);
			});
		} else if(href = me.state.persistent.get('href')) window.location = href;
	});
};

this.buttons = [];

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.buttons).remove();
		me.buttons = [];
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout);
	}
};

this.mouseover = function(e) {
	if( !me.buttons.length ) {
		me.buttons = $('<div class=phi-imagebuttons>').appendTo('body')
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-options.png" class=phi-imageoptions alt=options title="Options" />')
					.click(function() { e.preventDefault();$(me.node()).phiPopup(me.openOptions); }),
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-imageedit alt=edit title="Change image" />')
					.click(function() { e.preventDefault();
						phi.input.file(function(file)
						{
							me.state.persistent.set('file', file);
							me.refresh();
						});
					})
			).get();
	}
	
	var off = $(me.node()).offset();
	$(me.buttons).css({
		position: 'absolute',
		top: off.top + 3 - $('body').offset().top,
		left: off.left + $(me.node()).outerWidth() - 13*3/*$(me.buttons).outerWidth()*/ - 3,
		zIndex: 99999
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.buttons).remove();
	me.buttons = [];
};

this.openOptions = function() {
	$(this).append(
		$('<label>').append(
			$('<input type=checkbox name=height value=on />').val(me.state.persistent.get('lightbox', ""))
				.change(function(e) {
					me.state.persistent.set('lightbox', this.checked ? 'on' : '');
				}),
			'<span>Use lightbox</span>'
		),
		'or',
		$('<label>').append(
			'<span>Link to:</span>',
			$('<input type=text name=href />').val(me.state.persistent.get('href', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('href', $(this).val());
						me.refresh();
					}
				})
		)
	);
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('c1b6da505e5a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

var href;
this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
	
	$(me.node()).click(function() {
		if(me.state.persistent.get('lightbox')) {
			if(phi.lightimage && phi.lightimage.uid == me.uid()) return;
			if(phi.lightimage) phi.lightimage.close();
			function close() {
				delete phi.lightimage;
				var off = $(img).offset();
				$(zoom).animate({
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				}, {complete: function() {$(this).remove();}});
			}
			phi.lightimage = {
				uid: me.uid(),
				close: close
			};
			
			var img = this;
			var zoom;
			var off = $(img).offset();
			var tag = $('<img/>')
				.attr({alt:img.alt, src: phi.fileURL({uid: me.state.persistent.get('file')})})
				.css({
					position: 'absolute',
					top: off.top, left: off.left,
					width: $(img).innerWidth(),
					height: $(img).innerHeight()
				})
				.appendTo('body').hide();
			
			phi.fileinfo(me.state.persistent.get('file'), function(f) {
				var win = { w: $(window).width(), h: $(window).height() };
				var max = { w: win.w-100, h: win.h-100 };
				var size = { w: f.width, h: f.height };
				if( size.w > max.w || size.h > max.h ) {
					var wratio = max.w/size.w, hratio = max.h/size.h;
					var ratio = Math.min(wratio, hratio);
					size.w = size.w*ratio;
					size.h = size.h*ratio;
				}
				zoom = tag.show().animate({
					top: win.h/2-size.h/2,
					left: win.w/2-size.w/2,
					height: size.h,
					width: size.w
				}).click(close);
			});
		} else if(href = me.state.persistent.get('href')) window.location = href;
	});
};

this.buttons = [];

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.buttons).remove();
		me.buttons = [];
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout);
	}
};

this.mouseover = function(e) {
	if( !me.buttons.length ) {
		me.buttons = $('<div class=phi-imagebuttons>').appendTo('body')
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-options.png" class=phi-imageoptions alt=options title="Options" />')
					.click(function() { e.preventDefault();$(me.node()).phiPopup(me.openOptions); }),
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-imageedit alt=edit title="Change image" />')
					.click(function() { e.preventDefault();
						phi.input.file(function(file)
						{
							me.state.persistent.set('file', file);
							me.refresh();
						});
					})
			).get();
	}
	
	var off = $(me.node()).offset();
	$(me.buttons).css({
		position: 'absolute',
		top: off.top + 3 - $('body').offset().top,
		left: off.left + $(me.node()).outerWidth() - 13*3/*$(me.buttons).outerWidth()*/ - 3,
		zIndex: 99999
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.buttons).remove();
	me.buttons = [];
};

this.openOptions = function() {
	$(this).append(
		$('<label>').append(
			$('<input type=checkbox name=height value=on />').val(me.state.persistent.get('lightbox', ""))
				.change(function(e) {
					me.state.persistent.set('lightbox', this.checked ? 'on' : '');
				}),
			'<span>Use lightbox</span>'
		),
		'or',
		$('<label>').append(
			'<span>Link to:</span>',
			$('<input type=text name=href />').val(me.state.persistent.get('href', ""))
				.catchChanges({
					change: function(e) {
						me.state.persistent.set('href', $(this).val());
						me.refresh();
					}
				})
		)
	);
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('7dfb51e0c74a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
};

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' || o.mode == 'edit' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.node()).find('.phi-textedit').remove();
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout)
	}
};

this.mouseover = function(e) {
	var buttons = $(me.node()).find('.phi-textbuttons');
	if( !buttons.length ) {
		buttons = $('<div class=phi-textbuttons>').prependTo(me.node())
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-textedit alt=edit title="Edit text" />')
					.click(function(e) {
						e.preventDefault(); e.stopPropagation();
						$(this).remove();
						phi.edit.editor('text', function() { this.doEdit.call(me) });
					})
			);
	}
	
	var off = $(me.node()).position();
	buttons.css({
		position: 'absolute',
		top: off.top + 3,
		left: off.left + $(me.node()).outerWidth() - buttons.outerWidth() - 3
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.node()).find('.phi-textbuttons').remove();
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('b95a62d7b74a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
};

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' || o.mode == 'edit' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.node()).find('.phi-textedit').remove();
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout)
	}
};

this.mouseover = function(e) {
	var buttons = $(me.node()).find('.phi-textbuttons');
	if( !buttons.length ) {
		buttons = $('<div class=phi-textbuttons>').prependTo(me.node())
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-textedit alt=edit title="Edit text" />')
					.click(function(e) {
						e.preventDefault(); e.stopPropagation();
						$(this).remove();
						phi.edit.editor('text', function() { this.doEdit.call(me) });
					})
			);
	}
	
	var off = $(me.node()).position();
	buttons.css({
		position: 'absolute',
		top: off.top + 3,
		left: off.left + $(me.node()).outerWidth() - buttons.outerWidth() - 3
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.node()).find('.phi-textbuttons').remove();
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('030429ac4e5a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
};

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' || o.mode == 'edit' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.node()).find('.phi-textedit').remove();
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout)
	}
};

this.mouseover = function(e) {
	var buttons = $(me.node()).find('.phi-textbuttons');
	if( !buttons.length ) {
		buttons = $('<div class=phi-textbuttons>').prependTo(me.node())
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-textedit alt=edit title="Edit text" />')
					.click(function(e) {
						e.preventDefault(); e.stopPropagation();
						$(this).remove();
						phi.edit.editor('text', function() { this.doEdit.call(me) });
					})
			);
	}
	
	var off = $(me.node()).position();
	buttons.css({
		position: 'absolute',
		top: off.top + 3,
		left: off.left + $(me.node()).outerWidth() - buttons.outerWidth() - 3
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.node()).find('.phi-textbuttons').remove();
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('f5e471b34a4a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
};

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' || o.mode == 'edit' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.node()).find('.phi-textedit').remove();
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout)
	}
};

this.mouseover = function(e) {
	var buttons = $(me.node()).find('.phi-textbuttons');
	if( !buttons.length ) {
		buttons = $('<div class=phi-textbuttons>').prependTo(me.node())
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-textedit alt=edit title="Edit text" />')
					.click(function(e) {
						e.preventDefault(); e.stopPropagation();
						$(this).remove();
						phi.edit.editor('text', function() { this.doEdit.call(me) });
					})
			);
	}
	
	var off = $(me.node()).position();
	buttons.css({
		position: 'absolute',
		top: off.top + 3,
		left: off.left + $(me.node()).outerWidth() - buttons.outerWidth() - 3
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.node()).find('.phi-textbuttons').remove();
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('233dd4dc4e5a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
};

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' || o.mode == 'edit' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.node()).find('.phi-textedit').remove();
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout)
	}
};

this.mouseover = function(e) {
	var buttons = $(me.node()).find('.phi-textbuttons');
	if( !buttons.length ) {
		buttons = $('<div class=phi-textbuttons>').prependTo(me.node())
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-textedit alt=edit title="Edit text" />')
					.click(function(e) {
						e.preventDefault(); e.stopPropagation();
						$(this).remove();
						phi.edit.editor('text', function() { this.doEdit.call(me) });
					})
			);
	}
	
	var off = $(me.node()).position();
	buttons.css({
		position: 'absolute',
		top: off.top + 3,
		left: off.left + $(me.node()).outerWidth() - buttons.outerWidth() - 3
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.node()).find('.phi-textbuttons').remove();
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('c0f194cfa74a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
};

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' || o.mode == 'edit' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.node()).find('.phi-textedit').remove();
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout)
	}
};

this.mouseover = function(e) {
	var buttons = $(me.node()).find('.phi-textbuttons');
	if( !buttons.length ) {
		buttons = $('<div class=phi-textbuttons>').prependTo(me.node())
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-textedit alt=edit title="Edit text" />')
					.click(function(e) {
						e.preventDefault(); e.stopPropagation();
						$(this).remove();
						phi.edit.editor('text', function() { this.doEdit.call(me) });
					})
			);
	}
	
	var off = $(me.node()).position();
	buttons.css({
		position: 'absolute',
		top: off.top + 3,
		left: off.left + $(me.node()).outerWidth() - buttons.outerWidth() - 3
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.node()).find('.phi-textbuttons').remove();
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('ab6ea374b74a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
};

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' || o.mode == 'edit' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.node()).find('.phi-textedit').remove();
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout)
	}
};

this.mouseover = function(e) {
	var buttons = $(me.node()).find('.phi-textbuttons');
	if( !buttons.length ) {
		buttons = $('<div class=phi-textbuttons>').prependTo(me.node())
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-textedit alt=edit title="Edit text" />')
					.click(function(e) {
						e.preventDefault(); e.stopPropagation();
						$(this).remove();
						phi.edit.editor('text', function() { this.doEdit.call(me) });
					})
			);
	}
	
	var off = $(me.node()).position();
	buttons.css({
		position: 'absolute',
		top: off.top + 3,
		left: off.left + $(me.node()).outerWidth() - buttons.outerWidth() - 3
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.node()).find('.phi-textbuttons').remove();
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('0e858601b74a4'), []);
}
/*]]>*/

with(phi.classes)
{
	(function() {
/** DYNAMIC **/
with(phi.classes) with(phi.frame) {var me = this;

this.onLoad = function() {
	this.onEditMode({type: 'EditMode', mode: phi.edit._mode});
};

phi.signal.register({type: 'EditMode'}, this);
this.onEditMode = function(o) {
	if( o.mode == 'design' || o.mode == 'edit' ) {
		$(me.node()).mouseover(me.mouseover).mouseout(me.mouseout);
	} else {
		$(me.node()).find('.phi-textedit').remove();
		$(me.node()).unbind('mouseover', me.mouseover).unbind('mouseout', me.mouseout)
	}
};

this.mouseover = function(e) {
	var buttons = $(me.node()).find('.phi-textbuttons');
	if( !buttons.length ) {
		buttons = $('<div class=phi-textbuttons>').prependTo(me.node())
			.append(
				$('<img src="'+phi.config.rootpath+'img/ui/edit/button/mini-edit.png" class=phi-textedit alt=edit title="Edit text" />')
					.click(function(e) {
						e.preventDefault(); e.stopPropagation();
						$(this).remove();
						phi.edit.editor('text', function() { this.doEdit.call(me) });
					})
			);
	}
	
	var off = $(me.node()).position();
	buttons.css({
		position: 'absolute',
		top: off.top + 3,
		left: off.left + $(me.node()).outerWidth() - buttons.outerWidth() - 3
	});
};

this.mouseout = function(e) {
	var o = $(me.node()).offset();
	o.right = o.left + $(me.node()).outerWidth();
	o.bottom = o.top + $(me.node()).outerHeight();
	if( e.pageX > o.left && e.pageY > o.top && e.pageX < o.right && e.pageY < o.bottom ) return;
	$(me.node()).find('.phi-textbuttons').remove();
};

}
/** End/DYNAMIC **/
	}).apply(Jit.get('3d79d92d4e5a4'), []);
}
/*]]>*/with(phi.classes) with(phi.frame) {
	jQuery(function()
	{
		for( var iid in Jit.instances )
		{
			(function(jit) {
				if(jit.onLoad) jit.doOnLoad();
			})(Jit.instances[iid]);
		}
	});
}