
var quotefieldlist = [
	{ xml: "enterdate", dom: "q_enterdate" },
	{ xml: "targetname", dom: "q_targetname" },
	{ xml: "comments", dom: "commentdiv" },
	{ xml: "people", dom: "q_people" }
];

var quotedetaillist = [
	{ xml: "agentinfo", dom: "quoteseller" },
	{ xml: "contactinfo", dom: "quotecontact" },
	{ xml: "qcomments", dom: "quotecomments" },
	{ xml: "created", dom: "quotecreatedate" },
	{ xml: "benefit", dom: "quotebenefits" },
	{ xml: "agentkey", dom: "qd_agentkey" }
];

var agencyfieldlist = [
	{ xml: "agencyname", dom: "ai_agencyname" },
	{ xml: "address1", dom: "ai_address1" },
	{ xml: "address2", dom: "ai_address2" },
	{ xml: "city", dom: "ai_city" },
	{ xml: "state", dom: "ai_state" },
	{ xml: "zip", dom: "ai_zip" },
	{ xml: "phone", dom: "ai_phone" },
	{ xml: "email", dom: "ai_email" },
	{ xml: "startdate", dom: "ai_startdate" },
	{ xml: "totalbooking", dom: "ai_totalbooking" },
	{ xml: "rating", dom: "ai_acrate" },
	{ xml: "agentname", dom: "ai_agentname" },
	{ xml: "agentdesc", dom: "ai_atdesc" },
	{ xml: "agencydesc", dom: "ai_acdesc" }
];

var specialfieldlist = [
	{ xml: "title", dom: "title" },
	{ xml: "description", dom: "description" },
	{ xml: "targetname", dom: "special_targetname" },
	{ xml: "brochurecost", dom: "brochurecost" },
	{ xml: "cost", dom: "cost" },
	{ xml: "specname", dom: "specname" },
	{ xml: "spec7_13", dom: "air" },
	{ xml: "spec4_1", dom: "sstart", showVal: getRangeVal },
	{ xml: "spec4_1", dom: "send", showVal: getRangeVal },
	{ xml: "spec4_2", dom: "estart", showVal: getRangeVal },
	{ xml: "spec4_2", dom: "eend", showVal: getRangeVal },
	{ xml: "spec6_any", dom: "roomtype" }
];

var choicelist = [
	{ xml: "buyfromres1", dom: "buyfromres1" },
	{ xml: "buyfromres2", dom: "buyfromres2" }
];

var nolist = [
	{ xml: "reasonno1", dom: "reasonno1" },
	{ xml: "reasonno2", dom: "reasonno2" }
];

var buyreslist = [
	{ xml: "agency", dom: "agency" },
	{ xml: "agencyname", dom: "agencyname" },
	{ xml: "agent", dom: "agent" },
	{ xml: "guestnames", dom: "guestnames" },
	{ xml: "rating", dom: "rating" },
	{ xml: "pubcomment", dom: "pubcomment" },
	{ xml: "pricomment", dom: "pricomment" }
];

var noreslist1 = [
	{ xml: "agencyname2", dom: "agencyname2" },
	{ xml: "whynot", dom: "#survey3 [name='whynot']" },
	{ xml: "ratecompete", dom: "ratecompete" },
	{ xml: "feedback", dom: "feedback" }
];

var noreslist2 = [
	{ xml: "whynot2", dom: "whynot2" },
	{ xml: "ratecompete2", dom: "ratecompete2" },
	{ xml: "feedback2", dom: "feedback2" }
];


function getRangeVal(domid, val) {
	if (val.indexOf('|') < 0)
		return val;
	else if (domid.indexOf("start") >= 0)
		return val.substr(0, val.indexOf('|'));
	else
		return val.substr(val.indexOf('|')+1);
}

