var debugMode  = false;
var alertlevel = 1;
// rdContentEditor is also in the contentEditor
// used for validating if the editor is on the screen
var rdContentEditor = null;
//rdContentEditWarning is used for edit screens, when variable is set to true, cms raises warning about loosing content.
//You can set this variable inside console UI to automatically enabled warning message.
if(rdContentEditWarning == null)
{
	var rdContentEditWarning = false;
}
function set_alert_level(level)
{
	alertlevel = level;
}

/**
* Focuses input
* @return null
**/
function focusLoginInput()
{
	username = MM_findObj('username');
	if(username != null)
	{
		if(username.value != "" && logon.password)
		{
			logon.password.focus();
		}
		else
		{
			username.focus();
		}
	}
}

function forgotPassword(username)
{
	formusername = document.getElementById('username').value;
	if(formusername != "")
	{
		username = formusername;
	}
	window.location.href = CMS_FILENAME_INDEX+'?send_pass=1'+((username!='') ? '&username='+username:'');
}

function userSettingSubmit(return_to_screen , min_rows , max_rows)
{
	updateHiddenColumns();
	msg = "";
	alert_msg = false;

	var maxRows = document.getElementById('USER_PREFERENCE_MAX_ROWS_SHOWN');
	var userSessionTimeout = document.getElementById('USER_PREFERENCE_USER_SESSION_TIMEOUT');

	if(isNaN(maxRows.value) || maxRows.value>max_rows || maxRows.value<min_rows)
	{
		msg = msg+rdJSApp.getResourceString("RS_MAXIMUM_ROWS_SHOWN_MAY_ONLY_BE_A_NUMBER")+" "+min_rows+" - "+max_rows+".";
		alert_msg = true;
	}
	if(isNaN(userSessionTimeout.value) || userSessionTimeout.value<10)
	{
		msg = msg+"</br>"+rdJSApp.getResourceString("RS_PLEASE_ENTER_A_MINIMUM_OF_TEN_FOR_YOUR_SESSION_TIMEOUT");
		alert_msg = true;
	}
	if(alert_msg)
	{
		rd_raiseMessage(msg);
	}
	else
	{
		document.getElementById('settings_changed').value = 'true';
		if(return_to_screen == "true")
		{
			document.getElementById('return_to_screen').value = 'true';
		}
		check(settings_form, settings_form.elements.length);
	}
}

function moduleSettingsSubmit(return_to_screen)
{
	document.getElementById('settings_changed').value = 'true';
	if(return_to_screen == "true")
	{
		document.getElementById('return_to_screen').value = 'true';
	}
	check(settings_form, settings_form.elements.length);
}

function initChangePassword()
{
	rd_openCenteredPopUp(rdJSApp.getResourceString("RS_CHANGE_PASSWORD"), "MODAL_CHANGEPASSWORD", 460, 200);
}

function openUserPrefDialog()
{
	rd_openCenteredPopUp(rdJSApp.getResourceString("RS_PREFERENCES"), "MODAL_USER_PREFERENCES", 640, 350);
}

function openModuleSettingsDialog($module_id)
{
	rd_openCenteredPopUp(rdJSApp.getResourceString("RS_SETTINGS"), "MODAL_MODULE_SETTINGS", 660, 350 , "&module_id="+$module_id);
}

function viewlegal()
{
	title = rdJSApp.getResourceString("RS_LEGAL");
	include_id = 'MODAL_RDCMS_LEGAL';
	var legal = rd_modalDialog(title, include_id, "", null, "resizable:1; status:no;");
}

function viewabout()
{
	title = rdJSApp.getResourceString("RS_ABOUT");
	include_id = 'MODAL_RDCMS_ABOUT';
	var legal = rd_modalDialog(title, include_id, "", null, "resizable:1; status:no;");
}

function entityPropertyPopUp($entityID)
{
	title = 'rdCMS';
	include_id = 'MODAL_ENTITY_PROPERTIES';
	rd_modalDialog(title, include_id, '&entity_id='+$entityID, null, "status:no; dialogWidth:450px; dialogHeight:300px;");
}

function preview_image(img, width, height)
{
	width = (width>200) ? Number(width)+80 : 200;
	height = (height>200) ? Number(height)+120 : 200;
	var fullscreen = false;
	if(height>screen.availHeight || width>screen.availWidth)
	{
		height = screen.availHeight-80;
		width = screen.availWidth-40;
		fullscreen = 1;
	}
	else
	{
		fullscreen = 0;
	}
	fullscreen = 0;
	rd_openCenteredPopUp(rdJSApp.getResourceString("RS_PREVIEW_IMAGE"), "MODAL_IMAGE_PREVEIW", width, height,"&img="+escape(img)+'&window_width='+width+'&window_height='+height, fullscreen);
}

