/*****************************************/
// Name: Javascript Textarea BBCode Markup Editor
// Version: 1.3
// Author: Balakrishnan
// Last Modified Date: 25/jan/2009
// License: Free
// URL: http://www.corpocrat.com
/******************************************/

var textarea;
var content;
var path = "/board/includes/";
document.write("<link href=\""+path+"bbeditor/styles.css\" rel=\"stylesheet\" type=\"text/css\">");

var fix_pop = false; 

function edToolbar(obj, fix) {
	if(fix)
		fix_pop = true;
	
    document.write("<div class=\"toolbar\">");
	document.write("<img class=\"bb_button\" src=\""+path+"bbeditor/images/bold.gif\" name=\"btnBold\" title=\"Bold\" onClick=\"doAddTags('[b]','[/b]','" + obj + "')\">");
    document.write("<img class=\"bb_button\" src=\""+path+"bbeditor/images/italic.gif\" name=\"btnItalic\" title=\"Italic\" onClick=\"doAddTags('[i]','[/i]','" + obj + "')\">");
	document.write("<img class=\"bb_button\" src=\""+path+"bbeditor/images/underline.gif\" name=\"btnUnderline\" title=\"Underline\" onClick=\"doAddTags('[u]','[/u]','" + obj + "')\">");
	document.write("<img class=\"bb_button\" src=\""+path+"bbeditor/images/link.gif\" name=\"btnLink\" title=\"Insert URL Link\" onClick=\"doURL('" + obj + "')\">");
	document.write("<img class=\"bb_button\" src=\""+path+"bbeditor/images/picture_imgur.gif\" name=\"btnPicture\" title=\"Upload image\" onClick=\"doImgur('" + obj + "')\">");
	document.write("<img class=\"bb_button\" src=\""+path+"bbeditor/images/picture.gif\" name=\"btnPicture\" title=\"Insert Image\" onClick=\"doImage('" + obj + "')\">");
	document.write("<img class=\"bb_button\" src=\""+path+"bbeditor/images/ordered.gif\" name=\"btnList\" title=\"Ordered List\" onClick=\"doList('[LIST=1]','[/LIST]','" + obj + "')\">");
	document.write("<img class=\"bb_button\" src=\""+path+"bbeditor/images/unordered.gif\" name=\"btnList\" title=\"Unordered List\" onClick=\"doList('[LIST]','[/LIST]','" + obj + "')\">");
	document.write("<img class=\"bb_button\" src=\""+path+"bbeditor/images/quote.gif\" name=\"btnQuote\" title=\"Quote\" onClick=\"doAddTags('[quote]','[/quote]','" + obj + "')\">"); 
  	document.write("<img class=\"bb_button\" src=\""+path+"bbeditor/images/code.gif\" name=\"btnCode\" title=\"Code\" onClick=\"doAddTags('[code]','[/code]','" + obj + "')\">");
	
	
	var cont = "<img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-1.gif\" name=\"btnCode\" title=\"Smile\" onClick=\"doAddTags('[:)]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-2.gif\" name=\"btnCode\" title=\"Big Smile\" onClick=\"doAddTags('[:D]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-3.gif\" name=\"btnCode\" title=\"Surprise\" onClick=\"doAddTags('[:O]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-4.gif\" name=\"btnCode\" title=\"Razz\" onClick=\"doAddTags('[:P]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-5.gif\" name=\"btnCode\" title=\"Wink\" onClick=\"doAddTags('[;)]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-6.gif\" name=\"btnCode\" title=\"Sad\" onClick=\"doAddTags('[:(]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-7.gif\" name=\"btnCode\" title=\"Tounge Tied\" onClick=\"doAddTags('[:S]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-8.gif\" name=\"btnCode\" title=\"Indifferent\" onClick=\"doAddTags('[:|]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-9.gif\" name=\"btnCode\" title=\"Crying\" onClick=\"doAddTags('[;(]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-10.gif\" name=\"btnCode\" title=\"Embarrassed\" onClick=\"doAddTags('[:$]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-11.gif\" name=\"btnCode\" title=\"Cool\" onClick=\"doAddTags('[H]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-12.gif\" name=\"btnCode\" title=\"Angry\" onClick=\"doAddTags('[:@]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-13.gif\" name=\"btnCode\" title=\"Angel\" onClick=\"doAddTags('[A]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-14.gif\" name=\"btnCode\" title=\"Devil\" onClick=\"doAddTags('[6]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-15.gif\" name=\"btnCode\" title=\"Geeked\" onClick=\"doAddTags('[8-|]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-16.gif\" name=\"btnCode\" title=\"Zip it!\" onClick=\"doAddTags('[:#]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-17.gif\" name=\"btnCode\" title=\"Whisper\" onClick=\"doAddTags('[:-*]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-18.gif\" name=\"btnCode\" title=\"Huh?\" onClick=\"doAddTags('[:^]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-19.gif\" name=\"btnCode\" title=\"Party!\" onClick=\"doAddTags('[P]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-20.gif\" name=\"btnCode\" title=\"Put me to sleep\" onClick=\"doAddTags('[|-)]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-21.gif\" name=\"btnCode\" title=\"Yes!\" onClick=\"doAddTags('[Y]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-45.gif\" name=\"btnCode\" title=\"No!\" onClick=\"doAddTags('[N]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-22.gif\" name=\"btnCode\" title=\"Beer!\" onClick=\"doAddTags('[B]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-31.gif\" name=\"btnCode\" title=\"Clock\" onClick=\"doAddTags('[O]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-32.gif\" name=\"btnCode\" title=\"Snail\" onClick=\"doAddTags('[sn]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-33.gif\" name=\"btnCode\" title=\"Pizza Slice\" onClick=\"doAddTags('[pi]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-42.gif\" name=\"btnCode\" title=\"Confused\" onClick=\"doAddTags('[*-)]','','" + obj + "')\"><img class=\"bb_button\" src=\""+path+"bbeditor/images/emotion-43.gif\" name=\"btnCode\" title=\"Roll Eyes\" onClick=\"doAddTags('[8-)]','','" + obj + "')\">";
	
	var tooltip = '<table id="dpop" class="popup"><tbody><tr><td id="topleft" class="corner"></td><td class="top"></td><td id="topright" class="corner"></td></tr><tr><td class="left"></td><td><table class="popup-contents"><tbody><tr><td>'+cont+'</td></tr></tbody></table></td><td class="right"></td></tr><tr><td class="corner" id="bottomleft"></td><td class="bottom"><img width="30" height="29" alt="popup tail" src="http://static.jqueryfordesigners.com/demo/images/coda/bubble-tail2.png"/></td><td id="bottomright" class="corner"></td></tr></tbody></table>';
	
	
	document.write("<div class=\"bubbleInfo\">"+tooltip+"<img class=\"bb_button trigger\" src=\""+path+"bbeditor/images/smile.gif\" name=\"btnCode\" title=\"Smiles\" ></div>");
    
	//document.write('<div style="display:none;"><div id="imgurupload"><div>DROP!<button onclick="document.querySelector(\'input\').click()">Or click</button></div><input style="visibility: collapse; width: 0px;" type="file" onchange="upload(this.files[0])"></div></div>');
	
	document.write('<div style="display:none;"><div id="imgurupload"><input type="file" onchange="upload(this.files[0])"></div></div>');
	
	document.write("</div>");
	//document.write("<textarea id=\""+ obj +"\" name = \"" + obj + "\" cols=\"" + width + "\" rows=\"" + height + "\"></textarea>");
				}