modules.quotes = {
	baseurl: "/user/",
	init: function() {
		modules.quotes.showquotes();
		lfjs.keypress.installhandler(modules.quotes.keypress);
		$("#quoteratingslink").click(function() { modules.quotes.agencyinfo();return false; });
	},
	keypress: function(in_key) {
	   switch (in_key.toLowerCase()) {
		case 'down':
		$('#requestquotes')[0].selectNext();
		return false;
		case 'up':
			$('#requestquotes')[0].selectNext(-1);
			return false;
		case 'enter':
			modules.quotes.view_quotes($('#requestquotes')[0].getSelectedId());
			return false;
		default:
			return true;
	   }
	},
	sortgrid: function(id, index, colname, thobj, griddiv) {
		
		var view = griddiv.currview;
		griddiv.setData([]);
		var url = griddiv.lasturl;
		var sortfield = id;
		if(griddiv.lastsort) {
			if(griddiv.lastsort.indexOf(sortfield) == 0 && !/desc$/i.test(griddiv.lastsort))
				sortfield += " desc";
		} 
		url += "&orderby=" + sortfield;
		griddiv.lastsort = sortfield;
		modules.quotes.loadlist(url);
	},
	showquotes: function() {
		var rqlist = $('#requestquotes')[0];
		
		var setheaders = new Array();
		var title = "Click to sort by ";
		setheaders[setheaders.length] = { name: "Entered", id: "enterdate", onclick: modules.quotes.sortgrid, title: title + " Entered" };
		setheaders[setheaders.length] = { name: "Start", id: "startDate", onclick: modules.quotes.sortgrid, title: title + " Start" };
		setheaders[setheaders.length] = { name: "Resort", id: "name", onclick: modules.quotes.sortgrid, title: title + " Resort" };
		setheaders[setheaders.length] = { name: "Status", id: "closedate", onclick: modules.quotes.sortgrid, title: title + " Status" };
		setheaders[setheaders.length] = { name: "Quotes", id: "quotecount", onclick: modules.quotes.sortgrid, title: title + " Quotes" };
		rqlist.setHeaders(setheaders);
		rqlist.setColWidths(["10%","14%","60%", "10%", "6%"]);
		modules.quotes.loadlist();
	},
	loadlist: function(url) {
		
		if(!url) {
			var url = "managequotes.cfc?method=do&action=list";
			//cache the url for use in sorting
			$('#requestquotes')[0].lasturl = url
		}
		$.ajax( { type: "GET", 
				url: modules.quotes.baseurl + url, 
				cache: false,
				complete: modules.quotes.loaded
			} );
	},
	loaded: function(req) {
		
		$('#requestquotes')[0].setData($(req.responseXML).find('requestquote'), {insfunc: modules.quotes.addGrid, donefunc: modules.quotes.addGridDone});
		
		/*The following code is adding agencies who ever quoted for the current user to the drop-down list on the "turn off request" page.  The reason why it's not done on the quote.cfm page is request.userid is needed before we can get the agencies.*/
		var agency = $('#agency')[0];
		agency.options.length = 0;
		var resp = $(req.responseXML).find("agency").each(function(i) {
			agency.options[agency.options.length] =
					new Option($(this).text(), this.getAttribute("id"));
		});
		agency.options[agency.options.length] = new Option('Other',0);
	},
	
	addGrid: function(grid, row, which) {
		grid.addRow(row[which].getAttribute("id"),
				[lfjs.displayDate(new Date($(row[which]).find("enterdate").text())),$(row[which]).find("startdate").text(),$(row[which]).find("targetname").text(),$(row[which]).find("status").text(),$(row[which]).find("quotes").text()],
				{ ondblclick:function(){ lfjs.keypress.stuff('enter')}});
	},
	
	view_quotes: function(which){
		if (which) {
			$.ajax( { 
				type: "GET", 
				cache: false,
				url: modules.quotes.baseurl + "managequotes.cfc?method=do&action=get&requestkey=" + which,
				complete: modules.quotes.quotesLoaded
			} );
		}
	},
	
	manage_quotes_keyhandler: function(in_key) {
		switch (in_key.toLowerCase()) {
			case 'pgdn':
			case 'pgup':
				$('#contactdetails:visible').hide();
				$('#viewquotes')[0].deactivate();
				$('#requestquotes')[0].selectNext(
						in_key.toLowerCase() == 'pgdn' ? 1 : -1 );
				lfjs.keypress.stuff('enter');
				return false;
			case 'ctrl+enter':
				$('#viewquotes')[0].deactivate();
				return false;
			case 'esc':
				$('#contactdetails:visible').hide();
				$('#viewquotes')[0].deactivate();
				return false;
		
		}
		return true;
	},

	quotesLoaded: function(req) {
		var targkey = $(req.responseXML).find("targetkey").text()
		var targname = $(req.responseXML).find("targetname").text()

		/*store the requestkey and targetname in input hidden fields for saving booking when user "turn off request"*/
		$('#requestkey').val($(req.responseXML).find("requestkey").text());
		$('#targetname').val($(req.responseXML).find("targetname").text());
		
		var mc = $(req.responseXML).find("comments").text();
		if (mc.length == 0)
			$("#comment_row").hide();
		else
			$("#comment_row").show();
		
		//if request closed hide close request button
		if ($(req.responseXML).find("closedate").text()) {
			var todayDate = new Date().getTime();
			var cmpDate = Date.parse($(req.responseXML).find("closedate").text());
			if (todayDate >= cmpDate) 
				$("#buttononoffrequest").hide();
		}
		else {
			$("#buttononoffrequest").show();
		}
		var vwq = $('#viewquotes')[0];
		if(vwq.dbform && vwq.dbform.xmldoc)
			vwq.dbform.clear(vwq.dbform.xmldoc);
		vwq.dbform = new lfjs.dbForm(quotefieldlist, $(req.responseXML).find("reqdetail")[0]);
		$('#q_targetname').html('<a href="/resort/?resort=' + targkey + '" target="_blank">' + targname + '</a>');

		$('#contactdetails').hide();
		var tabs = $('#contactdetails')[0].getTabs();
		for(var i=1; i < tabs.length; i++) {
			tabs[i].remove();
		}
		$contactinfo = $(req.responseXML).find('contactinfo');
		if ($contactinfo.size() == 1) {
			//Build User's Contact Information Tab First
			$('#contactinfo').empty();
			$('#contactinfo').append('<p>This contact information is being presented to the respondents, if the information is wrong please contact the respondents directly.</p>');
			var infocontainer = document.createElement("div");
			$(infocontainer).attr("id","infocontainer").addClass('contactdata');
			$('#contactinfo').append(infocontainer);
			$contactinfo.children().each(function(i) {
				var $info = $('#infocontainer');
				if (this.tagName == 'budget') {
					$info.append($(this).text() + " per person<br>\n");
				}
				else if (this.tagName == 'time') {
					$info.append("Contact " + $(this).text() + "<br>\n");
				}
				else {
					$info.append($(this).text() + "<br>\n");
				}
			});

			$(req.responseXML).find('contactagent').each(function() {
				//Build Responding Agent Information
				var slotnum = $(this).attr('slotnumber');
				var containerID = "slotcontainer" + slotnum;
				var curslotID = "slotcontent" + slotnum;

				var label = "Respondent " + slotnum;
				var elem = document.createElement("div");
				$(elem).attr("id",containerID).addClass('tabcontent');
				$(elem).append('<p>The respondent below has reviewed your request and believes they can help you, if you have not heard from them already, feel free to contact them directly.</p>');

				$('#contactdetails')[0].addTab(label,{contents: elem});

				var contdataelem = document.createElement("div");
				$(contdataelem).attr("id",curslotID).addClass('contactdata');
				$(elem).append(contdataelem);

				$('#contactdetails')[0].curslotID=curslotID;
				$(this).children().each(function(i) {
					var $curslot = $('#' + $('#contactdetails')[0].curslotID);
					if (this.tagName == 'name' && $(this).text().length)
						$curslot.append($(this).text() + "<br>\n");
					else if (this.tagName == 'company' && $(this).text().length)
						$curslot.append($(this).text() + "<br>\n");
					else if (this.tagName == 'city' && $(this).text().length) 
						$curslot.append($(this).text() + ", ");
					else if (this.tagName == 'state' && $(this).text().length) 
						$curslot.append($(this).text() + " ");
					else if (this.tagName == 'zip' && $(this).text().length) 
						$curslot.append($(this).text());
					else if (this.tagName == 'phone' && $(this).text().length) 
						$curslot.append("<br>\n<br>\n" + $(this).text() + "<br>\n");
					else if (this.tagName == 'email' && $(this).text().length) {
						$curslot.append("<a href='mailto:" + $(this).text() + "'>" +
							$(this).text() + "</a><br>\n");
					}
					else if (this.tagName == 'bbblink' && $(this).text().length) {
						$curslot.append("<a href='" + $(this).text() + "'>" + 
							"Better Business Bureau Information</a><br>\n");
					}
				});
			});
			$('#contactdetails').show();
		}

		$("#commentdiv").html($("#commentdiv").text().replace(/\n|\r/g," <br />"));
		if ($(req.responseXML).find("special")[0]){
			$('#special_detail').removeClass('specialhidden');
			$('#special_detail').addClass('specialshow');
			var spd = $('#special_detail')[0];
			if(spd.dbform && spd.dbform.xmldoc)
				spd.dbform.clear(spd.dbform.xmldoc);
				spd.dbform = new lfjs.dbForm(specialfieldlist, $(req.responseXML).find("special")[0]);
		}else{
			$('#special_detail').removeClass('specialshow');
			$('#special_detail').addClass('specialhidden');
		}
		var detailstr = "";
		var rmlabelstr = "";
		var rmstr = "";
		var rmcnt = $(req.responseXML).find("detailroomlabel").next("detailval").text();
		$(req.responseXML).find("detail").each(
			function(i) {
				if ($(this).find("detailname").length)				
					detailstr = detailstr + '<tr><td align="right" class="detaillabel" width="150">'+$(this).find("detailname").text()+':</td><td class="detailcontent">'+$(this).find("detailval").text() + '</td></tr>';
				else if ($(this).find("detailroomlabel").length) 
					rmlabelstr = '<tr><td align="right" id="detailroomlabel" class="detaillabel" width="150">'+$(this).find("detailroomlabel").text()+':</td><td class="detailcontent">'+$(this).find("detailval").text() + '</td></tr>';
				else {
					if (parseInt(rmcnt) == 1)
						rmstr = rmstr + '<tr><td align="right" width="150">&nbsp</td><td class="detailcontent">' + $(this).find("detailroom").text() + '</td></tr>';					
					else
						rmstr = rmstr + '<tr><td align="right" width="150">&nbsp</td><td class="detailcontent">' + $(this).find("detailroom").text() + ' ' + $(this).find("detailval").text() + '</td></tr>';
				} 
					
			});
		$("#q_detail").empty().append(detailstr + rmlabelstr + rmstr);
		var rooms = [];
		var airs = [];
		$(req.responseXML).find("variant").each(
			function(i) {
				if ($(this).text() != "No variant") {
					var variant = $(this).text().split(",");
					if (variant.length == 2) {
						airs[i] = variant[0];
						rooms[i] = variant[1];
					} else 
						if (variant[0] == "No Air" || variant[0].substr(0, 8) == "With Air")
							airs[i] = variant[0];
						else
							rooms[i] = variant[0];	
				}
			});
		var roomStr = "";
		var airStr = "";
		var varianttext = "";
		jQuery.each(rooms, function(i, val) {
			var appendme = true;
			for (j=0; j<i; j++){
				if(val == rooms[j])
					appendme = false;
			}
			if (appendme)
	    		if (i == 0)
					roomStr = rooms[i];
				else
					roomStr += " or " + rooms[i];
	    });
		if (rooms.length)
			varianttext += "Room Options: " + roomStr + '<br>';
			
		jQuery.each(airs, function(i, val) {
			var appendme = true;
			for (j=0; j<i; j++){
				if(val == airs[j])
					appendme = false;
			}
			if (appendme)
	    		if (i == 0)
					airStr = airs[i];
				else
					airStr += " or " + airs[i];
	    });
		if (airs.length)
			varianttext += "Air Options: " + airStr;
			
		if (varianttext != ""){
			var variantstr = '<tr><td align="right" class="detaillabel" width="150">Your requested quotes:</td><td></td></tr><tr><td width="150"></td><td class="detailcontent">' + varianttext + '</td></tr>';
			$("#variants").empty().append(variantstr);
		}
		var setheaders = new Array();
			setheaders[0] = { name: "Seller" };
			setheaders[1] = { name: "Quote" };
			setheaders[2] = { name: "Submitted" };
			setheaders[3] = { name: "Extra Benefits" };
		$("#quotelist")[0].setHeaders(setheaders);
		$("#quotelist")[0].setColWidths(["30%","20%","20%","30%"]);
		$("#quotelist")[0].empty();
		
		if($(req.responseXML).find("quotedetail").length) {
			$(req.responseXML).find("quotedetail").each(
				function(i) {								
					var tr = $("#quotelist")[0].addRow($(this).find("quotekey:first").text(), 
											[$(this).find("agencyname").text(),$(this).find("quoterange").text(),lfjs.displayDate(new Date($(this).find("created").text())),$(this).find("benefit").text()],
											{ ondblclick: function() {
												$.ajax( { type: "GET", 
														  cache: false,
													   	  url: modules.quotes.baseurl + "managequotes.cfc?method=do&action=quotedetail&quotekey=" + $('#quotelist')[0].getSelectedId(),
														  complete: modules.quotes.showquotedetail});}});
					
					//Add InstantRapport Icon
					var agencykey = $(this).find("agencykey:first").text();
					var ts = new Date().valueOf();
					var img = document.createElement("img");
					img.src = "https://instantrapport.com/present/?team=cvrc_" + agencykey + "&output=img&sourcetype=grid&nocache=" + ts;
					//img.align = "right";
					img.border = 0;
					$(img).css({ "margin-top": "2px"});
					var a = document.createElement("a");
					a.href = "irdisclaimer.cfm?quotekey=" + $(this).find("quotekey:first").text();
					a.target = "irvisitor";
					a.onclick = irlaunchvisitor;
					a.appendChild(img);
					a.title = img.title = img.alt = "Chat Live with this Resort Specialist";
					//$(a).css({ position: "absolute", right: "0px", top: "2px"});
					var div = document.createElement("div");
					$(div).css({position: "relative", float: "right", "z-index": "22"});
					$(div).append(a);
					$(tr).find("td:first").css("position", "static").prepend(div);
				});
			$("#quotelist").show();
			$("#quotelistheader").show();
		} else {
			$("#quotelist").hide();
			$("#quotelistheader").hide();
		}

		$('#viewquotes')[0].srcData = req;
		$('#viewquotes')[0].activate({
			title:"Request Details", keyhandler:modules.quotes.manage_quotes_keyhandler});
	},
	
	showquotedetail: function(req){
			$('#quotetablesrc').show();
			$('#quotetablesrc').find(".quotevariant").remove();
			
			$('#quotedetail')[0].dbform = new lfjs.dbForm(quotedetaillist, $(req.responseXML).find("quotedetail")[0]);
			var qd = $(req.responseXML).find("quotedetail:first");
			var user = qd.find("username:first").text();
			var key = qd.find("requestkey:first").text();
			var agencykey = qd.find("agencykey:first").text();
			var ts = new Date().valueOf();
			var src = "https://instantrapport.com/present/?team=cvrc_" + agencykey + "&output=img&nocache=" + ts;
		
			$("#irimage").attr("src", src);
			var link = "irdisclaimer.cfm?quotekey=" + qd.find("quotekey:first").text();
			$("#irlink").attr("href", link);
			$("#quotecomments, #quotebenefits").each(function(i) {
				this.innerHTML = $(this).text().replace(/\n|\r/g," <br />");											  
			});
			var contactstr = $("#quotecontact").text();
			var emailre = /^([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4})\,/i;
			if(emailre.test(contactstr)) {
				contactstr = contactstr.replace(emailre, '<A href="mailto:$1?subject=ResortCompete Request ID: ' + user + '-' + key + '[DO NOT REMOVE]">$1</a>, ');
				$("#quotecontact").html(contactstr);
			}
			var variantstr = "",withair=false, withairquote=0;
			$(req.responseXML).find("variant").each(
				function(i) {
					if (!withair) {
						if ($(this).find("name").text().indexOf("With Air") >= 0) 
							withair = true;
					}
					var quoteval = $(this).find("quote:first").text();
					if (quoteval == 0) {
						if($(this).find("noquote").text() != "")
							quoteval = "<div style='height:50px;overflow-y:auto;border:1px solid black;'>" + $(this).find("noquote").text().replace(/</g, "&lt;").replace(/\n|\r/g, " <br />") + "</div>";
						else
							quoteval = "<div style='height:50px;overflow-y:auto;border:1px solid black;'>No Quote.</div>";
					}
					else {
						quoteval = "<div style='height:50px;overflow-y:auto;border:1px solid black;'>$" + quoteval+"</div>";
						if (withair && $(this).find("name").text().indexOf("With Air") >= 0) 
							withairquote++;
					}
					variantstr = variantstr + '<tr class="quotevariant"><td align="right" class="detaillabel" width="100">'+$(this).find("name").text()+':</td><td class="detailcontent">'+ quoteval + '</td></tr>';
				}
			);
			if(withair && withairquote==0){
				variantstr += "<tr class='quotevariant'><td colspan='2'>Airfare with resort package is not available.  Please contact seller(s) directly for current air options, or try one of our <a href='/discount_airfare/'>airfare partners</a>. Remember the airlines change rates almost daily so flights are paid in full prices are subject to change.</td></tr>"
				withair = false;
			}
			$('#quotetablesrc').find("tbody").append(variantstr);
			$('#quotedetail')[0].activate({
			title:"Quote Detail", keyhandler:modules.quotes.manage_quotedetail_keyhandler});	
	},
	
	manage_quotedetail_keyhandler: function(in_key) {
		switch (in_key.toLowerCase()) {
			case 'ctrl+enter':
				$('#quotedetail')[0].deactivate();
				return false;
			case 'esc':
				$('#quotedetail')[0].deactivate();
				return false;
		
		}
		return true;
	},
	
	manage_agencyinfo_keyhandler: function(in_key) {
		switch (in_key.toLowerCase()) {
			case 'ctrl+enter':
				$('#agencyinfo')[0].deactivate();
				return false;
			case 'esc':
				$('#agencyinfo')[0].deactivate();
				return false;
		
		}
		return true;
	},
	
	agencyinfo: function(){
		$.ajax( { type: "GET", 
			   	  cache: false,
				  url: modules.quotes.baseurl + "managequotes.cfc?method=do&action=agencyinfo&agentid=" + $('#qd_agentkey').val(),
				  complete: modules.quotes.showagencyinfo
			});
	},
	
	showagencyinfo: function(req){
		$('#agencyinfo')[0].dbform = new lfjs.dbForm(agencyfieldlist, $(req.responseXML).find("agencyinfo")[0]);
		$("#ai_atdesc, #ai_acdesc").each(function(i) {
			this.innerHTML = $(this).text().replace(/\n|\r/g," <br />");											  
		});
		var bbblink = $(req.responseXML).find("bbblink").text();
		if (bbblink) {
			$('#ai_bbblink').html('<a href="' + bbblink + '" target="_blank">BBB Link</a>');
		}
		else {
			$('#ai_bbblink').html('');
		}
		$('#agencyinfo')[0].activate({
			title:"Agency Information", keyhandler:modules.quotes.manage_agencyinfo_keyhandler});	
	},
	
	closesurvey : function() {
		var reqData = $('#viewquotes')[0].srcData.responseXML;
		var resName = $('targetname',reqData).text().replace(/\s*\([^)]*\)\s*$/,'');
		var reqStart = $('detail detailname:contains("Start Date")',reqData).next("detailval").text();
		var reqEnd = $('detail detailname:contains("End Date")',reqData).next("detailval").text();
		var reqDates = '(' + reqStart + " through " + reqEnd + ')';
		
		$('#closeRequestDetail').append($('<h3></h3>').text(resName)).append(reqDates).append($('<br />'));
		$("#closequote")[0].activate({title: "Survey", keyhandler:modules.quotes.manage_survey_keyhandler});
		$('#survey')[0].dbform = new lfjs.dbForm(choicelist);
		$('#survey')[0].dbform.clear();
	},
	
	manage_survey_keyhandler: function(in_key) {
		switch (in_key.toLowerCase()) {
			case 'ctrl+enter':
				$('#closequote')[0].deactivate();
				return false;
			case 'esc':
				$('#closequote')[0].deactivate();
				window.location.reload();
				return false;
		
		}
		return true;
	},
	
	changeoption: function(){
		var reqData = $('#viewquotes')[0].srcData.responseXML;
		
		if($('closedate',reqData).length) {
			$('#viewquotes')[0].requestCloseFlag = false;
		}

		$('#notfromres')[0].dbform = new lfjs.dbForm(nolist);
		$('#notfromres')[0].dbform.clear();
		var buyfromres = 0;
		buyfromres = $('input[name="buyfromres"]:checked').val();
		if (buyfromres == 1){
			$("#survey1").slideDown(250);
			$('#survey1')[0].dbform = new lfjs.dbForm(buyreslist);
			$('#survey1')[0].dbform.clear();
			$("#notfromres").slideUp(250);
			$("#survey3").slideUp(250);
			$("#survey4").slideUp(250);
		}
		if (buyfromres == 0){
			$("#notfromres").slideDown(250);
			$("#survey1").slideUp(250);
			$("#survey3").slideUp(250);
			$("#survey4").slideUp(250);
		}
		if (! $('#viewquotes')[0].requestCloseFlag) {
			$.ajax( {
				type: "POST",
				cache: false,
				url: modules.quotes.baseurl + "request.cfc?method=close",
				async: true,
				data : {
					requestkey : $('#requestkey').val()
				},
				complete: modules.quotes.reqClosed
			} );
		}
	},
	
	reqClosed: function(req) {
		if ($('message:contains("Closed")',req.responseXML)) {
			$('#viewquotes')[0].requestCloseFlag = true;
		}
		else {
			alert("A system error occurred while attempting to close this request.");
		}
	},
	
	changesurvey: function(){
		var reasonno = 0;
		reasonno = $('input[name="reasonno"]:checked').val();
		if (reasonno == 0){
			alert('Please select a reason for closing your request.');
		}else{
			if (reasonno == 1){
				$('#survey3')[0].dbform = new lfjs.dbForm(noreslist1);
				$('#survey3')[0].dbform.clear();
				$("#survey3").slideDown(250);
				$("#survey4").slideUp(250);
			}
			if (reasonno == 2){
				$('#survey4')[0].dbform = new lfjs.dbForm(noreslist2);
				$('#survey4')[0].dbform.clear();
				$("#survey4").slideDown(250);
				$("#survey3").slideUp(250);
			}
		}
	},
	
	saveresbook: function(){
		var errors = [];
		if($('select[name="agency"] option:selected').val() == 0 && $('input[name="agencyname"]').val() == "")
			errors[errors.length] = "Seller you booked with (if not in menu)";
		if($('input[name="guestnames"]').val() == "")
			errors[errors.length] = "Guest Last Name(s)";
		if(errors.length) {
			alert("The following fields are required:\n\n" + errors.join("\n"));
			return;
		}
		$.ajax( {
			type: "POST",
			url: modules.quotes.baseurl + "savebook.cfm?resbook=1",
			async: true,
			cache: false,
			data : {
				requestkey : $('#requestkey').val(),
				agencykey : $('select[name="agency"] option:selected').val(),
				agencyname :$('input[name="agencyname"]').val(),
				agentname: $('input[name="agent"]').val(),
				guestnames: $('input[name="guestnames"]').val(),
				rating : $('select[name="rating"] option:selected').val(),
				publiccomment : $('input[name="pubcomment"]').val(),
				privatecomment : $('textarea[name="pricomment"]').val()
				},
			complete: function(reqData,status){
				var xml = reqData.responseXML;
				if ($('message',xml).text() == 'Booking information has been saved.') {
					modules.quotes.surveyThankYou();
				}
				else {
					alert('A system error has occurred!');
				}
				location.reload();	
			}
		} );
	},
	
	savenobook1: function(){	
		var reason = ""
		$("input[name='whynot']").each( function() {
			if (this.checked)										
			reason = reason + "," + this.value;
		});
		reason = reason.substring(1);
		$.ajax( {
			type: "POST",
			url: modules.quotes.baseurl + "savebook.cfm?resbook=0",
			async: true,
			cache: false,
			data : {
				requestkey : $('#requestkey').val(),
				targetname : typeof($('#targetname').val())=='undefined'?'':$('#targetname').val(),
				agencyname : typeof($('input[name="agencyname2"]').val())=='undefined'?'':$('input[name="agencyname2"]').val(),
				ratecompete: $('select[name="ratecompete"] option:selected').val(),
				comments : $('textarea[name="feedback"]').val(),
				reason : reason
			},
			complete: function(reqData,status){
				var xml = reqData.responseXML;
				if ($('message',xml).text() == 'Booking information has been saved.') {
					modules.quotes.surveyThankYou();
				}
				else {
					alert('A system error has occurred!');
				}
				location.reload();	
			}
		} );
	}, 
	savenobook2: function(){	
		var reason = ""
		$("input[name='whynot2']").each( function() {
			if (this.checked)										
			reason = reason + "," + this.value;
		});
		reason = reason.substring(1);
		$.ajax( {
			type: "POST",
			url: modules.quotes.baseurl + "savebook.cfm?resbook=0",
			async: true,
			cache: false,
			data : {
				requestkey : $('#requestkey').val(),
				targetname : typeof($('#targetname').val())=='undefined'?'':$('#targetname').val(),
				ratecompete: $('select[name="ratecompete2"] option:selected').val(),
				comments : $('textarea[name="feedback2"]').val(),
				reason : reason
			},
			complete: function(reqData,status){
				var xml = reqData.responseXML;
				if ($('message',xml).text() == 'Booking information has been saved.') {
					modules.quotes.surveyThankYou();
				}
				else {
					alert('A system error has occurred!');
				}
				location.reload();	
			}
		} );
	},
	
	surveyThankYou: function(){
		alert('Thank you for taking the time to provide this feedback--it\nreally helps us improve our service.\n\nWe hope you\'ve found ResortCompete useful. Have a\nsafe & wonderful vacation, and please tell your friends\nabout us!');
	}
}

