with(phi.classes)
{
	Jit.get('0f31b503415a4').state.persistent.state = {"alias":"main","background-image":"cfb7bc0af44a4","height":"800px","repeat-x":true,"width":""};
	Jit.get('ae74bc13415a4').state.persistent.state = {"alias":"body","height":"800px","margin-left":"auto","margin-right":"auto","width":"960px"};
	Jit.get('b02a4863415a4').state.persistent.state = {"alias":"menu container","float":"left","height":"180px","position":"relative","width":"600px"};
	Jit.get('247bb8fe615a4').state.persistent.state = {"alias":"content","float":"left","height":"700px","width":"960px"};
	Jit.get('c1d0edb5415a4').state.persistent.state = {"alias":"menu","float":"","height":"0px","left":"0px","position":"relative","shareable":true,"top":"0px","width":"600px"};
	Jit.get('1953efda515a4').state.persistent.state = {"alias":"about menu","height":"23px","left":"222px","position":"relative","shareable":true,"top":"118px","width":"590px"};
	Jit.get('b6abc16f065a4').state.persistent.state = {"height":"","margin-top":"20px","width":"500px"};
	Jit.get('cf7ba3881c5a4').state.persistent.state = {"alias":"images","float":"right","height":"","width":"430px"};
	Jit.get('d18d7341d34a4').state.persistent.state = {"alias":"About","height":"24px","href":"home\/about","image":"6588a261f24a4","left":"18px","position":"absolute","rollover":"dc136a71f24a4","selected":"dc136a71f24a4","top":"25px","width":"57px"};
	Jit.get('105bd57df34a4').state.persistent.state = {"alias":"ETTV","height":"24px","href":"http:\/\/www.eckharttolletv.com\/eckharttolle.com","image":"0f663622295a4","left":"321px","position":"absolute","rollover":"b41ac442295a4","selected":"b41ac442295a4","top":"025px","width":"140px"};
	Jit.get('15cb2dcdf34a4').state.persistent.state = {"alias":"groups","height":"28px","href":"http:\/\/store.eckharttolle.com\/localgroups\/group_facilitator_search.php","image":"c57ae6bdf34a4","left":"473px","position":"absolute","rollover":"d11c62cdf34a4","selected":"d11c62cdf34a4","top":"025px","width":"64px"};
	Jit.get('2d3e1aaef34a4').state.persistent.state = {"alias":"events","height":"23px","href":"home\/events","image":"17ad4efdf34a4","left":"549px","position":"absolute","rollover":"f19064aef34a4","selected":"be401b0ef34a4","top":"27px","width":"62px"};
	Jit.get('42f2f029f34a4').state.persistent.state = {"alias":"books","height":"24px","href":"home\/books","image":"813fc937f34a4","left":"85px","position":"absolute","rollover":"b27554c2e34a4","selected":"b27554c2e34a4","top":"25px","width":"56px"};
	Jit.get('56bb6c1df34a4').state.persistent.state = {"alias":"downloads","height":"25px","href":"http:\/\/www.iamplify.com\/eckhart-tolle\/","image":"ee0ab10df34a4","left":"213px","position":"absolute","rollover":"f7919d0df34a4","selected":"f7919d0df34a4","top":"25px","width":"96px"};
	Jit.get('928fe7d0044a4').state.persistent.state = {"alias":"Eckhart Logo","file":"da125f40044a4","height":"85px","href":"\/home","left":"6px","position":"absolute","top":"83px","width":"145px"};
	Jit.get('afb1765cf34a4').state.persistent.state = {"alias":"store","height":"24px","href":"http:\/\/www.eckharttolle.com\/eckhartstore\/","image":"c6251d1cf34a4","left":"151px","position":"absolute","rollover":"df58c14cf34a4","top":"25px","width":"51px"};
	Jit.get('dc9300e84d4a4').state.persistent.state = {"alias":"subscribe","height":"28px","left":"646px","position":"relative","top":"8px","width":"193px"};
	Jit.get('aecccb7a115a4').state.persistent.state = {"float":"left","href":"home\/about\/eckharttolle","image":"ff8c8a2a115a4","margin-right":"35px","rollover":"dbec4a3a115a4","selected":"dbec4a3a115a4"};
	Jit.get('3942fcda115a4').state.persistent.state = {"float":"left","href":"home\/about\/kimeng","image":"f461bfaa115a4","margin-right":"35px","position":"relative","rollover":"cb9bed2e115a4","selected":"cb9bed2e115a4"};
	Jit.get('b08faf7d115a4').state.persistent.state = {"float":"left","href":"home\/about\/faq","image":"fa715f4d115a4","margin-right":"35px","rollover":"1b8a2b6d115a4","selected":"1b8a2b6d115a4"};
	Jit.get('d9d0ddfc115a4').state.persistent.state = {"float":"left","href":"home\/about\/eckhartteachings","image":"3e4cb7dc115a4","margin-right":"35px","rollover":"ba9a9aec115a4","selected":"ba9a9aec115a4"};
	Jit.get('5dc46cafbbca4').state.persistent.state = {"float":"left","href":"home\/contact\/","image":"ab0512c8abca4","rollover":"87b9d2d8abca4"};
	Jit.get('69a7ab6f065a4').state.persistent.state = {"content":"<p><strong>Kim Eng<\/strong> travels and works extensively with Eckhart Tolle, the author of the best-selling books, <em>The Power of Now <\/em>and <em>A New Earth<\/em>, taking his teaching around the world. She is Eckhart&rsquo;s partner and associate.<br \/>\n<br \/>\nBorn in Vancouver, Canada, Kim&rsquo;s spiritual search began in the early 1980&rsquo;s. She met Eckhart in 1998, and soon after, went through a transformational spiritual experience while attending one of his retreats. This was followed by seven years of intense spiritual training and unfoldment, after which she began counseling and showing others how to discover their own inner teacher and healer.<br \/>\n<br \/>\nAs a counselor and public speaker, as well as a facilitator of her &ldquo;<em>Presence through Movement<\/em> workshops,&rdquo; Kim has developed her own teaching modality, which is aimed at the transformation of consciousness through the integration of spirit, mind and body. She sees our &ldquo;God-nature&rdquo; as living in and through our human bodies. When we awaken from unconscious to fully conscious living, we are naturally aligned with our God-nature and thus bring into creation a new world.<\/p>\n<p>&nbsp;<\/p>\n<p><br \/>\n<em><strong><br \/>\nPresence through Movement:<\/strong><br \/>\nPresence through Movement<\/em> is the use of the physical form &ndash; the body &ndash; in order to access the formless dimension within ourselves, the state of consciousness that is Presence. It consists of meditative movements, Yin-Yoga poses and Qi-Gong as well as T&rsquo;ai-Chi exercises. No prior knowledge is required. The exercises and movements are gentle, enjoyable and suitable for most people, regardless of age or physical fitness.<br \/>\n&nbsp;<br \/>\nA secondary benefit of these practices is the activation of life-energy (chi) in the body and the clearing of energy-blockages, resulting in increased physical well-being and heightened aliveness.<br \/>\n&nbsp;<\/p>\n<p><br \/>\n<strong>Yin-Yoga<\/strong>, by its slow and gentle nature, helps to balance the overabundance of Yang (active) energies in our daily lives. Yin (passive) gives us an opportunity to turn inwards, to slow down, and direct the focus of our attention within.<br \/>\n&nbsp;<\/p>\n<p><br \/>\n<strong>Qi-Gong<\/strong>, helps to restore the original natural life energy within. We are born with an abundance of life energy, yet as we grow old we become depleted of vitality. Qi (chi) (life energy) - Gong (cultivation), is a system of energy exercises and poses that stimulates and opens the body&rsquo;s energy channels.<\/p>\n<p>&nbsp;<\/p>\n<p><br \/>\n<strong>T&rsquo;ai-Chi<\/strong>, is a slow form of martial arts. It consists of Presence-infused movements, a harmonious synthesis of action and stillness.<\/p>","float":"left"};
	Jit.get('1b0ebf427b6a4').state.persistent.state = {"file":"625081427b6a4","float":"right","lightbox":"on","margin-top":"20px","width":"200px"};
	Jit.get('2accbe385d5a4').state.persistent.state = {"file":"66c1c9385d5a4","float":"left","lightbox":"on","margin-bottom":"25px","margin-top":"25px","width":"200px"};
	Jit.get('a00e85f75d5a4').state.persistent.state = {"file":"9d6722f75d5a4","float":"right","lightbox":"on","margin-bottom":"25px","margin-top":"30px","position":"static","width":"200px"};
	Jit.get('afc3a8717b6a4').state.persistent.state = {"file":"167b35717b6a4","float":"left","lightbox":"on","margin-top":"","width":"200px"};
	Jit.get('b2394ea65d5a4').state.persistent.state = {"file":"34781ba65d5a4","float":"left","lightbox":"on","margin-top":"25px","width":"200px"};
	Jit.get('b2fc8b875d5a4').state.persistent.state = {"file":"b275a2875d5a4","float":"right","lightbox":"on","width":"200px"};
	Jit.get('255c18c2046a4').state.persistent.state = {"color":"#fff","content":"<p>Subscribe to our mailing list<\/p>","float":"","height":"21px","left":"35px","position":"relative","width":"193px"};
	Jit.get('30af75294d4a4').state.persistent.state = {"content":"<!--\nDo not modify the NAME value of any of the INPUT fields\nthe FORM action, or any of the hidden fields (eg. input type=hidden).\nThese are all required for this form to function correctly.\n-->\n<p><style type=\"text\/css\">\n<!--\n.p {\n\tpadding: 7px;\n\tfloat: left;\n}\n.fl {\n\tfloat: left;\n}\n.m {\n\tfloat: right;\n\tmargin-left: 10px;\n}\n-->\n<\/style><\/p>\n<p><style type=\"text\/css\">\n\n\t.myForm td, input, select, textarea, checkbox  {\n\t\tfont-family: tahoma;\n\t\tfont-size: 12px;\n\t}\n\n\t.required {\n\t\tcolor: red;\n\t}\n\n<\/style><\/p>\n<form method=\"post\" action=\"http:\/\/www.republiklabs.com\/sendstudionx\/form.php?form=5\" id=\"frmSS5\" onSubmit=\"return CheckForm5(this);\">\n    <table cellpadding=\"2\" border=\"0\" width=\"263\" height=\"61\" class=\"myForm\">\n        <input type=\"hidden\" name=\"format\" value=\"h\" \/>\n        <tbody>\n            <tr>\n                <td width=\"170\"><input type=\"text\" size=\"30\" class=\"p\" name=\"email\" \/><\/td>\n                <td align=\"center\" width=\"79\" valign=\"middle\"><input align=\"middle\" type=\"image\" src=\"http:\/\/kommonwealth.redwerks.org\/eckharttolle\/file\/image\/hash\/a27f01c79beb3db38d2712b2533d9113ca049264\" value=\"Subscribe\" class=\"m\" \/><\/td>\n            <\/tr>\n            <tr>\n            <\/tr>\n        <\/tbody>\n    <\/table>\n<\/form>\n<script language=\"javascript\">\n\n\t\t\tfunction CheckMultiple5(frm, name) {\n\t\t\t\tfor (var i=0; i < frm.length; i++)\n\t\t\t\t{\n\t\t\t\t\tfldObj = frm.elements[i];\n\t\t\t\t\tfldId = fldObj.id;\n\t\t\t\t\tif (fldId) {\n\t\t\t\t\t\tvar fieldnamecheck=fldObj.id.indexOf(name);\n\t\t\t\t\t\tif (fieldnamecheck != -1) {\n\t\t\t\t\t\t\tif (fldObj.checked) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\tfunction CheckForm5(f) {\n\t\t\tif (f.email.value == \"\") {\n\t\t\t\talert(\"Please enter your email address.\");\n\t\t\t\tf.email.focus();\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\n\t\t\t\treturn true;\n\t\t\t};\n\t\t\n<\/script>","height":"24px","left":"34px","position":"relative","top":"0px","width":"193px"};

}
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('d18d7341d34a4'), []);
}
/*]]>*/

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('105bd57df34a4'), []);
}
/*]]>*/

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('15cb2dcdf34a4'), []);
}
/*]]>*/

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('2d3e1aaef34a4'), []);
}
/*]]>*/

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('42f2f029f34a4'), []);
}
/*]]>*/

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('56bb6c1df34a4'), []);
}
/*]]>*/

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('928fe7d0044a4'), []);
}
/*]]>*/

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('afb1765cf34a4'), []);
}
/*]]>*/

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('aecccb7a115a4'), []);
}
/*]]>*/

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('3942fcda115a4'), []);
}
/*]]>*/

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('b08faf7d115a4'), []);
}
/*]]>*/

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('d9d0ddfc115a4'), []);
}
/*]]>*/

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('5dc46cafbbca4'), []);
}
/*]]>*/

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('69a7ab6f065a4'), []);
}
/*]]>*/

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('1b0ebf427b6a4'), []);
}
/*]]>*/

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('2accbe385d5a4'), []);
}
/*]]>*/

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('a00e85f75d5a4'), []);
}
/*]]>*/

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('afc3a8717b6a4'), []);
}
/*]]>*/

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('b2394ea65d5a4'), []);
}
/*]]>*/

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('b2fc8b875d5a4'), []);
}
/*]]>*/

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('255c18c2046a4'), []);
}
/*]]>*/

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('30af75294d4a4'), []);
}
/*]]>*/with(phi.classes) with(phi.frame) {
	jQuery(function()
	{
		for( var iid in Jit.instances )
		{
			(function(jit) {
				if(jit.onLoad) jit.doOnLoad();
			})(Jit.instances[iid]);
		}
	});
}