/*****************************************/
// Name: Javascript Textarea HTML modules/bbcode/bbcode_editt
// Version: 1.3
// Author: Balakrishnan
// Last Modified Date: 25/Jan/2009
// License: Free
// URL: http://www.corpocrat.com
/******************************************/

var textarea;
var content;
/*
document.write("<link href=\"modules/bbcode/bbcode_edit/styles.css\" rel=\"stylesheet\" type=\"text/css\">");


function BbcodeToolbar(obj) {
   
    document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/text_bold.png\" name=\"btnBold\" onClick=\"addtext('[b][/b]')\">");
    document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/text_italic.png\" name=\"btnItalic\" onClick=\"addtext('[i][/i]')\">");
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/text_underline.png\" name=\"btnUnderline\" onClick=\"addtext('[u][/u]')\">"); 
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/text_strikethrough.png\" name=\"btnstrikethrough\" onClick=\"addtext('[s][/s]')\">");
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/sysline.png\" name=\"sysline\" >");
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/text_align_left.png\" name=\"btnLeft\" onClick=\"addtext('[left][/left])\">");
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/text_align_center.png\" name=\"btncenter\" onClick=\"addtext('[center][/center]')\">");
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/text_align_right.png\" name=\"btnRight\" onClick=\"addtext('[right][/right]')\">");
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/text_align_justify.png\" name=\"btnjustify\" onClick=\"addtext('[justify][/justify]')\">");
	
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/sysline.png\" name=\"sysline\" >");
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/color_swatch.png\" name=\"btnLink\" onclick=\"expandit('col_selector')\" onmouseout=\"help('')\" onmouseover=\"help('Нажмите, чтобы открыть диалог выбора цвета ...')\">");
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/font_size.png\" name=\"btnLink\" onclick=\"expandit('size_selector')\" onmouseout=\"help('')\" onmouseover=\"help('Нажмите, чтобы открыть диалог выбора размера ...')\">");
	

	//onClick=\"doURL('" + obj + "')
	
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/sysline.png\" name=\"sysline\" >");
	
		
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/link2.png\" name=\"btnLink\" onClick=\"doURL('" + obj + "')\">");
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/picture.png\" name=\"btnPicture\" onClick=\"doImage('" + obj + "')\">");
    document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/video.png\" name=\"btnVideo\" onClick=\"doVideo('" + obj + "')\">");
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/sysline.png\" name=\"sysline\" >");
	
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/spoiler.png\" name=\"btnSpoiler\" onClick=\"addtext('[spoiler][/spoiler]')\">"); 
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/quote.png\" name=\"btnQuote\" onClick=\"addtext('[blockquote][/blockquote]')\">"); 
  	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/code.png\" name=\"btnCode\" onClick=\"addtext('[code][/code]')\">");

	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/sysline.png\" name=\"sysline\" >");
	
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/help.png\" name=\"btnHelp\" onClick=\"jQuery.get('modules/bbcode/bbcode_edit/help_bbcode.htm', function(data) { jQuery.facebox('' + data + '') }); \">");
	
	
	
    document.write("<br>");
	
	
	
	
	/**/
	
	
	
	
	
	
	
	
	
	
	
	
	
	/*
	
	
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/help.png\" name=\"btnHelp\" onClick=\"jQuery.get('modules/bbcode/bbcode_edit/help_bbcode.htm', function(data) { jQuery.facebox('' + data + '') }); \">");
	
	/*document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/ordered.gif\" name=\"btnList\" onClick=\"doList('<ol>','</ol>','" + obj + "')\">")
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/unordered.gif\" name=\"btnList\" onClick=\"doList('<ul>','</ul>','" + obj + "')\">");;
	
	VAR FOR FACEBOX document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/help.png\" name=\"btnHelp\" onClick=\"jQuery.get('modules/bbcode/bbcode_edit/help_bbcode.htm', function(data) { jQuery.facebox('' + data + '') }); \">");
	
	VAR FOR COLORBOX document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/help.png\" name=\"btnHelp\" onClick=\"jQuery.get('modules/bbcode/bbcode_edit/help_bbcode.htm', function(data) { jQuery.facebox('' + data + '') }); \">");
	
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/help.png\" name=\"btnHelp\" onClick=\"javascript: $('.colorbox').colorbox({transition:'elastic',   close:'Закрыть', href:'modules/bbcode/bbcode_edit/help_bbcode.htm', open:true}); \">");
	
	
	
	
	document.write("<img class=\"button_wedit\" src=\"modules/bbcode/bbcode_edit/images/help.png\" name=\"btnHelp\" onClick=\"jQuery.get('modules/bbcode/bbcode_edit/help_bbcode.htm', function(data) { jQuery.facebox('' + data + '') }); \">");
	
	
	$(".colorbox_bbcode_help").colorbox({href:"modules/bbcode/bbcode_edit/help_bbcode.htm", open:true});
	
	*/
	
	//document.write("<textarea id=\""+ obj +"\" name = \"" + obj + "\" cols=\"" + width + "\" rows=\"" + height + "\"></textarea>");
	
	/*
		}
		
		*/ // IF FUNCTION BbcodeToolbar HIDED

