/*
 * RM Price Calculator Javascript
 *
 * Version: 0.1
 */

/*
 * HELPER FUNCTIONS
 */

// Trims leading and trailing spaces from a string
function trim(s)
{
	while (s.substring(0, 1) == ' ')
	{
		s = s.substring(1, s.length);
	}
	while (s.substring(s.length-1, s.length) == ' ')
	{
		s = s.substring(0, s.length-1);
	}
	return s;
}


// Client side postback functionality
if (window.ActiveXObject && !window.XMLHttpRequest)
{
	window.XMLHttpRequest = function()
	{
		return new ActiveXObject((navigator.userAgent.toLowerCase().indexOf('msie 5') != -1) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP');
	};
}

function getHttpResponse(sURL)
{
	ajax_loader_begin();
	try
	{
		var oXMLHTTP = new XMLHttpRequest();
		oXMLHTTP.open("GET", sURL, false);
		oXMLHTTP.setRequestHeader("content-type", "application/x-www-form-urlencoded");
		oXMLHTTP.setRequestHeader("content-length", 0);

		oXMLHTTP.send("");

		if (oXMLHTTP.readyState < 4 || (oXMLHTTP.status != 0 && oXMLHTTP.status != 200 && oXMLHTTP.status != 201))
		{
			ajax_loader_end();
			alert("Client Side Postback Error: Postback to URL " + trim(sURL) + " has failed.");
			return;
		}
		else if (oXMLHTTP.responseText != null && trim(oXMLHTTP.responseText) != "")
		{
			ajax_loader_end();
			return oXMLHTTP.responseText;
		}
	}
	catch(e)
	{
		ajax_loader_end();
		alert(e);
	}
}

// Ajax loader begin and end functions
function ajax_loader_begin()
{
	// Disable buttons
	/*
	document.getElementById("rm_sendtofriend_btn").disabled = 1;
	document.getElementById("rm_addtolightbox_btn").disabled = 1;
	*/
	document.getElementById("rm_addtocart_btn").disabled = 1;

	// Disable combos
	document.getElementById("rm_MediaCategory_placeholder").disabled = 1;
	document.getElementById("rm_MediaType_placeholder").disabled = 1;
	document.getElementById("rm_MediaDetail_placeholder").disabled = 1;
	document.getElementById("rm_DistributionFormat_placeholder").disabled = 1;
	document.getElementById("rm_Placement_placeholder").disabled = 1;
	document.getElementById("rm_Size_placeholder").disabled = 1;
	document.getElementById("rm_SizeDetail_placeholder").disabled = 1;
	document.getElementById("rm_Versions_placeholder").disabled = 1;
	document.getElementById("rm_Quantity_placeholder").disabled = 1;
	document.getElementById("rm_Duration_placeholder").disabled = 1;
	document.getElementById("rm_Region_placeholder").disabled = 1;
	document.getElementById("rm_RegionDetail_placeholder").disabled = 1;
	document.getElementById("rm_Language_placeholder").disabled = 1;
	document.getElementById("rm_Industry_placeholder").disabled = 1;
	document.getElementById("rm_Exclusivity_placeholder").disabled = 1;

	// Disable date combos
	document.getElementById("rm_StartingDate_Day").disabled = 1;
	document.getElementById("rm_StartingDate_Month").disabled = 1;
	document.getElementById("rm_StartingDate_Year").disabled = 1;
}

function ajax_loader_end()
{
	// Enable buttons
	/*
	document.getElementById("rm_sendtofriend_btn").disabled = 0;
	document.getElementById("rm_addtolightbox_btn").disabled = 0;
	*/
	document.getElementById("rm_addtocart_btn").disabled = 0;

	// Enable combos
	document.getElementById("rm_MediaCategory_placeholder").disabled = 0;
	document.getElementById("rm_MediaType_placeholder").disabled = 0;
	document.getElementById("rm_MediaDetail_placeholder").disabled = 0;
	document.getElementById("rm_DistributionFormat_placeholder").disabled = 0;
	document.getElementById("rm_Placement_placeholder").disabled = 0;
	document.getElementById("rm_Size_placeholder").disabled = 0;
	document.getElementById("rm_SizeDetail_placeholder").disabled = 0;
	document.getElementById("rm_Versions_placeholder").disabled = 0;
	document.getElementById("rm_Quantity_placeholder").disabled = 0;
	document.getElementById("rm_Duration_placeholder").disabled = 0;
	document.getElementById("rm_Region_placeholder").disabled = 0;
	document.getElementById("rm_RegionDetail_placeholder").disabled = 0;
	document.getElementById("rm_Language_placeholder").disabled = 0;
	document.getElementById("rm_Industry_placeholder").disabled = 0;
	document.getElementById("rm_Exclusivity_placeholder").disabled = 0;

	// Enable date combos
	document.getElementById("rm_StartingDate_Day").disabled = 0;
	document.getElementById("rm_StartingDate_Month").disabled = 0;
	document.getElementById("rm_StartingDate_Year").disabled = 0;
}

// Error message
function raiseError(message)
{
	alert("ERROR: " + message);
}

/*
 * CONFIGURATION
 */

var rm_na_str = "N/A";

// Option titles
var rm_MediaCategory_title_option_str = "-- How will the image be used? --";
var rm_MediaType_title_option_str = "-- Select a specific usage --";
var rm_MediaDetail_title_option_str = "-- Select the details of your usage --";
var rm_DistributionFormat_title_option_str = "-- In what format will the image be distributed or delivered? --";
var rm_Placement_title_option_str = "-- Where will the image be placed or positioned? --";
var rm_Size_title_option_str = "-- At what size will you use the image? --";
var rm_SizeDetail_title_option_str = "-- Select the size of the media --";
var rm_Versions_title_option_str = "-- Single or Multiple Versions or Editions? --";
var rm_Quantity_title_option_str = "-- How many copies will be printed or viewed? --";
var rm_Duration_title_option_str = "-- What is the duration of the image use? --";
var rm_Region_title_option_str = "-- In what region will the image appear? --";
var rm_RegionDetail_title_option_str = "-- Select a specific region -- ";
var rm_Language_title_option_str = "-- What language of text will accompany the image? --";
var rm_Industry_title_option_str = "-- What industry is most relevant to this use? --";
var rm_Exclusivity_title_option_str = "-- Will this usage be non-exclusive or exclusive? --";

// Option validation error messages
var rm_MediaCategory_err_str = "Please choose Media Category option.";
var rm_MediaType_err_str = "Please choose Media Type option.";
var rm_MediaDetail_err_str = "Please choose Media Detail option.";
var rm_DistributionFormat_err_str = "Please choose Distribution Format option.";
var rm_Placement_err_str = "Please choose Placement option.";
var rm_Size_err_str = "Please choose Size option.";
var rm_SizeDetail_err_str = "Please choose Size Detail option.";
var rm_Versions_err_str = "Please choose Versions option.";
var rm_Quantity_err_str = "Please choose Quantity option.";
var rm_Duration_err_str = "Please choose Duration option.";
var rm_Region_err_str = "Please choose Region option.";
var rm_RegionDetail_err_str = "Please choose Region Detail option.";
var rm_Language_err_str = "Please choose Language option.";
var rm_Industry_err_str = "Please choose Industry option.";
var rm_Exclusivity_err_str = "Please choose Exclusivity option.";

var rm_mainmatrixid_err_str = "Internal Error in Main Media Matrix ID field!\nPlease contact www.bluemoonstock.com.";
var rm_sizematrixid_err_str = "Internal Error in Size Media Matrix ID field!\nPlease contact www.bluemoonstock.com.";
var rm_regionmatrixid_err_str = "Internal Error in Region Media Matrix ID field!\nPlease contact www.bluemoonstock.com.";
var rm_price_err_str = "Internal Error in Price field!\nPlease contact www.bluemoonstock.com.";

/*
 * CODE
 */

// Initialize
function rm_init()
{
	// Populate Media Category options
	rm_populate_MediaCategory_options();

	// Populate static fields
	rm_populate_Region_options();
	rm_populate_Language_options();
	rm_populate_Industry_options();
	rm_populate_Exclusivity_options();

	// Set starting date to today
	rm_set_starting_date();

	// Reset Main Matrix ID
	rm_ResetMainMatrixID();
}

// Set starting date
function rm_set_starting_date()
{
	var currentTime = new Date();
	var currday = currentTime.getDate();
	var currmonth = currentTime.getMonth() + 1;
	var curryear = currentTime.getFullYear();

	document.getElementById("rm_StartingDate_Day").value = currday;
	document.getElementById("rm_StartingDate_Month").value = currmonth;
	document.getElementById("rm_StartingDate_Year").value = curryear;
}

// Populate Media Category options
function rm_populate_MediaCategory_options()
{
	// Reset Main Matrix ID
	rm_ResetMainMatrixID();

	// Get list of media categories via AJAX
	var rm_catList = getHttpResponse("/rmpostback/catlist");

	// Check for error in list
	if (!rm_catList || trim(rm_catList) == "")
	{
		raiseError("No proper media categories were found. Cannot generate media license.");
		return;
	}

	// Create array from list
	var rm_catArr = rm_catList.split("|");

	// Fill media category combo box
	if (rm_catArr.length == 1)
	{
		document.getElementById("rm_MediaCategory_placeholder").options[0] = new Option(rm_catArr[0], rm_catArr[0]);
		document.getElementById("rm_MediaCategory_placeholder").selectedIndex = 0;
		rm_MediaCategory_Changed();
	}
	else
	{
		document.getElementById("rm_MediaCategory_placeholder").options[0] = new Option(rm_MediaCategory_title_option_str, "");
		for (var i=0; i < rm_catArr.length; i++)
		{
			document.getElementById("rm_MediaCategory_placeholder").options[i+1] = new Option(rm_catArr[i], rm_catArr[i]);
		}
	}
}

// Media category changed
function rm_MediaCategory_Changed()
{
	// Reset Main Matrix ID
	rm_ResetMainMatrixID();

	// Get Media Category value
	var rm_cat_val = document.getElementById("rm_MediaCategory_placeholder").value;

	// Reset appropriate selects
	document.getElementById("rm_MediaType_placeholder").options.length = 0;

	document.getElementById("rm_MediaDetail_placeholder").options.length = 0;
	document.getElementById("rm_MediaDetail_placeholder").options[0] = new Option(rm_na_str, "");
	document.getElementById("rm_MediaDetail_placeholder").selectedIndex = 0;

	document.getElementById("rm_DistributionFormat_placeholder").options.length = 0;
	document.getElementById("rm_DistributionFormat_placeholder").options[0] = new Option(rm_na_str, "");
	document.getElementById("rm_DistributionFormat_placeholder").selectedIndex = 0;

	// Reset dynamic options
	rm_reset_Dynamic_MM_Options();

	// If Media Category value is empty string then just put back N/A to all appropriate selects
	if(rm_cat_val == '')
	{
		// N/A appropriate selects
		document.getElementById("rm_MediaType_placeholder").options[0] = new Option(rm_na_str, "");
		document.getElementById("rm_MediaType_placeholder").selectedIndex = 0;

		document.getElementById("rm_DistributionFormat_placeholder").options[0] = new Option(rm_na_str, "");
		document.getElementById("rm_DistributionFormat_placeholder").selectedIndex = 0;

		document.getElementById("rm_DistributionFormat_placeholder").options[0] = new Option(rm_na_str, "");
		document.getElementById("rm_DistributionFormat_placeholder").selectedIndex = 0;

		// Recalculate price
		rm_RecalculatePrice();

		return;
	}

	// Get list of media types via AJAX
	var rm_typeList = getHttpResponse("/rmpostback/typelist?cat=" + encodeURIComponent(trim(rm_cat_val)));

	// Check for error in list
	if (!rm_typeList || trim(rm_typeList) == "")
	{
		raiseError("No proper media types were found. Cannot generate media license.");

		// Recalculate price
		rm_RecalculatePrice();

		return;
	}

	// Create array from list
	var rm_typeArr = rm_typeList.split("|");

	// Fill media type combo box
	if (rm_typeArr.length == 1)
	{
		document.getElementById("rm_MediaType_placeholder").options[0] = new Option(rm_typeArr[0], rm_typeArr[0]);
		document.getElementById("rm_MediaType_placeholder").selectedIndex = 0;
		rm_MediaType_Changed();
	}
	else
	{
		document.getElementById("rm_MediaType_placeholder").options[0] = new Option(rm_MediaType_title_option_str, "");
		for (var i=0; i < rm_typeArr.length; i++)
		{
			document.getElementById("rm_MediaType_placeholder").options[i+1] = new Option(rm_typeArr[i], rm_typeArr[i]);
		}
	}

	// Recalculate price
	rm_RecalculatePrice();
}

// Media type changed
function rm_MediaType_Changed()
{
	// Reset Main Matrix ID
	rm_ResetMainMatrixID();

	// Get Media Category value
	var rm_cat_val = document.getElementById("rm_MediaCategory_placeholder").value;

	// Get Media Type value
	var rm_type_val = document.getElementById("rm_MediaType_placeholder").value;

	// Reset appropriate selects
	document.getElementById("rm_MediaDetail_placeholder").options.length = 0;

	document.getElementById("rm_DistributionFormat_placeholder").options.length = 0;
	document.getElementById("rm_DistributionFormat_placeholder").options[0] = new Option(rm_na_str, "");
	document.getElementById("rm_DistributionFormat_placeholder").selectedIndex = 0;

	// Reset dynamic options
	rm_reset_Dynamic_MM_Options();

	// If Media Type value is empty string then just put back N/A to all appropriate selects
	if(rm_type_val == '')
	{
		// N/A appropriate selects
		document.getElementById("rm_MediaDetail_placeholder").options[0] = new Option(rm_na_str, "");
		document.getElementById("rm_MediaDetail_placeholder").selectedIndex = 0;

		document.getElementById("rm_DistributionFormat_placeholder").options[0] = new Option(rm_na_str, "");
		document.getElementById("rm_DistributionFormat_placeholder").selectedIndex = 0;

		// Recalculate price
		rm_RecalculatePrice();

		return;
	}

	// Get list of media details via AJAX
	var rm_mediadetailList = getHttpResponse("/rmpostback/mediadetaillist?cat=" + encodeURIComponent(trim(rm_cat_val))
																				+ "&type=" + encodeURIComponent(trim(rm_type_val)));

	// Check for error in list
	if (!rm_mediadetailList || trim(rm_mediadetailList) == "")
	{
		raiseError("No proper media details were found. Cannot generate media license.");

		// Recalculate price
		rm_RecalculatePrice();

		return;
	}

	// Create array from list
	var rm_mediadetailArr = rm_mediadetailList.split("|");

	// Fill media detail combo box
	if (rm_mediadetailArr.length == 1)
	{
		document.getElementById("rm_MediaDetail_placeholder").options[0] = new Option(rm_mediadetailArr[0], rm_mediadetailArr[0]);
		document.getElementById("rm_MediaDetail_placeholder").selectedIndex = 0;
		rm_MediaDetail_Changed();
	}
	else
	{
		document.getElementById("rm_MediaDetail_placeholder").options[0] = new Option(rm_MediaDetail_title_option_str, "");
		for (var i=0; i < rm_mediadetailArr.length; i++)
		{
			document.getElementById("rm_MediaDetail_placeholder").options[i+1] = new Option(rm_mediadetailArr[i], rm_mediadetailArr[i]);
		}
	}

	// Recalculate price
	rm_RecalculatePrice();
}

// Media detail changed
function rm_MediaDetail_Changed()
{
	// Reset Main Matrix ID
	rm_ResetMainMatrixID();

	// Get Media Category value
	var rm_cat_val = document.getElementById("rm_MediaCategory_placeholder").value;

	// Get Media Type value
	var rm_type_val = document.getElementById("rm_MediaType_placeholder").value;

	// Get Media Detail value
	var rm_mediadetail_val = document.getElementById("rm_MediaDetail_placeholder").value;

	// Reset appropriate selects
	document.getElementById("rm_DistributionFormat_placeholder").options.length = 0;

	// Reset dynamic options
	rm_reset_Dynamic_MM_Options();

	// If Media Type value is empty string then just put back N/A to all appropriate selects
	if(rm_mediadetail_val == '')
	{
		// N/A appropriate selects
		document.getElementById("rm_DistributionFormat_placeholder").options[0] = new Option(rm_na_str, "");
		document.getElementById("rm_DistributionFormat_placeholder").selectedIndex = 0;

		// Recalculate price
		rm_RecalculatePrice();

		return;
	}

	// Get list of media distribution formats via AJAX
	var rm_distributionformatList = getHttpResponse("/rmpostback/distributionformatlist?cat=" 	+ encodeURIComponent(trim(rm_cat_val))
																								+ "&type=" + encodeURIComponent(trim(rm_type_val))
																								+ "&mediadetail=" + encodeURIComponent(trim(rm_mediadetail_val)));

	// Check for error in list
	if (!rm_distributionformatList || trim(rm_distributionformatList) == "")
	{
		raiseError("No proper distribution formats were found. Cannot generate media license.");

		// Recalculate price
		rm_RecalculatePrice();

		return;
	}

	// Create array from list
	var rm_distributionformatArr = rm_distributionformatList.split("|");

	// Fill media distribution format combo box
	if (rm_distributionformatArr.length == 1)
	{
		document.getElementById("rm_DistributionFormat_placeholder").options[0] = new Option(rm_distributionformatArr[0], rm_distributionformatArr[0]);
		document.getElementById("rm_DistributionFormat_placeholder").selectedIndex = 0;
		rm_DistributionFormat_Changed();
	}
	else
	{
		document.getElementById("rm_DistributionFormat_placeholder").options[0] = new Option(rm_DistributionFormat_title_option_str, "");
		for (var i=0; i < rm_distributionformatArr.length; i++)
		{
			document.getElementById("rm_DistributionFormat_placeholder").options[i+1] = new Option(rm_distributionformatArr[i], rm_distributionformatArr[i]);
		}
	}

	// Recalculate price
	rm_RecalculatePrice();
}

// Distribution format changed
function rm_DistributionFormat_Changed()
{
	// Update main matrix ID
	rm_UpdateMainMatrixID();

	rm_reset_Dynamic_MM_Options();
	if(rm_GetMainMatrixID() != "")
	{
		rm_populate_Dynamic_MM_Options();
	}

	// Recalculate price
	rm_RecalculatePrice();
}

// Update main matrix id
function rm_UpdateMainMatrixID()
{
	// Get Media Category value
	var rm_cat_val = document.getElementById("rm_MediaCategory_placeholder").value;

	// Get Media Type value
	var rm_type_val = document.getElementById("rm_MediaType_placeholder").value;

	// Get Media Detail value
	var rm_mediadetail_val = document.getElementById("rm_MediaDetail_placeholder").value;

	// Get Distribution format value
	var rm_distributionformat_val = document.getElementById("rm_DistributionFormat_placeholder").value;

	// Update rm_mainmatrixid main matrix id hidden field
	if (rm_distributionformat_val != "")
	{
		// Get main media matrix id via AJAX
		document.getElementById("rm_mainmatrixid").value = getHttpResponse("/rmpostback/mainmediamatrixid?cat=" + encodeURIComponent(trim(rm_cat_val))
																												+ "&type=" + encodeURIComponent(trim(rm_type_val))
																												+ "&mediadetail=" + encodeURIComponent(trim(rm_mediadetail_val))
																												+ "&distformat=" + encodeURIComponent(trim(rm_distributionformat_val)));
	}
	else
	{
		rm_ResetMainMatrixID();
	}
}

// Reset main matrix id back to empty string
function rm_ResetMainMatrixID()
{
	document.getElementById("rm_mainmatrixid").value = "";
}

// Get main matrix id from hidden field
function rm_GetMainMatrixID()
{
	return document.getElementById("rm_mainmatrixid").value;
}

// Populate dynamic Media Matrix options
function rm_populate_Dynamic_MM_Options()
{
	rm_populate_Placement_options();
	rm_populate_Size_options();
	rm_populate_Versions_options();
	rm_populate_Quantity_options();
	rm_populate_Duration_options();
}

// Populate placement
function rm_populate_Placement_options()
{
	// Retrieve placement list
	var rm_placementList = getHttpResponse("/rmpostback/placementlist?mainmatrixid=" + encodeURIComponent(trim(rm_GetMainMatrixID())));

	if (rm_placementList && trim(rm_placementList) != "")
	{
		var rm_placementArr = rm_placementList.split("|||");

		if (rm_placementArr.length == 1)
		{
			document.getElementById("rm_Placement_placeholder").options[0] = new Option(rm_placementArr[0].split("||")[0], rm_placementArr[0].split("||")[1]);
			document.getElementById("rm_Placement_placeholder").selectedIndex = 0;
		}
		else
		{
			document.getElementById("rm_Placement_placeholder").options[0] = new Option(rm_Placement_title_option_str, "");
			for (var i=0; i < rm_placementArr.length; i++)
			{
				if (trim(rm_placementArr[i]).indexOf("||") > 0)
				{
					document.getElementById("rm_Placement_placeholder").options[i+1] = new Option(rm_placementArr[i].split("||")[0], rm_placementArr[i].split("||")[1]);
				}
			}
		}
	}
	else
	{
		raiseError("No placement item found. Cannot generate media license.");
		return;
	}
}

// Populate size
function rm_populate_Size_options()
{
	// Retrieve size list
	var rm_sizeList = getHttpResponse("/rmpostback/sizelist?mainmatrixid=" + encodeURIComponent(trim(rm_GetMainMatrixID())));

	if (rm_sizeList && trim(rm_sizeList) != "")
	{
		var rm_sizeArr = rm_sizeList.split("||");

		if (rm_sizeArr.length == 1)
        {
			document.getElementById("rm_Size_placeholder").options[0] = new Option(rm_sizeArr[0], rm_sizeArr[0]);
			document.getElementById("rm_Size_placeholder").selectedIndex = 0;
			rm_populate_SizeDetail_options();
		}
        else
        {
			document.getElementById("rm_Size_placeholder").options[0] = new Option(rm_Size_title_option_str, "");
			for (var i=0; i < rm_sizeArr.length; i++)
			{
				if (trim(rm_sizeArr[i]) != "")
				{
					document.getElementById("rm_Size_placeholder").options[i+1] = new Option(rm_sizeArr[i], rm_sizeArr[i]);
				}
			}
		}
	}
	else
	{
		raiseError("No size item found. Cannot generate media license.");
		return;
	}
}

// Populate size detail list
function rm_populate_SizeDetail_options()
{
	// Retrieve size detail list
	var rm_sizedetailList = getHttpResponse("/rmpostback/sizedetaillist?mainmatrixid=" + encodeURIComponent(trim(rm_GetMainMatrixID())) + "&sizeterm=" + encodeURIComponent(trim(document.getElementById("rm_Size_placeholder").value)));

	if (rm_sizedetailList && trim(rm_sizedetailList) != "")
	{
		var rm_sizedetailArr = rm_sizedetailList.split("|");

		if (rm_sizedetailArr.length == 1)
		{
			document.getElementById("rm_SizeDetail_placeholder").options[0] = new Option(rm_sizedetailArr[0], rm_sizedetailArr[0]);
			document.getElementById("rm_SizeDetail_placeholder").selectedIndex = 0;
			rm_UpdateSizeMatrixID();
		}
		else
		{
			document.getElementById("rm_SizeDetail_placeholder").options[0] = new Option(rm_SizeDetail_title_option_str, "");

			for (var i=0; i < rm_sizedetailArr.length; i++)
			{
				if (trim(rm_sizedetailArr[i]) != "")
					document.getElementById("rm_SizeDetail_placeholder").options[i+1] = new Option(rm_sizedetailArr[i], rm_sizedetailArr[i]);
				else
					document.getElementById("rm_SizeDetail_placeholder").options[i+1] = new Option("No Detail", "No Detail");
			}
		}
	}
	else
	{
		document.getElementById("rm_SizeDetail_placeholder").options[0] = new Option("No Detail", "No Detail");
		rm_UpdateSizeMatrixID();
	}
}

// Populate regions
function rm_populate_Region_options()
{
	// Retrieve region list
	var rm_regionList = getHttpResponse("/rmpostback/regionlist");

	if (rm_regionList && trim(rm_regionList) != "")
	{
		var rm_regionArr = rm_regionList.split("||");

		if (rm_regionArr.length == 1)
        {
			document.getElementById("rm_Region_placeholder").options[0] = new Option(rm_regionArr[0], rm_regionArr[0]);
			document.getElementById("rm_Region_placeholder").selectedIndex = 0;
			rm_populate_RegionDetail_options();
		}
        else
        {
			document.getElementById("rm_Region_placeholder").options[0] = new Option(rm_Region_title_option_str, "");
			for (var i=0; i < rm_regionArr.length; i++)
			{
				if (trim(rm_regionArr[i]) != "")
				{
					document.getElementById("rm_Region_placeholder").options[i+1] = new Option(rm_regionArr[i], rm_regionArr[i]);
				}
			}
		}
	}
	else
	{
		raiseError("No region item found. Cannot generate media license.");
		return;
	}
}

// Region changed
function rm_Region_Changed()
{
	rm_ResetRegionMatrixID();
	rm_reset_RegionDetail_options();
	if (document.getElementById("rm_Region_placeholder").value != "")
	{
		rm_populate_RegionDetail_options();
	}

	// Recalculate price
	rm_RecalculatePrice();
}

// Reset region matrix id
function rm_ResetRegionMatrixID()
{
	document.getElementById("rm_regionmatrixid").value = "";
}

// Get region matrix id from hidden field
function rm_GetRegionMatrixID()
{
	return document.getElementById("rm_regionmatrixid").value;
}

// Populate region detail list
function rm_populate_RegionDetail_options()
{
	// Retrieve region detail list
	var rm_regiondetailList = getHttpResponse("/rmpostback/regiondetaillist?regionterm=" + encodeURIComponent(trim(document.getElementById("rm_Region_placeholder").value)));

	if (rm_regiondetailList && trim(rm_regiondetailList) != "")
	{
		var rm_regiondetailArr = rm_regiondetailList.split("|");

		if (rm_regiondetailArr.length == 1)
		{
			document.getElementById("rm_RegionDetail_placeholder").options[0] = new Option(rm_regiondetailArr[0], rm_regiondetailArr[0]);
			document.getElementById("rm_RegionDetail_placeholder").selectedIndex = 0;
			rm_UpdateRegionMatrixID();
		}
		else
		{
			document.getElementById("rm_RegionDetail_placeholder").options[0] = new Option(rm_RegionDetail_title_option_str, "");

			for (var i=0; i < rm_regiondetailArr.length; i++)
			{
				if (trim(rm_regiondetailArr[i]) != "")
					document.getElementById("rm_RegionDetail_placeholder").options[i+1] = new Option(rm_regiondetailArr[i], rm_regiondetailArr[i]);
				else
					document.getElementById("rm_RegionDetail_placeholder").options[i+1] = new Option("No Detail", "No Detail");
			}
		}
	}
	else
	{
		document.getElementById("rm_RegionDetail_placeholder").options[0] = new Option("No Detail", "No Detail");
		rm_UpdateRegionMatrixID();
	}
}

// Region detail changed
function rm_RegionDetail_Changed()
{
	// Update region matrix ID
	rm_UpdateRegionMatrixID();

	// Recalculate price
	rm_RecalculatePrice();
}

// Update region matrix id
function rm_UpdateRegionMatrixID()
{
	// Get Region value
	var rm_region_term_val = document.getElementById("rm_Region_placeholder").value;

	// Get Region Detail term value
	var rm_region_detail_term_val = document.getElementById("rm_RegionDetail_placeholder").value;

	// Update rm_regionmatrixid region matrix id hidden field
	if (rm_region_detail_term_val != "")
	{
		// Get region media matrix id via AJAX
		document.getElementById("rm_regionmatrixid").value = getHttpResponse("/rmpostback/regionmatrixid?regionterm=" 	+ encodeURIComponent(trim(rm_region_term_val))
																														+ "&regiondetailterm=" + encodeURIComponent(trim(rm_region_detail_term_val.replace("No Detail", ""))));;
	}
	else
	{
		rm_ResetRegionMatrixID();
	}
}

// Reset dynamic Media Matrix options
function rm_reset_Dynamic_MM_Options()
{
	rm_reset_Placement_options();

	rm_reset_Size_options();
	rm_reset_SizeDetail_options();
	rm_ResetSizeMatrixID();

	rm_reset_Versions_options();
	rm_reset_Quantity_options();
	rm_reset_Duration_options();
}

// Reset placement
function rm_reset_Placement_options()
{
	document.getElementById("rm_Placement_placeholder").options.length = 0;
	document.getElementById("rm_Placement_placeholder").options[0] = new Option(rm_na_str, "");
	document.getElementById("rm_Placement_placeholder").selectedIndex = 0;
}

// Reset size
function rm_reset_Size_options()
{
	document.getElementById("rm_Size_placeholder").options.length = 0;
	document.getElementById("rm_Size_placeholder").options[0] = new Option(rm_na_str, "");
	document.getElementById("rm_Size_placeholder").selectedIndex = 0;
}

// Reset size detail
function rm_reset_SizeDetail_options()
{
	document.getElementById("rm_SizeDetail_placeholder").options.length = 0;
	document.getElementById("rm_SizeDetail_placeholder").options[0] = new Option(rm_na_str, "");
	document.getElementById("rm_SizeDetail_placeholder").selectedIndex = 0;
}

// Reset versions
function rm_reset_Versions_options()
{
	document.getElementById("rm_Versions_placeholder").options.length = 0;
	document.getElementById("rm_Versions_placeholder").options[0] = new Option(rm_na_str, "");
	document.getElementById("rm_Versions_placeholder").selectedIndex = 0;
}

// Reset quantities
function rm_reset_Quantity_options()
{
	document.getElementById("rm_Quantity_placeholder").options.length = 0;
	document.getElementById("rm_Quantity_placeholder").options[0] = new Option(rm_na_str, "");
	document.getElementById("rm_Quantity_placeholder").selectedIndex = 0;
}

// Reset duration
function rm_reset_Duration_options()
{
	document.getElementById("rm_Duration_placeholder").options.length = 0;
	document.getElementById("rm_Duration_placeholder").options[0] = new Option(rm_na_str, "");
	document.getElementById("rm_Duration_placeholder").selectedIndex = 0;
}

// Reset region detail
function rm_reset_RegionDetail_options()
{
	document.getElementById("rm_RegionDetail_placeholder").options.length = 0;
	document.getElementById("rm_RegionDetail_placeholder").options[0] = new Option(rm_na_str, "");
	document.getElementById("rm_RegionDetail_placeholder").selectedIndex = 0;
}

// Placement changed
function rm_Placement_Changed()
{
	// Recalculate price
	rm_RecalculatePrice();
}

// Size changed
function rm_Size_Changed()
{
	rm_ResetSizeMatrixID();
	rm_reset_SizeDetail_options();
	if (document.getElementById("rm_Size_placeholder").value != "")
	{
		rm_populate_SizeDetail_options();
	}

	// Recalculate price
	rm_RecalculatePrice();
}

// Size detail changed
function rm_SizeDetail_Changed()
{
	// Update size matrix ID
	rm_UpdateSizeMatrixID();

	// Recalculate price
	rm_RecalculatePrice();
}

// Update size matrix id
function rm_UpdateSizeMatrixID()
{
	// Get Size value
	var rm_size_term_val = document.getElementById("rm_Size_placeholder").value;

	// Get Size Detail term value
	var rm_size_detail_term_val = document.getElementById("rm_SizeDetail_placeholder").value;

	// Update rm_sizematrixid size matrix id hidden field
	if (rm_size_detail_term_val != "")
	{
		// Get size media matrix id via AJAX
		document.getElementById("rm_sizematrixid").value = getHttpResponse("/rmpostback/sizematrixid?sizeterm=" + encodeURIComponent(trim(rm_size_term_val))
																												+ "&sizedetailterm=" + encodeURIComponent(trim(rm_size_detail_term_val.replace("No Detail", ""))));;
	}
	else
	{
		rm_ResetSizeMatrixID();
	}
}

// Reset size matrix id
function rm_ResetSizeMatrixID()
{
	document.getElementById("rm_sizematrixid").value = "";
}

// Get size matrix id from hidden field
function rm_GetSizeMatrixID()
{
	return document.getElementById("rm_sizematrixid").value;
}

// Versions changed
function rm_Versions_Changed()
{
	// Recalculate price
	rm_RecalculatePrice();
}

// Populate versions
function rm_populate_Versions_options()
{
	// Retrieve placement list
	var rm_versionsList = getHttpResponse("/rmpostback/versionslist?mainmatrixid=" + encodeURIComponent(trim(rm_GetMainMatrixID())));

	if (rm_versionsList && trim(rm_versionsList) != "")
	{
		var rm_versionsArr = rm_versionsList.split("|||");

		if (rm_versionsArr.length == 1)
		{
			document.getElementById("rm_Versions_placeholder").options[0] = new Option(rm_versionsArr[0].split("||")[0], rm_versionsArr[0].split("||")[1]);
			document.getElementById("rm_Versions_placeholder").selectedIndex = 0;
		}
		else
		{
			document.getElementById("rm_Versions_placeholder").options[0] = new Option(rm_Versions_title_option_str, "");
			for (var i=0; i < rm_versionsArr.length; i++)
			{
				if (trim(rm_versionsArr[i]).indexOf("||") > 0)
				{
					document.getElementById("rm_Versions_placeholder").options[i+1] = new Option(rm_versionsArr[i].split("||")[0], rm_versionsArr[i].split("||")[1]);
				}
			}
		}
	}
	else
	{
		raiseError("No versions item found. Cannot generate media license.");
		return;
	}
}

// Quantity changed
function rm_Quantity_Changed()
{
	// Recalculate price
	rm_RecalculatePrice();
}

// Populate quantities
function rm_populate_Quantity_options()
{
	// Retrieve quantity list
	var rm_quantityList = getHttpResponse("/rmpostback/quantitylist?mainmatrixid=" + encodeURIComponent(trim(rm_GetMainMatrixID())));

	if (rm_quantityList && trim(rm_quantityList) != "")
	{
		var rm_quantityArr = rm_quantityList.split("|||");

		if (rm_quantityArr.length == 1)
		{
			document.getElementById("rm_Quantity_placeholder").options[0] = new Option(rm_quantityArr[0].split("||")[0], rm_quantityArr[0].split("||")[1]);
			document.getElementById("rm_Quantity_placeholder").selectedIndex = 0;
		}
		else
		{
			document.getElementById("rm_Quantity_placeholder").options[0] = new Option(rm_Quantity_title_option_str, "");
			for (var i=0; i < rm_quantityArr.length; i++)
			{
				if (trim(rm_quantityArr[i]).indexOf("||") > 0)
				{
					document.getElementById("rm_Quantity_placeholder").options[i+1] = new Option(rm_quantityArr[i].split("||")[0], rm_quantityArr[i].split("||")[1]);
				}
			}
		}
	}
	else
	{
		raiseError("No quantity item found. Cannot generate media license.");
		return;
	}
}

// Duration changed
function rm_Duration_Changed()
{
	// Recalculate price
	rm_RecalculatePrice();
}

// Populate durations
function rm_populate_Duration_options()
{
	// Retrieve duration list
	var rm_durationList = getHttpResponse("/rmpostback/durationlist?mainmatrixid=" + encodeURIComponent(trim(rm_GetMainMatrixID())));

	if (rm_durationList && trim(rm_durationList) != "")
	{
		var rm_durationArr = rm_durationList.split("|||");

		if (rm_durationArr.length == 1)
		{
			document.getElementById("rm_Duration_placeholder").options[0] = new Option(rm_durationArr[0].split("||")[0], rm_durationArr[0].split("||")[1]);
			document.getElementById("rm_Duration_placeholder").selectedIndex = 0;
		}
		else
		{
			document.getElementById("rm_Duration_placeholder").options[0] = new Option(rm_Duration_title_option_str, "");
			for (var i=0; i < rm_durationArr.length; i++)
			{
				if (trim(rm_durationArr[i]).indexOf("||") > 0)
				{
					document.getElementById("rm_Duration_placeholder").options[i+1] = new Option(rm_durationArr[i].split("||")[0], rm_durationArr[i].split("||")[1]);
				}
			}
		}
	}
	else
	{
		raiseError("No duration item found. Cannot generate media license.");
		return;
	}
}

// Language changed
function rm_Language_Changed()
{
	// Recalculate price
	rm_RecalculatePrice();
}

// Populate languages
function rm_populate_Language_options()
{
	// Retrieve language list
	var rm_languageList = getHttpResponse("/rmpostback/languagelist");

	if (rm_languageList && trim(rm_languageList) != "")
	{
		var rm_languageArr = rm_languageList.split("|||");

		if (rm_languageArr.length == 1)
		{
			document.getElementById("rm_Language_placeholder").options[0] = new Option(rm_languageArr[0].split("||")[0], rm_languageArr[0].split("||")[1]);
			document.getElementById("rm_Language_placeholder").selectedIndex = 0;
		}
		else
		{
			document.getElementById("rm_Language_placeholder").options[0] = new Option(rm_Language_title_option_str, "");
			for (var i=0; i < rm_languageArr.length; i++)
			{
				if (trim(rm_languageArr[i]).indexOf("||") > 0)
				{
					document.getElementById("rm_Language_placeholder").options[i+1] = new Option(rm_languageArr[i].split("||")[0], rm_languageArr[i].split("||")[1]);
				}
			}
		}
	}
	else
	{
		raiseError("No language item found. Cannot generate media license.");
		return;
	}
}

// Industry changed
function rm_Industry_Changed()
{
	// Recalculate price
	rm_RecalculatePrice();
}

// Populate industries
function rm_populate_Industry_options()
{
	// Retrieve industry list
	var rm_industryList = getHttpResponse("/rmpostback/industrylist");

	if (rm_industryList && trim(rm_industryList) != "")
	{
		var rm_industryArr = rm_industryList.split("|||");

		if (rm_industryArr.length == 1)
		{
			document.getElementById("rm_Industry_placeholder").options[0] = new Option(rm_industryArr[0].split("||")[0], rm_industryArr[0].split("||")[1]);
			document.getElementById("rm_Industry_placeholder").selectedIndex = 0;
		}
		else
		{
			document.getElementById("rm_Industry_placeholder").options[0] = new Option(rm_Industry_title_option_str, "");
			for (var i=0; i < rm_industryArr.length; i++)
			{
				if (trim(rm_industryArr[i]).indexOf("||") > 0)
				{
					document.getElementById("rm_Industry_placeholder").options[i+1] = new Option(rm_industryArr[i].split("||")[0], rm_industryArr[i].split("||")[1]);
				}
			}
		}
	}
	else
	{
		raiseError("No industry item found. Cannot generate media license.");
		return;
	}
}

// Exclusivity changed
function rm_Exclusivity_Changed()
{
	// Recalculate price
	rm_RecalculatePrice();
}

// Populate exclusivity
function rm_populate_Exclusivity_options()
{
	// Retrieve exclusivity list
	var rm_exclusivityList = getHttpResponse("/rmpostback/exclusivitylist");

	if (rm_exclusivityList && trim(rm_exclusivityList) != "")
	{
		var rm_exclusivityArr = rm_exclusivityList.split("|||");

		if (rm_exclusivityArr.length == 1)
		{
			document.getElementById("rm_Exclusivity_placeholder").options[0] = new Option(rm_exclusivityArr[0].split("||")[0], rm_exclusivityArr[0].split("||")[1]);
			document.getElementById("rm_Exclusivity_placeholder").selectedIndex = 0;
		}
		else
		{
			document.getElementById("rm_Exclusivity_placeholder").options[0] = new Option(rm_Exclusivity_title_option_str, "");
			for (var i=0; i < rm_exclusivityArr.length; i++)
			{
				if (trim(rm_exclusivityArr[i]).indexOf("||") > 0)
				{
					document.getElementById("rm_Exclusivity_placeholder").options[i+1] = new Option(rm_exclusivityArr[i].split("||")[0], rm_exclusivityArr[i].split("||")[1]);
				}
			}
		}
	}
	else
	{
		raiseError("No exclusivity item found. Cannot generate media license.");
		return;
	}
}

// Form validation
function rm_validate_form(display_error, check_price)
{
	// Validate all visible options

	// Validate Media Category
	if(document.getElementById("rm_MediaCategory_placeholder").value == "")
	{
		if(display_error)
		{
			alert(rm_MediaCategory_err_str);
		}
		return(false);
	}
	// Validate Media Type
	if(document.getElementById("rm_MediaType_placeholder").value == "")
	{
		if(display_error)
		{
			alert(rm_MediaType_err_str);
		}
		return(false);
	}
	// Validate Media Detail
	if(document.getElementById("rm_MediaDetail_placeholder").value == "")
	{
		if(display_error)
		{
			alert(rm_MediaDetail_err_str);
		}
		return(false);
	}
	// Validate Distribution Format
	if(document.getElementById("rm_DistributionFormat_placeholder").value == "")
	{
		if(display_error)
		{
			alert(rm_DistributionFormat_err_str);
		}
		return(false);
	}
	// Validate Placement
	if(document.getElementById("rm_Placement_placeholder").value == "")
	{
		if(display_error)
		{
			alert(rm_Placement_err_str);
		}
		return(false);
	}
	// Validate Size
	if(document.getElementById("rm_Size_placeholder").value == "")
	{
		if(display_error)
		{
			alert(rm_Size_err_str);
		}
		return(false);
	}
	// Validate Size Detail
	if(document.getElementById("rm_SizeDetail_placeholder").value == "")
	{
		if(display_error)
		{
			alert(rm_SizeDetail_err_str);
		}
		return(false);
	}
	// Validate Versions
	if(document.getElementById("rm_Versions_placeholder").value == "")
	{
		if(display_error)
		{
			alert(rm_Versions_err_str);
		}
		return(false);
	}
	// Validate Quantity
	if(document.getElementById("rm_Quantity_placeholder").value == "")
	{
		if(display_error)
		{
			alert(rm_Quantity_err_str);
		}
		return(false);
	}
	// Validate Duration
	if(document.getElementById("rm_Duration_placeholder").value == "")
	{
		if(display_error)
		{
			alert(rm_Duration_err_str);
		}
		return(false);
	}
	// Validate Region
	if(document.getElementById("rm_Region_placeholder").value == "")
	{
		if(display_error)
		{
			alert(rm_Region_err_str);
		}
		return(false);
	}
	// Validate Region Detail
	if(document.getElementById("rm_RegionDetail_placeholder").value == "")
	{
		if(display_error)
		{
			alert(rm_RegionDetail_err_str);
		}
		return(false);
	}
	// Validate Language
	if(document.getElementById("rm_Language_placeholder").value == "")
	{
		if(display_error)
		{
			alert(rm_Language_err_str);
		}
		return(false);
	}
	// Validate Industry
	if(document.getElementById("rm_Industry_placeholder").value == "")
	{
		if(display_error)
		{
			alert(rm_Industry_err_str);
		}
		return(false);
	}
	// Validate Exclusivity
	if(document.getElementById("rm_Exclusivity_placeholder").value == "")
	{
		if(display_error)
		{
			alert(rm_Exclusivity_err_str);
		}
		return(false);
	}

	// Validate internal hidden options

	// Validate RM Main Matrix ID
	if(document.getElementById("rm_mainmatrixid").value == "")
	{
		if(display_error)
		{
			alert(rm_mainmatrixid_err_str);
		}
		return(false);
	}
	// Validate RM Size Matrix ID
	if(document.getElementById("rm_sizematrixid").value == "")
	{
		if(display_error)
		{
			alert(rm_sizematrixid_err_str);
		}
		return(false);
	}
	// Validate RM Region Matrix ID
	if(document.getElementById("rm_regionmatrixid").value == "")
	{
		if(display_error)
		{
			alert(rm_regionmatrixid_err_str);
		}
		return(false);
	}
	// Validate RM Price field
	if(check_price)
	{
		if(document.getElementById("rm_price").value == "")
		{
			if(display_error)
			{
				alert(rm_price_err_str);
			}
			return(false);
		}
	}

	// All validations passed
	return(true);
}

// Recalculate price
function rm_RecalculatePrice()
{
	// Recalculate price only if form is valid
	if(rm_validate_form(false, false))
	{
		// Get Main Matrix id
		var rm_main_mid = document.getElementById("rm_mainmatrixid").value;

		// Get Placement matrix id
		var rm_placement_mid = document.getElementById("rm_Placement_placeholder").value;

		// Get Size matrix id
		var rm_size_mid = document.getElementById("rm_sizematrixid").value;

		// Get Versions matrix id
		var rm_versions_mid = document.getElementById("rm_Versions_placeholder").value;

		// Get Quantity matrix id
		var rm_quantity_mid = document.getElementById("rm_Quantity_placeholder").value;

		// Get Duration matrix id
		var rm_duration_mid = document.getElementById("rm_Duration_placeholder").value;

		// Get Region matrix id
		var rm_region_mid = document.getElementById("rm_regionmatrixid").value;

		// Get Language matrix id
		var rm_language_mid = document.getElementById("rm_Language_placeholder").value;

		// Get Industry matrix id
		var rm_industry_mid = document.getElementById("rm_Industry_placeholder").value;

		// Get Exclusivity matrix id
		var rm_exclusivity_mid = document.getElementById("rm_Exclusivity_placeholder").value;


		// Get price via AJAX in format rm_price|rm_price_box
		var rm_price = getHttpResponse("/rmpostback/getprice?main_mid=" + encodeURIComponent(trim(rm_main_mid))
																		+ "&placement_mid=" + encodeURIComponent(trim(rm_placement_mid))
																		+ "&size_mid=" + encodeURIComponent(trim(rm_size_mid))
																		+ "&versions_mid=" + encodeURIComponent(trim(rm_versions_mid))
																		+ "&quantity_mid=" + encodeURIComponent(trim(rm_quantity_mid))
																		+ "&duration_mid=" + encodeURIComponent(trim(rm_duration_mid))
																		+ "&region_mid=" + encodeURIComponent(trim(rm_region_mid))
																		+ "&language_mid=" + encodeURIComponent(trim(rm_language_mid))
																		+ "&industry_mid=" + encodeURIComponent(trim(rm_industry_mid))
																		+ "&exclusivity_mid=" + encodeURIComponent(trim(rm_exclusivity_mid))
																		);
		// Get price values for hidden field and for inner HTML
		var rm_priceArr = rm_price.split("|");

		// Set inner price field
		document.getElementById("rm_price").value = trim(rm_priceArr[0]);

		// Set HTML price field
		document.getElementById("rm_price_box").innerHTML = "$ " + trim(rm_priceArr[1]) + " USD";
	}
	else
	{
		// Reset inner price field
		document.getElementById("rm_price").value = "";

		// Reset HTML price field
		document.getElementById("rm_price_box").innerHTML = "N/A";
	}
}

// Submit RM form
function rm_AddToCart()
{
	// Validate form
	var rm_form_valid = rm_validate_form(true, true);
	if(!rm_form_valid)
	{
		return(false);
	}

	// Submit RM form
	document.getElementById("rm_form").submit();
}

// Price recalculation
function rm_recalc(src_tbl, src_col, src_id)
{
	// Get recalculation params from appropriate source
	var rm_recalcList = getHttpResponse("/rmpostback/recalcprice?src_tbl=" + encodeURIComponent(trim(src_tbl))
																+ "&src_col=" + encodeURIComponent(trim(src_col))
																+ "&src_id=" + encodeURIComponent(trim(src_id)));

	// Prepare recalculation array
	rArr = new Array();
	if (rm_recalcList && trim(rm_recalcList) != "")
	{
		var rm_recalcArr = rm_recalcList.split("|||");

		for (var i=0; i < rm_recalcArr.length; i++)
		{
			if (trim(rm_recalcArr[i]).indexOf("||") > 0)
			{
				var element_id = trim(rm_recalcArr[i].split("||")[0]);
				var element_value = trim(rm_recalcArr[i].split("||")[1]);
				rArr[element_id] = element_value;
			}
		}
	}
	else
	{
		raiseError("No recalculation items found. Cannot generate media license.");
		return;
	}

	// Restore selections
	// Restore basic usages
	document.getElementById("rm_MediaCategory_placeholder").value = rArr['rm_MediaCategory_placeholder'];
	rm_MediaCategory_Changed();
	document.getElementById("rm_MediaType_placeholder").value = rArr['rm_MediaType_placeholder'];
	rm_MediaType_Changed();
	document.getElementById("rm_MediaDetail_placeholder").value = rArr['rm_MediaDetail_placeholder'];
	rm_MediaDetail_Changed();
	document.getElementById("rm_DistributionFormat_placeholder").value = rArr['rm_DistributionFormat_placeholder'];
	rm_DistributionFormat_Changed();

	// Restore additional usages
	// Restore placement
	document.getElementById("rm_Placement_placeholder").value = rArr['rm_Placement_placeholder'];
	rm_Placement_Changed();

	// Restore size
	document.getElementById("rm_Size_placeholder").value = rArr['rm_Size_placeholder'];
	rm_Size_Changed();
	document.getElementById("rm_SizeDetail_placeholder").value = rArr['rm_SizeDetail_placeholder'];
	rm_SizeDetail_Changed();

	// Restore versions
	document.getElementById("rm_Versions_placeholder").value = rArr['rm_Versions_placeholder'];
	rm_Versions_Changed();

	// Restore quantity
	document.getElementById("rm_Quantity_placeholder").value = rArr['rm_Quantity_placeholder'];
	rm_Quantity_Changed();

	// Restore duration
	document.getElementById("rm_Duration_placeholder").value = rArr['rm_Duration_placeholder'];
	rm_Duration_Changed();

	// Restore region
	document.getElementById("rm_Region_placeholder").value = rArr['rm_Region_placeholder'];
	rm_Region_Changed();
	document.getElementById("rm_RegionDetail_placeholder").value = rArr['rm_RegionDetail_placeholder'];
	rm_RegionDetail_Changed();

	// Restore language
	document.getElementById("rm_Language_placeholder").value = rArr['rm_Language_placeholder'];
	rm_Language_Changed();

	// Restore industry
	document.getElementById("rm_Industry_placeholder").value = rArr['rm_Industry_placeholder'];
	rm_Industry_Changed();

	// Restore exclusivity
	document.getElementById("rm_Exclusivity_placeholder").value = rArr['rm_Exclusivity_placeholder'];
	rm_Exclusivity_Changed();


	// Restore starting day
	var start_date_day = rArr['rm_StartingDate_Day'];
	var start_date_month = rArr['rm_StartingDate_Month'];
	var start_date_year = rArr['rm_StartingDate_Year'];

	// If this date is in the past put current date
	var form_time = new Date();
	form_time.setFullYear(start_date_year, start_date_month-1, start_date_day);
	var currentTime = new Date();

	if(currentTime > form_time)
	{
		// Form date is in the past - set current date
		var currday = currentTime.getDate();
		var currmonth = currentTime.getMonth() + 1;
		var curryear = currentTime.getFullYear();
	}
	else
	{
		var currday = start_date_day;
		var currmonth = start_date_month;
		var curryear = start_date_year;
	}

	document.getElementById("rm_StartingDate_Day").value = currday;
	document.getElementById("rm_StartingDate_Month").value = currmonth;
	document.getElementById("rm_StartingDate_Year").value = curryear;
}
