jQuery.fn.lbxEditable = function () {

	var ttInd = 0;
	var ebInd = 0;
	var wInd = 0;

	return this.each(function() {

		jQuery('*.lbxCollectable').live('click',function(e) {

			var that = jQuery(this);

			if((that.attr('data-lbxAction') !== undefined) && (that.attr('data-lbxCart') !== undefined)) {
				that.lbxCart();
			}

			return false;

		});
/*
		if(window.innerWidth) {
			var inner = window.innerWidth;
			var htmlW = (jQuery('html').css('width').replace(/px/,'')*1);
			var diff = inner-htmlW;
			inner = 0;
			var newW;

			var evenWidth = setInterval(function() {
				var t = window.innerWidth;
				if(t !== inner) {
					inner = window.innerWidth;
					newW = inner-diff;
					if((newW%2) !== 0){
						newW--;
					}
					jQuery('html').css('width',newW);
				}
			},500);
		}
*/
if(navigator.userAgent.indexOf('Firefox/3') === -1) {
	return false;
}
//Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.14) Gecko/2009090216 Ubuntu/9.04 (jaunty) Firefox/3.0.14

		jQuery('.lbxBrowsable[class!=lbxBrowser],.lbxEditable[class!=lbxBrowser]').live('mouseover',function() {

			var that = jQuery(this);

			if(typeof that.data('lbxEB') !== "number") {
				ebInd++;
				that.data('lbxEB',ebInd);
				that.lbxEditButtons();
			}
		});

		jQuery('span.lbxExpander').live('click',function(e) {

			var that = jQuery(this);

			that.lbxBrowse();
			return false;

		});

		jQuery('span.lbxBrowsable[class*=lbxBrowser]').live('click',function(e) {

			var that = jQuery(this);

if(e.ctrlKey) {

	getObjectsByPath(that,{properties:1});
	return false;

}

			that.lbxBrowse('*');
			return false;
		});

		jQuery('span.lbxEditable[class*=lbxBrowser]').live('click',function(e) {

			var that = jQuery(this);

			that.lbxEdit();
			return false;
		});

		jQuery('span.lbxDownloadable[class*=lbxBrowser]').live('click',function(e) {

			var that = jQuery(this);

			that.lbxDownload();
			return false;
		});

		//jQuery('div:has(> span.lbxBrowser)').live('click',function(e) {
		jQuery('div:has(> span.lbxBrowser),div.lbxBrowser').live('click',function(e) {

			var that = jQuery(this);

			if(e.target !== that.get(0)) {
				return false;
			}

			if(that.hasClass('lbxSelected')) {

				that.lbxButtons('init');
				that.removeClass('lbxSelected');
				that.find('iframe, div.lbxObjAttributes').toggle('fast',function() {
					$(this).remove();
				});

			} else {

				that.parents('div.lbxWindow').find('div.lbxSelected').removeClass('lbxSelected').children('div.lbxButtonBar, iframe, div.lbxObjAttributes').toggle('fast',function() {
					$(this).remove();
				});

				that.lbxButtons('init');
				that.addClass('lbxSelected');

			}


			return false;

		});

		jQuery('div.lbxDefaultProperty,div.lbxOptionalProperty,div.lbxProperty').live('click',function(e) {

			var that = jQuery(this);

			if($(e.target).hasClass('lbxObjHelp')) {
				return false;
			}

			if(that.find('select,input').length > 0) {

				return;
			}

			if(that.hasClass('lbxSelected')) {

				that.lbxButtons('init');
				that.removeClass('lbxSelected');
				that.find('div.lbxObjAttributes, div.lbxObjHelp').toggle('fast',function() {
					$(this).remove();
				});

			} else {

				that.parents('div.lbxWindow').find('div.lbxSelected').removeClass('lbxSelected').children('div.lbxButtonBar, div.lbxObjAttributes, div.lbxObjHelp').toggle('fast',function() {
					$(this).remove();
				});

				that.lbxButtons('init');
				that.addClass('lbxSelected');

			}


			return false;

		});

		jQuery('div.lbxWindow').live('click',function(e) {

			var that = jQuery(this);

			that.find('div.lbxSelected').removeClass('lbxSelected').children('div.lbxButtonBar, iframe, div.lbxObjAttributes, div.lbxObjHelp').toggle('fast',function() {
				$(this).remove();
			});

			//return false;

		});

	});

	function getObjectsByPath(objs,options) {

		var settings = {
			path:'*',
			properties:0
		};
		if(options) {
			if(options.path) {
				settings.path = options.path;
			}
			if(options.properties) {
				settings.properties = options.properties;
			}
		}

		objs.each(function() {

			var that = $(this);

			if(that.attr('data-lbxObjId') !== undefined) {
				jQuery.getJSON("/?lbxGetObjectsByPath="+that.attr('data-lbxObjId')+"&path="+settings.path+"&properties="+settings.properties,function(data) {
					jQuery.each(data,function(i) {

alert(data[i].___name+' - '+data[i].___path);
						return;

					});
				});
			} else {
				return false;
			}
		});
	};


};

