// show extra details
function showExtraDetails(id,c) {
	var x    = closeExtraDetails();
	var link = urlPrefix + "://" + domain + "/extras.cfm/mode/details/id/" + id + "/headers/no";

	if (arguments.length >= 3) {
		link = link + "/siteid/" + arguments[2];
	}

	jQuery.get(link,function(results) {
		var closetab = "<DIV ID='extra_details_closetab' STYLE='width:96%;z:index:11;position:absolute;top:0;left:0;' ALIGN='right'><A ONCLICK='closeExtraDetails();' HREF='javascript:;' CLASS='linkopacity'><IMG SRC='/common/templates/hotel/images/close.gif' BORDER='0' ALT='Close'></A></DIV>";
		jQuery("#content_" + c).prepend("<DIV ID='extra_details_content' STYLE='background-color:#FFFFFF;z-index:10;height:147px;overflow:auto;width:100%;'><BR>" + results + "</DIV>" + closetab );
	});
	
}

// close extra details
function closeExtraDetails() {
	var x = "";
	var e = ""; // element
	var p = ""; // element parent

	try {
		e = document.getElementById("extra_details_closetab");
		p = e.parentNode;
		p.removeChild(e);
		e = document.getElementById("extra_details_content");
		p = e.parentNode;
		p.removeChild(e);
	} catch (x) {
		// do nothing
	}

	return x;
}

