// Modified by al000y@hotmail.com
//From http://www.groomi.net/JAVASCRIPT:_Add_BBCode_buttons_to_a_form-,9

function bbcode_ins(fieldId, tag, color)
{
	field = fetch_object(fieldId);//document.getElementById(fieldId);
	if(tag=='b' || tag=='i' || tag=='u' || tag == 'right' || tag == 'center' || tag == 'left')
	{
		if (document.selection) 
		{
			field.focus();
			var selected = document.selection.createRange().text;
			var ins = '[' + tag + ']' + selected + '[/' + tag +']';
			var selected2 = document.selection.createRange();
			var sel = document.selection.createRange();
			selected2.moveStart ('character', -field.value.length);
			sel.text = '[' + tag + ']' + selected + '[/' + tag+']';
			sel.moveStart('character', selected2.text.length + ins.length - selected.length - 4);
		
		}
		
		//MOZILLA/NETSCAPE/SAFARI support
		
		else if (field.selectionStart || field.selectionStart == 0) 
		{
			var startPos = field.selectionStart;
			var endPos = field.selectionEnd;
			var selected = field.value.substring(startPos, endPos);
			var ins = '[' + tag + ']' + selected + '[/' + tag +']';
			field.focus();
			field.value = field.value.substring(0, startPos) + ins + field.value.substring(endPos, field.value.length);
			field.setSelectionRange(endPos+ins.length, endPos+ins.length-selected.length - 4);
		}
       }
	else if(tag == 'img')
	{
		var path = prompt('Enter image path', 'http://');
		if(!path)
		{
			return;
		}
		if (document.selection) 
		{
			field.focus();
			var selected = document.selection.createRange().text;
			var ins = '[' + tag + ']' + path + '[/' + tag+']';
			var selected2 = document.selection.createRange();
			var sel = document.selection.createRange();
			sel.text = '[' + tag + ']' + path + '[/' + tag+']';
			selected2.moveStart ('character', -field.value.length);
			sel.moveStart('character', selected2.text.length + ins.length - selected.length);
		}
		//MOZILLA/NETSCAPE/SAFARI support
		else if (field.selectionStart || field.selectionStart == 0) 
		{
			var startPos = field.selectionStart;
			var endPos = field.selectionEnd;
			var ins = '[' + tag + ']' + path + '[/' + tag+']';
			field.focus();
			field.value = field.value.substring(0, startPos)
			+ ins
			+ field.value.substring(endPos, field.value.length);
			field.setSelectionRange(endPos+ins.length, endPos+ins.length-selected.length);
		} 
	}
else if(tag == 'color' || tag == 'size')
	{
		field.focus();
		    
		if(document.selection)
        {
            var url = document.selection.createRange().text;
            if(!url)
            {

                 if(!color)
			     {
				     return;
			     }

              //  field.focus();
			
				var selected = document.selection.createRange().text;
				var ins = '[' + tag + '="' + color + '"][/' + tag + ']';
				var selected2 = document.selection.createRange();
				var sel = document.selection.createRange();
				sel.text = '[' + tag + '="'+color+'"][/' + tag+']';
				selected2.moveStart ('character', -field.value.length);
				sel.moveStart('character', selected2.text.length + ins.length - selected.length);


            }
            else
            {
               // field.focus();
			
				var selected = document.selection.createRange().text;
				var ins = '[' + tag + '="' + color + '"]' + url+ '[/' + tag+']';
				var selected2 = document.selection.createRange();
				var sel = document.selection.createRange();
				sel.text = '[' + tag + '="' + color + '"]' + url+ '[/' + tag+']';
				selected2.moveStart ('character', -field.value.length);
				sel.moveStart('character', selected2.text.length + ins.length - selected.length);
            }

        }
        else  //MOZILLA/NETSCAPE/SAFARI support
        {
          

            var startPos = field.selectionStart;
			var endPos = field.selectionEnd;
			var selected = field.value.substring(startPos, endPos);
          

            if(!selected)
            {
                 if(!color)
			     {
				     return;
			     }

               if (field.selectionStart || field.selectionStart == 0) 
			   {
				var ins = '[' + tag + '="'+color+'"][/' + tag+']';
				//field.focus();
				field.value = field.value.substring(0, startPos)
				+ ins
				+ field.value.substring(endPos, field.value.length);
				field.setSelectionRange(endPos+ins.length, endPos+ins.length-selected.length);
			   }


            }
            else
            {
                if (field.selectionStart || field.selectionStart == 0) 
			    {
				   var ins = '[' + tag + '="' + color + '"]' + selected + '[/' + tag+']';
				   //field.focus();
				   field.value = field.value.substring(0, startPos)
				   + ins
				   + field.value.substring(endPos, field.value.length);
				   field.setSelectionRange(endPos+ins.length, endPos+ins.length-selected.length);
			   } 
            }

        }




       
    }
	else if(tag == 'url')
	{
		//alert('true');
        //var url = document.selection.createRange().text;
        
        
        if(document.selection)
        {
            var url = document.selection.createRange().text;
            if(!url)
            {
                 var url2 = prompt('Enter link URL', 'http://');
                 var linkText = prompt('Enter link text', '');

                 if(!url2 || !linkText)
			     {
				     return;
			     }

                field.focus();
			
				var selected = document.selection.createRange().text;
				var ins = '[' + tag + '='+url2+']' + linkText + '[/' + tag+']';
				var selected2 = document.selection.createRange();
				var sel = document.selection.createRange();
				sel.text = '[' + tag + '='+url2+']' + linkText + '[/' + tag+']';
				selected2.moveStart ('character', -field.value.length);
				sel.moveStart('character', selected2.text.length + ins.length - selected.length);


            }
            else
            {
                field.focus();
			
				var selected = document.selection.createRange().text;
				var ins = '[' + tag + ']' + url+ '[/' + tag+']';
				var selected2 = document.selection.createRange();
				var sel = document.selection.createRange();
				sel.text = '[' + tag + ']' + url+ '[/' + tag+']';
				selected2.moveStart ('character', -field.value.length);
				sel.moveStart('character', selected2.text.length + ins.length - selected.length);
            }

        }
        else  //MOZILLA/NETSCAPE/SAFARI support
        {
          

            var startPos = field.selectionStart;
			var endPos = field.selectionEnd;
			var selected = field.value.substring(startPos, endPos);
          

            if(!selected)
            {
                 var url2 = prompt('Enter link URL', 'http://');
                 var linkText = prompt('Enter link text', '');

                 if(!url2 || !linkText)
			     {
				     return;
			     }

               if (field.selectionStart || field.selectionStart == 0) 
			   {
				//var startPos = field.selectionStart;
				//var endPos = field.selectionEnd;
				var ins = '[' + tag + '='+url2+']' + linkText + '[/' + tag+']';
				field.focus();
				field.value = field.value.substring(0, startPos)
				+ ins
				+ field.value.substring(endPos, field.value.length);
				field.setSelectionRange(endPos+ins.length, endPos+ins.length-selected.length);
			   }


            }
            else
            {
                if (field.selectionStart || field.selectionStart == 0) 
			    {
				 //  var startPos = field.selectionStart;
				 //  var endPos = field.selectionEnd;
				   var ins = '[' + tag + ']' + selected + '[/' + tag+']';
				   field.focus();
				   field.value = field.value.substring(0, startPos)
				   + ins
				   + field.value.substring(endPos, field.value.length);
				   field.setSelectionRange(endPos+ins.length, endPos+ins.length-selected.length);
			   } 
            }

        }




       
    }
    else if(tag == 'color' || tag == 'size')
	{
		
		if(document.selection)
        {
            var Text = document.selection.createRange().text;
            if(!Text)
            {
                 if(!color)
			     {
				     return;
			     }

                field.focus();
			
				var selected = document.selection.createRange().text;
				var ins = '[' + tag + '='+color+'][/' + tag+']';
				var selected2 = document.selection.createRange();
				var sel = document.selection.createRange();
				sel.text = '[' + tag + '='+color+'][/' + tag+']';
				selected2.moveStart ('character', -field.value.length);
				sel.moveStart('character', selected2.text.length + ins.length - selected.length);


            }
            else
            {
                field.focus();
			
				var selected = document.selection.createRange().text;
				var ins = '[' + tag + '='+color+']' + Text + '[/' + tag+']';
				var selected2 = document.selection.createRange();
				var sel = document.selection.createRange();
				sel.text = '[' + tag + '='+color+']' + Text + '[/' + tag+']';
				selected2.moveStart ('character', -field.value.length);
				sel.moveStart('character', selected2.text.length + ins.length - selected.length);
            }

        }
        else  //MOZILLA/NETSCAPE/SAFARI support
        {
          

            var startPos = field.selectionStart;
			var endPos = field.selectionEnd;
			var selected = field.value.substring(startPos, endPos);
          

            if(!selected)
            {
                  if(!color)
			     {
				     return;
			     }

               if (field.selectionStart || field.selectionStart == 0) 
			   {
				//var startPos = field.selectionStart;
				//var endPos = field.selectionEnd;
				var ins = '[' + tag + '='+color+'][/' + tag+']';
				field.focus();
				field.value = field.value.substring(0, startPos)
				+ ins
				+ field.value.substring(endPos, field.value.length);
				field.setSelectionRange(endPos+ins.length, endPos+ins.length-selected.length);
			   }


            }
            else
            {
                if (field.selectionStart || field.selectionStart == 0) 
			    {
				 //  var startPos = field.selectionStart;
				 //  var endPos = field.selectionEnd;
				   var ins = '[' + tag + '='+color+']' + selected + '[/' + tag+']';
				   field.focus();
				   field.value = field.value.substring(0, startPos)
				   + ins
				   + field.value.substring(endPos, field.value.length);
				   field.setSelectionRange(endPos+ins.length, endPos+ins.length-selected.length);
			   } 
            }

        }




       
    }
    else if (tag == 'email')
    {
        if(document.selection)
        {
            var email = document.selection.createRange().text;
            if(!email)
            {
                 var email = prompt('Enter Email', '');


                 if(!email)
			     {
				     return;
			     }

                field.focus();
			
				var selected = document.selection.createRange().text;
				var ins = '[' + tag + ']' + email + '[/' + tag+']';
				var selected2 = document.selection.createRange();
				var sel = document.selection.createRange();
				sel.text = '[' + tag + ']' + email + '[/' + tag+']';
				selected2.moveStart ('character', -field.value.length);
				sel.moveStart('character', selected2.text.length + ins.length - selected.length);


            }
            else
            {
                field.focus();
			
				var selected = document.selection.createRange().text;
				var ins = '[' + tag + ']' + email + '[/' + tag+']';
				var selected2 = document.selection.createRange();
				var sel = document.selection.createRange();
				sel.text = '[' + tag + ']' + email + '[/' + tag+']';
				selected2.moveStart ('character', -field.value.length);
				sel.moveStart('character', selected2.text.length + ins.length - selected.length);
            }

        }
        else  //MOZILLA/NETSCAPE/SAFARI support
        {
          

            var startPos = field.selectionStart;
			var endPos = field.selectionEnd;
			var selected = field.value.substring(startPos, endPos);
          

            if(!selected)
            {
                  var email = prompt('Enter Email', '');


                 if(!email)
			     {
				     return;
			     }

               if (field.selectionStart || field.selectionStart == 0) 
			   {
				//var startPos = field.selectionStart;
				//var endPos = field.selectionEnd;
				var ins = '[' + tag + ']' + email + '[/' + tag+']';
				field.focus();
				field.value = field.value.substring(0, startPos)
				+ ins
				+ field.value.substring(endPos, field.value.length);
				field.setSelectionRange(endPos+ins.length, endPos+ins.length-selected.length);
			   }


            }
            else
            {
                if (field.selectionStart || field.selectionStart == 0) 
			    {
				 //  var startPos = field.selectionStart;
				 //  var endPos = field.selectionEnd;
				   var ins = '[' + tag + ']' + selected + '[/' + tag+']';
				   field.focus();
				   field.value = field.value.substring(0, startPos)
				   + ins
				   + field.value.substring(endPos, field.value.length);
				   field.setSelectionRange(endPos+ins.length, endPos+ins.length-selected.length);
			   } 
            }

        }
    }
	else //For smilies
	{
		if (document.selection) 
		{
			field.focus();
		
			var selected = document.selection.createRange().text;
			var ins = tag;
			var selected2 = document.selection.createRange();
			var sel = document.selection.createRange();
			sel.text = tag;
			selected2.moveStart ('character', -field.value.length);
			sel.moveStart('character', selected2.text.length + ins.length - selected.length);
		}
		
		//MOZILLA/NETSCAPE/SAFARI support
		
		else if (field.selectionStart || field.selectionStart == 0) 
		{
			var startPos = field.selectionStart;
			var endPos = field.selectionEnd;
			field.focus();
			field.value = field.value.substring(0, startPos) + tag + field.value.substring(endPos, field.value.length);
			field.setSelectionRange(endPos+tag.length, endPos+tag.length);
		}
	}

hideLayers('colorpicker-1a');
    hideLayers('font-1a');
}


function color_widow()
{
        hideLayers('colorpicker-1a'); 
        hideLayers('font-1a'); 
	    pickerElement = fetch_object("colorpicker-1a");
		pickerElement.style.display = "";
}

function font_widow()
{
        hideLayers('font-1a');
        hideLayers('colorpicker-1a');  
	    pickerElement = fetch_object("font-1a");
		pickerElement.style.display = "";
}