(function($){
	$.fn.lbxButtons = function(level) {
		return this.each(function() {

			var that = $(this);
			var zdex=0;

			var buttonBar = that.children('div.lbxButtonBar');

			var targ = that.children('span.lbxBrowser');
			if(targ.length === 0) {
				targ = that;
			}

			if(buttonBar.length === 1) {
				if(level === 'init') {
					buttonBar.toggle('fast',function(){
						buttonBar.remove();
					});
					return false;
				}
				buttonBar.remove();
			} else if(buttonBar.length > 1) {
				buttonBar.remove();
			}



			that.append('<div class="lbxButtonBar"></div>');
			buttonBar = that.children('div.lbxButtonBar');


			if((level === 'init') || (level === 'basic')) {
				if(buttonBar.length !== 1) {
					return false;
				}

				var buttons='';

				if(targ.hasClass('lbxFrame')) {
					if(targ.attr('data-lbxObjType') === 'object') {
						if(targ.attr('data-lbxObjClass') !== 'NA') {
							buttons = buttons+'<a class="lbxEdit" title="Edit" href="javascript:void(0)" >Properties</a>';
						}
					}
					buttons = buttons+'<a class="lbxAttributes" title="Attributes" href="javascript:void(0)" >Attributes</a><a class="lbxButtons" data-lbxButtons="edit" href="javascript:void(0)" >&gt;</a><a class="lbxButtons" data-lbxButtons="alter" title="Less Options" href="javascript:void(0)" >&gt;&gt;</a>';
				} else if(targ.hasClass('lbxBrowser')) {
					if(targ.hasClass('lbxBrowsable')) {
						buttons = buttons+'<a class="lbxBrowse" title="Browse" href="javascript:void(0)" >Browse</a>';
					}
					if(targ.hasClass('lbxEditable')) {
						if(targ.attr('data-lbxObjType') === 'object') {
							buttons = buttons+'<a class="lbxEdit" title="Edit" href="javascript:void(0)" >Properties</a>';
						} else {
							buttons = buttons+'<a class="lbxEdit" title="Edit" href="javascript:void(0)" >Edit</a>';
						}
					}
					if(targ.hasClass('lbxDownloadable')) {
						buttons = buttons+'<a class="lbxDownload" title="Download" href="javascript:void(0)" >Download</a>';
					}
					buttons = buttons+'<a class="lbxAttributes" title="Attributes" href="javascript:void(0)" >Attributes</a><a class="lbxButtons" data-lbxButtons="edit" href="javascript:void(0)" >&gt;</a><a class="lbxButtons" data-lbxButtons="alter" title="Less Options" href="javascript:void(0)" >&gt;&gt;</a>';
				} else if(targ.hasClass('lbxProperty')) {
					if(that.find('select,input').length === 0) {
						buttons = buttons+'<a class="lbxEdit" title="Edit" href="javascript:void(0)" >Edit</a>';
						if(targ.attr('data-lbxObjType') === 'object') {
							buttons = buttons+'<a class="lbxBrowse" title="Browse" href="javascript:void(0)" >Browse</a>';
						}
					}
				} else if((targ.hasClass('lbxDefaultProperty')) || (targ.hasClass('lbxOptionalProperty'))) {
					buttons = buttons+'<a class="lbxActivate" title="Activate this property." href="javascript:void(0)" >Activate</a>';
				}

				if(targ.attr('data-lbxObjHelp') !== undefined) {
					buttons = '<a class="lbxHelp" title="Help" href="javascript:void(0)" >Help</a>'+buttons;
				}

				buttonBar.append(buttons);

				buttonBar.find('a.lbxBrowse').click(function(){
					targ.lbxBrowse();
					return false;
				});

				buttonBar.find('a.lbxEdit').click(function(){
					targ.lbxEdit();
					return false;
				});

				buttonBar.find('a.lbxDownload').click(function(){
					targ.lbxDownload();
					return false;
				});

				buttonBar.find('a.lbxAttributes').click(function(){
					targ.lbxAttributes();
					return false;
				});

				buttonBar.find('a.lbxActivate').click(function(){
					targ.lbxActivate();
					return false;
				});

				buttonBar.find('a.lbxHelp').click(function(){
					targ.lbxHelp();
					return false;
				});

			} else if(level === 'edit') {
				if(buttonBar.length !== 1) {
					return false;
				}

				var buttons='<a class="lbxButtons" data-lbxButtons="basic" href="javascript:void(0)" >&lt;</a>';

				if(!targ.hasClass('lbxFrame')) {
					buttons = buttons+'<a class="lbxButtons" data-lbxButtons="cut" href="javascript:void(0)" >Cut &gt;</a>';
				}

				buttons = buttons+'<a class="lbxCopy" href="javascript:void(0)" >Copy</a>';

				if(targ.attr('data-lbxObjType') === 'object') {
					buttons = buttons+'<a class="lbxPaste" href="javascript:void(0)" >Paste</a><a class="lbxButtons" data-lbxButtons="new" href="javascript:void(0)" >New &gt;</a>';
				}

				if(!targ.hasClass('lbxFrame')) {
					buttons = buttons+'<a class="lbxButtons" data-lbxButtons="delete" href="javascript:void(0)" >Delete &gt;</a><a class="lbxButtons" data-lbxButtons="move" href="javascript:void(0)" >Move &gt;</a>';
				}

				buttons = buttons+'<a class="lbxButtons" data-lbxButtons="alter" href="javascript:void(0)" >&gt;</a>';

				buttonBar.append(buttons);

				buttonBar.find('a.lbxCopy').click(function(){
					targ.lbxCopy();
					return false;
				});

				if(targ.attr('data-lbxObjType') === 'object') {

					buttonBar.find('a.lbxPaste').click(function(){
						targ.lbxPaste();
						return false;
					});

				}

			} else if(level === 'alter') {
				if(buttonBar.length !== 1) {
					return false;
				}

				var buttons='<a class="lbxButtons" data-lbxButtons="basic" title="Less Options" href="javascript:void(0)" >&lt;&lt;</a><a class="lbxButtons" data-lbxButtons="edit" title="Less Options" href="javascript:void(0)" >&lt;</a><a class="lbxRename" href="javascript:void(0)" >Rename</a><a class="lbxClass" href="javascript:void(0)" >Class</a><a class="lbxPermissions" href="javascript:void(0)" >Permissions</a><a class="lbxOwner" href="javascript:void(0)" >Owner</a>';

				buttonBar.append(buttons);

				buttonBar.find('a.lbxRename').click(function(){
					targ.lbxRename();
					return false;
				});
				buttonBar.find('a.lbxClass').click(function(){
					targ.lbxClass();
					return false;
				});
				buttonBar.find('a.lbxPermissions').click(function(){
					targ.lbxPermissions();
					return false;
				});
				buttonBar.find('a.lbxOwner').click(function(){
					targ.lbxOwner();
					return false;
				});

			} else if(level === 'delete') {
				if(buttonBar.length !== 1) {
					return false;
				}

				var buttons = '<a class="lbxDelete lbxGo" href="javascript:void(0)" >OK DELETE</a><a class="lbxButtons lbxStop" data-lbxButtons="edit" href="javascript:void(0)" >&lt; CANCEL</a>';


				buttonBar.append(buttons);

				buttonBar.find('a.lbxDelete').click(function(){
					targ.lbxDelete();
					return false;
				});
			} else if(level === 'move') {
				if(buttonBar.length !== 1) {
					return false;
				}

				var buttons = '<a class="lbxButtons lbxStop" data-lbxButtons="edit" href="javascript:void(0)" >&lt;</a><a class="lbxMove" href="javascript:void(0)" >first</a><a class="lbxMove" href="javascript:void(0)" >-20</a><a class="lbxMove" href="javascript:void(0)" >-10</a><a class="lbxMove" href="javascript:void(0)" >-5</a><a class="lbxMove" href="javascript:void(0)" >-2</a><a class="lbxMove" href="javascript:void(0)" >-1</a><a class="lbxMove" href="javascript:void(0)" >+1</a><a class="lbxMove" href="javascript:void(0)" >+2</a><a class="lbxMove" href="javascript:void(0)" >+5</a><a class="lbxMove" href="javascript:void(0)" >+10</a><a class="lbxMove" href="javascript:void(0)" >+20</a><a class="lbxMove" href="javascript:void(0)" >last</a>';


				buttonBar.append(buttons);

				buttonBar.find('a.lbxMove').click(function(e){
					targ.lbxMove($(e.target).text());
					return false;
				});

			} else if(level === 'cut') {
				if(buttonBar.length !== 1) {
					return false;
				}

				var buttons = '<a class="lbxCut lbxGo" href="javascript:void(0)" >OK CUT</a><a class="lbxButtons lbxStop" data-lbxButtons="edit" href="javascript:void(0)" >&lt; CANCEL</a>';


				buttonBar.append(buttons);

				buttonBar.find('a.lbxCut').click(function(){
					targ.lbxCut();
					return false;
				});
			} else if(level === 'new') {
				if(buttonBar.length !== 1) {
					return false;
				}

				if(targ.data('allowed') === undefined) {
					$.getJSON("/?lbxGetAllowed="+targ.attr('data-lbxObjId'),function(data){

						targ.data('allowed',data);
						that.lbxButtons('new');

					});
				} else {

					var buttons = ' ';

					var types = targ.data('allowed').types;
					var classes = targ.data('allowed').classes;
					$.each(types,function(i) {
						buttons = buttons+'<a class="lbxNew" href="javascript:void(0)" data-lbxButtonDesignation="type:'+types[i]+'" >'+types[i]+'</a>';
					});
					buttons = buttons+'<hr/>';
					$.each(classes,function(i) {
						buttons = buttons+'<a class="lbxNew" href="javascript:void(0)" data-lbxButtonDesignation="class:'+classes[i]+'" >'+classes[i]+'</a>';
					});
					if(buttons === ' ') {
						alert('Creation of New objects is not allowed here');
						that.lbxButtons('edit');
					} else {
						buttons = '<a class="lbxButtons" data-lbxButtons="basic" href="javascript:void(0)" >&lt;&lt;</a><a class="lbxButtons" data-lbxButtons="edit" href="javascript:void(0)" >&lt;</a>'+buttons;
					}
				}

				buttonBar.append(buttons);

				buttonBar.find('a.lbxNew').click(function(){
					targ.lbxNew($(this).attr('data-lbxButtonDesignation'));
					return false;
				});
			} else if(level === 'file') {
				if(buttonBar.length !== 1) {
					return false;
				}

/*//There will be a time when we might want to get file types from the server

				if(targ.data('allowed') === undefined) {
					$.getJSON("/?lbxGetAllowed="+targ.attr('data-lbxObjId'),function(data){

						targ.data('allowed',data);
						that.lbxButtons('new');

					});
				} else {

					var buttons = ' ';

					var types = targ.data('allowed').types;
					var classes = targ.data('allowed').classes;
					$.each(types,function(i) {
						buttons = buttons+'<a class="lbxNew" href="javascript:void(0)" data-lbxButtonDesignation="type:'+types[i]+'" >'+types[i]+'</a>';
					});
					$.each(classes,function(i) {
						buttons = buttons+'<a class="lbxNew" href="javascript:void(0)" data-lbxButtonDesignation="class:'+classes[i]+'" >'+classes[i]+'</a>';
					});
					if(buttons === ' ') {
						alert('Creation of New objects is not allowed here');
						that.lbxButtons('edit');
					} else {
						buttons = '<a class="lbxButtons" data-lbxButtons="edit" href="javascript:void(0)" >&lt;</a>'+buttons;
					}
				}

				buttonBar.append(buttons);

				buttonBar.find('a.lbxNew').click(function(){
					targ.lbxNew($(this).attr('data-lbxButtonDesignation'));
					return false;
				});
*/

//But for now we only upload files
/*
				buttons = '<a class="lbxNew" href="javascript:void(0)" data-lbxButtonDesignation="type:file" >&lt;</a>';
buttons = '<a class="lbxButtons" data-lbxButtons="edit" href="javascript:void(0)" >&lt;</a>';
				buttonBar.append(buttons);

				buttonBar.find('a.lbxNew').click(function(){
					targ.lbxNew($(this).attr('data-lbxButtonDesignation'));
					return false;
				});
*/
				targ.lbxUpload();

			} else {
				return false;
			}

			buttonBar.find('a.lbxButtons').click(function(){
				that.lbxButtons($(this).attr('data-lbxButtons'));
				return false;
			});

			buttonBar.toggle("fast");



		});
	};
})(jQuery);

