//============================================================
// cms.js
//
// Description:
// JavaScript include for the Web4All2 CMS project
// Global CMS routines
//
// Copyright © 2002 Centric e-Technology
// Created : Aswin Lange		12-10-2002
// Modified: Aswin Lange		09-12-2002
// ============================================================

//---------- Constants ----------

//Pagetypes: these constants must match with the ePageType enumeration
//					 defined in clsRequestHandler of the CMS project	

//ContentDir
var PT_CONTENT_DIR = 10;
var PT_LABEL_CONTENT = 11;

//PageTree
var PT_PAGETREE = 20;
var PT_SHOW_PAGE = 21;
var PT_EDIT_PAGE = 22;
var PT_PREVIEW_PAGE = 23;

//ComposedObject
var PT_EDIT_COMPOSEDOBJECT = 30;
var PT_COMPOSEDOBJECT_OVERVIEW = 31; //??? AL: has to be removed?
var PT_PREVIEW_COMPOSEDOBJECT = 32;
var PT_SHOW_CONTENTOBJECT_DLG = 33;

//Image
var PT_EDIT_IMAGE = 40;
  
//HTML
var PT_EDIT_HTML = 50;
  
//ASCII
var PT_EDIT_ASCII = 60;
  
//Template
var PT_EDIT_TEMPLATE = 100;
var PT_TEMPLATES_OVERVIEW = 101;

//ModalDialog
var PT_ModalDialog = 200;

//Authorizing
var PT_AUTHORIZE_PAGE = 300; //??? AL: has to be removed?

//---------- End pagetypes ----------

//CMS pagetypes
var CPT_NORMAL = 1;
var CPT_LINK = 2;

//Pagestates
var PS_CONCEPT = 1;
var PS_TO_BE_ACTUALIZED = 2;
var PS_ACTUALIZED = 3;
var PS_TO_BE_MOVED = 4;
var PS_TO_BE_DELETED = 5;

//Actions: These constants must match with the action constanst of the CMS project
var ACT_ADD = "Add";
var ACT_EDIT = "Edit";
var ACT_DELETE = "Delete";
var ACT_PREVIEW = "Preview";
var ACT_PUBLISH = "Publish";
var ACT_REVOKE = "Revoke";
var ACT_LABEL = "Label";
var ACT_UNLABEL = "Unlabel";

//Escape chars
var ESC_AMPERSAND = "&amp;";
var ESC_QUOTE = "&quot;";
var ESC_ACUTE = "&acute;";
var ESC_LESS = "&lt;";
var ESC_GREATER = "&gt;";
var ESC_BACKSLASH = "\\";

//---------- Private variables ----------

//---------- Public variables ----------

//---------- Private classes ----------

//---------- Public classes ----------

function CMS_CParamWrapper()
{
	this.m_data_1;
	this.m_data_2;
	this.m_data_3;
	this.m_data_4;
	this.m_data_5;
	this.m_data_6;
	this.m_data_7;
}

//---------- Private methods ----------

//---------- Public methods ----------

function CMS_GetForm()
{
	var oResult = document.getElementById(g_form_name);
	return oResult;
}

function CMS_ParseContent(v_sServerUrl, p_sContent)
{
	//Remove all references to the local machine that where inserted by IExplorer
	return p_sContent.replace(new RegExp(v_sServerUrl, "gi"), "");
}

function enableControl(sControlName, bEnabled)
{
  var oControl = document.getElementById(sControlName)
  oControl.disabled = !bEnabled;
}

function CMS_EscapeHTML(p_sHTML)
{
  p_sHTML = p_sHTML.replace(new RegExp("&", "gi"), ESC_AMPERSAND);
  p_sHTML = p_sHTML.replace(new RegExp("\"", "gi"), ESC_QUOTE);
  p_sHTML = p_sHTML.replace(new RegExp("<", "gi"), ESC_LESS);
  p_sHTML = p_sHTML.replace(new RegExp(">", "gi"), ESC_GREATER);
  p_sHTML = p_sHTML.replace(new RegExp("'", "gi"), ESC_ACUTE);

	return p_sHTML;
}

function CMS_DeEscapeHTML(p_sHTML)
{
  p_sHTML = p_sHTML.replace(new RegExp(ESC_AMPERSAND, "gi"), "&");
  p_sHTML = p_sHTML.replace(new RegExp(ESC_QUOTE, "gi"), "\"");
	p_sHTML = p_sHTML.replace(new RegExp(ESC_LESS, "gi"), "<");
  p_sHTML = p_sHTML.replace(new RegExp(ESC_GREATER, "gi"), ">");
  p_sHTML = p_sHTML.replace(new RegExp(ESC_ACUTE, "gi"), "'");

	return p_sHTML;
}

function CMS_ReformURL(p_sURL)
{
	p_sURL = p_sURL.replace(new RegExp("&", "gi"), "$amp$");
	p_sURL = p_sURL.replace(new RegExp("=", "gi"), "$eq$");
	p_sURL = p_sURL.replace(new RegExp("%", "gi"), "$prc$");

	return p_sURL
}

function CMS_URLEncode(p_sValue)
{
	p_sValue = p_sValue.replace(new RegExp("&", "gi"), "%26");
	p_sValue = p_sValue.replace(new RegExp("=", "gi"), "%3D");
	p_sValue = p_sValue.replace(new RegExp('"', "gi"), "%22");
	return p_sValue
	
}

function CMS_EnableButton(p_oButton, p_bEnabled)
{
	if (p_oButton)
	{
		setButtonState(p_oButton.id, p_bEnabled, true);
	}
}

function enableControl(sControlName, bEnabled)
{
  var oControl = document.getElementById(sControlName)
  oControl.disabled = !bEnabled;
}
