﻿/// <reference path="global.js" />
var CS_UserRights = 0;
var XHTML = false;
var XHTML11 = true;
var Strict = true;
String.prototype.trim = function()
{
    // Use a regular expression to replace leading and trailing 
    // spaces with the empty string
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

if(window.attachEvent)
	window.attachEvent("onload", onCSBodyLoad);
function onCSBodyLoad()
{
	var realURL = "";
	try
	{
		var oWnd = top;
		if(oWnd.opener)
			oWnd = oWnd.opener.top;
		realURL = getUrlForCS(oWnd.location.href, oWnd.location.host);
	}
	catch(e)
	{
		try 
		{
			realURL = top.location.toString();
		}
		catch(e)
		{
			realURL = location.toString();
		}
	}
	try{
		if(AdminURL.length > 0 && realURL.indexOf(AdminURL) == 0)
		{
			Lang = "";
			var s = realURL.substring(AdminURL.length);
			if(s.indexOf("/") > -1)
			{
				s = s.substring(0,s.indexOf("/")) + "/";
				Lang = s;
			}
		}
		if(AdminURL.length > 0 && document.getElementById("CSAdminScript"))
		{
			
			if(realURL.indexOf(AdminURL + Lang + 'index.htm') == 0 
			|| realURL.indexOf(AdminURL + Lang + 'CS_Dialog_EPT.htm') == 0
			|| realURL.indexOf(AdminURL + Lang + 'CS_Dialog_Holder.htm') == 0 
			|| realURL.indexOf(AdminURL + Lang + 'CS_LT.htm') == 0 || 
			(window.opener && window.opener.location.href.indexOf('webView.htm') > -1))
				CS_EditContent();
			else 
				if(realURL.indexOf(AdminURL) != 0) // && getCookie("CS_Admin", "IgnoreIconQuestion") != "1")
				{
					//alert(realURL);
					//alert(AdminURL);
					//var result = ShowYesNoCancelDialog("The page is viewed in the same browser session that has been used for the Content Studio administrative interface.\r\nThe page contains markup code for edit icons. Would you like to remove all markup code for the edit icons in this browser session?", "Content Studio");
					result = 6;
					if (result == 6)
					{
						setCookie("CS_Admin", "", "PreviewDate");
						setCookie("CS_Admin", "", "IsInAdmin");
						if(requestQueryString(null, "CS_IsInAdmin") != "1")
							location.reload(true);
					}
					if (result == 7)
						setCookie("CS_Admin", "1", "IgnoreIconQuestion");
				}
		}
		//alert(document.cookie);
	}
	catch(e)
	{
		//alert(e.description);//
	}
}


function movestart(ElementID)
{
	var xml = buildXML(new Array(ElementID.toString()));
	window.event.dataTransfer.effectAllowed = "all";
	window.event.dataTransfer.setData("Text", xml);
	
}
function buildXML(idArr, iRevision)
{
	//var xml = new String("<CSCopyDataRoot><documents>");
	var copyDOM = getDOM("<CSCopyDataRoot><documents/></CSCopyDataRoot>");
	var documentsNode = copyDOM.selectSingleNode("//documents");
	for(var i in idArr)
	{
		var sURL = AdminURL + Lang + "WebAPI/ContentStudio_Document_DocumentReader.ashx?Action=GetDetails2&id=" + idArr[i];
		if(iRevision)
			sURL += "&Revision=" + iRevision;
		var dom = getXMLDOM(sURL, "GET");
		var node = dom.selectSingleNode("//document");
		if(node)
		{
			var newEl = dom.createElement("location");
			newEl.text = SiteURL;
			node.appendChild(newEl);
			
			documentsNode.appendChild(node.cloneNode(true));
		}
	}
	//xml = xml.replace(/<root>/g, "<document>");
	//xml = xml.replace(/<\/root>/g, "</document>");
	//xml += "</documents></CSCopyDataRoot>";
	return copyDOM.xml;
}
function moveover(ElementID)
{
	if(validatePaste(window.event.dataTransfer.getData("Text"), true) == true)
	{
		window.event.dataTransfer.dropEffect = 'move';
		event.returnValue = false;
	}
}
function moveEnd()
{
	//alert(event.dataTransfer.dropEffect);
	//document.location.reload();
}
function moveenter(ElementID)
{
	if(validatePaste(window.event.dataTransfer.getData("Text"), true) == true)
	{
		window.event.dataTransfer.dropEffect = 'move';
		event.returnValue = false;
	}
}
function validatePaste(xml, bValidateURL)
{
	if(!xml){
		return false;
	}
	var dom = getDomDocument();
	dom.preserveWhiteSpace = true;
	dom.async = false;
	dom.loadXML(xml);
	if(dom.parseError.errorCode != 0)
	{
		return false;
	}
	if(dom.documentElement.tagName != "CSCopyDataRoot"){
		return false;
	}
	var node = dom.documentElement.selectSingleNode("documents/document/elementname");
	if(node == null)
	{
		return false;
	}
	if(bValidateURL)
	{
		node = dom.documentElement.selectSingleNode("documents/document/location");
		if(node == null)
			return false;
		if(node.text != SiteURL)
			return false;
	}
	return true;
}
function movedrop(ElementID, ElementName)
{
	var dom = getDomDocument();
	dom.async = false;
	dom.loadXML(window.event.dataTransfer.getData("Text"));
	var srcID = dom.documentElement.selectSingleNode("documents/document/elementid").text;
	var docName = dom.documentElement.selectSingleNode("documents/document/elementname").text;
	if (ElementID != '' && srcID != '')
	{
		if (ElementID != srcID)
		{
			var msg = new String("Would you like \"%\" to be a child of ");
			msg = msg.replace(/\%/, docName);
			var result = JavaMsgBox(msg + "\"" + ElementName + "\"?", 3, "Content Studio");//, buttons, title);
			if (result == 6 || result == 7)
			{
				
				var xml = "<r><parameters>";
				xml += "<parameter name='ElementID'>" + srcID + "</parameter>";
				xml += "<parameter name='TargetElementID'>" + ElementID + "</parameter>";
				if(result == 6)
					xml += "<parameter name='CreateChild'>1</parameter>";
				else
					xml += "<parameter name='CreateChild'>0</parameter>";
				xml += "</parameters></r>";
				var dom = getXMLDOM(AdminURL + Lang + "WebAPI/ContentStudio_Document_DocumentManager.ashx?action=MoveDocumentInHierarchy", "POST", xml)
				if(!showResult(dom))
					return;
				location.href=location.href.replace(/#[\w\W]*/, "");
			}
		}
		else
		{
			var msg = new String("Would you like to disconnect \"%\" from the hierarchy?");
			msg = msg.replace(/\%/, ElementName);
			var result = JavaMsgBox(msg, 4, "Content Studio");
			if (result == 6)
			{
				var xml = "<r><parameters>";
				xml += "<parameter name='ElementID'>" + srcID + "</parameter>";
				xml += "<parameter name='TargetElementID'>" + ElementID + "</parameter>";
				xml += "<parameter name='CreateChild'>0</parameter>";
				xml += "</parameters></r>";
				var dom = getXMLDOM(AdminURL + Lang + "WebAPI/ContentStudio_Document_DocumentManager.ashx?action=MoveDocumentInHierarchy", "POST", xml)
				if(!showResult(dom))
					return;
				location.href=location.href.replace(/#[\w\W]*/, "");
			}
		}
	}
	
}

function CS_CreateEditIcon(oSpan, adminRights)
{
	if(oSpan.innerHTML.length > 0)
		return;
	var attr = oSpan.attributes.getNamedItem("PermissionCheck");
	if(!adminRights && attr != null && attr.nodeValue == "0")
	{
		if(!CSF_hasUserPermission(oSpan.ElementID, "D", "write"))
		{
			attr.nodeValue = "-1";
			if(oSpan.id == "editspantagnew" || oSpan.id == "editspantagmenu")
			{
				if(CSF_hasUserPermission(oSpan.ElementID, "D", "create"))
					attr.nodeValue = "-2";
				else
					return;
			}
			else
			{
				return;
			}
		}
		else
		{
			attr.nodeValue = "1";
		}
	}
	if(attr != null && attr.nodeValue == "-1")
		return;
	var oImg = document.createElement("IMG");
	if(!window.dialogArguments)
		oImg.alt = "Edit" + " \"" + oSpan.ElementName + "\" id(" + oSpan.ElementID + ")...";
	else
		oImg.alt = "Select" + " \"" + oSpan.ElementName + "\" id(" + oSpan.ElementID + ")";
	oImg.style.position = "absolute";
	oImg.width = 14;
	oImg.height = 14;
	var siteUrl = "";
	if(window.SiteURL)
		siteUrl = window.SiteURL;
	oImg.src=siteUrl+"~images/16_udocument.gif";
	oImg.style.zIndex = 100;
	oImg.style.cursor = "default";
	oImg.ElementID = oSpan.ElementID;
	oImg.ElementName = oSpan.ElementName;
	oImg.CategoryID = oSpan.CategoryID;
	oImg.ondragstart = new Function("movestart(this.ElementID)");
	oImg.ondragenter = new Function("moveenter(this.ElementID)");
	oImg.ondragover = new Function("moveover(this.ElementID)");
	oImg.ondrop = new Function("movedrop(this.ElementID,this.ElementName)");
	oImg.ondragend = new Function("moveEnd()");
	oImg.onclick = new Function("window.event.cancelBubble=true;window.event.returnValue=false;");
	oImg.ondblclick=new Function("opencontentwindowweb(this.CategoryID, this.ElementID,true);");
	oImg.border = 0;
	if(oSpan.parentElement.tagName == "A")
		oSpan.parentElement.ondragstart = new Function("movestart(" + oImg.ElementID + ")");
	oSpan.appendChild(oImg);
	switch(oSpan.id)
	{
	
		case "editspantagmain":	
			oImg.style.zIndex = 101;
			oImg.style.pixelTop = 0;
			oImg.style.pixelLeft = 0;
		break;
			
		case "editspantagnew":
			if(!window.dialogArguments)
			{
				var oImg2 = oImg.cloneNode(false);
				oImg2.src=siteUrl+"~images/16_adocument.gif";
				oImg2.alt = (oSpan.CategoryName ? "New" + " " + oSpan.CategoryName + "..." : 'New document...');
				oImg2.style.marginLeft = 14;
				oImg2.ondragstart = new Function("movestart(this.ElementID)");
				oImg2.ondragenter = new Function("moveenter(this.ElementID)");
				oImg2.ondragover = new Function("moveover(this.ElementID)");
				oImg2.ondrop = new Function("movedrop(this.ElementID,this.ElementName)");
				oImg2.ondragend = new Function("moveEnd()");
				oImg2.onclick = new Function("window.event.cancelBubble=true;window.event.returnValue=false;");
				oImg2.ondblclick=new Function("opencontentwindowweb(this.CategoryID, this.ElementID,false);");
				oSpan.appendChild(oImg2);
			}

		break;
		case "editspantagmenu":
				
			if(!window.dialogArguments)
			{
				var oImg2 = oImg.cloneNode(false);
				oImg2.src=siteUrl+"~images/16_adocument.gif";
				oImg2.alt = (oSpan.CategoryName ? "New" + " " + oSpan.CategoryName + "..." : 'New document...');
				oImg2.ondragstart = new Function("movestart(this.ElementID)");
				oImg2.ondragenter = new Function("moveenter(this.ElementID)");
				oImg2.ondragover = new Function("moveover(this.ElementID)");
				oImg2.ondrop = new Function("movedrop(this.ElementID,this.ElementName)");
				oImg2.ondragend = new Function("moveEnd()");
				oImg2.onclick = new Function("window.event.cancelBubble=true;window.event.returnValue=false;");
				oImg2.ondblclick=new Function("opencontentwindowweb(this.CategoryID, this.ElementID,false,this.ParentElementID,this.ElementName);");
				oImg2.style.marginLeft = 14;
				oImg2.ParentElementID = oSpan.ParentElementID;
				oSpan.appendChild(oImg2);
			}
				
		break;
	}
	if(attr != null && attr.nodeValue == "-2")
		oSpan.removeChild(oImg);
}
function CS_StoreField(oEl)
{
	
	if(oEl.contentEditable != "true")
		return;
	
		
	oEl.contentEditable = false;
	oEl.style.border = "";
	if(oEl.plainText == "1")
	{
		if(oEl.multiLine == "0")
			oEl.innerText = oEl.innerText.replace(/ {2,}/g, " ").replace(/(\r\n)+/g, " ");
		else
			oEl.innerText = oEl.innerText.replace(/ {2,}/g, " ");
	}
	if(oEl.oldContent == oEl.innerHTML)
		return;
	var eptXml = "<CSEPT><CSRecord><" + oEl.fieldName + ">";
	if(oEl.plainText == "1")
		eptXml += HTMLEncode(oEl.innerText);
	else
	{
		if(XHTML)
		{
			fixWrongHTML(oEl);
			var sXHTML = getXHTML(oEl);
			if(sXHTML == null)
			{
				alert("Could not save!");
				return false;
			}
			eptXml += HTMLEncode(sXHTML);
			sXHTML = "";
		}
		else
			eptXml += HTMLEncode(oEl.innerHTML);
	}
	eptXml += "</" + oEl.fieldName + "></CSRecord></CSEPT>";
	var xml = "<root>" +
			"<parameters>" +
			"<parameter name='ElementId'>" + oEl.docId + "</parameter>" +
			"<parameter name='Content'>" + HTMLEncode(eptXml) + "</parameter>" +
			"</parameters>" +
			"</root>"
	//alert(xml);
	var sUrl = oEl.AdminURL + Lang;
	sUrl += "WebAPI/ContentStudio_Document_DocumentManager.ashx?Action=savecompletedocument&PerformAutoCheckOutOnUpdate=1&PerformApprove="
	if(oEl.saveDraftOnly != "1")
		sUrl += "1";
	sUrl += "&PerformAutoCheckIn=1";
	var dom = getXMLDOM(sUrl, "POST", xml);
	if(!showResult(dom))
	{
		try{oEl.innerHTML = oEl.oldContent;}catch(e){}
		return;
	}
	var oColl = document.getElementsByName("CS_EPTDirectEdit")
	for(var i=0;i<oColl.length;i++)
		if(oColl[i].fieldName == oEl.fieldName && oColl[i].docId == oEl.docId && oColl[i] != oEl)
			try{oColl[i].innerHTML = oEl.innerHTML;}catch(e){}
}
function CS_MakeDirectEdit(oEl, adminRights)
{
	if(oEl.onblur != null)
		return;
	var attr = oEl.attributes.getNamedItem("PermissionCheck");
	if(!adminRights && attr != null && attr.nodeValue == "0")
	{
		if(!CSF_hasUserPermission(oEl.docId, "D", "approve"))
		{
			attr.nodeValue = "-1";
			return;
		}
		else
		{
			attr.nodeValue = "1";
		}
	}
	if(attr != null && attr.nodeValue == "-1")
	{
		return;
	}
	var oImg = document.createElement("IMG");
	oImg.width = 14;
	oImg.height = 14;
	oImg.border = "0";
	var siteUrl = "";
	if(window.SiteURL)
		siteUrl = window.SiteURL;
	oImg.src=siteUrl+"~images/16_edittext.gif";
	oImg.style.position = "absolute";
	oEl.style.position = "absolute";
	oImg.style.zIndex = 100;
	oImg.style.cursor = "default";
	oImg.onclick = function ()
	{
		if(window.event)
		{
			window.event.cancelBubble = true;
			window.event.returnValue = false;
		}
	}
	oImg.ondblclick = function ()
	{
		var oEl = this.previousSibling
		oEl.contentEditable = true;
		oEl.style.border = "1px solid red";
		oEl.oldContent = oEl.innerHTML;
		try
		{
			oEl.focus();
		}
		catch(e)
		{
		
		}
	}
	oEl.onblur = function ()
	{
		CS_StoreField(this);
	}
	oEl.insertAdjacentElement("afterEnd", oImg);
}
function CS_CreateEditIconFromComment(oComment, adminRights)
{
	var re = /(\<\!--|--\>)/g;
	var oSpan = document.createElement(oComment.text.replace(re, ""));
	
	oComment.replaceNode(oSpan);
	//alert(oSpan.outerHTML);
	CS_CreateEditIcon(oSpan, adminRights);
}
function CS_EditContentTrigger()
{
	try
	{
		if(document.documentElement.getAttribute("xmlns"))
			XHTML = true;
	}
	catch(e)
	{
	
	}
	
	if(CS_UserRights == 0)
	{
		var dom = getXMLDOM(AdminURL + Lang + "WebAPI/ContentStudio_Security_GlobalTrusteeRights.ashx?action=GetRights&TrusteeType=U", "GET", null);
		var node = dom.documentElement.selectSingleNode("rights");
		if(node != null)
			CS_UserRights = parseInt(node.text);
		 var RIGHT_GLOBAL_GROUPADMIN     = 0x00000400;
		 var adminRights = ((RIGHT_GLOBAL_GROUPADMIN & CS_UserRights) == RIGHT_GLOBAL_GROUPADMIN);
		 
	}
	
	var oColl = document.getElementsByTagName("!")
	for(var i=oColl.length-1;i>-1;i--)
		if(oColl[i].text.indexOf("editspantag") > -1)
			CS_CreateEditIconFromComment(oColl[i], adminRights);
	
	
	var oColl = document.getElementsByName("editspantagmain")
	for(var i=0;i<oColl.length;i++)
		CS_CreateEditIcon(oColl[i], adminRights);
	
	oColl = document.getElementsByName("editspantag")
	for(var i=0;i<oColl.length;i++)
		CS_CreateEditIcon(oColl[i], adminRights);
		
	oColl = document.getElementsByName("editspantagnew")
	for(var i=0;i<oColl.length;i++)
		CS_CreateEditIcon(oColl[i], adminRights);
	
	oColl = document.getElementsByName("editspantagmenu")
	for(var i=0;i<oColl.length;i++)
		CS_CreateEditIcon(oColl[i], adminRights);
	
	oColl = document.getElementsByName("CS_EPTDirectEdit")
	for(var i=0;i<oColl.length;i++)
		CS_MakeDirectEdit(oColl[i]);
	
}
function CS_EditContent()
{
	window.setTimeout(CS_EditContentTrigger, 0);
}
// ************ This function is for edititing in admin *******************
function getUrlForCS(sUrl, host)
{
	var re = /[^\w\.\-\_0-9\:]/;
	
	var currentUrl = sUrl;
	
	if(!re.test(host))
		return currentUrl;
	var dom = getXMLDOM(getAdminURL("WebAPI/Server.ashx?Action=IdnMapping&Value=" + encodeUTF8(currentUrl)), "GET", null);
	if(!showResult(dom))
		return currentUrl;
	currentUrl = dom.documentElement.text;
	return currentUrl;
}
function opencontentwindowweb(CategoryID, ElementID, edit, ParentElementID, ElementName)
{	
	if(window.event)
	{
		window.event.cancelBubble = true;
	}
	if(!window.dialogArguments)
	{
		if(edit)
		{
			var oWnd = showWebitor(ConnectionID, CategoryID, ElementID, "", "");
			if(!oWnd)
				return;
			if(typeof(top.webView) == "object")
			{
				setWindowUnload(oWnd, top.Function("try{webView.window.webFrame.location.reload(true);}catch(e){}"));
			}
			else
			{
				setWindowUnload(oWnd, function Unload() {location.href=location.href.replace(/#[\w\W]*/, "")});
			}
		}
		else
		{
			if(ParentElementID)
			{
				var msg = new String("Would you like \"%\" to be a child of ");
				var s = "the document";
				msg = msg.replace(/\%/, s);
				if(ElementName)
					s = ElementName;
				 
				var result = JavaMsgBox(msg + "\"" + s + "\"?", 3, "Content Studio");
				if (result == 6)
				{
					
					var oWnd = showWebitor(ConnectionID, CategoryID, "", ElementID, "");
					if(!oWnd)
						return;
					if(typeof(top.webView) == "object")
					{
						setWindowUnload(oWnd, top.Function("try{webView.window.webFrame.location.reload(true);}catch(e){}"));
					}
					else
					{
						setWindowUnload(oWnd, function Unload() {location.href=location.href.replace(/#[\w\W]*/, "")});
					}
	
				}
				else 
				{
					if(result == 7)
					{
						var oWnd = showWebitor(ConnectionID, CategoryID, "", ParentElementID, "");
						if(!oWnd)
							return;
						if(typeof(top.webView) == "object")
						{
							setWindowUnload(oWnd, top.Function("try{webView.window.webFrame.location.reload(true);}catch(e){}"));
						}
						else
						{
							setWindowUnload(oWnd, function Unload() {location.href=location.href.replace(/#[\w\W]*/, "")});
						}
					}
				}
			}
			else
			{
				var oWnd = showWebitor(ConnectionID, CategoryID, "", "", "");
				if(!oWnd)
					return;
				if(typeof(top.webView) == "object")
				{
					setWindowUnload(oWnd, top.Function("try{webView.window.webFrame.location.reload(true);}catch(e){}"));
				}
				else
				{
					setWindowUnload(oWnd, function Unload() {location.href=location.href.replace(/#[\w\W]*/, "")});
				}
			}
		}
	}
	else
	{
		window.returnValue = ElementID;
		top.window.close();
	}
}

function showWebitor(connectionID, categoryID, documentID, parentDocumentID, documentTitle)
{
	if(top.showWebitor && top.showWebitor != showWebitor)
		return top.showWebitor(connectionID, categoryID, documentID, parentDocumentID, documentTitle);
	
	if(typeof(top.OWindows) == "object")
	{
		
		for(var i=top.OWindows.length-1;i>-1;i--)
		{
			if(top.OWindows[i].closed)
				top.OWindows.splice(i,1);
		}
		//alert(top.OWindows.length);
		if(documentID)
		{
			for(var i in top.OWindows)
			{
				if(top.OWindows[i].closed == false)
				{
					if(top.OWindows[i].id == documentID)
					{
						top.OWindows[i].focus();
						return null;
					}
				}
			}
		}
	}
	
	
	
	
	var oWnd = null;
	var editTemplateID = "0";
	var unitID = "0";
	var bdyProperties = "";
	var namingConvention = 0;
	var documentType = 0;
	
	if(documentID && !categoryID)
	{
		
		var xml = "<root><parameters><parameter name='DocumentId'>" + documentID + "</parameter><parameter name='Properties'>CategoryID</parameter></parameters></root>";
		
		var dom = getXMLDOM(AdminURL + Lang + "WebAPI/ContentStudio_Document_DocumentReader.ashx?Action=GetProperties&ConnectionID=" + connectionID, "POST", xml);
		
		var result = showResultEx(dom, "1828");
		if(result != 0 && result != 1828)
			return null;
		var node = dom.selectSingleNode("//document/@CategoryID");
		if(node != null)
		{
			categoryID = node.text;
		}
		
	}
	var xml = "<root><parameters><parameter name='CategoryID'>" + categoryID + "</parameter></parameters></root>";
	var dom = getXMLDOM(AdminURL + Lang + "WebAPI/ContentStudio_Document_CategoryReader.ashx?Action=getitem2&ConnectionID=" + connectionID, "POST", xml);
	if(!showResult(dom))
		return null;
	var node = dom.documentElement.selectSingleNode("cs_category/edittemplateid");
	if(node != null)
		editTemplateID = node.text;
	
	node = dom.documentElement.selectSingleNode("cs_category/fullpath");
	if(node != null)
		documentTitle = node.text + "/";
	
	var mlcStatus = "0";
	node = dom.documentElement.selectSingleNode("cs_category/mlcstatus");
	if(node != null)
		mlcStatus = node.text;
	
	var module = "";
	node = dom.documentElement.selectSingleNode("cs_category/modulename");
	if(node != null)
		module = node.text.toLowerCase();
	
	node = dom.documentElement.selectSingleNode("cs_category/bodyproperties");
	if(node != null)
		bdyProperties = node.text;
	
	node = dom.documentElement.selectSingleNode("cs_category/unitid");
	if(node != null)
		unitID = node.text;
	
	node = dom.documentElement.selectSingleNode("cs_category/documenttype");
	if(node != null)
		documentType = parseInt(node.text);
		
	node = dom.documentElement.selectSingleNode("cs_category/documentfilenamingconvention");
	if(node != null)
		namingConvention = parseInt(node.text);
		
	if(!documentTitle)
	{
		node = dom.documentElement.selectSingleNode("cs_category/categoryname");
		if(node != null)
		{
			documentTitle = node.text +"/";
		}
	}
	//<root><list><cs_category><categoryname>Articles</categoryname><modulename>Dokument</modulename><statusint>0</statusint><bodyproperties></bodyproperties><fullname></fullname><plaintext>0</plaintext><nometadata>0</nometadata><searchable>0</searchable><statustext></statustext><hashistory>1</hashistory><unitid>11</unitid><startid>0</startid><edittemplateid>0</edittemplateid><defaultcacheduration>5</defaultcacheduration><ownerid>6</ownerid><owner>TEKNIKHUSET.SE\niast</owner><presentationtemplateid>0</presentationtemplateid><defaultformid>0</defaultformid><ispresentationtemplate>0</ispresentationtemplate><isedittemplate>0</isedittemplate><userpermission>8396735</userpermission><parentcategoryid>233</parentcategoryid></cs_category></list></root>

	
	var noMetaData = "0";
	var defaultFormId = "0";
	
	node = dom.documentElement.selectSingleNode("cs_category/nometadata");
	if(node != null)
		noMetaData = node.text;
	
	node = dom.documentElement.selectSingleNode("cs_category/defaultformid");
	if(node != null)
		defaultFormId = node.text;
	
	var plainText = "0";
	node = dom.documentElement.selectSingleNode("cs_category/plaintext");
	if(node != null)
		plainText = node.text;
	
	var isEnabledForPDF = "0";
	node = dom.documentElement.selectSingleNode("cs_category/isenabledforpdf");
	if(node != null)
		isEnabledForPDF = node.text;
	
	var allowedFileTypes = "";
	node = dom.documentElement.selectSingleNode("cs_category/allowedfiletypes");
	if(node != null)
		allowedFileTypes = node.text;
	if(module == "fil" && !documentID)
	{
		var argsArr = new Array(categoryID, "", parentDocumentID);
		var mWnd = new mWindow(AdminURL + Lang + "CS_Dialog_Upload.htm", 400, 190, argsArr, false, false, false, "", "", true);
		oWnd = mWnd.showModeless();
		if(oWnd && typeof(top.OWindows) == "object")
		{
			try
			{
				oWnd.id = documentID;
			}
			catch(e){}
			top.OWindows[top.OWindows.length] = oWnd;
		}
		return oWnd;
	}
	if(module == "fil")
	{
		var args = new Array(5);
		args[0] = categoryID;
		args[1] = documentID;
		args[2] = documentTitle;
		args[3] = allowedFileTypes;
		var mWnd = new mWindow(AdminURL + Lang + "CS_Dialog_FileUpload.htm", 1010, 730, args, true, false, false, "", "", true);
		oWnd = mWnd.showModeless();
		if(oWnd && typeof(top.OWindows) == "object")
		{
			try
			{
				oWnd.id = documentID;
			}
			catch(e){}
			top.OWindows[top.OWindows.length] = oWnd;
		}
		return oWnd;
	}
	
	if(editTemplateID == "0")
	{
	
		var args = new Array(20);
		args[0] = connectionID;
		args[1] = categoryID;
		args[2] = documentID;
		args[3] = parentDocumentID;
		args[4] = documentTitle;
		args[5] = editTemplateID;
		args[6] = unitID;
		args[7] = module;
		args[8] = bdyProperties;
		args[9] = noMetaData;
		args[10] = defaultFormId;
		args[11] = plainText;
		args[12] = mlcStatus;
		args[13] = isEnabledForPDF;
		args[14] = allowedFileTypes;
		args[15] = namingConvention;
		args[16] = documentType;
		
		var fileName = null;
		var documentName = null;
		if(!documentID && namingConvention == 2)
		{
			var oWnd = new mWindow(AdminURL + Lang + "CS_Dialog_FileName.htm", 400, 170, new Array(categoryID, allowedFileTypes), true, false, false);
			var retArr = oWnd.showModal();
			if(!retArr)
				return null;
			fileName = retArr[0];
			documentName = retArr[1];
		}
		args[17] = fileName;
		args[18] = documentName;
		var mWnd = new mWindow(AdminURL + Lang + "CS_Dialog_Webbitor.htm", 1010, 730, args, true, false, false, "", "", true, "");
		oWnd = mWnd.showModeless();
		if(oWnd && typeof(top.OWindows) == "object")
		{
			try
			{
				oWnd.id = documentID;
			}
			catch(e){}
			top.OWindows[top.OWindows.length] = oWnd;
		}
		return oWnd;
		
	}
	else
	{
		var args = new Array(17);
		args[0] = connectionID;
		args[1] = categoryID;
		args[2] = documentID;
		args[3] = parentDocumentID;
		args[4] = documentTitle;
		args[5] = editTemplateID;
		args[6] = unitID;
		args[7] = module;
		args[8] = bdyProperties;
		args[9] = noMetaData;
		args[10] = defaultFormId;
		args[11] = plainText;
		args[12] = mlcStatus;
		args[13] = isEnabledForPDF;
		args[14] = allowedFileTypes;
		args[15] = namingConvention;
		var mWnd = new mWindow(AdminURL + Lang + "CS_Dialog_EPT.htm", 1010, 730, args, true, false, false, "", "", true, "");
		oWnd = mWnd.showModeless();
		if(oWnd && typeof(top.OWindows) == "object")
		{
			try
			{
				oWnd.id = documentID;
			}
			catch(e){}
			top.OWindows[top.OWindows.length] = oWnd;
		}
		return oWnd;
	}
}
function mWindow(sUrl, iWidth, iHeight, vArgs, bResizeAble, bHelp, bStatus, iTop, iLeft, bTopWnd, sPosCookie)
{
	// Displays modal window
	if(!iWidth)
		iWidth = 100;
	
	if(!iHeight)
		iHeight = 100;
	
	
	if(typeof(bResizeAble) != "boolean")
		bResizeAble = false;
	
	if(typeof(bTopWnd) != "boolean")
		bTopWnd = false;
		
	if(typeof(bStatus) != "boolean")
		bStatus = false;
	
	if(typeof(bHelp) != "boolean")
		bHelp = false;
	
	var oWnd = new Object();
	oWnd.width = iWidth;
	oWnd.height = iHeight;
	oWnd.url = sUrl;
	oWnd.resizeAble = bResizeAble;
	oWnd.help = bHelp;
	oWnd.args = vArgs;
	oWnd.status = bStatus;
	oWnd.top = iTop;
	oWnd.left = iLeft;
	oWnd.topWnd = bTopWnd;
	oWnd.posCookie = sPosCookie;
	
	
	
	oWnd.showModal = function()
	{
		
		if(window.navigator.userAgent.indexOf("SV1") != -1 && document.domain.indexOf(".") != -1 && this.status == false)
		{
			this.height += 18;
		}
		if(this.posCookie)
		{
			var sPos = getCookieColl("ContentStudio", this.posCookie);
			if(sPos != null)
			{
				var sizeArr = sPos.replace(/px/ig, "").split(",");
				this.width = parseInt(sizeArr[0]);
				this.height = parseInt(sizeArr[1]);
				this.left = parseInt(sizeArr[2]);
				this.top = parseInt(sizeArr[3]);
				
			}
		}
		var sResizeAble = "no";
		if(this.resizeAble)
			sResizeAble = "yes";
		var sHelp = "no";
		if(this.help)
			sHelp = "yes";
		var sStatus = "no";
		if(this.status)
			sStatus = "yes";
		var sLeft = "";
		if(this.left)
			sLeft = "dialogLeft:" + this.left.toString() + "px;";
		var sTop = "";
		if(this.top)
			sTop = "dialogTop:" + this.top.toString() + "px;";
		var retWnd = null;
		if(this.topWnd)
			retWnd = top.window;
		else
			retWnd = window;
		try
		{
			retWnd = retWnd.showModalDialog(this.url, this.args, "DialogHeight:" + this.height.toString() + "px;DialogWidth:" + this.width.toString() + "px;status:" + sStatus + ";scroll:no;help:" + sHelp + ";resizable:" + sResizeAble + ";" + sTop + sLeft);
		}
		catch(e)
		{
			alert("Content Studio uses modal and modeless windows.\nPlease disable the popup blocker for this site!");
			return null;
		}
		return retWnd;
	}
	oWnd.showModeless = function()
	{
		if(window.navigator.userAgent.indexOf("SV1") != -1 && document.domain.indexOf(".") != -1 && this.status == false)
		{
			this.height += 18;
		}
		if(this.posCookie)
		{
			var sPos = getCookieColl("ContentStudio", this.posCookie);
			
			if(sPos != null)
			{
				var sizeArr = sPos.replace(/px/ig, "").split(",");
				this.width = parseInt(sizeArr[0]);
				this.height = parseInt(sizeArr[1]);
				this.left = parseInt(sizeArr[2]);
				this.top = parseInt(sizeArr[3]);
				
			}
		}
		var sResizeAble = "no";
		if(this.resizeAble)
			sResizeAble = "yes";
		var sHelp = "no";
		if(this.help)
			sHelp = "yes";
		var sStatus = "no";
		if(this.status)
			sStatus = "yes";
		var sLeft = "";
		if(this.left)
			sLeft = "dialogLeft:" + this.left.toString() + "px;";
		var sTop = "";
		if(this.top)
			sTop = "dialogTop:" + this.top.toString() + "px;";
		var retWnd = null;
		retWnd = window;
		if(this.topWnd)
		{
			retWnd = top.window;
		}
		try
		{
			retWnd = retWnd.showModelessDialog(this.url, this.args, "DialogHeight:" + this.height.toString() + "px;DialogWidth:" + this.width.toString() + "px;status:" + sStatus + ";scroll:no;help:" + sHelp + ";resizable:" + sResizeAble + ";" + sTop + sLeft);
		}
		catch(e)
		{
			alert("Content Studio uses modal and modeless windows.\nPlease disable the popup blocker for this site!");
			return null;
		}
		if(this.posCookie && retWnd != null)
		{
				setWindowUnload(retWnd, function ()
				{
					setCookieColl("ContentStudio", retWnd.dialogWidth + "," + retWnd.dialogHeight + "," + (retWnd.screenLeft - 4) + "px," + (retWnd.screenTop - 30) + "px", "WebitorSize");
				});
			
		}
		return retWnd;
	}
	return oWnd;
}
	function getXHTML(oBody)
	{
		if(!oBody)
			return null;
		var htmlWriter = null;
		var atrs = null;
		try
		{
			try
			{
				htmlWriter = new ActiveXObject("MSXML2.MXXMLWriter.6.0");
				atrs = new ActiveXObject("MSXML2.SAXAttributes.6.0");
			}
			catch(ex)
			{
				htmlWriter = new ActiveXObject("MSXML2.MXXMLWriter.3.0");
				atrs = new ActiveXObject("MSXML2.SAXAttributes.3.0");
			}
		}
		catch(e)
		{
			alert("Content Studio requires the following addons to be enabled in order to work.\n\nMSXML3 MXXMLWriter\nMSXML3 SAXAttributes\nDialog helper.\n\nThese addons are by default disabled in the internet zone in Internet Explorer 7.\nYou can either enable each one of them or add this address to the local intranet zone.");
			return null;
		}
		htmlWriter.omitXMLDeclaration = true;
		htmlWriter.startDocument();
		var attrColl = oBody.attributes;
		var indent = 0;
		var l = attrColl.length
		var tagNameRe = /^(?:inputvalue|inputtype|textareacols|textarearows|imgalt|bodyonload|bodyonunload|bodyonbeforeunload|bodyonresize|bodyonfocus|bodyonblur|buttontype|areashape|areacoords|optionselected)$/;
		var csSpecificRe = /^(?:cstitle|email|minlength|required|personalid|integer|friendlyname|elementtarget|elementimage|elementurl|keywords|lessthen|morethen|not|cspublishdate|csarchivedate|introduction|noneept)$/;
		var inlineRe = new RegExp("^(?:" + getInlineRe().toLowerCase() + ")$");
		var forceIndentRe = /^(?:tr|tbody|thead|colgroup|thead|table|ul|ol|tfoot|dl|dd|menu)$/;
		
		var oColl = oBody.childNodes;
		var l = oColl.length;
		
		for(var i=0;i<l;i++)
			appendHTMLNode(htmlWriter, atrs, oColl[i], tagNameRe, csSpecificRe, indent, inlineRe, forceIndentRe);
		
		htmlWriter.endDocument();
		htmlWriter.flush();
		return htmlWriter.output.replace(/CS_Unique012345655/g, "").replace(/\xA0/g, "&nbsp;").replace(/\xAD/g, "&shy;");
	}
	function appendHTMLAttribute(oEl, atrs, attr, tagName, tagNameRe, csSpecificRe, forceIndentRe, forceIndentRe)
	{
		var sName = attr.nodeName;
		var bTest = false;
		var bSpec = attr.specified;
		if(!bSpec)
			bTest = tagNameRe.test(tagName + sName);
		if(!bSpec && !bTest)
			return;
		sName = sName.toLowerCase();
		
		if(Strict && tagName == "ul" && sName == "type")
			return;
		
		if(sName == "designtimeurl" || sName == "designtimesp")
			return;
		
		if(sName.indexOf(":") != -1 && sName.indexOf("xml:") == -1)
			return;
		
		var sValue = attr.nodeValue;
		
		if(XHTML11)
		{
			if(sName == "lang")
			{
				if(oEl.getAttribute("xml:lang"))
					return;
				sName = "xml:lang";
			}
			if(tagName == "a" && sName == "name")
				sName = "id";
		}
		
		if(bTest && sValue == null)
		{
			sValue = eval("oEl." + attr.nodeName);
			
		}
		if(sValue == null)
			return;
		
		var bCSSpecific = csSpecificRe.test(sName);
		
		if((sName == "src" || sName == "href") && oEl.DESIGNTIMEURL)
		{
			sValue = oEl.DESIGNTIMEURL;
		}
		var sTypeOf = typeof(sValue);
		if(sTypeOf == "boolean")
		{
			if(!sValue)
				return;
			sValue = sName;
		}
		else if(sTypeOf != "string")
			sValue = sValue.toString();
		
		try
		{
			atrs.addAttribute("", "", sName, "", sValue);
		}
		catch(e)
		{
			if(sName == "alt")
				atrs.addAttribute("", "", sName, "", "");
			if(bCSSpecific)
			{
				atrs.addAttribute("", "", sName, "", "1");
			}
			//alert(sValue);
		}
	}
	function appendHTMLNode(htmlWriter, atrs, oEl, tagNameRe, csSpecificRe, indent, inlineRe, forceIndentRe)
	{
		if(oEl.nodeType == 1)
		{
			var attrColl = oEl.attributes;
			var nodeName = oEl.nodeName.toLowerCase();
			var render = true;
			if(oEl.scopeName != "HTML")
			{
				if(oEl.scopeName != "cs")
				{
					render = false;
				}
				nodeName = oEl.scopeName + ":" + nodeName;
			}
			if(nodeName == "")
				return;
			if(nodeName.indexOf("/") == 0)
			{
				nodeName = nodeName.substring(1);
				if(nodeName == "abbr")
					htmlWriter.endElement("", "", nodeName);
				return;
			}
			if(render && attrColl != null)
			{
				atrs.clear();
				var l = attrColl.length
				for(var i=0;i<l;i++)
					appendHTMLAttribute(oEl, atrs, attrColl[i], nodeName, tagNameRe, csSpecificRe);
			}
			if(render)
			{
				try
				{
					var sStyle = oEl.style.cssText;
					if(sStyle.length != 0)
					{
						atrs.addAttribute("", "", "style", "", sStyle);
					}
				}
				catch(e)
				{
				
				}
			}
			var oColl = oEl.childNodes;
			var l = oColl.length;
			var bTest = !inlineRe.test(nodeName);
			if(render && bTest)
			{
				htmlWriter.characters("\n");
				for(var i=0;i<indent;i++)
				{
					htmlWriter.characters("    ");
				}
				indent++;
			}
			if(render)
				htmlWriter.startElement("", "", nodeName, atrs);
			var canHaveChildren = oEl.canHaveChildren;
			
			if(canHaveChildren && l == 0)
			{
				var oSel = null;
				try
				{
					oSel = document.body.createTextRange();
					oSel.moveToElementText(oEl);
				}
				catch(e)
				{
					oSel = null;
				}
				if(oSel != null && oSel.htmlText.indexOf("&nbsp;") != -1)
				{
					htmlWriter.disableOutputEscaping = true;
					htmlWriter.characters("&nbsp;");
					htmlWriter.disableOutputEscaping = false;
				}
				else
				{
					htmlWriter.characters("CS_Unique012345655");
				}
			}
			if((nodeName == "iframe" || nodeName == "object") && l==0)
				htmlWriter.characters("CS_Unique012345655");
			if(nodeName == "script")
			{
				htmlWriter.disableOutputEscaping = true;
				var s = oEl.text;
				if(s.length != 0)
					htmlWriter.characters(s);
				else
					htmlWriter.characters("CS_Unique012345655");
				htmlWriter.disableOutputEscaping = false;
			}
			if(nodeName == "style")
			{
				htmlWriter.disableOutputEscaping = true;
				var s = oEl.innerHTML;
				if(s.length != 0)
					htmlWriter.characters(s);
				else
					htmlWriter.characters("CS_Unique012345655");
				
				htmlWriter.disableOutputEscaping = false;
			}
			for(var i=0;i<l;i++)
				appendHTMLNode(htmlWriter, atrs, oColl[i], tagNameRe, csSpecificRe, indent, inlineRe, forceIndentRe);
			
			bTest = forceIndentRe.test(nodeName);	
			if(bTest)
			{
				indent--;
				htmlWriter.characters("\n");
				for(var i=0;i<indent;i++)
				{
					htmlWriter.characters("    ");
				}
			}
			if(render && (nodeName != "abbr" || canHaveChildren))
				htmlWriter.endElement("", "", nodeName);
		}
		else if(oEl.nodeType == 3)
		{
			htmlWriter.characters(oEl.data);
		}
		else if(oEl.nodeType == 9)
		{
			htmlWriter.disableOutputEscaping = true;
			htmlWriter.characters(oEl.outerHTML);
			htmlWriter.disableOutputEscaping = false;
		}
		else if(oEl.nodeType == 8)
		{
			htmlWriter.disableOutputEscaping = true;
			htmlWriter.characters(oEl.outerHTML);
			htmlWriter.disableOutputEscaping = false;
		}
		else
			alert(oEl.nodeType);
	}
	function getInlineRe()
	{
		var fontstyle = "TT|I|B|U|S|STRIKE|BIG|SMALL";
		var phrase = "EM|STRONG|DFN|CODE|SAMP|KBD|VAR|CITE|ABBR|ACRONYM";
		var special = "A|IMG|APPLET|OBJECT|FONT|BASEFONT|BR|SCRIPT|MAP|Q|SUB|SUP|SPAN|BDO|IFRAME";
		var formctrl = "INPUT|SELECT|TEXTAREA|LABEL|BUTTON";
		var csspec = "activescript|cs:activescript|:";
		return fontstyle + "|" + phrase + "|" + special + "|" + formctrl + "|" + csspec;
	}
	function fixWrongHTML(oBody)
	{
		var inline = getInlineRe();
		var found = false;
		if(fixWrongElement(oBody, "P", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "H1", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "H2", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "H3", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "H4", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "H5", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "H6", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "SPAN", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "FONT", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "A", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "LABEL", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "EM", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "STRONG", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "I", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "B", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "STRIKE", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "U", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "Q", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "ABBR", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "ACRONYM", "|" + inline + "|"))
			found = true;
		if(fixWrongElement(oBody, "CITE", "|" + inline + "|"))
			found = true;
		
		if(found)
			fixWrongHTML(oBody);
		
		var oColl = document.getElementsByTagName("TABLE");
		var l = oColl.length;
		for(var i=0;i<l;i++)
			removeHeight(oColl[i]);
		
		var oColl = document.getElementsByTagName("TR");
		var l = oColl.length;
		for(var i=0;i<l;i++)
		{
			removeHeight(oColl[i]);
			removeWidth(oColl[i]);
		}
		
		var oColl = document.getElementsByTagName("UL");
		var l = oColl.length;
		for(var i=0;i<l;i++)
			fixListItem(oColl[i]);
			
			
		var oColl = document.getElementsByTagName("OL");
		var l = oColl.length;
		for(var i=0;i<l;i++)
			fixListItem(oColl[i]);
		
		var oColl = document.getElementsByTagName("DIR");
		var l = oColl.length;
		for(var i=0;i<l;i++)
			fixListItem(oColl[i]);
		
		var oColl = document.getElementsByTagName("MENU");
		var l = oColl.length;
		for(var i=0;i<l;i++)
			fixListItem(oColl[i]);
		
		if(Strict)
		{
			
			clearTextNodes(oBody, "|" + inline + "|");
			var oColl = document.getElementsByTagName("FORM");
			var l = oColl.length;
			for(var i=0;i<l;i++)
				clearTextNodes(oColl[i], "|" + inline + "|");
				
			var oColl = document.getElementsByTagName("BLOCKQUOTE");
			var l = oColl.length;
			for(var i=0;i<l;i++)
				clearTextNodes(oColl[i], "|" + inline + "|");
			
			
			var oColl = document.getElementsByTagName("TABLE");
			var l = oColl.length;
			for(var i=0;i<l;i++)
				removeAlign(oColl[i]);
				
			var oColl = document.getElementsByTagName("TD");
			var l = oColl.length;
			for(var i=0;i<l;i++)
			{
				removeHeight(oColl[i]);
				removeWidth(oColl[i]);
			}
			
			var oColl = document.getElementsByTagName("TH");
			var l = oColl.length;
			for(var i=0;i<l;i++)
			{
				removeHeight(oColl[i]);
				removeWidth(oColl[i]);
			}
			
			var oColl = document.getElementsByTagName("DIV");
			var l = oColl.length;
			for(var i=0;i<l;i++)
				removeAlign(oColl[i]);
			
			var oColl = document.getElementsByTagName("IMG");
			var l = oColl.length;
			for(var i=0;i<l;i++)
				removeAlign(oColl[i]);
			
			var oColl = document.getElementsByTagName("P");
			var l = oColl.length;
			for(var i=0;i<l;i++)
				removeAlign(oColl[i]);
			
			var oColl = document.getElementsByTagName("BR");
			var l = oColl.length;
			for(var i=0;i<l;i++)
				removeClear(oColl[i]);
			
			var oColl = document.getElementsByTagName("A");
			var l = oColl.length;
			for(var i=0;i<l;i++)
				removeTarget(oColl[i]);
			
			var oColl = document.getElementsByTagName("LI");
			var l = oColl.length;
			for(var i=0;i<l;i++)
				removeType(oColl[i]);
			
			var oColl = document.getElementsByTagName("OL");
			var l = oColl.length;
			for(var i=0;i<l;i++)
				removeType(oColl[i]);
			
			var oColl = document.getElementsByTagName("UL");
			var l = oColl.length;
			for(var i=0;i<l;i++)
				removeType(oColl[i]);
			
			var oColl = document.getElementsByTagName("FONT");
			var l = oColl.length;
			for(var i=l-1;i>-1;i--)
			{
				var oFont = oColl[i];
				if(!oFont.style.cssText && !oFont.face && !oFont.face && !oFont.size && !oFont.color)
				{
					oFont.removeNode(false);
				}
				else
				{
					var oSpan = document.createElement("SPAN");
					if(oFont.style.cssText)
						oSpan.style.cssText = oFont.style.cssText;
					if(oFont.face)
						oSpan.style.fontFamily = oFont.face;
					if(oFont.size)
					{
						switch(parseInt(oFont.size))
						{
							case 1:
								oSpan.style.fontSize = "x-small";
							break;
							case 2:
								oSpan.style.fontSize = "small";
							break;
							case 3:
								oSpan.style.fontSize = "medium";
							break;
							case 4:
								oSpan.style.fontSize = "large";
							break;
							case 5:
								oSpan.style.fontSize = "x-large";
							break;
							case 6:
								oSpan.style.fontSize = "xx-large";
							break;
							case 7:
								oSpan.style.fontSize = "xx-large";
							break;
						}
					}
					if(oFont.color)
						oSpan.style.color = oFont.color;
					oSpan.innerHTML = oFont.innerHTML;
					oFont.replaceNode(oSpan);
				}
			}
			var oColl = document.getElementsByTagName("U");
			var l = oColl.length;
			for(var i=l-1;i>-1;i--)
			{
				var oU = oColl[i];
				var oSpan = document.createElement("SPAN");
				oSpan.innerHTML = oU.innerHTML;
				oSpan.className = "CS_UnderLine";
				oU.replaceNode(oSpan);
			}
			
		}
	}
	function fixListItem(oEl)
	{
		var childNodes = oEl.children;
		var l = childNodes.length;
		for(var j=l-1;j>-1;j--)
		{
			var oChild = childNodes[j];
			if(oChild.tagName != "LI")
			{
				if(oChild.previousSibling && oChild.previousSibling.tagName == "LI")
					oChild.previousSibling.appendChild(oChild);
				else
				{
					var oNewEl = document.createElement("LI");
					oNewEl.innerHTML = oChild.outerHTML;
					oChild.replaceNode(oNewEl);
				}
			}
		}
		if(l == 0)
		{
			var oNewEl = document.createElement("LI");
			oEl.appendChild(oNewEl);
		}
	}
	function removeHeight(oEl)
	{
		try
		{
			var oAttr = oEl.getAttributeNode("height");
			if(oAttr.specified)
			{
				if(!oEl.style.height)
				{
					if(oAttr.nodeValue.indexOf("%") != -1)
						oEl.style.height = oAttr.nodeValue;
					else
						oEl.style.height = oAttr.nodeValue + "px";
				}
				oEl.removeAttribute("height");
			}
		}
		catch(e)
		{
		
		}
	}
	function removeWidth(oEl)
	{
		try
		{
			var oAttr = oEl.getAttributeNode("width");
			if(oAttr.specified)
			{
				if(!oEl.style.width)
				{
					if(oAttr.nodeValue.indexOf("%") != -1)
						oEl.style.width = oAttr.nodeValue;
					else
						oEl.style.width = oAttr.nodeValue + "px";
				}
				oEl.removeAttribute("width");
			}
		}
		catch(e)
		{
		
		}
	}
	function removeAlign(oEl)
	{
		try
		{
			var oAttr = oEl.getAttributeNode("align");
			if(oAttr.specified)
			{
				if(!oEl.style.textAlign)
					oEl.style.textAlign = oAttr.nodeValue;
				oEl.removeAttribute("align");
			}
		}
		catch(e)
		{
		
		}
	}
	function removeClear(oEl)
	{
		try
		{
			var oAttr = oEl.getAttributeNode("clear");
			if(oAttr.specified)
			{
				
				if(!oEl.style.clear)
				{
					var sValue = oAttr.nodeValue;
					if(sValue == "all")
						sValue = "both";
					oEl.style.clear = sValue;
				}
				oEl.removeAttribute("clear");
			}
		}
		catch(e)
		{
		
		}
	}
	function removeTarget(oEl)
	{
		try
		{
			var oAttr = oEl.getAttributeNode("target");
			if(oAttr.specified)
			{
				oEl.setAttribute("onclick", "return CSF_OpenWindow(this, \"" + oAttr.nodeValue + "\");");
				oEl.removeAttribute("target");
			}
		}
		catch(e)
		{
		
		}
	}
	function removeType(oEl)
	{
		try
		{
			var oAttr = oEl.getAttributeNode("type");
			if(oAttr.specified)
			{
				if(!oEl.style.listStyleType)
				{
					switch(oAttr.nodeValue)
					{
						case "1":
							oEl.style.listStyleType = "decimal";
						break;
						case "a":
							oEl.style.listStyleType = "lower-alpha";
						break;
						case "A":
							oEl.style.listStyleType = "upper-alpha";
						break;
						case "i":
							oEl.style.listStyleType = "lower-roman";
						break;
						case "I":
							oEl.style.listStyleType = "upper-roman";
						break;
						case "disc":
							oEl.style.listStyleType = "disc";
						break;
						case "circle":
							oEl.style.listStyleType = "circle";
						break;
						case "square":
							oEl.style.listStyleType = "square";
						break;
					}
				}
				oEl.removeAttribute("type");
			}
		}
		catch(e)
		{
			
		}
	}
	function clearTextNodes(oEl, inline)
	{
		var oColl = oEl.childNodes;
		var l = oColl.length;
		for(var i=0;i<l;i++)
		{
			var oNode = oColl[i];
			if(oNode.nodeType == 1)
			{
				if(inline.indexOf("|" + oNode.nodeName + "|") > -1)
				{
					var doClear = true;
					if(oNode.nodeName == "activescript")
					{
						
						var oXML = oNode.getElementsByTagName("XML")[0];
						if(oXML)
						{
							var node = oXML.XMLDocument.selectSingleNode("//CSSCRIPT[@content='inline']");
							
							if(!node)
								doClear = false;
						}
						else
						{
							doClear = false;
						}
					}
					if(doClear)
					{
						if((oNode.previousSibling && oNode.previousSibling.nodeName == "P") || (oNode.nextSibling && oNode.nextSibling.nodeName == "P"))
							var oBlock = document.createElement("P");
						else
							var oBlock = document.createElement("DIV");
						oNode.applyElement(oBlock, "outside");
					}
				}
			}
			else if(oNode.nodeType == 3)
			{
				
				var s = oNode.data.trim();
				
				if(s.length > 0)
				{
					if((oNode.previousSibling && oNode.previousSibling.nodeName == "P") || (oNode.nextSibling && oNode.nextSibling.nodeName == "P"))
						var oBlock = document.createElement("P");
					else
						var oBlock = document.createElement("DIV");
					oEl.insertBefore(oBlock, oNode);
					oBlock.appendChild(oNode);
				}
			}
			
		}
	}
	function fixWrongElement(oBody, sourceElement, rightElements)
	{
		var oColl = oBody.getElementsByTagName(sourceElement);
		var re = /(\s|\>)/;
		var found = false;
		for(var i=oColl.length-1;i>-1;i--)
		{
			var oEl = oColl[i];
			if((sourceElement != "SPAN" && sourceElement != "activescript") || !oEl.cstype)
			{
				var children = oEl.childNodes;
				
				for(var j=children.length-1;j>-1;j--)
				{
					var oChildEl = children[j];
					
					if(oChildEl.nodeType == 1)
					{
						var forceBreak = false;
						var tagName = oChildEl.tagName;
						var sScopeName = oChildEl.scopeName;
						if(sScopeName != "HTML" && sScopeName != "cs")
							tagName = ":";
						if(tagName.indexOf("/") == -1)
						{
							if((tagName == "SPAN" || tagName == "activescript") && oChildEl.cstype)
							{
								var xmlColl = oChildEl.getElementsByTagName("XML");
								var oXML = xmlColl[0];
								if(oXML && (oXML = oXML.firstChild) && (oXML = oXML.firstChild) && oXML.getAttribute("content") == "block")
									forceBreak = true;
							}
							if(forceBreak || rightElements.indexOf("|" + tagName + "|") == -1)
							{
								var oNewEl = document.createComment("CS_Comment_Wrong" + sourceElement);
								oChildEl.insertAdjacentElement("beforeBegin", oNewEl);
								var outerHTML = oEl.outerHTML.trim();
								var l = outerHTML.search(re);
								var sAttribs = outerHTML.substring(l, outerHTML.indexOf(">"));
								oNewEl = document.createComment("/CS_Comment_Wrong" + sourceElement + "{" + sAttribs + "}");
								oChildEl.insertAdjacentElement("afterEnd", oNewEl);
								found = true;
							}
						}
					}
				}
			}
		}
		
		if(found)
		{
			var sHTML = oBody.innerHTML;
			var re = /\<\!--CS\_Comment\_Wrong(\w+)--\>/g;
			sHTML = sHTML.replace(re, "</$1>");
			re = /\<\!--\/CS\_Comment\_Wrong(\w+){([\s\S]*?)}--\>/g;
			sHTML = sHTML.replace(re, "<$1$2>");
			oBody.innerHTML = sHTML;
		}
		return found;
	}
function applyFunctionOnWindow(oWnd, pFunc)
{
	pFunc();
	applyFunctionOnWindowTimeout(oWnd, pFunc);
}
function applyFunctionOnWindowTimeout(oWnd, pFunc)
{
	try
	{
		var oDoc = oWnd.document;
	}
	catch (e)
	{
		return;
	}
	try
	{
		if (oDoc.readyState != "loading")
		{
			try
			{
				pFunc();
			}
			catch (e)
			{
			}
			return;
		}
	}
	catch (e)
	{
	}
	window.setTimeout(function()
	{
		applyFunctionOnWindowTimeout(oWnd, pFunc)
	}, 100);
}
function setWindowUnload(oWnd, pFunc)
{
	applyFunctionOnWindow(oWnd, function()
	{
		oWnd.attachEvent("onunload", pFunc);
	});
}