(function($){
	$.fn.lbxBrowse = function() {
		var selector = '*';
		var e = false;
		if(arguments.length > 0) {
			if(arguments[0].length > 0) {
				selector = arguments[0];
			}
		}
		if(arguments.length > 1) {
			e = arguments[1];
		}
		return this.each(function() {
			var that = $(this);
			var windw = that.parents('div.lbxWindow');

			if(that.parent().hasClass('lbxPathBar')) {
				//windw = that.parent().parent();
				$.get('/?lbxBrowser='+that.attr('data-lbxObjPath')+'&childSelector='+selector,function(data) {
					windw.children().remove();
					windw.append(data);
					windw.lbxWindow();
				});
			} else if(that.hasClass('lbxBrowser')) {
				if(that.attr('tagName') === 'SPAN') {
					$.get('/?lbxBrowser='+that.attr('data-lbxObjId')+'&childSelector='+selector,function(data) {
						windw.children().remove();
						windw.append(data);
						windw.lbxWindow();
					});
				} else if(that.attr('tagName') === 'DIV') {
					$.get('/?lbxBrowser='+that.attr('data-lbxObjId')+'&childSelector='+selector,function(data) {
						that.replaceWith(data);
						windw.lbxWindow();
					});
				}
			} else if(that.hasClass('lbxExpander')) {
				if((that.attr('tagName') === 'SPAN') && (that.next().hasClass('lbxBrowser'))) {
					var expander = that;
					that = that.next();
					if(!that.parent().next().hasClass('lbxBrowser')) {
						$.get('/?lbxBrowser='+that.attr('data-lbxObjId')+'&childSelector='+selector,function(data) {
							that.parent().after(data);
							expander.text(expander.text().replace('+','-'));
							windw.lbxWindow();
						});
					} else {
						that.parent().next().toggle();
						if(expander.text().indexOf('+') !== -1) {
							expander.text(expander.text().replace('+','-'));
						} else {
							expander.text(expander.text().replace('-','+'));
						}
					}
				}
			} else if(that.hasClass('lbxWindow')) {
				windw = that;
/*
				if($(e.target).children('a:first').hasClass('lbxBrowser')) {
					that = $(e.target).children('a:first');
				} else {*/
					that = that.children('div.lbxBrowser');
//				}

				$.get('/?lbxBrowser='+that.attr('data-lbxObjId')+'&childSelector='+selector,function(data) {
					windw.children().remove();
					windw.append(data);
					windw.lbxWindow();
				});

			} else {
				var existingFrame;
				var frameSelector = 'div.lbxFrame[data-lbxObjId="'+that.attr('data-lbxObjId')+'"]';
				existingFrame = $(frameSelector);
//alert(existingFrame.length);
				$.get('/?lbxBrowser='+that.attr('data-lbxObjId')+'&childSelector='+selector,function(data) {
//alert(data);return;
					//existingFrame = existingFrame.filter('.lbxBrowser');
					if((existingFrame.length > 0) && (existingFrame.hasClass('lbxBrowser'))) {
						windw = existingFrame.parent();
						windw.children().remove();
						windw.append(data);
					} else {
						$('body').append('<div class="lbxWindow" >'+data+'</div>');
						windw = $('div.lbxWindow:last');
					}
					windw.lbxWindow();
				});

			}

		});
	};
})(jQuery);