function doImage(obj)
{
textarea = document.getElementById(obj);
var url = prompt('Enter the Image URL:','http://');
var scrollTop = textarea.scrollTop;
var scrollLeft = textarea.scrollLeft;

if (url != '' && url != null) {

	if (document.selection) 
			{
				textarea.focus();
				var sel = document.selection.createRange();
				sel.text = '[img]' + url + '[/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;
	}
}

}

var imgur_obj = '';
function doImgur(obj)
{
	imgur_obj = obj;
	$(document).ready(function(e) {
		$.colorbox({inline:true, href:"#imgurupload"});
		
    });
	
/*textarea = document.getElementById(obj);
var url = prompt('Enter the Image URL:','http://');
var scrollTop = textarea.scrollTop;
var scrollLeft = textarea.scrollLeft;

if (url != '' && url != null) {

	if (document.selection) 
			{
				textarea.focus();
				var sel = document.selection.createRange();
				sel.text = '[img]' + url + '[/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)
{
textarea = document.getElementById(obj);
var url = prompt('Enter the URL:','http://');
var scrollTop = textarea.scrollTop;
var scrollLeft = textarea.scrollLeft;

if (url != '' && url != null) {

	if (document.selection) 
			{
				textarea.focus();
				var sel = document.selection.createRange();
				
			if(sel.text==""){
					sel.text = '[url="' + url + '"]' + url + '[/url]';
					} else {
					sel.text = '[url="' + url + '"]' + 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==""){
				var rep = '[url="' + url + '"]' + url + '[/url]';
				} else
				{
				var rep = '[url="' + url + '"]' + sel + '[/url]';
				}
	    //alert(sel);
		
        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] = '[*]' + list[i];
				}
				//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] = '[*]' + list[i];
		}
		//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;
 }
}



//window.ondragover = function(e) {e.preventDefault()}
//window.ondrop = function(e) {e.preventDefault(); upload(e.dataTransfer.files[0]); }
var image_url = '';
    function upload(file) {
		
		var obj = imgur_obj;
		
        /* Is the file an image? */
        if (!file || !file.type.match(/image.*/)) return;

        /* It is! */
        //document.body.className = "uploading";
		$('#imgurupload').text('Uploading...');
        /* Lets build a FormData object*/
        var fd = new FormData(); // I wrote about it: https://hacks.mozilla.org/2011/01/how-to-develop-a-html5-image-uploader/
        fd.append("image", file); // Append the file
        fd.append("key", imgur_api_key); // Get your own key http://api.imgur.com/
        var xhr = new XMLHttpRequest(); // Create the XHR (Cross-Domain XHR FTW!!!) Thank you sooooo much imgur.com
        xhr.open("POST", "http://api.imgur.com/2/upload.json"); // Boooom!
        xhr.onload = function() {
            // Big win!
            //document.querySelector("#link").href = JSON.parse(xhr.responseText).upload.links.imgur_page;
            image_url = JSON.parse(xhr.responseText).upload.links.original;
			image_url_thumb = JSON.parse(xhr.responseText).upload.links.large_thumbnail;
			make_img_tag(obj,image_url,image_url_thumb);
			$.colorbox.close();
			//document.body.className = "uploaded";
        }
        // Ok, I don't handle the errors. An exercice for the reader.

        /* And now, we send the formdata */
        xhr.send(fd);
    }
function make_img_tag(obj, img, img_thumb){
	textarea = document.getElementById(obj);
		//var url = image_url;
		var scrollTop = textarea.scrollTop;
		var scrollLeft = textarea.scrollLeft;
		//alert(image_url);
		if (img != '' && img != null) {
		
			if (document.selection) 
					{
						textarea.focus();
						var sel = document.selection.createRange();
						sel.text = '[url="'+img+'" class="zoom_image"][img]' + img_thumb + '[/img][/url]';
					}
		   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 = '[url="'+img+'" class="zoom_image"][img]' + img_thumb + '[/img][/url]';
				textarea.value =  textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
				
					
				textarea.scrollTop = scrollTop;
				textarea.scrollLeft = scrollLeft;
			}
		}
}