function extraOnchange(obj,formid,extraid,currentrow) {
	var extraResults     = eval("extraResults" + currentrow);
	var row              = 0;
	var rowcount         = extraResults.getRowCount();
	var xid              = 0; // extra id
	var maxstayadults    = "";
	var maxstaykids      = "";
	var dobreak          = false;
	var message          = "";
	var extratax         = 0;
	var extraval         = "";
	var extraname        = "";
	var extradate        = "";
	var extrarateadults  = 0;
	var extraratekids    = 0;
	var extracount       = 0;
	var extracountadults = 0;
	var extracountkids   = 0;
	var extratotal       = 0;
	var resetindex       = false;
	var extrafound       = false;
	var extramintype     = "";
	var extramaxtype     = "";
	var extraminadults   = "";
	var extraminkids     = "";
	var extraminpeople   = "";
	var extramaxadults   = "";
	var extramaxkids     = "";
	var extramaxpeople   = "";
	var useminpeople     = "";
	var usemaxpeople     = "";
	var extranumdays     = 0;
	var extradowtype     = 0;
	var numdaycount      = 0;
	var numdayadults     = 0;
	var objextratotal    = 0;
	var onchangeobj      = obj;
	var onchangeobjectid = obj.id;

	for(row; row < rowcount; row++) {
		xid                 = extraResults.getField(row, "extra_id");
		if (xid == extraid) {
			numdayadults    = 0;
			extrafound      = true;
			extratax        = extraResults.getField(row, "extra_tax_rate");
			extraname       = extraResults.getField(row, "extra_name");
			extrarateadults = extraResults.getField(row, "extra_rate_adults");
			extraratekids   = extraResults.getField(row, "extra_rate_kids");
			extradate       = extraResults.getField(row, "extra_date").format("YYYYMMDD");
			maxstayadults   = extraResults.getField(row, "extra_to_adults");
			maxstaykids     = extraResults.getField(row, "extra_to_kids");
			extranumdays    = extraResults.getField(row, "extra_num_days");
			extradowtype    = extraResults.getField(row, "extra_dow_type");
			extramintype    = extraResults.getField(row, "extra_min_qty_type"); // 0 = per stay
			extramaxtype    = extraResults.getField(row, "extra_max_qty_type"); // 0 = per stay
			extraminadults  = extraResults.getField(row, "extra_min_qty_adults");
			extraminkids    = extraResults.getField(row, "extra_min_qty_kids");
			extraminpeople  = extraResults.getField(row, "extra_min_qty_people");
			extramaxadults  = extraResults.getField(row, "extra_max_qty_adults");
			extramaxkids    = extraResults.getField(row, "extra_max_qty_kids");
			extramaxpeople  = extraResults.getField(row, "extra_max_qty_people");
			useminpeople    = extraResults.getField(row, "extra_min_qty_total"); // use extraminpeople 0 = false, 1 = true
			usemaxpeople    = extraResults.getField(row, "extra_max_qty_total"); // use extramaxpeople 0 = false, 1 = true

			// get all extra form elements
			if (eval("resultsForm" + formid + ".extra_adults_" + extraid + "_" + extradate)) {
				extraval              = eval("resultsForm" + formid + ".extra_adults_" + extraid + "_" + extradate).value;
				if (extraval != "") {
					extracount        = parseInt(extracount) + parseInt(extraval);
					extracountadults  = parseInt(extracountadults) + parseInt(extraval);
					extratotal        = add(extratotal,(extraval * extrarateadults));
					numdaycount       = numdaycount + 1;
					numdayadults      = 1;
					if (onchangeobjectid = "extra_adults_" + extraid + "_" + extradate) {
						objextratotal = (extraval * extrarateadults);
					}
				}
			}
			if (eval("resultsForm" + formid + ".extra_kids_" + extraid + "_" + extradate)) {
				extraval              = eval("resultsForm" + formid + ".extra_kids_" + extraid + "_" + extradate).value;
				if (extraval != "") {
					extracount        = parseInt(extracount) + parseInt(extraval);
					extracountkids    = parseInt(extracountkids) + parseInt(extraval);
					extratotal        = add(extratotal,(extraval * extraratekids));
					if (numdayadults == 0) {
						numdaycount   = numdaycount + 1;
					}
					if (onchangeobjectid = "extra_kids_" + extraid + "_" + extradate) {
						objextratotal = (extraval * extraratekids);
					}
				}
			}
			if (row == (rowcount - 1)) {
				xid = 0;
			}
		}
		if (extrafound == true && xid != extraid) {
			// messages
			if (extracount > 0) {
				if (extradowtype == 1 && numdaycount > extranumdays) {
					message   += "This item can only be purchased on " + extranumdays + " days of your reservation.<BR>";
					resetindex = true;
				}
				if (extramintype == 0) {
					if (useminpeople == 1) {
						if (extracount < extraminpeople) {
							message += "A minimum of " + extraminpeople + " items must be purchased during your stay.<BR>";
						}
					} else {
						if (extracountadults < extraminadults) {
							message += "A minimum of " + extraminadults + " adult items must be purchased during your stay.<BR>";
						}
						if (extracountkids < extraminkids) {
							message += "A minimum of " + extraminkids + " child items must be purchased during your stay.<BR>";
						}
					}
				}
				if (extramaxtype == 0) {
					if (usemaxpeople == 1) {
						if (extracount > extramaxpeople) {
							message   += "A maximum of " + extramaxpeople + " items can be purchased during your stay.<BR>";
							resetindex = true;
						}
					} else {
						if (extracountadults > extramaxadults) {
							message   += "A maximum of " + extramaxadults + " adult items can be purchased during your stay.<BR>";
							resetindex = true;
						}
						if (extracountkids > extramaxkids) {
							message   += "A maximum of " + extramaxkids + " child items can be purchased during your stay.<BR>";
							resetindex = true;
						}
					}
				}
			}
			if (message != "") {
				extratotal                    = extratotal - objextratotal; // reduce extra total
				if (resetindex == true) {
					onchangeobj.selectedIndex = 0; // reset recently selected form elements to blank
				} else {
					extracount                = 0;
				}
			}
			dobreak = true;
		}
		if (dobreak == true) {
			row = rowcount;
			break;
		}
	}

	document.getElementById("extra_message_" + formid + "_" + extraid).style.display  = ((message == "") ? "none" : "");
	document.getElementById("extra_message_text_" + formid + "_" + extraid).innerHTML = message;
	// scroll to the top to show message
	if (message != "")  {
		// align this extra message to the top
		document.getElementById("extras_hash_" + formid).scrollTop = document.getElementById("hash_" + formid + "_" + extraid).offsetTop;
	}
	updateExtraPurchase(formid,extraid,extracount,extraname,extratotal,extratax);
}