(function($){
	jQuery.fn.lbxUpload = function () {

		return this.each(function() {

			var that = jQuery(this);

			var uploader = that.siblings('iframe');

			if(uploader.length === 0) {
				if(that.attr('data-lbxObjType') === "object") {
					that.parent().append("<iframe src=\"/lbx/upload?lbxObjId="+that.attr('data-lbxObjId')+"\" ></iframe>");
				};
				uploader = that.siblings('iframe');
				var upload = false;
				uploader.load(function() {
					if(upload === true) {
						if(that.hasClass('lbxHeader')) {
							that.parent().lbxRefresh();
						} else if(that.hasClass('lbxBrowser')) {
							if(that.parent().next().hasClass('lbxBrowser')) {
								that.parent().next().lbxRefresh();
							}
						}
					}
					upload = true;
				});
			} else {
				uploader.remove();
				that.lbxButtons('new');
			}

		});

	};
})(jQuery);

(function($){
	jQuery.fn.lbxDownload = function () {

		return this.each(function() {

			var that = jQuery(this);
			var newWindow = window.open(that.attr('data-lbxObjPath'));

		});

	};
})(jQuery);

(function($){
	jQuery.fn.lbxRename = function () {

		return this.each(function() {

			var that = jQuery(this);

			var conf = window.prompt('Enter a new name for this object.',that.text());

			if(typeof conf === "string") {

				$.post("/?lbxGetFoo","lbxSetName["+that.attr('data-lbxObjId')+"]="+conf,function (data) {
					if(data === 'Foo') {
						if(that.hasClass('lbxHeader')) {
							that.parent().lbxRefresh();
						} else if(that.hasClass('lbxBrowser')) {
							that.parent().parent().lbxRefresh();
						}
					}
				},"text");

			}

		});

	};
})(jQuery);

(function($){
	jQuery.fn.lbxClass = function () {

		return this.each(function() {

			var that = jQuery(this);

			var conf = window.prompt('Enter a new class type for this object.',that.attr('data-lbxObjClass'));

			if(typeof conf === "string") {

				$.post("/?lbxGetFoo","lbxSetClass["+that.attr('data-lbxObjId')+"]="+conf,function (data) {
					if(data === 'Foo') {
						if(that.hasClass('lbxHeader')) {
							that.parent().lbxRefresh();
						} else if(that.hasClass('lbxBrowser')) {
							that.parent().parent().lbxRefresh();
							/*if(that.parent().next().hasClass('lbxBrowser')) {
								that.parent().next().lbxRefresh();
							}*/
						}
					}
				},"text");

			}

		});

	};
})(jQuery);

(function($){
	jQuery.fn.lbxPermissions = function () {

		return this.each(function() {

			var that = jQuery(this);

			$.get('/?lbxGetPermissions='+that.attr('data-lbxObjId'),function(data) {
				if(data !== '___denied___') {

					var conf = window.prompt('Enter the new permissions for this object.',data);

					if(typeof conf === "string") {

						$.post("/?lbxGetFoo","lbxSetPermissions["+that.attr('data-lbxObjId')+"]="+conf,function (data) {
							if(data === 'Foo') {
								if(that.hasClass('lbxHeader')) {
									that.parent().lbxRefresh();
								} else if(that.hasClass('lbxBrowser')) {
									that.parent().parent().lbxRefresh();
								}
							}
						},"text");

					}
				} else {
					alert("You must own the Object to be able to change it's permissions!");
				}
			});

		});

	};
})(jQuery);

(function($){
	jQuery.fn.lbxOwner = function () {

		return this.each(function() {

			var that = jQuery(this);

			$.get('/?lbxGetOwner='+that.attr('data-lbxObjId'),function(data) {
				if(data !== '___denied___') {

					var conf = window.prompt('Enter a new owner for this object.',data);

					if(typeof conf === "string") {

						$.post("/?lbxGetFoo","lbxSetOwner["+that.attr('data-lbxObjId')+"]="+conf,function (data) {
							if(data === 'Foo') {
								if(that.hasClass('lbxHeader')) {
									that.parent().lbxRefresh();
								} else if(that.hasClass('lbxBrowser')) {
									that.parent().parent().lbxRefresh();
								}
							}
						},"text");

					}
				} else {
					alert("You must own the Object to be able to change it's owner!");
				}
			});

		});

	};
})(jQuery);

(function($){
	jQuery.fn.lbxCut = function () {

		return this.each(function() {

			var that = jQuery(this);

			$.post("/?lbxGetFoo","lbxCut["+that.attr('data-lbxObjId')+"]=foo",function (data) {
				if(data === 'Foo') {
					if(that.hasClass('lbxHeader')) {
						that.parent().lbxRefresh();
					} else if(that.hasClass('lbxBrowser')) {
						that.parent().parent().lbxRefresh();
					}
				}
			},"text");

		});

	};
})(jQuery);

(function($){
	jQuery.fn.lbxCopy = function () {

		return this.each(function() {

			var that = jQuery(this);

			$.post("/?lbxGetFoo","lbxCopy["+that.attr('data-lbxObjId')+"]=foo",function (data) {
				if(data === 'Foo') {
					that.parent().lbxButtons('basic');
				}
			},"text");

		});

	};
})(jQuery);

