/* HABYeditor2008F 2008.03.15(V2.0) */
/* type : 8P5DEPHKXH                */
/*                                  */
/* homepage:                        */
/*        http://www.hayaroby.net   */
/*                                  */
/* e-mail:                          */
/*              help@hayaroby.net   */
/*          demagogy@edunet4u.net   */
/*                                  */
/************************************/

	var _eVersion    = 'HABYeditor2008F.11.6(v2.0)';

	var _IsMSIE      = (navigator.userAgent.indexOf('MSIE') > -1)   ? true : false; /* ie      */
	var _IsGecko     = (navigator.userAgent.indexOf('Gecko') > -1)  ? true : false; /* firefox */
	var _IsOpera     = (navigator.userAgent.indexOf('Opera') > -1)  ? true : false; /* opera   */
	var _IsSafari    = (navigator.userAgent.indexOf('Safari') > -1) ? true : false; /* safari  */

	var _eArrPopup   = new Array(); /* fireFox, opera */
	var _eOpenWindow = new Array(); /* fireFox, opera */
	var _eInnerMedia = new Object(); /* upload media   */

	var _eBasePath   = (document.getElementsByTagName('SCRIPT')['HABYEditor'].src) ? document.getElementsByTagName('SCRIPT')['HABYEditor'].src : null;

	if(_eBasePath)
	{
		 _eBasePath = _eBasePath.substring(0, _eBasePath.lastIndexOf('/'));
	}

	function _Include(srcUrl)
	{
		document.write('<script type="text/javascript" src="' + srcUrl + '"><\/script>');
	};

	_Include(_eBasePath + '/conf/setdomain.conf.js');
	_Include(_eBasePath + '/conf/setconfig.conf.js');

/* editor exec */

	var HABYExec = new Object();

	HABYExec.Editor = new Object();

/* toggle editing mode */

	HABYExec.Mode = function (eId, mode)
	{
		var __eTextarea = document.getElementsByTagName('TEXTAREA')[eId];
		var __eFrame    = document.getElementsByTagName('IFRAME')[eId + '_HABYEditor'];

		var exec = HABYExec.Editor[eId];

		if(mode == 0 || __eTextarea.style.display == 'none')
		{
			__eTextarea.value         = exec.getHTMLContent();
			__eFrame.style.display    = 'none';
			__eTextarea.style.display = '';
		}
		else
		{
			if(exec.__eDesign.style.display == 'none')
			{
				exec.__eHtml.value = __eTextarea.value;
			}
			else
			{
				exec.__eDoc.body.innerHTML = _TEXTtoHTML(__eTextarea.value, exec.__cfg.IconsPath, exec.__cfg.RelativeURL);
			}

			if(exec.__cfg.ToggleHtmlId && document.getElementById(exec.__cfg.ToggleHtmlId))
			{
				var __checkbox = document.getElementById(exec.__cfg.ToggleHtmlId);

				__checkbox.value = exec.__cfg.ToggleHtmlOn;

				if(__checkbox.type && __checkbox.type.toLowerCase() == 'checkbox')
				{
					__checkbox.checked = true;
				}
			}

			exec.updateImage();

			__eFrame.style.display    = '';
			__eTextarea.style.display = 'none';
		}
	};

/* getcontent */

	HABYExec.GetContent = function (eId, html)
	{
		if(html)
		{
			return HABYExec.Editor[eId].getHTMLContent();
		}
		else
		{
			return HABYExec.Editor[eId].getTextContent();
		}
	};

/* savecontent */

	HABYExec.SaveContent = function ()
	{
		for(var eId in HABYExec.Editor)
		{
			var exec = HABYExec.Editor[eId];

			exec.saveContent();
		}
	};

/* editor class */

	var HABYeditor = function(eId)
	{
		this.__eId     = eId;
		this.setConfig = new Object();
	};

/* create */

	HABYeditor.prototype.Create = function ()
	{
		var __eTextarea = document.getElementsByTagName('TEXTAREA')[this.__eId];

		if(__eTextarea)
		{
			__eTextarea.cfg           = new HABYconfig(this.__eId, this.setConfig);
			__eTextarea.style.display = 'none';
		}
		else
		{
			return;
		}

		if(_eBasePath && this.isCompatible())
		{
			/* editor config */
			this.__cfg = __eTextarea.cfg;

			/* editor stylesheet */
			var __style = '<link href="' + this.__cfg.StylePath + this.__cfg.MainStyle +'" rel="stylesheet" type="text/css" />';

			/* editor ifrmae */
			var __frame = '<iframe id="' + this.__eId + '_HABYEditor" name="' + this.__eId + '_HABYEditor" src="' + _eBasePath + '/htmlarea/habyeditor.htm?id=' + this.__eId + '&lang=' + this.__cfg.Language + '" width="' + this.__cfg.Width + '" height="' + this.__cfg.Height + '" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="z-index:' + this.__cfg.BoxIndex + ';"></iframe>';

			/* editor replace */
			if(__eTextarea.insertAdjacentHTML)	/* IE      */
			{
				__eTextarea.insertAdjacentHTML('beforeBegin', __style);
				__eTextarea.insertAdjacentHTML('beforeBegin', __frame);
			}
			else		/* FireFox */
			{
				var __range = document.createRange();
				__range.setStartBefore(__eTextarea);

				var __frag = __range.createContextualFragment(__style);
				__eTextarea.parentNode.insertBefore(__frag, __eTextarea);

				__frag = __range.createContextualFragment(__frame);
				__eTextarea.parentNode.insertBefore(__frag, __eTextarea);

			}
		}

		this.checkHTML();
	};


/* toggle html mode */

	HABYeditor.prototype.checkHTML = function ()
	{
		if(this.__cfg.ToggleHtmlId && document.getElementById(this.__cfg.ToggleHtmlId))
		{
			var __checkbox = document.getElementById(this.__cfg.ToggleHtmlId);

			__checkbox.value = this.__cfg.ToggleHtmlOn;

			if(__checkbox.type && __checkbox.type.toLowerCase() == 'checkbox')
			{
				__checkbox.checked = true;
			}
		}
	};

/* compatible */

	HABYeditor.prototype.isCompatible = function()
	{
		if(typeof(document.execCommand) == 'undefined')
		{
			return false;
		}

		if(_IsMSIE)
		{
			if(navigator.appVersion.match(/MSIE (.\..)/)[1] >= 6.0)
			{
				return true;
			}
		}

		if(_IsGecko && !_IsSafari)
		{
			if(navigator.productSub >= 20030101)
			{
				return true;
			}
		}

		if(_IsOpera)
		{
			if(navigator.appVersion.split(' (')[0] >= 9.00)
			{
				return true;
			}
		}

		if(_IsSafari)
		{
			return true;
		}

		return false;
	};

