/*
 * JavaScript code for agent-side.
 *
 * @author     Alex Adriaanse <alex@innovacomputing.com>
 * @copyright  Copyright (c) 2009 Innova Computing, L.L.C.
 */
$(function(){$("table").not(".noalternate").each(function(){$(this).find("tr:odd").addClass("alternate")});$(":button, :submit").addClass("button")});var windowCounter=0;function setupNavigation(){var a;$(function(){$("#mls_tab").click(function(){if(typeof a!="undefined"&&a.closed){a=undefined}if(typeof a=="undefined"){var g=$(this).find("a").attr("href");var c="menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,resizable=yes,scrollbars=yes";var d=window.screen.availWidth;var h=window.screen.availHeight-400;if(h<500){h=500}var e=0;var f=window.screen.availHeight-h;c+=",left="+e;c+=",top="+f;c+=",width="+d;c+=",height="+h;a=window.open(g,"mlsWindow",c);a.opener=undefined}else{a.focus()}return false});var b;$("#help_tab").click(function(){var c=$(this).find("a").attr("href");b=popupPage(c,550,300,b);return false})})}function setupListingForm(a){$(function(){var f={dateFormat:"m/d/yy"};$("a.calendar_link").siblings("input[type=text]").datepicker(f).unbind();$("a.calendar_link").click(function(){$(this).siblings("input[type=text]").datepicker("show")});var e=false;$("#save_and_market_button").click(function(){$("#market_listing_input").val("1");if(a){pleaseWait()}});var c=$("#listing_form");c.submit(function(i){if(i.target.id!="listing_form"){return true}disableAllButtons(false);var m=!e;e=true;return m});var j=["Virtual Tour","Link","Image","Document"];for(var h in j){var k=j[h];var l=getMediaTypeCode(k);for(var d in files[k]){addFileToForm(k,d,files[k])}var g={cursor:"move",handle:".listing_media_image_area",cancel:".media_delete_button",opacity:0.8,scrollSensitivity:40,scrollSpeed:10};if(k=="Image"){g.start=removePrimaryImageHighlight;g.stop=highlightPrimaryImage}var b=$("#"+l+"_container");b.sortable(g);bindAddButton(k)}c.submit(onListingFormSubmit);highlightPrimaryImage()})}function getMediaTypeCode(a){return a.toLowerCase().replace(" ","")}function onListingFormSubmit(b){if(b.target.id!="listing_form"){return true}var a=$(this);addField(a,"media_deleted",deleted.join(","));var c=[];$(".listing_media").each(function(){c.push($(this).data("secure_id"))});addField(a,"media_order",c.join(","));return true}function addField(c,a,d){var b=$(document.createElement("input"));b.attr({type:"hidden",name:a,value:d});c.append(b)}function addFileToForm(b,k){var c=getMediaTypeCode(b);var q=files[b][k];var o=q.secure_id;var l;switch(b){case"Virtual Tour":case"Link":l=createImage("/images/link.png");break;case"Image":var n=q.filename;var p="/media/160x120/"+k+q.extension;l=createImage(p);break;case"Document":if(q.filename.toLowerCase().match(/\.pdf$/)){l=createImage("/images/pdf.gif")}else{l=createImage("/images/document.png")}break}var i=$(document.createElement("div")).addClass("listing_media");var m=$(document.createElement("span"));m.addClass("listing_media_image_area").append(l);if(b=="Image"||b=="Document"){var r=$(document.createElement("p"));var a=q.filename;if(!q.active){a+=" (new)"}r.addClass("media_filename").text(a);m.append(r)}i.append(m);var j=$(document.createElement("span")).addClass("listing_media_edit_area");if(b=="Image"||b=="Document"){var g=$(document.createElement("textarea"));g.attr({name:"media_descriptions["+b+"]["+o+"]",cols:50,rows:3}).text(q.description);j.append(g)}else{var d=$(document.createElement("span")).addClass("media_url media_field");$(document.createElement("p")).text("URL:").appendTo(d);var f=$(document.createElement("input"));f.attr({type:"text",name:"media_urls["+b+"]["+o+"]",size:40}).val(q.url);d.append(f);j.append(d);var e=$(document.createElement("span")).addClass("media_description media_field");$(document.createElement("p")).text("Description:").appendTo(e);var g=$(document.createElement("input"));g.attr({type:"text",name:"media_descriptions["+b+"]["+o+"]",size:40}).val(q.description);e.append(g);j.append(e)}var h=createImage("/images/delete.png");h.attr({alt:"Delete",title:"Delete"}).addClass("media_delete_button").click(function(){$(this).parents(".listing_media").remove();deleted.push(o);if(b=="Image"){highlightPrimaryImage()}});if(b=="Image"||b=="Document"){h.addClass("file_button")}else{h.addClass("link_button")}if(b=="Image"||b=="Document"){r.append(h)}else{j.append(h)}i.append(j);i.data("secure_id",o);$("#"+c+"_container").append(i)}function onUploadPreSubmit(a){var b=getAddMediaButton(a);b.data("original_value",b.val());b.attr("disabled",true);b.val("Uploading...");disableSubmit($(".submit_button"))}function disableSubmit(a){a.attr("disabled",true);a.parent("form").submit(preventSubmit)}function preventSubmit(){return false}function enableSubmit(a){a.attr("disabled",false);a.parent("form").unbind("submit",preventSubmit)}function getAddMediaButton(b){var a=getMediaTypeCode(b);return $("#add_"+a+"_button")}function disableAllButtons(a){if(typeof a==="undefined"){a=true}$(".add_media_button").parent().find("form input").attr("disabled",true);$(":submit, :button").attr("disabled",true);if(a){$(".submit_button").parent("form").submit(preventSubmit)}}function enableAllButtons(){$(".add_media_button").parent().find("form input").attr("disabled",false);$(":submit, :button").attr("disabled",false);$(".submit_button").parent("form").unbind("submit",preventSubmit)}function onUploadPostSubmit(a){disableAllButtons()}function onUploadComplete(mediaType,response){var button=getAddMediaButton(mediaType);button.val(button.data("original_value"));button.unbind();button.parent().replaceWith(button);bindAddButton(mediaType);enableAllButtons();var responseObj;try{eval("responseObj = "+response)}catch(e){window.alert("A problem occurred while uploading the file.  Please try again.");return}if("error" in responseObj){switch(responseObj.error){case"INVALID_TYPE":window.alert("The file you selected is not a valid "+mediaType.toLowerCase()+".  Please select a different file.");break;default:window.alert("An error occurred while uploading the file.  Please try again.");break}return}for(var id in responseObj){var file=responseObj[id];file.description="";files[mediaType][id]=file;addFileToForm(mediaType,id,file)}}function bindAddButton(a){var b=getAddMediaButton(a);if(a=="Image"||a=="Document"){var c=$("#listing_form").attr("action")+"/upload";b.upload({name:"file",action:c,params:{media_type:a},onPreSubmit:function(){return onUploadPreSubmit(a)},onPostSubmit:function(){return onUploadPostSubmit(a)},onComplete:function(d){return onUploadComplete(a,d)}})}else{b.click(function(){var e=getNewFileKey();var d={secure_id:e,url:"",description:"",active:false};files[a][e]=d;addFileToForm(a,e,d)})}}function getNewFileKey(){var d="new:";var e=0;for(var a in files){for(var c in files[a]){e=getHigherKey(c,d,e)}}for(var b in deleted){var c=deleted[b];e=getHigherKey(c,d,e)}return d+e}function getHigherKey(a,c,d){if(a.substr(0,c.length)!=c||!a.substr(c.length).match(/^[0-9]+$/)){return d}var b=parseInt(a.substr(c.length),10);if(b>=d){return b+1}return d}function removePrimaryImageHighlight(){$("#image_container .listing_media #primary_image_label").remove();$("#image_container .listing_media").removeClass("primary_image")}function highlightPrimaryImage(){removePrimaryImageHighlight();$("#image_container .listing_media:first").addClass("primary_image");$("#image_container .listing_media:first .media_filename").prepend('<span id="primary_image_label"><b>Primary</b> - </span>')}function createImage(b,e){var c=160;var d=120;var a=$(new Image());a.attr("src",b);if(typeof e==="undefined"){e=false}if(!e){return a}a.css("display","none");a.load(function(){var h=a.attr("width");var f=a.attr("height");var g=h/f;if(h>c){h=c;f=Math.round(c/g)}if(f>d){f=d;h=Math.round(d*g)}a.width(h).height(f).css("display","block")});return a}function escapeHtmlEntities(a){a.replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/&/g,"&amp;");return a}function goToEditPage(a){return goToPage("/listing/"+a)}function goToPage(a){window.location=a;return false}function popupPage(c,d,a,e){windowCounter++;var b="menubar=no,toolbar=no,location=no,directories=no,status=yes,resizable=yes,scrollbars=yes";if(typeof(d)!="undefined"){b+=",width="+d}if(typeof(a)!="undefined"){b+=",height="+a}else{b+=",fullscreen=yes"}if(typeof e!="undefined"&&e.closed){e=undefined}if(typeof e!="undefined"){e.focus()}else{e=window.open(c,"popup"+windowCounter,b)}return e}function goToReAddPage(d,a){var c="Are you sure you want to re-add this listing to KWLS?\nYou should only do this if this listing was deleted in KWLS.\nIf you have not deleted this listing in KWLS, please click\nCancel and do NOT proceed.";if(!window.confirm(c)){return false}$(".button").attr("disabled",true);pleaseWait();var b=$("<form />");b.empty().attr({method:"post",action:"/listing/"+d+"/readd-to-kwls"});addField(b,"kwls_id",a);$("html").prepend(b);b.submit();return false}function goToSetupVirtualTourPage(a){return goToPage("/listing/"+a+"/setup/virtualtour")}function notAvailable(){var a="This feature is not available yet, but will be added in the near future.";window.alert(a);return false}function pleaseWait(){var a='The process of adding your listing to KWLS may take several minutes depending on network or KWLS conditions.  Please wait after clicking "OK" in this dialog box.';window.alert(a);return true}
/*
 * Various useful jQuery tools.
 *
 * @author     Alex Adriaanse <alex@innovacomputing.com>
 * @copyright  Copyright (c) 2009 Innova Computing, L.L.C.
 */