function openHelpPopUp(help_bubble_id, module_id)
{
	rd_openCenteredPopUp(rdJSApp.getResourceString("RS_HELP"), "MODAL_HELP", 460, 400, '&help_bubble_id='+help_bubble_id+'&module_id='+module_id);
}

function openConfirmHelpEdit(location_url)
{
	var _message = rdJSApp.getResourceString('RS_THERE_IS_NO_CONTENT_FOR_THIS_HELP_ITEM');
	_message+= '\r\n';
	_message+= rdJSApp.getResourceString('RS_WOULD_YOU_LIKE_TO_ADD_CONTENT');
	var _edit_help = rd_raiseConfirm(_message);
	if(_edit_help && (location_url != '' && location_url != null))
	{
		var _search_start = '&url=';
		var _a = checkForCharacters(location_url, _search_start, 0);
		var _cleaned_url = location_url.substr(0, _a-_search_start.length);
		var _new_url = location_url.substr(_a+_search_start.length);
		var _new_escaped_url = escape(_new_url);
		var _location_url = _cleaned_url + _search_start + _new_escaped_url;
		window_location(true, _location_url);
	}
}

function LogOut()
{
	var _window = rdcms_openDialogue(rdJSApp.getResourceString('RS_LOG_OUT'), 'MODAL_LOG_OUT_CLOSE', 150, 26, "status:0; dialogHeight:30px;");
	if(_window)
	{
		window_location( true , CMS_FILENAME_INDEX+"?logout=1" );
		rd_closeAllPopUps();
	}
}

function rd_preformSaveButtonAction(form)
{
	form.return_to_screen.value = 'true';
}

function onclickSave(form, submitform)
{
	rd_preformSaveButtonAction(form);
	return rd_preformSubmitButtonAction(form ,submitform);
}

function rd_preformSubmitButtonAction(form, submitform)
{
	return check(form, form.elements.length, submitform);
}

function rd_toggleInputCheckRelation($name)
{
	var check              = document.getElementById($name+'_box_limit');
	var checkunlimited     = document.getElementById($name+'_box_unlimited');
	var input              = document.getElementById($name);
	var saveinput          = document.getElementById($name+'_save_value');
	var disabledvalueinput = document.getElementById($name+'_disabled_value');
	if(checkunlimited.checked)
	{
		saveinput.value   = input.value;
		input.value       = '';//disabledvalueinput.value;
		input.disabled    = true;
		return false;
	}
	else if(check.checked)
	{
		input.value     = (saveinput.value>0) ? saveinput.value:'';
		input.disabled  = false;
		input.focus();
		return true;
	}
}
// END CMS FORM ACTION //
function rd_setRowBgColour(eRow, bg_colour)
{
	oldStyle =  eRow.style.backgroundColor;
	if(bg_colour=='' && oldStyle != null)
	{
		eRow.style.backgroundColor = eRow.oldStyle;
	}
	else
	{
		eRow.style.backgroundColor = '#'+bg_colour;
	}
	eRow.oldStyle = oldStyle;
	eRow.style.cursor = "hand";
}

function setAnchorHref($anchor, url)
{
	$a = MM_findObj($anchor);
	$a.href = url;
}

function updateHiddenColumns()
{
	msg = rd_joinSelectOptions(document.getElementById('set_columns'));
	document.getElementById('USER_PREFERENCE_HIDE_COLUMNS').value = msg;
}

function fireAccesskey(form , $action)
{
	$form = MM_findObj(form);
	if (window.event.ctrlKey)
	{
		if(window.event.keyCode == "83" || window.event.keyCode == "115")
		{
			saveButton = MM_findObj("save_button");
			saveButton.focus();
			check( $form, $form.elements.length );
		}
		if(window.event.keyCode == "67" || window.event.keyCode == "99")
		{
			cancelButton = MM_findObj("cancel_button");
			cancelButton.focus();
			check( $form, $form.elements.length );
		}
	}
}

function getKeySubmit(form, fieldnamea, fieldnameb)
{
	$form = MM_findObj(form);
	if(window.event.keyCode == "13")
	{
		disableEnterKey();
		if(document.getElementById(fieldnamea).value != "")
		{
			if(document.getElementById(fieldnameb).value == "")
			{
				document.getElementById(fieldnameb).focus();
			}
			else
			{
				check( $form, $form.elements.length );
			}
		}
	}
	return true;
}

