﻿// JScript File
var idxsSvc = {

	rootUrl: "",

	callService: function(url) {
		var head = document.getElementsByTagName("head")[0];
		var script = document.createElement('script');
		script.type = 'text/javascript';
		script.src = this.rootUrl != "" ? (this.rootUrl + url) : url;
		head.appendChild(script);
	},
	
	urlEncode: function(str) {
		return escape(str).replace("/", "%2F").replace("+", "%2B");
	},
	
	saveItems: function(leadID, mlsNums, callback) {
		this.callService("/Services/IDXSService.ashx/saveItems?jsonp=" + callback + "&leadID=" + leadID + "&mlsNums=" + mlsNums);
	},

	removeItems: function(leadID, mlsNums, callback) {
		this.callService("/Services/IDXSService.ashx/removeItems?jsonp=" + callback + "&leadID=" + leadID + "&mlsNums=" + mlsNums);
	},
	
	getSavedItems: function(leadID, pageSize, pageNumber, callback) {
		this.callService("/Services/IDXSService.ashx/getSavedItems?jsonp=" + callback + "&leadID=" + leadID + 
			"&pageSize=" + pageSize + "&pageNumber=" + pageNumber);
	},
	
	sendListings: function(sid, rid, leadID, segmentID, mlsNums, toEmail, fromEmail, fromName, subject, msg, callback) {
		this.callService("/Services/IDXSService.ashx/sendListings?jsonp=" + callback + "&sid=" + sid + "&rid=" + rid + 
			"&leadID=" + leadID + "&segmentID=" + segmentID + "&mlsNums=" + mlsNums + "&toEmail=" + toEmail + 
			"&fromEmail=" + fromEmail + "&fromName=" + this.urlEncode(fromName) + "&subject=" + this.urlEncode(subject) + 
			"&msg=" + this.urlEncode(msg));
	},
	
	setCriteria: function(leadID, criteria, callback) {
		this.callService("/Services/IDXSService.ashx/setCriteria?jsonp=" + callback + "&leadID=" + leadID + 
			"&criteria=" + this.urlEncode(criteria));
	},

	saveNewSearch: function(leadID, searchName, segmentID, mlsTableID, callback) {
		this.callService("/Services/IDXSService.ashx/saveNewSearch?jsonp=" + callback + "&leadID=" + leadID + 
			"&searchName=" + this.urlEncode(searchName) + "&segmentID=" + segmentID + "&mlsTableID=" + mlsTableID);
	},
	
	getSavedSearches: function(leadID, pageSize, pageNumber, callback) {
		this.callService("/Services/IDXSService.ashx/getSavedSearches?jsonp=" + callback + "&leadID=" + leadID + 
			"&pageSize=" + pageSize + "&pageNumber=" + pageNumber);
	},
	
	sendRequestInfo: function(op, leadID, uid, rid, sid, segmentID, mlsNum, mlsTableID, fName, lName, phone, email, 
		comments, showingDate, callback) {
		this.callService("/Services/IDXSService.ashx/sendRequestInfo?jsonp=" + callback + "&op=" + op + "&leadID=" + 
			leadID + "&uid=" + uid + "&rid=" + rid + "&sid=" + sid + "&segmentID=" + segmentID + "&mlsNum=" + mlsNum + 
			"&mlsTableID=" + mlsTableID + "&fName=" + this.urlEncode(fName) + "&lName=" + this.urlEncode(lName) + 
			"&phone=" + phone + "&email=" + this.urlEncode(email) + "&comments=" + this.urlEncode(comments) + 
			"&showingDate=" + this.urlEncode(showingDate));
	}
}