function doImage(obj)
{
textarea = document.getElementById(obj);
var url = prompt('Адрес к картинке URL:','http://');

var scrollTop = textarea.scrollTop;
var scrollLeft = textarea.scrollLeft;

	if (document.selection) 
			{
				textarea.focus();
				var sel = document.selection.createRange();
				if(sel.text==""){
			     	sel.text = '[img]' + url + '[/img]';
					} else {
					sel.text = '[img=' + sel.text + ']' + sel.text + '[/img]';
					}
				
			}
   else 
    {
		var len = textarea.value.length;
	    var start = textarea.selectionStart;
		var end = textarea.selectionEnd;
		
        var sel = textarea.value.substring(start, end);
	    //alert(sel);
		var rep = '[img]' + url + '[/img]';
        textarea.value =  textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
		textarea.scrollTop = scrollTop;
		textarea.scrollLeft = scrollLeft;
	}

}
















function doURL(obj)
{
var sel;
textarea = document.getElementById(obj);

//jQuery.facebox('<form id="form1" name="form1" method="get" action=""><p><input name="url" type="text"  value="http://" /><br /><input name="urltext" type="text"  value="ссылка" /><br /><input type="button" name="button" onClick="aa" value="Ok" /><br /></form>');



var scrollTop = textarea.scrollTop;
var scrollLeft = textarea.scrollLeft;

	if (document.selection) 
			{
				textarea.focus();
				var sel = document.selection.createRange();
				
				if(sel.text==""){
					var url = prompt('Введите адрес:','http://');
					var urltext = prompt('Введите текст ссылки:','');
			     	
					   if(urltext==""){
						    sel.text = '[url=' + url + ']' + sel.text + '[/url]';
						   } else {
							  sel.text = '[url=' + url + ']' + urltext + '[/url]';  
						   }
						   
						  
					   
					   
					} else {
					sel.text = '[url=http://]' + sel.text + '[/url]';
					}
				//alert(sel.text);
				
			}
   else 
    {
		var len = textarea.value.length;
	    var start = textarea.selectionStart;
		var end = textarea.selectionEnd;
		
		var sel = textarea.value.substring(start, end);
		
		if(sel==""){
		sel=url; 
		} else
		{
        var sel = textarea.value.substring(start, end);
		}
	    //alert(sel);
		
		
		var rep = '[url="' + url + '"]' + sel + '[/url]';;
        textarea.value =  textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
		textarea.scrollTop = scrollTop;
		textarea.scrollLeft = scrollLeft;
	}
}




/*
function doAddTags(tag1,tag2,obj)
{
textarea = document.getElementById(obj);
	// Code for IE
		if (document.selection) 
			{
				textarea.focus();
				var sel = document.selection.createRange();
				//alert(sel.text);
				sel.text = tag1 + sel.text + tag2;
			}
   else 
    {  // Code for Mozilla Firefox
		var len = textarea.value.length;
	    var start = textarea.selectionStart;
		var end = textarea.selectionEnd;
		
		var scrollTop = textarea.scrollTop;
		var scrollLeft = textarea.scrollLeft;
		
        var sel = textarea.value.substring(start, end);
	    //alert(sel);
		var rep = tag1 + sel + tag2;
        textarea.value =  textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
		
		textarea.scrollTop = scrollTop;
		textarea.scrollLeft = scrollLeft;
	}
}

*/




function doList(tag1,tag2,obj){
textarea = document.getElementById(obj);

// Code for IE
		if (document.selection) 
			{
				textarea.focus();
				var sel = document.selection.createRange();
				var list = sel.text.split('\n');
		
				for(i=0;i<list.length;i++) 
				{
				list[i] = '<li>' + list[i] + '</li>';
				}
				//alert(list.join("\n"));
				sel.text = tag1 + '\n' + list.join("\n") + '\n' + tag2;
				
			} else
			// Code for Firefox
			{

		var len = textarea.value.length;
	    var start = textarea.selectionStart;
		var end = textarea.selectionEnd;
		var i;
		
		var scrollTop = textarea.scrollTop;
		var scrollLeft = textarea.scrollLeft;

		
        var sel = textarea.value.substring(start, end);
	    //alert(sel);
		
		var list = sel.split('\n');
		
		for(i=0;i<list.length;i++) 
		{
		list[i] = '<li>' + list[i] + '</li>';
		}
		//alert(list.join("<br>"));
        
		
		var rep = tag1 + '\n' + list.join("\n") + '\n' +tag2;
		textarea.value =  textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
		
		textarea.scrollTop = scrollTop;
		textarea.scrollLeft = scrollLeft;
 }
}






