
jQuery.fn.suggestInPlace=function(options){var settings={params:"",field_type:"text",select_options:"",textarea_cols:"25",textarea_rows:"10",bg_over:"#ffc",bg_out:"transparent",saving_text:"Saving...",saving_image:"",default_text:"(Click here to add text)",select_text:"Choose new value",value_required:null,element_id:"element_id",update_value:"update_value",original_html:"original_html",save_button:'<button class="inplace_save">Save</button>',cancel_button:'<button class="inplace_cancel">Cancel</button>',show_buttons:false,on_blur:"save",callback:null,success:null,type:"/location/citytown",error:function(request){alert("Failed to save value: "+request.responseText||'Unspecified Error');}};if(options){jQuery.extend(settings,options);}
if(settings.saving_image!=""){var loading_image=new Image();loading_image.src=settings.saving_image;}
String.prototype.trim=function(){return this.replace(/^\s+/,'').replace(/\s+$/,'');};String.prototype.escape_html=function(){return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;");};return this.each(function(){if(jQuery(this).html()=="")jQuery(this).html(settings.default_text);var editing=false;var original_element=jQuery(this);var click_count=0;jQuery(this).mouseover(function(){jQuery(this).css("background",settings.bg_over);}).mouseout(function(){jQuery(this).css("background",settings.bg_out);}).click(function(){click_count++;if(!editing)
{editing=true;var original_html=jQuery(this).html();var buttons_code=(settings.show_buttons)?settings.save_button+' '+settings.cancel_button:'';if(original_html==settings.default_text)jQuery(this).html('');if(settings.field_type=="text")
{var use_field_type='<input type="text" name="inplace_value" class="inplace_field" value="'+
jQuery(this).text().trim().escape_html()+'" />';}
jQuery(this).html('<form class="inplace_form" style="display: inline; margin: 0; padding: 0;">'+use_field_type+' '+buttons_code+'</form>');original_element.children("form").children(".inplace_field").suggest({flyout:true,required:"always",type:settings.type,}).bind("fb-select",function(e,data){saveAction(data.name);if(settings.callback){settings.callback(e,data);}}).bind("fb-required",function(e){cancelAction();})}
function cancelAction()
{editing=false;click_count=0;original_element.css("background",settings.bg_out);original_element.html(original_html);return false;}
function saveAction(location_name)
{original_element.css("background",settings.bg_out);var this_elem=jQuery(this);editing=false;click_count=0;original_element.html(location_name);return false;}
original_element.children("form").children(".inplace_field").focus().select();});});};