﻿// JScript File
var Modules
function formatbutton(e)
{
	if (!e) var e = window.event;
	var action = e.type;
	//debug(action);
	if (e.srcElement) var element = e.srcElement
	else if (e.target) var element = e.target
	//debug(element);
	element.className = "btn_"+action;
}
function debug(strText)
{
    if (!document.getElementById("debugTxt"))
    {
       var oDebug = document.createElement("<TEXTAREA id='debugTxt' cols='100' rows='20' style='display:none;'>DEBUG:</TEXTAREA>");
       document.body.appendChild(oDebug);
     
    }
      document.getElementById("debugTxt").value += '\n' + strText;
}
function notSaved()
{
if (Modules){
alert('Your changes will not  be saved.');
}
}
function attachEvents()
{
//debug("Called");
moduleID = window.event.srcElement.id;
document.getElementById(moduleID).attachEvent('onkeypress',edit);
document.getElementById(moduleID).attachEvent('oncut',edit);
document.getElementById(moduleID).attachEvent('onpaste',edit);
document.getElementById(moduleID).detachEvent('onfocus',attachEvents);
document.getElementById(moduleID).onfocus=null;

}

function edit(oModule)
{
//debug(window.onunload);
//debug('firing')
moduleID = oModule.srcElement.id;
document.getElementById(moduleID).detachEvent('onkeypress',edit);
document.getElementById(moduleID).detachEvent('oncut',edit);
document.getElementById(moduleID).detachEvent('onpaste',edit);

if (Modules==undefined){
Modules = new Array(1);
Modules[0] = moduleID;
document.title = '*'+ document.title;

if (window.onunload !='')window.attachEvent('onunload',notSaved);
}
else
{
var isThere = false
for (Module in Modules)
	{
	//debug(Modules[Module]==moduleID);
	if (Modules[Module] == moduleID)
		{
		var isThere = true;
		break;	
		}
	}
	if (!isThere)
	{
	 Modules[Modules.length] = moduleID;
	}
}
}