(function($){
	jQuery.fn.lbxPaste = function () {

		return this.each(function() {

			var that = jQuery(this);
			var windw = that.parents('div.lbxWindow');

			$.post("/?lbxBrowser="+that.attr('data-lbxObjId'),"lbxPaste["+that.attr('data-lbxObjId')+"]=foo",function (data) {
				//if(data === 'Foo') {
					if(that.hasClass('lbxHeader')) {
						that.parent().lbxRefresh();
					} else if(that.hasClass('lbxBrowser')) {
						if(that.hasClass('lbxFrame')) {
							that.lbxRefresh();
							return false;
						} else if(that.parent().next().hasClass('lbxBrowser')) {
							that.parent().next().replaceWith(data);
						} else {
							that.parent().after(data);
						}
						windw.lbxWindow();
					}
				//}
			},"text");
/*
			$.post("/?lbxGetFoo","lbxPaste["+that.attr('data-lbxObjId')+"]=foo",function (data) {
				if(data === 'Foo') {
					if(that.hasClass('lbxHeader')) {
						that.parent().lbxRefresh();
					} else if(that.hasClass('lbxBrowser')) {
						if(that.parent().next().hasClass('lbxBrowser')) {
							that.parent().next().lbxRefresh();
						}
					}
				}
			},"text");
*/
		});

	};
})(jQuery);

(function($){
	jQuery.fn.lbxDelete = function () {

		return this.each(function() {

			var that = jQuery(this);

			$.post("/?lbxGetFoo","lbxUnset["+that.attr('data-lbxObjId')+"]=foo",function (data) {
				if(data === 'Foo') {
					if(that.hasClass('lbxHeader')) {
						alert('This object has been deleted so the mini browser you were using will close.');
						that.parent().remove();

					} else if(that.hasClass('lbxBrowser')) {
						that.parent().parent().lbxRefresh();
					}
				}
			},"text");

		});

	};
})(jQuery);

(function($){
	jQuery.fn.lbxMove = function (by) {

		return this.each(function() {

			var that = jQuery(this);

			$.post("/?lbxGetFoo","lbxSetIndex["+that.attr('data-lbxObjId')+"]="+encodeURIComponent(by),function (data) {
				if(data === 'Foo') {
					if(that.hasClass('lbxBrowser')) {
						that.parent().parent().lbxRefresh();
					}
				} else {
//alert(data);
				}
			},"text");

		});

	};
})(jQuery);

(function($){
	jQuery.fn.lbxNew = function (ttype) {

		return this.each(function() {

			var that = jQuery(this);

			var windw = that.parents('div.lbxWindow');

			ttype = ttype.split(':');

			if(ttype[1] === 'file') {
				that.parent().lbxButtons('file');
				return true;
			}

			$.post("/?lbxBrowser="+that.attr('data-lbxObjId'),"lbxNew["+that.attr('data-lbxObjId')+"]="+ttype[0]+"&lbxType="+ttype[1],function (data) {
				//if(data === 'Foo') {
					if(that.hasClass('lbxHeader')) {
						that.parent().lbxRefresh();
					} else if(that.hasClass('lbxBrowser')) {
						if(that.hasClass('lbxFrame')) {
							that.lbxRefresh();return false;
						} else if(that.parent().next().hasClass('lbxBrowser')) {
							that.parent().next().replaceWith(data);
						} else {
							that.parent().after(data);
						}
						windw.lbxWindow();
					}
				//}
			},"text");

		});

	};
})(jQuery);

