var orderToUrl, listingId, markerPos, randomChars;

randomChars = '?' + new Date().getTime(); // Used to

function isDefined(v) {
   var u;
   return (v === u) ? false : true;
}

var _Template = {
   myListingsRow : function(prop) {
      if(prop.img_id == null) {
   		var lImg = 'http://media.inspiredrealty.ca/null_sm.jpg';
   	} else {
   		var lImg = 'http://media.inspiredrealty.ca/'+prop.img_id+'/sm/'+prop.img_filename+'.jpg'+randomChars;
   	}
      
      var statusHtml = '';
      if(isDefined(prop.statuses)) {
         for(var x=0, len=prop.statuses.length; x < len; x+=1) {
            var status = prop.statuses[x];
            statusHtml+= '<li id="'+status.id+'"><a class="removeStatusTag">X</a>'+status.title+'</li>'; 
         } 
      }
      
      return '<li id="'+prop.id+'"> \
						<img src="/static/images/icon_move.png" alt="Click here to move" /> \
                  <div class="img left"> \
                     <a href="/listings/edit/'+prop.id+'"><img src="'+lImg+'" alt="" /></a>\
                  </div> \
                  <div class="infoContainer left">\
                     <div class="left desc"> \
                        <h2>'+prop.street_address+'</h2> \
                        <h3>'+prop.city+'</h3> \
                        <h3>'+prop.postal_code+'</h3> \
                        <!--<h3 class="type">'+prop.datatype+'</h3>--> \
                     </div> \
                     <ul class="actions"> \
                        <li><a href="/listings/edit/'+prop.id+'"><img src="/static/images/icon_edit.png" alt="Edit" /><br />Edit</a></li> \
                        <li><a class="show"><img src="/static/images/icon2_'+((prop.hidden == 0) ? 'hide' : 'show')+'.png" alt="Toggle Visibility" /><br /><span class="visibilitySpan">'+((prop.hidden == 0) ? 'Hide' : 'Show')+'</span></a></li>\
                        <li><a class="delete"><img src="/static/images/icon_delete.png" alt="Remove Listing" /><br />Delete</a></li> \
                     </ul> \
                     <br class="clr" />\
                     <ul class="statusTags">\
                        <!--<li class="addMore">\
                           <select name="addStatus" id="addStatuses"><option value="0">Add A Status...</option><option value="1">Pretend</option></select>\
                        </li>-->\
                        '+statusHtml+'\
                     </ul>\
                  </div>\
                  <br class="clr" />\
               </li>';
               
   },
	myListingsSortableRow : function(prop) {
		return '<li id="'+prop.id+'" style="cursor: move;"> \
                  <img src="/static/images/icon_move.png" alt="Click here to move" style="height: 18px; margin-top:0;" /> \
						<a href="/listings/edit/'+prop.id+'"> \
							<div class="left desc"> \
								<h2>'+prop.street_address+'</h2> \
							</div> \
						</a> \
						<div class="right"> \
							<a href="/listings/edit/'+prop.id+'"><img src="/static/images/icon_edit.png" /></a> \
							<!--<img src="/static/images/icons/listingMini_'+((prop.hidden == 0) ? 'hide' : 'show')+'.png" alt="Toggle Visibility" class="show" />--> \
							<img class="delete" src="/static/images/icon_delete.png" />\
						</div> \
						<br class="clr" /> \
					</li>';	
	},
   listingsFileRow : function(d) {
      return '<li id="'+d.id+'" class="uiDblClickButton" target="editFile"> \
                 <img src="/static/images/icon_file.png" class="left"/> \
                 <div class="left"> \
                    <h3>'+d.title+'</h3> \
                 </div> \
                 <div class="right"> \
                    <img src="/static/images/icon_delete.png" class="uiClickButton" target="deleteFile" id="'+d.id+'" /> \
                 </div> \
                 <br class="clr" /> \
              </li>';
   },
   listingsImgRow : function(d) {
      return '<li id="'+d.id+'" class="uiDblClickButton" target="editFile"> \
                 <div class="imgContainer"> \
                    <img src="http://media.inspiredrealty.ca/'+d.id+'/sm/'+d.filename+'.jpg'+randomChars+'" /> \
                 </div> \
                 <div class="imgControls"> \
                    <img src="/static/images/icon_edit.png" class="left uiClickButton" alt="Edit" target="editFile" id="'+d.id+'" />\
                    <img src="/static/images/icon_delete.png" class="right uiClickButton" alt="Delete" target="deleteImage" id="'+d.id+'" />\
                    <br class="clr" /> \
                 </div>\
              </li>';
   },
   userRow: function(d) {
      return '<li id='+d.id+'"> \
         <img src="/static/images/icons/noProfileImage.gif" alt="" /> \
         <div class="name">'+d.name+'<span class="email">('+d.mail+')</span></div> \
         <div class="actions"><a class="uiClickButton" alt="editUser">E</a> <a class="uiClickButton" alt="removeUser"><img src="/static/images/icon_delete.png" /></a></div> \
         <br class="clr" /> \
      </li>';
   },
   cityRow: function(d) {
      return '<li id="'+d.id+'"> \
                 <span>'+d.name+'</span> \
                 <span class="actions"><a class="uiClickButton" alt="removeCity"><img src="/static/images/icon_delete.png" /></a></span>\
                 <br class="clr" /> \
              </li>';   
   },
   statusRow: function(d) {
      return '<li id="'+d.id+'"> \
                 <span>'+d.title+'</span> \
                 <span class="actions"><!--<a class="uiClickButton" alt="editStatus"><img src="/static/images/icon_edit.png" /></a>--> <a class="uiClickButton" alt="removeStatus"><img src="/static/images/icon_delete.png" /></a></span>\
                 <br class="clr" /> \
              </li>';   
   },
   editStatus: function(d) {
      return '<form class="uiSubmitForm" rAction="editStatus"> \
                 <input type="text" value="'+d.cTitle+'" class="field" style="float: left; width: 110px; margin-right: 5px; " /> \
                 <input type="submit" value="Save" class="uiSubmitButton"  style="float: left; width: 50px; font-size: 11px; margin:0; padding-top: 0; height: 17px;" /> \
              </form>';
   },
   fileUploadBox : function(d) { 
      return '<div id="fileQueue"></div> \
              <div class="left">\
                 <input type="file" name="uploadify" id="fileUploader" />\
              </div>\
              <a class="right" href="javascript:jQuery(\'#fileUploader\').uploadifyClearQueue()">Cancel All Uploads</a>\
              <br class="clr" />\
              <p class="pleaseNote">*Document files are converted to pdf\'s and may take a few moments to complete.</p>';
   }
};
$.ajaxSetup({ cache: false });
function makeRequest(set, comFn) {
   $.post(set.requestTo, set.data, comFn, 'json');
}

function animateRemove(e) {
	e.slideUp(500, function() { $(this).remove() });
}

function bugLog(e) {
	if(window.console && window.console.log) {
		window.console.log(e);	
	}
}

function makeSortable(elem, settings) {
	try {
		if(settings.orderToUrl) {
			orderToUrl = settings.orderToUrl;
		} else {
			orderToUrl = "/listings/set_file_order";
		}
	} catch(e) { }
	
	var sOptions = {
		stop: function() {
         $.post(orderToUrl, {order: $(this).sortable("toArray").join(",")});
		}, 
		cursor:"move",
		zindex: 3,
		tolerance: 'pointer',
		cursorAt: 'top'
	};
	
	try {
		if(settings.col) {
			sOptions.axis = 'y';    
		}
	} catch(e) {}
	elem.sortable(sOptions);
	
	elem.disableSelection();
}

function showLoader(data) {
	var newTop = $(document).scrollTop()+400;
	$("#loader").css({top: newTop+"px"}).show();
}

function stopEvent(e) {
   if (e.stopPropagation) e.stopPropagation();
   else e.cancelBubble = true;
   
   if (e.preventDefault) e.preventDefault();
   else e.returnValue = false;
}

