var isOpera = navigator.userAgent.indexOf('Opera') > -1; 
	var isIE = navigator.userAgent.indexOf('MSIE') > 1 && !isOpera; 
	var isMoz = navigator.userAgent.indexOf('Mozilla/5.') == 0 && !isOpera;
		     
    function textboxReplaceSelect (oTextbox, sTextBefore, sTextAfter) 
    { 
    	if (isIE) 
		{ 		
			//oTextbox.focus();
			var oRange = document.selection.createRange();
			if(oRange.text.length == 0) 
			{
				insertAtCaret(oTextbox, sTextBefore + sTextAfter);	
				oTextbox.focus(); 				
				return; 					
			}
			oRange.text = sTextBefore + oRange.text + sTextAfter;			
			oRange.collapse(true); 
			oRange.select();      
			storeCaret(oTextbox);                           
		} 
		else if (isMoz) 
		{ 
			var iStart = oTextbox.selectionStart; 
			var sText = sTextBefore +  oTextbox.value.substring(iStart + 1, oTextbox.selectionEnd - 1) + sTextAfter;
			oTextbox.value = oTextbox.value.substring(0, iStart) + sText + oTextbox.value.substring(oTextbox.selectionEnd, oTextbox.value.length);			
			oTextbox.setSelectionRange(iStart, iStart + sText.length); 
		} 		
	}
	
	function storeCaret(textEl) 
	{
		if (textEl.createTextRange) 
			textEl.caretPos = document.selection.createRange().duplicate();
    }

	function insertAtCaret (textEl, text) 
	{		
       if (textEl.createTextRange && textEl.caretPos) 
       {
			var caretPos = textEl.caretPos;
			caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
       }
       else
          textEl.value += text;
    }
    
    function InsertImageTag(filename)
    {
		if (document.getElementById('txtBody'))
			insertAtCaret(document.getElementById('txtBody'), '[image src="' + filename + '" alt=""]');
		else
			insertAtCaret(document.getElementById('txtDescription'), '[image src="' + filename + '" alt=""][/image]');
    }     
     
    //Intern links 
    function InsertLinkTag(ArticleID, Heading, Type, name)
     {
		var tag = "";
		var oRange = document.selection.createRange();
		if (Type == "html")
		{
			tag = "<a href='ViewArticle.aspx?ArticleID=" + ArticleID + "' target='_self'>";
			if(oRange.text.length == 0) 						
				insertAtCaret(document.getElementById(name), tag + Heading + "</a>");
			else
				textboxReplaceSelect(document.getElementById(name), tag, '</a>');
		}
		else
		{
			tag = "[link articleid=" + ArticleID + "]";
			if(oRange.text.length == 0) 						
				insertAtCaret(document.getElementById(name), tag + Heading + "[/link]");
			else
				textboxReplaceSelect(document.getElementById(name), tag, '[/link]');
		}
									
     }
     
     
     //Extern links
     function InsertExternLinkTag(url, Type, name)
     {     
		var tag = "";
		var oRange = document.selection.createRange();
		if (Type == "html")
		{
			tag = "<a href='" + url + "' target='_blank' class='ReadMoreLink'>";
			if(oRange.text.length > 0) 						
				insertAtCaret(document.getElementById(name), tag + oRange.text + "</a>");
			else
				textboxReplaceSelect(document.getElementById(name), tag + url, '</a>');
		}
		else
		{
			tag = "[link href=" + url + "]";
			if(oRange.text.length > 0) 						
				insertAtCaret(document.getElementById(name), tag + oRange.text + "[/link]");
			else
				textboxReplaceSelect(document.getElementById(name), tag + url, '[/link]');
		}
									
     }
     
     
     function OpenHelp()
     {
		var win = window.open('EditorHelp.aspx', 'popup', 'width=550,height=600,scrollbars=yes');
		win.focus();
     }
     
     
     function ShowCalendar(id)
     {
		var win = window.open('CalendarForm.aspx?id=' + id + '&dt=' + document.getElementById(id).value, 'calendar', 'width=200,height=170,scrollbars=no,toolbar=no');		
     }