function disableEnterKey()
{
	if (window.event.keyCode == 13)
	{
		try
		{
			window.event.keyCode = 0;
		}
		catch(error)
		{
			// do nothing
		}
	}
}

/* Error report Emailer */
function rd_getEmailRecipientArray()
{
	var to = new Array();
	if(document.getElementById('support_email_check').checked == true)
	{
		to.push(document.getElementById('support_email_check').value);
	}
	if(document.getElementById('my_email_checked').checked == true)
	{
		to.push(document.getElementById('my_email_checked').value);
	}
	if(document.getElementById('other_email_checked').checked == true)
	{
		to.push(document.getElementById('other_email').value);
	}
	return to;
}

function rd_sendErrorEmail(error_message)
{
	var rd_emailer_type = document.getElementById('rdcms_emailer_check');
	if(rd_emailer_type.checked)
	{
		rd_sendErrorReport(error_message)
	}
	else
	{
		rd_sendErrorMailTo(error_message);
	}
}

function rd_sendErrorReport(error_message)
{
	var to = rd_getEmailRecipientArray();
	if(document.getElementById('other_email_checked').checked)
	{
		check(rd_error_form, rd_error_form.elements);
	}
	else
	{
		rd_singleSubmit(rd_error_form);
	}
}

function rd_sendErrorMailTo(error_message)
{
	var message = rdJSApp.getResourceString('RS_RDCMS_ERROR_REPORT');
	message+= '\r\n==============================================\r\n';
	message+= rdJSApp.getResourceString('RS_MESSAGE')+': '+error_message;
	message+= '\r\n==============================================\r\n';
	var to  = rd_getEmailRecipientArray().join("; ");
	var str = rd_buildEmailLink(to,rdJSApp.getResourceString('RS_RDCMS_ERROR_REPORT'),escape(message));
	window.location.href = str;
}

function rd_buildEmailLink(to, subject, body, cc)
{
	var str = "";
	str+= 'mailto:';
	str+= to;
	str+= '&Subject='+subject;
	str+= '&Body='+body;
	return str;
}

/* End Error report Emailer */
/* rd Navigation */
function rd_navExpand()
{
	rd_toggleDivDisplay('CMS_NAV_DIV', false);
	rd_toggleDivDisplay('cms_nav_contract_div', false);
	rd_toggleDivDisplay('cms_nav_expand_div', true);
}
function rd_navContract()
{
	rd_toggleDivDisplay('CMS_NAV_DIV', true);
	rd_toggleDivDisplay('cms_nav_contract_div', true);
	rd_toggleDivDisplay('cms_nav_expand_div', false);
}

function rd_navOver(tr, bgcolour)
{
	rd_setRowBgColour(tr, bgcolour);
}

function rd_navOut(tr, bgcolour)
{
	rd_setRowBgColour(tr, bgcolour);
}

function rd_setContentChanged(bool)
{
	rdContentEditWarning = bool;
}

function rd_navClick(url)
{
	if((rdContentEditor && rdCE_getContentIsChanged()) || rdContentEditWarning)
	{
		if(rdCE_raiseSaveWarning(url))
		{
			rdJSApp.windowLocation(url);
		}
	}
	else
	{
		rdJSApp.windowLocation(url);
	}
}

function rd_updateOrderSelect(order_select_list, _display_order_name)
{
	var display_order = document.getElementById(_display_order_name);
	var order_number = order_select_list.options[order_select_list.selectedIndex].value;
	if(display_order)
	{
		display_order.value = order_number;
	}
}

/**
* Change site
**/
function rd_changeSite(site_id)
{
	if(site_id != '')
	{
		var _location_url = 'index.php?selectSite=1&site_id='+site_id;
		window_location(true, _location_url);
	}
}

/**
* Login procedure
* redirects page.
**/
function logIn(_int)
{
	var site_id_input = rd_getElement('site_id');
	if(site_id_input)
	{
		site_id_input.value = _int;
		rd_singleSubmit(site_select);
	}
}

var rd_submitted_form_element = null;
var rd_form_submitted = false;
/**
* So that forms will only submit once.
* @return void
**/
function rd_singleSubmit(_form_element)
{
	if(_form_element != null)
	{
		rd_submitted_form_element = _form_element;
		if(rd_form_submitted == false)
		{
			rd_submitted_form_element.submit();
			rd_form_submitted = true;
		}
	}
}