(function($){

	var zindex = 1000;

	$.fn.lbxWindow = function() {

		return this.each(function() {

			var windw = $(this);

			var windwFrame = $(this).children('.lbxFrame,.lbxBrowser');
			windwFrame.addClass('lbxFrame');
			var header = windw.children('.lbxHeader');

			if(windwFrame.attr('data-lbxSelector') !== undefined) {
				selector = decodeURI(windwFrame.attr('data-lbxSelector'));
			} else {
				selector = '*';
			}


			var browsables = windwFrame.find('span.lbxBrowsable');
			browsables.each(function() {
				var that = $(this);
				if(that.prev('span.lbxExpander').length === 0) {
					that.before('<span class="lbxExpander" >&nbsp;+&nbsp;&nbsp;&nbsp;</span>');
				}

			});

			var ttype = windwFrame.attr('data-lbxObjType');
			var textType = false;

			if((ttype === 'string') || (ttype === 'number') || (ttype === 'decimal') || (ttype === 'boolean')) {

				if(ttype === 'string') {
					textType = windwFrame.find('textarea');
					if(textType.length === 1) {
						windw.data('value',textType.attr('value'));
						textType = 'plain';
					} else {
						textType = 'rich';
					}
				}

				var editBar = $(this).find('div.lbxEditBar');
				if(editBar.length === 1) {
					editBar.remove();
				}

				var bt='<a class="lbxSave" href="javascript:void(0)" >Save</a>';

				if(textType === 'plain') {
					bt = '<a class="lbxRichText" href="javascript:void(0)" >Rich Text</a>'+bt;
				} else if(textType === 'rich') {
					bt = '<a class="lbxPlainText" href="javascript:void(0)" >Plain Text</a><a class="lbxBold" href="javascript:void(0)" >Bold</a><a class="lbxItalic" href="javascript:void(0)" >Italic</a><a class="lbxUnderline" href="javascript:void(0)" >Underline</a>'+bt;
				}

				windw.prepend('<div class="lbxEditBar">'+bt+'</div>');

				editBar = $(this).find('div.lbxEditBar');
				editBar.fadeTo("fast",0);
				editBar.fadeTo("fast",1);

				if(textType === 'rich') {

					var ifr = windwFrame.children('iframe');
					var data = windwFrame.children('div').html();
					windwFrame.children('div').remove();

					ifr.load(function () {
			//alert(string);
						var tht = jQuery(this);
						var doc = tht.attr('contentDocument');

						doc.body.innerHTML = data;

						windw.data('value',data);

						doc.designMode = "on";
						doc.execCommand("useCSS",false,null);
					//	doc.execCommand("styleWithCSS",true,null);

						doc.body.style.background = "#ffffff";

						editBar.find('a.lbxBold').lbxExecRich('bold');
						editBar.find('a.lbxItalic').lbxExecRich('italic');
						editBar.find('a.lbxUnderline').lbxExecRich('underline');

					});

				}

			}


		if(windwFrame.hasClass('lbxBrowser')) {
			var filterBar = $(this).find('div.lbxFilterBar');
			if(filterBar.length === 1) {
				filterBar.remove();
			}
			windw.prepend('<div class="lbxFilterBar"><span>Filter:&nbsp;</span><input type="text" /></div>');

			filterBar = $(this).find('div.lbxFilterBar');

			var filterInput = filterBar.children('input');

			filterInput.attr('value',selector);

			filterInput.change(function(){
				var inp = $(this);
				windw.lbxBrowse(inp.attr('value'));
			});



			var pathBar = $(this).find('div.lbxPathBar');
			if(pathBar.length === 1) {
				pathBar.remove();
			}

			var pathLinks = windwFrame.attr('data-lbxObjPath').split('/');

			var ht='';
			var hr='';
			var upOne = '';

			for(var i=1;i<pathLinks.length;i++) {

				hr = hr+'/'+pathLinks[i];

				ht = ht+'/<a class="lbxBrowse" href="javascript:void(0)" data-lbxObjPath="'+hr+'" >'+pathLinks[i]+'</a>';

			}

			windw.prepend('<div class="lbxPathBar">'+ht+'</div>');

			pathBar = $(this).find('div.lbxPathBar');
			pathBar.find('a:last').addClass('lbxActive');
		}


			var titleBar = $(this).find('div.lbxTitleBar');
			if(titleBar.length === 1) {
				titleBar.remove();
			}

			var extraButtons = '';
			if(windwFrame.hasClass('lbxBrowser')) {
				extraButtons = '<a class="lbxUpOne" title="Up One" href="javascript:void(0)" >^ Up One</a><a class="lbxRefresh" title="Refresh" href="javascript:void(0)" >Refresh</a>';
			}

			windw.prepend('<div class="lbxTitleBar">'+extraButtons+'<a class="lbxClose" title="Close" href="javascript:void(0)" >Close</a></div>');
			titleBar = $(this).find('div.lbxTitleBar');

			if(windwFrame.attr('data-lbxObjId') == '1') {
				titleBar.find('a.lbxUpOne').remove();
			}



			windw.mouseover(function(){
return false;
			});
			windw.mousemove(function(){
//return false;
			});
			windw.mousedown(function(){
				zindex++;
				windw.css('z-index',zindex);
//return false;
			});


//dree draggable
			windw.data('drag',false);

			titleBar.mousedown(function(e){

				windw.data('y-diff',e.pageY-windw.css('top').replace('px',''));
				windw.data('x-diff',e.pageX-windw.css('left').replace('px',''));
				windw.data('drag',true);

				zindex++;
				windw.css('z-index',zindex);

return false;
			});
			titleBar.mouseup(function(){
				windw.data('drag',false);
return false;
			});

			//var moves=0;

			$('body').mousemove(function(e){
				//if(moves%5 === 0) {
					if(windw.data('drag') === true) {
						windw.css('top',e.pageY-windw.data('y-diff'));
						windw.css('left',e.pageX-windw.data('x-diff'));
					}
				//}
				//moves++;
				return false;
			});


			windw.find('a.lbxBrowse').click(function(){
				$(this).lbxBrowse();
				return false;
			});
/*
			windw.find('a.lbxEdit').click(function(){
				$(this).lbxEdit();
				return false;
			});
*/

			titleBar.find('a.lbxUpOne').click(function(){
				pathBar.children('a').not('a:last').filter('a:last').click();
				return false;
			});
			titleBar.find('a.lbxClose').click(function(){
				windw.lbxClose();
				return false;
			});
			titleBar.find('a.lbxRefresh').click(function(){
				var selctr = selector;
				windw.lbxBrowse(selctr);
				return false;
			});



///////////////////////////////////////////
			if(windwFrame.hasClass('lbxEditor')) {

				windwFrame.find('select').change(function(){
				var targ = $(this).parent().parent();

				val = $(this).attr('value');

				$.post("/?lbxGetValue="+targ.attr('data-lbxObjId'), "lbxSetValue["+targ.attr('data-lbxObjId')+"]="+encodeURIComponent(val),function (data) {

					if(data !== val) {
						alert('There was an error saving this data, please try again.');
					} else {
//alert(targ.attr('data-lbxEditTarget'));
/*
						$('*[data-lbxObjId='+targ.attr('data-lbxEditTarget')+']').each(function() {
//alert($(this).attr('className'));
							if($(this).hasClass('lbxHeader')) {
							} else if($(this).hasClass('lbxEditor')) {
								//$(this).lbxEdit();
							} else {

								$(this).lbxRefresh();
							}
						});
*/
					}
				},"text");
					return false;
				});

				windwFrame.find('input').change(function(){

					var th = $(this);

					var targ = $(this).parent().parent().parent();

					var checked = $(this).attr('checked');
					var val = $(this).val();

					var checkBoxes = targ.find('input');

					if(checked === true) {

						checkBoxes.attr('disabled',true);

						$.post("/?lbxGetObjectsByPath=" +targ.attr('data-lbxObjId')+ "&filter=" +val+ "&attributes[]=id", "lbxNewObject["+targ.attr('data-lbxObjId')+"]="+encodeURIComponent(val),function (data) {

							if(typeof data !== 'object') {
								alert('There was an error saving this data, please try again.');
							} else {

								if(data.objects) {
									for(i in data.objects) {
										th.attr('data-lbxObjId',data.objects[i].attributes.id);
									}
								}

							}

							checkBoxes.attr('disabled',false);

						},"json");

					} else if(checked === false) {

						checkBoxes.attr('disabled',true);

						$.post("/?lbxGetFoo", "lbxUnset["+th.attr('data-lbxObjId')+"]=foo",function (data) {

							if(data !== 'Foo') {
								alert('There was an error saving this data, please try again.');
							} else {

							}

							checkBoxes.attr('disabled',false);

						},"text");
					}

					return false;
				});

			}
///////////////////////////////////////////////

			if((ttype === 'string') || (ttype === 'number') || (ttype === 'decimal') || (ttype === 'boolean')) {

				if(ttype === 'string') {
					if(textType === 'plain') {
						windw.find('a.lbxRichText').click(function(){
							windw.lbxTextType('rich');
							return false;
						});
					} else {

						windw.find('a.lbxPlainText').click(function(){
							windw.lbxTextType('plain');
							return false;
						});

						//windw.find('a.lbxBold').lbxExecRich('bold');
						//windw.find('a.lbxItalic').lbxExecRich('italic');
						//windw.find('a.lbxUnderline').lbxExecRich('underline');

					}

				}

				windw.find('a.lbxSave').click(function(){
					windw.lbxSave(ttype);
					return false;
				});

			}

			windw.mousedown();
			windw.mouseup();

		});
	};
})(jQuery);