function exec(cmd,opt)
{
	//debug(LastModuleID);
	//document.execCommand('ForeColor',null,'#ff0000');
	debug(cmd);
	debug(opt);
	debug(document.getElementById(ModuleID));
	try{
		switch (cmd)
		{

			default:	var ModuleID = Modules[0]
						var oModule	= document.getElementById(ModuleID);
						var Type	= oModule.getAttribute('type');
		}
	}
	catch(err)
	{
	    try
	    {
	        debug("looking for a range");
	        var selection = document.selection;
            var range = selection.createRange();
            var oElement = range.parentElement();
	        debug("found an :"+oElement.tagName);
	       
	        //fetchcontainingdiv(oElement)
	              
	       
	    } 
	    catch(err)
	    {
	     alert('No Modules have been edited/selected since your last save!\nYou need to select a module before trying to execute a command.')
        return null;
	    }	
	}
	
	//var view = document.getElementById(Window).getAttribute('view');
	//if (view=='html')
	//{
	//EditWindow = document.getElementById(Window)
	Stamp = new Date();
		switch(cmd)
		{
			case 'save': 
			                if (!document.getElementById('updater'))
			                {
			                    var updater = document.createElement("<iframe id='updater' style='display:none;'></iframe>");
                                document.body.appendChild(updater);
			                }
			                debug('Type = ' + Type);
			                switch(Type)
							{
							case 'text'		: document.getElementById('updater').src = '/_cms/_update/update_module.asp?';break;
							default: debug('Error no type!');break;
						   	}
						   	break;
	
			case 'addpage':	    showModalDialog('/admin/dialogs/add_page.asp?now='+Stamp,document, 'dialogWidth:700px;dialogHeight:600px;scroll:no; status:no;help:no;');refresh();break;
			case 'delpage':	    showModalDialog('/admin/dialogs/del_page.asp?now='+Stamp,document, 'dialogWidth:700px;dialogHeight:300px;scroll:no; status:no;help:no;');refresh();break;
			case 'movepage':	showModalDialog('/admin/dialogs/move_page.asp?now='+Stamp,document, 'dialogWidth:700px;dialogHeight:300px;scroll:no; status:no;help:no;');refresh();break;
			case 'hidepage':	showModalDialog('/admin/dialogs/hide_page.asp?now='+Stamp,document, 'dialogWidth:700px;dialogHeight:300px;scroll:no; status:no;help:no;');refresh();break;
			case 'showpage':	showModalDialog('/admin/dialogs/show_page.asp?now='+Stamp,document, 'dialogWidth:700px;dialogHeight:300px;scroll:no; status:no;help:no;');refresh();break;			   	
						   	
						   	
			case 'createimage':
							
							var Middles
							var myObject = new Object();

							Middles = Modules[Modules.length-1]
							Middeh = document.getElementById(Middles)
							myObject.moo = Middeh
							myObject.moop = document
							

							cimage = showModalDialog('/admin/dialogs/insert_image.asp?now='+Stamp,myObject, 'dialogWidth:700px;dialogHeight:500px;scroll:no; status:no;help:no;');
							if (cimage)
							{
								cimage = cimage.split("¬");
								//alert(cimage[0])
								if ((cimage[0].toLowerCase() != 'none') && (cimage[0] != ''))
								{
									NewHyperlink = document.createElement(cimage[0]);
									NewImage = document.createElement(cimage[1]);
									NewHyperlink.appendChild(NewImage);
									Middeh.appendChild(NewHyperlink);
								}
								else
								{
									NewImage = document.createElement(cimage[1]);
									Middeh.appendChild(NewImage);
								}
								
								
								
							}
							
							break;
			case 'removeparent':
							var sText = document.selection.createRange();
							sParent = sText.parentElement();
							
							if (sParent.tagName == "P")
							{
								

								sParentText = sParent.innerHTML;


								NewChild = "<mid>"+sParentText+"</mid>";
								//debug(NewChild);
								InsertChild = document.createElement(NewChild);

								ParentParent = sParent.parentElement;
								ParentParent.removeChild(sParent);
								//TNode = document.createTextNode(escape(sParentText));
								sText.pasteHTML(sParentText)
								//TNode = document.createTextNode(escape(sParentText));
								//debug(sParentText);
								//ParentParent.appendChild(TNode);
								
							}
							else
							{
								alert("Can not remove the parent element of this text");
							}
							//debug(sParent.tagName);
							break;
			case 'download' :
							Stamp = new Date();
							showModalDialog('/admin/dialogs/add_download.asp?now='+Stamp, document, 'dialogWidth:700px;dialogHeight:300px;scroll:no; status:no;help:no;');
							break;

			case 'View':	toggleSource(LastModule);
							break;
			case 'Lock':	toggleMode(LastModule);
							break;
			case 'palette':	//togglePalette(LastModule);
							PosY = event.offsetY;
							PosX = event.offsetX;
							try
							{
							LMode = document.getElementById(Modules[Modules.length-1]);
							}
							catch(err)
							{
							
							}
							togglePalette(PosY,PosX);
							break;	
			case 'Spell':	EditWindow.focus();
							toggleSource(LastModule);
							spell(LastModule);
							break;
			case 'otherstaff'	:window.location.href='/staff/other/addnew/';
			break;
			case 'link':Stamp = new Date();
							showModalDialog('/admin/dialogs/add_link.asp?now='+Stamp, document, 'dialogWidth:700px;dialogHeight:300px;scroll:no; status:no;help:no;');
							break;
			default:
							//if (view == 'source')
							//{
							//	if (confirm('You cannot format the text in source code view. Click OK to Switch to HTML mode?'))
							//	{
							//		toggleSource(LastModule);
							//		break;
							//	}	
							//	else return;
							//}
							//else
							//{
							document.execCommand(cmd,false,opt);
						//}
			
		//}
	}
}	
function togglePalette(Y,X)

{
	//alert(LastModule);
//	alert(Y);
//	alert(X);
	if (document.getElementById('Palette').style.display == "")
	{
	document.getElementById('Palette').style.display = "none";
	} 
	else
	{
	
	//alert(document.getElementById('Palette').style.position);
	//document.getElementById('Palette').style.position = "relative";
	Y -= 8;
	//X += <%=12 * 26%>;
//	alert(X);
	//document.getElementById('Palette').style.top = Y+"px";
	//document.getElementById('Palette').style.left = X+"px";
document.getElementById('Palette').style.display = "";
	
	}
}