function doVideo(obj)
{
textarea = document.getElementById(obj);
var url = prompt('Адрес к видео URL:','http://');

var scrollTop = textarea.scrollTop;
var scrollLeft = textarea.scrollLeft;

	if (document.selection) 
			{
				textarea.focus();
				var sel = document.selection.createRange();
				if(sel.text==""){
			     	sel.text = '[video]' + url + '[/video]';
					} else {
					sel.text = '[img=' + sel.text + ']' + sel.text + '[/img]';
					}
				
			}
   else 
    {
		var len = textarea.value.length;
	    var start = textarea.selectionStart;
		var end = textarea.selectionEnd;
		
        var sel = textarea.value.substring(start, end);
	    //alert(sel);
		var rep = '[video]' + url + '[/video]';
        textarea.value =  textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
		textarea.scrollTop = scrollTop;
		textarea.scrollLeft = scrollLeft;
	}

}





/* ------------------------------------------------------------------------------------------ */




/////////////FOR BBCODE BUTTONS FROM e107 /////////////////////////

function expandit(curobj, hide) {
	if(document.getElementById(curobj)) {
  		folder=document.getElementById(curobj).style;
	} else {
		if(ns6==1||operaaa==true) {
			folder=curobj.nextSibling.nextSibling.style;
		} else {
			folder=document.all[curobj.sourceIndex+1].style;
		}
   }
	if(folder.display=="none")
	{
		folder.display="";
	} else {
		folder.display="none";
	}
	if(hide) {
		var hide_objects = hide.split(",");
		for(i=0; i<hide_objects.length; i++) {
			hide_objects[i]=hide_objects[i].replace(/^\s*(.*)/, "$1");
			hide_objects[i]=hide_objects[i].replace(/(.*?)\s*$/, "$1");
			if(document.getElementById(hide_objects[i])) {
				hidden=document.getElementById(hide_objects[i]).style;
				if(hidden.display=="") {
					hidden.display="none";
				}
			}
		}
	}
}



////////////////////

function storeCaret (textAr){
	e107_selectedInputArea = textAr;
	/* TODO: @SecretR - Object of removal - not needed anymore
	if (textAr.createTextRange){
		e107_selectedRange = document.selection.createRange().duplicate();
	}*/
}

/**
 * New improved version - fixed scroll to top behaviour when inserting BBcodes
 * @TODO - improve it more (0.8) - Prototype
 */
function addtext(text, emote) {
	
	if (!window.e107_selectedInputArea) {
		return; //[SecretR] TODO - alert the user 
	}
		
	var eField = e107_selectedInputArea;	
	var eSelection 	= false;  
	var tagOpen = '';
	var tagClose = '';
	
	if (emote != true) {  // Split if its a paired bbcode
		var tmp = text.split('][', 2);
		if (tmp[0] == text) {
			tagOpen = text;
		} else {
			tagOpen = tmp[0] + ']';
			tagClose = '[' + tmp[1];
		}
	} else { //Insert Emote
		tagOpen = text;
	}
		

	// Windows user  
	if (document.selection) {
		eSelection = document.selection.createRange().text;
		eField.focus();
		if (eSelection) {
			document.selection.createRange().text = tagOpen + eSelection + tagClose;
		} else {
			document.selection.createRange().text = tagOpen + tagClose;
		}
		
		eSelection = '';
		
		eField.blur();
		eField.focus();
		
		return;
	} 
	
	var scrollPos = eField.scrollTop;
	var selLength = eField.textLength;
	var selStart = eField.selectionStart;
	var selEnd = eField.selectionEnd; 
	if (selEnd <= 2 && typeof(selLength) != 'undefined') {
		selEnd = selLength;
	}
	var sel1 = (eField.value).substring(0,selStart);
	var sel2 = (eField.value).substring(selStart, selEnd);
	var sel3 = (eField.value).substring(selEnd, selLength);

	var newStart = selStart + tagOpen.length + sel2.length + tagClose.length;
	eField.value = sel1 + tagOpen + sel2 + tagClose + sel3;

	eField.focus();
	eField.selectionStart = newStart;
	eField.selectionEnd = newStart;
	eField.scrollTop = scrollPos;
	return;

}








/* ------------------------------------------------------------------------------------------ */



/* ------------------------------------------------------------------------------------------ */

function help(helpstr,tagid){
	if(tagid){
		document.getElementById(tagid).value = helpstr;
	} else if(document.getElementById('dataform')) {
		document.getElementById('dataform').helpb.value = helpstr;
	}
}