function updateExtraPurchase(formid,extraid,extracount,extraname,extratotal,extratax) {
	var e = "";
	var x = "";
	var r = "";
	var c = "";
	var a = 0;
	var z = 0;

	eval("resultsForm" + formid + ".extra_total_" + extraid).value      = extratotal;

	if (extracount > 0) {
		// set active
		eval("resultsForm" + formid + ".extra_active_" + extraid).value = 1;

		try {
			// check for existence of row
			x           = document.getElementById("extras_purchased_table_" + formid + "_" + extraid);
		} catch (e) {

		}
		if (x == null) {
			// create new row
			x                   = document.getElementById("extras_purchased_table_" + formid);
			r                   = x.insertRow(x.rows.length - 3);
			r.id                = "extras_purchased_table_" + formid + "_" + extraid + "_row";
			c                   = r.insertCell(0);
			c.align             = "left";
			c.bgColor           = "D5F0B8";
			c.className         = "body";
			c.style.paddingLeft = "8px";
			c.id                = "extras_purchased_table_" + formid + "_" + extraid;
			x                   = document.getElementById("extras_purchased_table_" + formid + "_" + extraid);
		}
		x.innerHTML             = "<B>" + extraname + "</B>: " + ((extratotal == 0) ? "FREE" : dollar_format(extratotal)) + ((extratax != "" && extratax > 0) ? "&nbsp;<SPAN STYLE='color:#CB7076'>+tax</SPAN>" : "");
	} else {
		// set inactive
		eval("resultsForm" + formid + ".extra_active_" + extraid).value = 0;

		try {
			// remove row
			x           = document.getElementById("extras_purchased_table_" + formid);
			z           = x.rows.length;
			for (a; a < z; a++) {
				if (x.rows[a].id == "extras_purchased_table_" + formid + "_" + extraid + "_row") {
					x.deleteRow(a);
					a   = z;
				}
			}
		} catch (e) {

		}
	}
	x               = document.getElementById("extras_purchased_table_" + formid);
	x.style.display = ((x.rows.length > 3) ? "" : "none");
	document.getElementById("extras_purchased_table_spacer_" + formid).style.backgroundColor = (x.style.display == "none") ? "FFFFFF" : "D5F0B8";

	updateExtraTotal(formid);
}

// update extra total
function updateExtraTotal(formid) {
	var t = 0; // extra total
	var e = eval("resultsForm" + formid + ".extra_list").value.split(","); // extra array
	var a = 0;
	var z = e.length;

	for (a; a < z; a++) {
		if (eval("resultsForm" + formid + ".extra_active_" + e[a]).value == 1) {
			t = add(t,eval("resultsForm" + formid + ".extra_total_" + e[a]).value);
		}
	}

	eval("resultsForm" + formid + ".extra_total").value = t;

	updateReservationTotal(formid);
}

// extra onload
function extraOnload(formid,currentrow) {
	var f = eval("resultsForm" + formid);
	var d = "";
	var x = "";
	var i = 0;
	var j = f.elements.length;

	for (i; i < j; i++) {
		d = f.elements[i].id;
		if (d.indexOf("extra_adults_") != -1 || d.indexOf("extra_kids_") != -1) {
			x = d.split("_")[2];
			extraOnchange(f.elements[i],formid,x,currentrow);
		}
	}
}

// form load extras
function formOnload() {
	var f = "";
	var a = 0;
	var z = 0;
	var s = "";

	if (typeof(formOnloadList) != "undefined") {
		f = formOnloadList.split(",");
		z = f.length;
		for (a; a < z; a++) {
			s = f[a].split("|");
			extraOnload(s[0],s[1]);
		}
	}
}

// hide extra dropdowns
function showExtraOptions(id,list,formid) {
	var i = list.split(",");
	var a = 0;
	var z = i.length;
	var x = document.getElementById("extra_rates_" + formid + "_" + id);

	for (a; a < z; a++) {
		if (i[a] != id) {
			// hide other extras
			document.getElementById("extra_rates_" + formid + "_" + i[a]).style.display   = "none";
			document.getElementById("extra_message_" + formid + "_" + i[a]).style.display = "none";
		}
	}
	if (x.style.display == "none") {
		x.style.display = "";
		// align this extra to the top
		document.getElementById("extras_hash_" + formid).scrollTop = document.getElementById("hash_" + formid + "_" + id).offsetTop;
	} else {
		x.style.display = "none";
		document.getElementById("extra_message_" + formid + "_" + id).style.display = "none";
	}
}