// ==UserScript==
// @name           EmbedWidgets
// @namespace      http://onyxstone.stumbleupon.com/
// @description    Allows viewing and embedding of flash widgets on StumbleUpon Pages
// @author         http://onyxstone.stumbleupon.com/
// @include        http://*.stumbleupon.com/*
// @version        0.0.1
// @license (с) ONYXSTONE (http://onyxstone.stumbleupon.com/)
// ==/UserScript==
$ = unsafeWindow.$;
var bar;
var submit_button_green;
var submit_button_red;
var textbox;
var icon_src = "http://i292.photobucket.com/albums/mm16/onyxstone_at_su/b362ce41.png";
var icon_html = "<a class=\"textDisabled pdgLeftLg pdgRightLg\" onclick=\"toggle_form('blog');\" href=\"javascript:void(0);\"><img src=\"http://i292.photobucket.com/albums/mm16/onyxstone_at_su/b362ce41.png\" class=\"iconObject\"/>Object</a>";


show_widgets();

if(window.wrappedJSObject.stumbler){

  bar = document.getElementsByClassName('bannerPromo bannerLite pdgLeftLg mgnTopSm mgnBottomSm')[0];
  
if(bar) {
  
submit_button_green = document.getElementById('submit_buttom');
    
textbox = document.getElementById('blogContent');

var bar_icon = document.createElement('div');
bar_icon.style.display = 'inline-block';

bar_icon.innerHTML = icon_html;

bar.appendChild(bar_icon);

bar_icon.addEventListener('click', set_mode_red, false);

init();

  }
}

function show_widgets() {

var embedded_objects = document.getElementsByClassName('embedded_object');

for (var i = 0; i<embedded_objects.length; i++) {
embedded_objects[i].innerHTML = translate_back(embedded_objects[i].innerHTML);
embedded_objects[i].style.display = "block";
}

var embedded_object_placeholders = document.getElementsByClassName('embedded_object_placeholder');

for (var k = 0; k<embedded_object_placeholders.length; k++) {
embedded_object_placeholders[k].style.display = 'none';
}



var eo = $( 'li.eo"');
    
    for (var i = 0; i<eo.length; i++) { 
     a = $( eo[i] );
     if( !a.hasClass('widgeton') ) {
         a.html( translate_back( a.html() ) ).show()
         .addClass('widgeton');
     }
}

$('li.eop').hide();

}


function init() {
submit_button_red = document.createElement('input');
submit_button_red.value = "Post New Blog >";
submit_button_red.id = 'submit_button_red';
submit_button_red.setAttribute('style', 'color: white; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomleft: 5px;-moz-border-radius-bottomright: 5px; font-family: Arial; font-size:1.2em;');
submit_button_red.style.backgroundImage = "url('http://i292.photobucket.com/albums/mm16/onyxstone_at_su/36cb47f0.png')";
submit_button_red.type = "button";
submit_button_red.style.border = '1px solid red';
submit_button_red.style.padding = "1px 8px 3px";
submit_button_red.style.display = 'none';
submit_button_red.addEventListener('click', translate, false);
var parent = submit_button_green.parentNode;
parent.insertBefore(submit_button_red, submit_button_green);
var num = [3,5,7,9];

for (var i=0; i<num.length; i++) {

bar.childNodes[num[i]].addEventListener('click', set_mode_green, false);

  }
}


function set_mode_green() {

submit_button_red.style.display = 'none';
submit_button_green.style.display = 'inline-block';
}




function set_mode_red() {
submit_button_red.style.display = 'inline-block';
submit_button_green.style.display = 'none';
}



function translate() {

var txt = textbox.value;

var _txt = txt.replace( /</g, '[');
var __txt = _txt.replace( />/g, ']');

var ___txt = "<ul>" +
"<li class=\"embedded_object_placeholder\">To view this widget, please install <a href=\"http://userscripts.org/scripts/show/38500\">EmbedWidgets</a> script</li>"+
"<li style=\"display: none;\" class=\"embedded_object\">"+
__txt + "</li></ul>";

textbox.value = ___txt;
submit_button_green.click();
}


function translate_back(txt) {
var r1 = txt.replace(/\[script/g, '');
r1 = r1.replace(/\[\/script\]/g, '');
r1 = r1.replace(/\[iframe/g, '');
r1 = r1.replace(/\[\/iframe\]/g, ''); 
r1 = r1.replace( /\[/g, '<');
r1 = r1.replace( /\]/g, '>');




return r1;

}