(function($){
	$.fn.lbxSave = function(ttype) {
		return this.each(function() {

			var that = $(this);
			var windwFrame = that.children('.lbxFrame');
			var val = false;

			if(that.data('locked') === true) {
				return false;
			}
			if(ttype === 'string') {

				var textType = 'plain';

				val = that.find('textarea');

				if(val.length === 1) {
					val = val.attr('value');
				} else {
					textType = 'rich';
					val = that.find('iframe').attr('contentDocument').body.innerHTML;
				}

				$.post("/?lbxGetValue="+that.children('.lbxFrame').attr('data-lbxObjId'), "lbxSetValue["+that.children('.lbxFrame').attr('data-lbxObjId')+"]="+encodeURIComponent(val),function (data) {
					var id = that.children('.lbxFrame').attr('data-lbxObjId');

					jQuery('*[data-lbxObjId='+id+']').not('*[class*=lbxBrowse], *[class*=lbxBrowser], *[class*=lbxFrame], *[class*=lbxHeader], *[class*=lbxProperty]').html(data);

					/*if(data !== val) {
						alert('There was an error saving this data, please try again.');
					} else {*/
						that.data('value',data);
					//}
				},"text");

			} else if((ttype === 'number') || (ttype === 'decimal')) {

				val = windwFrame.children('input').attr('value');

				$.post("/?lbxGetValue="+windwFrame.attr('data-lbxObjId'), "lbxSetValue["+windwFrame.attr('data-lbxObjId')+"]="+encodeURIComponent(val),function (data) {

					var id = that.children('.lbxFrame').attr('data-lbxObjId');

					jQuery('*[data-lbxObjId='+id+']').not('*[class*=lbxBrowse], *[class*=lbxBrowser], *[class*=lbxFrame], *[class*=lbxHeader], *[class*=lbxProperty]').html(data);

					if(data !== val) {
						alert('There was an error saving this data, please try again.');
					} else {
						that.data('value',data);
					}
				},"text");

			} else if(ttype === 'boolean') {

				val = windwFrame.find('input:checked').attr('class');

				$.post("/?lbxGetValue="+windwFrame.attr('data-lbxObjId'), "lbxSetValue["+windwFrame.attr('data-lbxObjId')+"]="+encodeURIComponent(val),function (data) {

					//var id = that.children('.lbxFrame').attr('data-lbxObjId');

					//jQuery('*[data-lbxObjId='+id+']').not('*[class*=lbxBrowse],*[class*=lbxFrame]').html(data);

					if(data !== val) {
						alert('There was an error saving this data, please try again.');
					} else {
						that.data('value',data);
					}
				},"text");

			}

		});
	};
})(jQuery);

(function($){
	$.fn.lbxExecRich = function (cmnd) {

		//return this.each(function(cmnd) {
			var that = jQuery(this);
			that.data('cmnd',cmnd);
			var doc = that.parent().parent().find('iframe');

			var tmr = setInterval(function() {
				if(that === undefined) {
					clearInterval(tmr);
					return false;
				}
				if(doc.attr('contentDocument') === null) {
					return false;
				}
				if(doc.attr('contentDocument').queryCommandState(that.data('cmnd')) === true) {
					that.addClass('lbxActive');
				} else {
					that.removeClass('lbxActive');
				}
			},250);

			that.click(function() {
				if(doc.attr('contentDocument').queryCommandEnabled(that.data('cmnd')) === true) {
					//if(that.hasClass(that.data('cmnd'))) {

						doc.attr('contentDocument').execCommand(that.data('cmnd'),false,null);

					//}
				}
			});
		//});

	};
})(jQuery);

(function($){
	$.fn.lbxHelp = function (ttype) {

		return this.each(function() {
			var that = jQuery(this);
			if(that.attr('data-lbxObjHelp') === undefined) {
				return false;
			}
			var helpDiv = that.find('div.lbxObjHelp');
			var val = that.attr('data-lbxObjHelp');
			var helpButton = that.find('a.lbxHelp');
			if(helpDiv.length === 0) {
				that.append('<div class="lbxObjHelp" >'+val+'</div>');
				helpButton.addClass('lbxActive');
			} else {
				helpDiv.remove();
				helpButton.removeClass('lbxActive');
			}
		});

	};
})(jQuery);

(function($){
	$.fn.lbxActivate = function (ttype) {

		return this.each(function() {
			var that = jQuery(this);
			var prop = that.attr('data-lbxObjName');
			var conf = window.confirm('The default value is being used for the "'+prop+'" property, if you activate the "'+prop+'" property, you will then be able to set it yourself - Activate the "'+prop+'" property?');
			if(conf) {

				var setPath = that.parent().attr('data-lbxObjPath')+'/-data';
//alert(setPath);return false;
				$.post("/?lbxGetFoo","lbxCopy["+that.attr('data-lbxObjId')+"]=foo",function (data) {
					if(data === 'Foo') {

						$.post("/?lbxGetObjects="+setPath+'/'+prop,"lbxPaste["+setPath+"]=foo",function (data) {
							//if(data === 'Foo') {
							if(data[0].___path === setPath+'/'+prop) {
								that.parents('div.lbxWindow').lbxRefresh();
							}
						},"json");
					}
				},"text");
			}

		});

	};
})(jQuery);


(function($){
	$.fn.lbxAttributes = function (ttype) {

		return this.each(function() {
			var that = jQuery(this);


			if((that.attr('data-lbxObjIndex') === undefined) && (that.attr('data-lbxObjId') !== undefined)) {
				jQuery.getJSON("/?lbxGetObjects="+that.attr('data-lbxObjId'),function(data) {
					jQuery.each(data,function(i) {
	//alert(data[i].___class);
						//that.attr('data-lbxObjId',data[i].___id);
						that.attr('data-lbxObjIndex',data[i].___index);
						that.attr('data-lbxObjName',data[i].___name);
						that.attr('data-lbxObjClass',data[i].___class);
						that.attr('data-lbxObjType',data[i].___type);
						that.attr('data-lbxObjPath',data[i].___path);

						if(that.attr('data-lbxObjIndex') !== undefined) {
							that.lbxAttributes();
						}

						return;

					});
				});
			} else if(that.attr('data-lbxObjIndex') !== undefined) {

				var attrDiv;
				var attrButton;
				var par;
				if((that.hasClass('lbxBrowser')) && (!that.hasClass('lbxFrame'))) {
					attrDiv = that.siblings('div.lbxObjAttributes');
					attrButton = that.parent().find('a.lbxAttributes');
					par = that.parent();
				} else {
					attrDiv = that.children('div.lbxObjAttributes');
					attrButton = that.find('a.lbxAttributes');
					par = that;
				}

				if(attrDiv.length === 0) {

					par.append('<div class="lbxObjAttributes" > <div class="lbxNameValue" ><span class="lbxName">@name:</span><span class="lbxValue">'+that.attr('data-lbxObjName')+'</span></div> <div class="lbxNameValue" ><span class="lbxName">@id:</span><span class="lbxValue">'+that.attr('data-lbxObjId')+'</span></div> <div class="lbxNameValue" ><span class="lbxName">@index:</span><span class="lbxValue">'+that.attr('data-lbxObjIndex')+'</span></div> <div class="lbxNameValue" ><span class="lbxName">@class:</span><span class="lbxValue">'+that.attr('data-lbxObjClass')+'</span></div> <div class="lbxNameValue" ><span class="lbxName">@type:</span><span class="lbxValue">'+that.attr('data-lbxObjType')+'</span></div> <div class="lbxNameValue" ><span class="lbxName">@path:</span><span class="lbxValue">'+that.attr('data-lbxObjPath')+'</span></div></div>');

					attrButton.addClass('lbxActive');
				} else {
					attrDiv.remove();
					attrButton.removeClass('lbxActive');
				}

			}
		});

	};
})(jQuery);

