﻿var Sawbuck = window.Sawbuck || {}; Sawbuck.Page = function() {
	var _photos = []; var photoDisplayed = 0; var _view = "list"; var mapManager; function onLoad() { }; function nextPhoto() {
		if (!_photos.length)
			return false; if (photoDisplayed + 1 < _photos.length)
			photoDisplayed++; else
			photoDisplayed = 0; $j(".photo").attr("src", _photos[photoDisplayed].URL); $j(".photo").attr("alt", _photos[photoDisplayed].Caption); document.getElementById("currentPhotoNumber").innerHTML = photoDisplayed + 1;
	}
	function previousPhoto() {
		if (!_photos.length)
			return false; if (photoDisplayed - 1 < 0)
			photoDisplayed = _photos.length - 1; else
			photoDisplayed--; $j(".photo").attr("src", _photos[photoDisplayed].URL); $j(".photo").attr("alt", _photos[photoDisplayed].Caption); document.getElementById("currentPhotoNumber").innerHTML = photoDisplayed + 1;
	}; function rateListing(id, rating, reportingOff) {
		if (Sawbuck.Reporting && !reportingOff)
			Sawbuck.Reporting.trackEvent("Rating", "From Listing Page", "Value", rating); $j.ajax({ type: "POST", url: "/service/WebService.asmx/RateListing", data: Sawbuck.Utilities.toJson({ Rating: rating, ListingID: id }), contentType: "application/json; charset=utf-8", dataType: "json", processData: false, success: function(response) { var response = rating.d }, error: function() { } });
	}
	var ratingUpdating = false; var ratingUpdater = null; function saveNotes(id, notes) { $j.ajax({ type: "POST", url: "/service/WebService.asmx/SaveListingNotes", data: Sawbuck.Utilities.toJson({ Notes: notes, ListingID: id }), contentType: "application/json; charset=utf-8", dataType: "json", processData: false, success: function(response) { Sawbuck.Reporting.trackEvent("Notes", "Edit from Listing Page"); window.location.reload(); }, error: function() { } }); }
	function sendPartnerEmail(wrapperID, listingID) {
		wrapperID = "#" + wrapperID; var data = { FirstName: $j(wrapperID + " input.firstName").val(), LastName: $j(wrapperID + " input.lastName").val(), Email: $j(wrapperID + " input.email").val(), Phone: $j(wrapperID + " input.phone1").val() + "-" + $j(wrapperID + " input.phone2").val() + "-" + $j(wrapperID + " input.phone3").val(), Address: $j(wrapperID + " input.address").val(), City: $j(wrapperID + " input.city").val(), State: $j(wrapperID + " .state").val(), Zip: $j(wrapperID + " input.zip").val(), Comments: $j(wrapperID + " .comments").val(), EnhancedEmail: $j(wrapperID + " input.enhancerEmail").val(), ListingID: listingID }; $j.ajax({ type: "POST", url: "/service/WebService.asmx/SendEnhancedComment", data: Sawbuck.Utilities.toJson(data), contentType: "application/json; charset=utf-8", dataType: "json", processData: false, success: function(response) {
			if (response.d) { $j("#emailForInfo").dialog('close'); alert("Your email has been sent successfully."); }
			else
				alert("Invalid email address. Please try again.");
		}, error: function() { alert("There was a problem sending your email. Please try again."); } 
		});
	}
	function initializeStars() { $j('.star-rating li a').live("click", function(e) { var re = new RegExp(/\d+$/); var $this = $j(this); var id = $this.parent().parent().attr('id').match(re)[0]; var rating = $this.text(); var percent = (rating * 25); $this.parent().siblings('.current-rating').css('width', percent + '%'); ratingUpdater = setTimeout(function() { if (!ratingUpdating) { rateListing(id, rating); } }, 500); return false; }); $j('.star-rating li a').live("dblclick", function(e) { ratingUpdating = true; clearTimeout(ratingUpdater); var re = new RegExp(/\d+$/); var $this = $j(this); var id = $this.parent().parent().attr('id').match(re)[0]; var rating = 0; rateListing(id, rating); var percent = (rating * 25); $this.parent().siblings('.current-rating').css('width', percent + '%'); setTimeout(function() { ratingUpdating = false; }, 1000); return false; }); }
	function toggleEmailAlerts(listingID, on) {
		$j.ajax({ type: "POST", url: "/service/WebService.asmx/SetEmailUpdateProperty", data: Sawbuck.Utilities.toJson({ ListingID: listingID, On: on }), contentType: "application/json; charset=utf-8", dataType: "json", processData: false, success: function(response) {
			if (on) { $j(".alertsOff").hide(); $j(".alertsOn").show(); }
			else { $j(".alertsOn").hide(); $j(".alertsOff").show(); } 
		}, error: function() { $j(".marketActivity").hide(); } 
		});
	}
	return { addPhotos: function(photos) { _photos = photos; if (document.images) { var preloadedPhotos = []; for (var i = 0; i < _photos.length; i++) { preloadedPhotos[i] = new Image(); preloadedPhotos[i].src = _photos[i].URL; } } }, onLoad: function() { initializeStars(); this.addPhotos(window.photos); onLoad(); }, nextPhoto: function() { nextPhoto(); }, previousPhoto: function() { previousPhoto(); }, showWalkScoreInfo: function() { $j("#walkScoreInfo").dialog('open'); return false; }, enableEmailAlerts: function(listingID) {
		if (Sawbuck.UserManager.isLoggedIn()) { toggleEmailAlerts(listingID, true); Sawbuck.Reporting.trackEvent("Email Alerts", "Enabled Listing Alerts"); }
		else { Sawbuck.UserManager.modo('registrationWindow'); Sawbuck.UserManager.addListener("onLogin", function() { toggleEmailAlerts(listingID, true) }); Sawbuck.UserManager.addListener("onRegister", function() { toggleEmailAlerts(listingID, true) }); } 
	}, disableEmailAlerts: function(listingID) { toggleEmailAlerts(listingID, false); Sawbuck.Reporting.trackEvent("Email Alerts", "Disabled Listing Alerts"); }, saveNotes: function(listingID, notes) { saveNotes(listingID, notes); }, removeNotes: function(listingID) { saveNotes(listingID, ""); }, sendPartnerEmail: function(wrapperID, listingID) { sendPartnerEmail(wrapperID, listingID); }, rateListing: function(id, rating, reportingOff) { return rateListing(id, rating, reportingOff); }, visitPartnerWebsite: function(listingID) {
		if (Sawbuck.UserManager.getPartnerID() == 0)
			return; data = { ListingID: listingID, StatID: 5 }; $j.ajax({ type: "POST", url: "/service/WebService.asmx/IncreaseEnhancedStat", data: Sawbuck.Utilities.toJson(data), contentType: "application/json; charset=utf-8", dataType: "json", processData: false, dataFilter: function(data, type) { return data.replace(/"\\\/(Date\([0-9-]+\))\\\/"/gi, 'new $1'); }, success: function(listings) { }, error: function(e, t) { } });
	}, viewAllListings: function(listingID) {
		if (Sawbuck.UserManager.getPartnerID() == 0)
			return; data = { ListingID: listingID, StatID: 6 }; $j.ajax({ type: "POST", url: "/service/WebService.asmx/IncreaseEnhancedStat", data: Sawbuck.Utilities.toJson(data), contentType: "application/json; charset=utf-8", dataType: "json", processData: false, dataFilter: function(data, type) { return data.replace(/"\\\/(Date\([0-9-]+\))\\\/"/gi, 'new $1'); }, success: function(listings) { }, error: function(e, t) { } });
	} 
	};
} ();