jQuery.fn.backgroundText=function(e,d){function c(f){if(f.val()===e){f.val("")}f.removeClass(d)}function a(f){if(f.val()===""||f.val()===e){f.addClass(d);f.val(e)}}if(typeof d=="undefined"){d="background"}this.focus(function(){c(jQuery(this))});this.blur(function(){a(jQuery(this))});this.blur();var b=this;this.parents("form").eq(0).submit(function(){b.each(function(){c(jQuery(this))});return true});return this};
/*
 * One Click Upload - jQuery Plugin
 * Copyright (c) 2008 Michael Mitchell - http://www.michaelmitchell.co.nz
 */
(function(a){a.fn.upload=function(b){b=a.extend({name:"file",enctype:"multipart/form-data",action:"",autoSubmit:true,onPreSubmit:function(){},onPostSubmit:function(){},onComplete:function(){},onSelect:function(){},params:{}},b);return new a.ocupload(this,b)},a.ocupload=function(f,e){var d=this;var i=new Date().getTime().toString().substr(8);var g=a('<iframe id="iframe'+i+'" name="iframe'+i+'"></iframe>').css({display:"none"});var h=a('<form method="post" enctype="'+e.enctype+'" action="'+e.action+'" target="iframe'+i+'"></form>').css({margin:0,padding:0});var c=a('<input name="'+e.name+'" type="file" />').css({position:"relative",display:"block",marginLeft:-175+"px",opacity:0});f.wrap("<div></div>");h.append(c);f.after(h);f.after(g);var b=f.parent().css({position:"relative",height:f.outerHeight()+"px",width:f.outerWidth()+"px",overflow:"hidden",cursor:"pointer",margin:0,padding:0});c.css("marginTop",-b.height()-10+"px");b.mousemove(function(j){c.css({top:j.pageY-b.offset().top+"px",left:j.pageX-b.offset().left+"px"})});c.change(function(){d.onSelect();if(e.autoSubmit){d.submit()}});a.extend(this,{autoSubmit:true,onPreSubmit:e.onPreSubmit,onPostSubmit:e.onPostSubmit,onComplete:e.onComplete,onSelect:e.onSelect,filename:function(){return c.attr("value")},params:function(j){var j=j?j:false;if(j){e.params=a.extend(e.params,j)}else{return e.params}},name:function(j){var j=j?j:false;if(j){c.attr("name",value)}else{return c.attr("name")}},action:function(j){var j=j?j:false;if(j){h.attr("action",j)}else{return h.attr("action")}},enctype:function(j){var j=j?j:false;if(j){h.attr("enctype",j)}else{return h.attr("enctype")}},set:function(l,k){var k=k?k:false;function j(n,m){switch(n){default:throw new Error("[jQuery.ocupload.set] '"+n+"' is an invalid option.");break;case"name":d.name(m);break;case"action":d.action(m);break;case"enctype":d.enctype(m);break;case"params":d.params(m);break;case"autoSubmit":d.autoSubmit=m;break;case"onPreSubmit":d.onPreSubmit=m;break;case"onPostSubmit":d.onPostSubmit=m;break;case"onComplete":d.onComplete=m;break;case"onSelect":d.onSelect=m;break}}if(k){j(l,k)}else{a.each(l,function(m,n){j(m,n)})}},submit:function(){this.onPreSubmit();a.each(e.params,function(j,k){h.append(a('<input type="hidden" name="'+j+'" value="'+k+'" />'))});h.submit();this.onPostSubmit();g.unbind().load(function(){var k=document.getElementById(g.attr("name"));var j=a(k.contentWindow.document.body).text();d.onComplete(j)})}})}})(jQuery);