(function($){
	$.fn.lbxTextType = function (ttype) {

		return this.each(function() {
			var that = jQuery(this);
			var iinput = that.find('textarea,iframe');
			var val = false;
			if(ttype === 'rich') {
				val = iinput.attr('value');
				iinput.replaceWith('<iframe></iframe><div>'+val+'</div>');
				that.lbxWindow();
			} else if(ttype === 'plain') {
				val = iinput.attr('contentDocument').body.innerHTML;
				iinput.replaceWith('<textarea>'+val+'</textarea>');
				that.lbxWindow();
			}
		});

	};
})(jQuery);

(function($){
	$.fn.lbxClose = function() {
		return this.each(function() {
			var that = $(this);
			if(that.data('locked') === true) {
				return false;
			}
			that.remove();
		});
	};
})(jQuery);

(function($){
	$.fn.lbxRefresh = function() {
		return this.each(function() {
			var that = $(this);
			var windw = that.parents('div.lbxWindow');
			var selector = '*';

			if(that.hasClass('lbxWindow')) {
				if(that.children('div.lbxBrowser').length === 1) {
					that.lbxBrowse();
				} else if(that.children('div.lbxEditor').length === 1) {
					that.children('div.lbxEditor').lbxEdit();
				}
			} else if(that.hasClass('lbxBrowser')) {

				if(that.attr('tagName') === 'DIV') {

					selector = decodeURI(that.attr('data-lbxSelector'));

					$.get('/?lbxBrowser='+that.attr('data-lbxObjId')+'&childSelector='+selector,function(data) {
						that.replaceWith(data);
						windw.lbxWindow();
					});
				} else {
					that.lbxBrowse();
				}
			} else {

				if(that.attr('tagName') === 'BODY') {
					window.location = window.location;
				} else {

					$.get('/?lbxRefresh='+that.attr('data-lbxObjId')+'&lbxObjTemplate='+that.attr('data-lbxObjTemplate'),function(data) {
						that.replaceWith(data);
					});

				}

			}
		});
	};
})(jQuery);

(function($){
	$.fn.lbxEdit = function() {
		var filter = '';
		if(arguments.length === 1) {
			filter = '&lbxFilter='+arguments[0];
		}
		return this.each(function() {
			var that = $(this);
			var windw = false;

				var existingFrame;
				var frameSelector = 'div.lbxEditor[data-lbxObjId="'+that.attr('data-lbxObjId')+'"]';
				existingFrame = $(frameSelector);
				$.get('/?lbxEdit='+that.attr('data-lbxObjId')+filter,function(data) {
					if((existingFrame.length > 0) && (existingFrame.hasClass('lbxEditor'))) {
						windw = existingFrame.parent();
						windw.children().remove();
						windw.append(data);
					} else {
						$('body').append('<div class="lbxWindow" >'+data+'</div>');
						existingFrame = $(frameSelector);
						windw = existingFrame.parent();
					}
					windw.lbxWindow();
				});

		});
	};
})(jQuery);

(function($){
	$.fn.lbxCart = function() {

		return this.each(function() {
			var that = $(this);

			if(that.attr('data-lbxAction') === 'increment') {

				$.post("/?lbxGetFoo","lbxCartIncrement["+that.attr('data-lbxCart')+"]="+that.attr('data-lbxObjId'),function (data) {
					if(data === 'Foo') {

						var cart = $('*.cart');
						cart.lbxRefresh();
//alert(data);

					}
				},"text");

			} else if(that.attr('data-lbxAction') === 'decrement') {

				$.post("/?lbxGetFoo","lbxCartDecrement["+that.attr('data-lbxCart')+"]="+that.attr('data-lbxObjId'),function (data) {
					if(data === 'Foo') {
						var cart = $('*.cart');
						cart.lbxRefresh();
//alert(data);

					}
				},"text");

			} else if(that.attr('data-lbxAction') === 'remove') {

				$.post("/?lbxGetFoo","lbxCartRemove["+that.attr('data-lbxCart')+"]="+that.attr('data-lbxObjId'),function (data) {
					if(data === 'Foo') {
						var cart = $('*.cart');
						cart.lbxRefresh();
//alert(data);

					}
				},"text");

			}

		});
	};
})(jQuery);

(function($){
	$.fn.lbxEditButtons = function() {
		return this.each(function() {

			if($(this).css('display') === 'inline') {
				$(this).dblclick(function(){
$(this).lbxEdit();				return false;
				});
				return false;
			}

			var editBar = $(this).children('div.lbxButtonBar');

			if(editBar.length > 0) {
				editBar.remove();
			}

			var editable = '';
			if($(this).hasClass('lbxEditable')) {
				if($(this).attr('data-lbxObjType') === 'string') {
					editable = '<a class="lbxEdit" title="Edit" href="javascript:void(0)" >Edit</a>';
				} else {
					editable = '<a class="lbxEdit" title="Edit" href="javascript:void(0)" >Properties</a>';
				}
			}
			var browsable = '';
			if($(this).hasClass('lbxBrowsable')) {
				browsable = '<a class="lbxBrowse" title="Browse" href="javascript:void(0)" >Browse</a>';
			}

			//if(editBar.length === 0) {
				$(this).append('<div class="lbxButtonBar">'+browsable+editable+'<a class="lbxRefresh" title="Refresh" href="javascript:void(0)" >Refresh</a></div>');
				editBar = $(this).children('div.lbxButtonBar');
			//}

			$(this).mouseover(function(e){
				var that = $(this);

				if((editBar.data('ttarget') !== that.data('lbxEB'))) {

					editBar.queue("fx",[]);
					editBar.fadeTo("fast",0);
					editBar.css('display','block');
					editBar.data('ttarget',that.data('lbxEB'));
					editBar.fadeTo("fast",1);

					return false;
				}

			});

			$(this).mouseleave(function(){
				var that = $(this);

				if(editBar.data('ttarget') === that.data('lbxEB')) {
					editBar.fadeTo("fast",0,function(){
						editBar.data('ttarget',false);
					});
					return false;
				}
			});

			editBar.find('a.lbxBrowse').click(function(){
				$(this).parent().parent().lbxBrowse();
				return false;
			});

			editBar.find('a.lbxEdit').click(function(){
				$(this).parent().parent().lbxEdit();
				return false;
			});

			editBar.find('a.lbxRefresh').click(function(){
				$(this).parent().parent().lbxRefresh();
				return false;
			});

		});
	};
})(jQuery);