// Phorum object. Other JavaScript code for Phorum can extend
// this one to implement functionality without risking name
// name space collissions.
Phorum = {};

/* Added by module "core", file "include/ajax/client.js.php" */
// Create the Phorum object if it's not available. It it created in the
// core javascript.php, but when loading this code from an external
// page, it might not be available.
if (!document.Phorum || Phorum == undefined) Phorum = {};

Phorum.Ajax = {};

// The version of this lib
Phorum.Ajax.version = '1.0.0';

// The URL that we use to access the Phorum Ajax layer.
Phorum.Ajax.URL = 'http://lensbaby.de/forum/ajax.php';

// Storage for Ajax call return data. This acts as a local cache
// for keeping track of already retrieved items.
Phorum.Ajax.cache = {};

/**
 * Create an XMLHttpRequest object.
 * Used internally by Phorum.Ajax.call().
 * Raise an onFailure event in case no object can be created.
 * Return either an object or null if the object creation failed.
 */
Phorum.Ajax.getXMLHttpRequest = function(req)
{
    var xhr;
    if (window.XMLHttpRequest) {
        xhr = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        var versions = [
            'MSXML2.XMLHttp.5.0',
            'MSXML2.XMLHttp.4.0',
            'MSXML2.XMLHttp.3.0',
            'MSXML2.XMLHttp',
            'Microsoft.XMLHttp'
        ];
        for (var i=0; i < versions.length; i++) {
            try { xhr = new ActiveXObject(versions[i]); } catch (e) { }
        }
    }

    if (xhr) {
        return xhr;
    }

    if (req.onFailure) req.onFailure(
        'Phorum: Unable to create an XMLHttpRequest object',
        -1, null
    );
    return null;
}

/**
 * Execute an Ajax Phorum call.
 */
Phorum.Ajax.call = function(req)
{
    // If the store property is set for the request, then check
    // if the data for the request is already available in the
    // local cache. If yes, then return the data immediately.
    if (req.store) {
        if (req.store != null && Phorum.Ajax.cache[req.store]) {
            if (req.onSuccess) {
                // true = data retrieved from cache.
                req.onSuccess(Phorum.Ajax.cache[req.store], true);
            }
            return;
        }
    }

    // Check the request data.
    if (! req['call']) {
        if (req.onFailure) req.onFailure(
            'Phorum.Ajax.call() error: missing property ' +
            '"call" for the request object.',
            -1, null
        );
        return;
    }

    // Check if there is an XMLHttpRequest object available.
    var xhr = Phorum.Ajax.getXMLHttpRequest(req);
    if (! xhr) return;

    // Convert the request object to JSON.
    var json = Phorum.JSON.encode(req);

    // Notify the start of the request loading stage.
    if (req.onRequest) req.onRequest(json);

    xhr.open("post", Phorum.Ajax.URL, true);
    xhr.setRequestHeader("Content-Type", "text/x-json");
    xhr.onreadystatechange = function()
    {
      if (req.onReadStateChange) req.onReadyStateChange(req);

      switch (xhr.readyState)
      {
          case 1:

              if (req.onLoading) req.onLoading(xhr);
              break;

          case 2:

              if (req.onLoaded) req.onLoaded(xhr);
              break;

          case 3:

              if (req.onInteractive) req.onInteractive(xhr);
              break;

          case 4:

              if (req.onComplete)req.onComplete(xhr);

              if (req.onResponse) req.onResponse(xhr.responseText);

              if (xhr.status == 200) {

                  // Evaluate the returned JSON code. If evaluation fails,
                  // then run the onFailure event for the Phorum.Ajax.call.
                  try {
                      var res = Phorum.JSON.decode(xhr.responseText);
                  } catch (e) {
                      if (req.onFailure) req.onFailure(
                        'Ajax Phorum API call succeeded, but the return ' +
                        'data could not be parsed as JSON data.',
                        xhr.status, xhr.responseText
                      );
                      return;
                  }

                  // If the req.store property is set, then we store
                  // the result data in the Phorum cache.
                  if (req.store) Phorum.Ajax.cache[req.store] = res;

                  // false = data not retrieved from store.
                  if (req.onSuccess) req.onSuccess(res, false);

              } else {

                  if (req.onFailure) req.onFailure(
                      'The Ajax Phorum API call failed',
                      xhr.status, xhr.responseText
                  );
              }

              break;
      }
    };
    xhr.send(json);
}

// Invalidate a single cache item of the full cache.
Phorum.Ajax.invalidateCache = function(key)
{
    if (key) {
        Phorum.Ajax.cache[key] = null;
    } else {
        Phorum.Ajax.cache = new Array();
    }
}

// Parse out javascript blocks from the data to eval them. Adding them
// to the page using innerHTML does not invoke parsing by the browser.
Phorum.Ajax.evalJavaScript = function(data)
{
    var cursor = 0;
    var start  = 1;
    var end    = 1;

    while (cursor < data.length && start > 0 && end > 0) {
        start = data.indexOf('<script', cursor);
        end   = data.indexOf('</script', cursor);
        if (end > start && end > -1) {
            if (start > -1) {
                var res = data.substring(start, end);
                start = res.indexOf('>') + 1;
                res = res.substring(start);
                if (res.length != 0) {
                    eval(res);
                }
            }
            cursor = end + 1;
        }
    }
}

// ======================================================================
// JSON encoder and decoder
// Based on byteson by Andrea Giammarchi
// (http://www.devpro.it/byteson/)
// ======================================================================

Phorum.JSON = {};

Phorum.JSON.common =
{
  // characters object, useful to convert some char in a JSON compatible way
  c:{'\b':'b','\t':'t','\n':'n','\f':'f','\r':'r','"':'"','\\':'\\','/':'/'},

  // decimal function, returns a string with length === 2 for date convertion
  d:function(n){return n < 10 ? '0'.concat(n) : n},

  // integer function, returns integer value from a piece of string
  i:function(e, p, l){return parseInt(e.substr(p, l))},

  // slash function, add a slash before a common.c char
  s:function(i,d){return '\\'.concat(Phorum.JSON.common.c[d])},

  // unicode function, return respective unicode string
  u:function(i,d){var n = d.charCodeAt(0).toString(16);return '\\u'.concat(n.length < 2 ? '000' : '00', n)}
};

Phorum.JSON.convert = function(params, result)
{
    switch(params.constructor) {
        case Number:
            result = isFinite(params) ? String(params) : 'null';
            break;
        case Boolean:
            result = String(params);
            break;
        case Date:
            result = concat(
                '"',
                params.getFullYear(), '-',
                Phorum.JSON.common.d(params.getMonth() + 1), '-',
                Phorum.JSON.common.d(params.getDate()), 'T',
                Phorum.JSON.common.d(params.getHours()), ':',
                Phorum.JSON.common.d(params.getMinutes()), ':',
                Phorum.JSON.common.d(params.getSeconds()),
                '"'
            );
            break;
        case String:
            if(/^[0-9]{4}\-[0-9]{2}\-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$/.test(params)){
                result = new Date;
                result.setHours(Phorum.JSON.common.i(params, 11, 2));
                result.setMinutes(Phorum.JSON.common.i(params, 14, 2));
                result.setSeconds(Phorum.JSON.common.i(params, 17, 2));
                result.setMonth(Phorum.JSON.common.i(params, 5, 2) - 1);
                result.setDate(Phorum.JSON.common.i(params, 9, 2));
                result.setFullYear(Phorum.JSON.common.i(params, 0, 4));
            };
            break;
        default:
            var n, tmp = [];
            if(result) {
                for(n in params) result[n] = params[n];
            } else {
                for(n in params) {
                    if(params.hasOwnProperty(n) && !!(result = Phorum.JSON.encode(params[n])))
                        tmp.push(Phorum.JSON.encode(n).concat(':', result));
                };
                result = '{'.concat(tmp.join(','), '}');
            };
            break;
    };
    return result;
}

Phorum.JSON.encode = function(params)
{
    var result = '';

    if(params === null)
    {
        result = 'null';
    }
    else if(!{'function':1,'undefined':1,'unknown':1}[typeof(params)])
    {
        switch(params.constructor)
        {
            case Array:
                for(var i = 0, j = params.length, tmp = []; i < j; i++) {
                    if(!!(result = Phorum.JSON.encode(params[i])))
                        tmp.push(result);
                };
                result = '['.concat(tmp.join(','), ']');
                break;

            case String:
                result = '"'.concat(params.replace(
                        /(\x5c|\x2F|\x22|[\x0c-\x0d]|[\x08-\x0a])/g, Phorum.JSON.common.s
                    ).replace(
                        /([\x00-\x07]|\x0b|[\x0e-\x1f])/g, Phorum.JSON.common.u
                    ), '"');
                break;

            default:
                result = Phorum.JSON.convert(params);
                break;
        };
    };
    return result;
};

Phorum.JSON.decode = function(json)
{
    eval('var res = '+json);
    if (res === undefined) {
        throw new SyntaxError('The Phorum JSON data cannot be parsed');
    }
    return res;
};



/* Added by module "lensbabies", function "_get_javascript_blob" */
    jQuery(function(){       
      
      $('.favelink').click(function(){
        var oid = $(this).attr('rel'); // let's abuse the REL attribute, rather than splitting an ID or class attribute or adding an invalid oid attribute...
        var self = $(this)
        $.getJSON('http://lensbaby.de/forum/addon.php?0,module=lensbabies,action=toggle_fave,oid=' + oid, function(is_fave) {
          self.text(is_fave ? 'Favorite [x]' : 'Add to favorites');
        });
        return false;
      });


      function tp_url(oid){
      	return 'addon.php?module=lensbabies,action=tagging,oid=' + oid + ',&';
      }

  	// new(v3) code:
  	window.tagpanel_submit = function(form) {
  		var data = $(form).serialize();
  		var file_id = $(form).find('[name=file_id]').val();
  		$.post(tp_url(file_id), data, tb_remove);
  		return false;
  	}

// quicktags handling was here in r817 and earlier
      
      
// disable accessories when optic selected

  var disable_accessories_on_fisheye = function() {
    $(this).siblings('[name*=accessory]').attr('disabled', $(this).val() == 'fisheye');
  }
  $('.posting-attachments select[name*=optic]')
    .live('change', disable_accessories_on_fisheye).each(disable_accessories_on_fisheye);
  
  
      if($.browser.safari) { $('input[type=file]').css('color', 'white'); }
      if($.browser.msie) {   $('input[type=file]').css('color', 'black'); } /* at least one of these is necessary... */

  });  

/* Added by module "editor_tools", file "mods/editor_tools/editor_tools.min.js" */
var editor_tools_textarea_ids=new Array("phorum_textarea","body","message");var editor_tools_subject_ids=new Array("phorum_subject","subject");var editor_tools_lang=new Array();var editor_tools_textarea_obj=null;var editor_tools_subject_obj=null;var editor_tools_help_picker_obj=null;var editor_tools_textarea_range=null;var editor_tools_popup_objects=new Array();var editor_tools=new Array();var editor_tools_help_chapters=new Array();var editor_tools_help_width="400px";var editor_tools_help_height="400px";var editor_tools_default_iconheight;var OLD_MSIE=navigator.userAgent.indexOf("MSIE")>=0&&navigator.appVersion.replace(/.*MSIE (\d\.\d).*/g,"$1")/1<6;function editor_tools_get_textarea(){if(editor_tools_textarea_obj!=null){return editor_tools_textarea_obj}for(var a=0;editor_tools_textarea_ids[a];a++){editor_tools_textarea_obj=document.getElementById(editor_tools_textarea_ids[a]);if(editor_tools_textarea_obj){break}}if(!editor_tools_textarea_obj){alert("editor_tools.js library reports: no textarea found on the current page.");return null}return editor_tools_textarea_obj}function editor_tools_get_subjectfield(){if(editor_tools_subject_obj!=null){return editor_tools_subject_obj}for(var a=0;editor_tools_subject_ids[a];a++){editor_tools_subject_obj=document.getElementById(editor_tools_subject_ids[a]);if(editor_tools_subject_obj){break}}if(!editor_tools_subject_obj){return null}return editor_tools_subject_obj}function editor_tools_translate(a){if(editor_tools_lang[a]){return editor_tools_lang[a]}else{return a}}function editor_tools_strip_whitespace(f,d){var c="";var b="";for(;;){var a=f.substring(f.length-1,f.length);if(a==" "||a=="\r"||a=="\n"||a=="\t"){b=a+b;f=f.substring(0,f.length-1)}else{break}}for(;;){var e=f.substring(0,1);if(e==" "||e=="\r"||e=="\n"||e=="\t"){c+=e;f=f.substring(1)}else{break}}if(d){return new Array(f,c,b)}else{return f}}function editor_tools_focus_textarea(){var a=editor_tools_get_textarea();if(a==null){return}editor_tools_hide_all_popups();a.focus()}function editor_tools_focus_subjectfield(){var a=editor_tools_get_subjectfield();if(a==null){return}editor_tools_hide_all_popups();a.focus()}function editor_tools_construct(){var l;var e;var a;var j;var c;if(!document.getElementById){return}if(editor_tools.length==0){return}l=editor_tools_get_textarea();if(l==null){return}var k=editor_tools_get_subjectfield();e=document.getElementById("editor-tools");if(!e){a=l.parentNode;e=document.createElement("div");e.id="editor-tools";a.insertBefore(e,l.nextSibling)}for(var p=0;p<editor_tools.length;p++){var s=editor_tools[p];var b=s[0];var n=s[1];var r=s[2];var o=s[3];var h=s[4];var d=s[5];var t=s[6];if(b=="color"&&OLD_MSIE){continue}j=document.createElement("a");j.id="editor-tools-a-"+b;j.href="javascript:"+o;if(false /*b!="help"*/ /*enable icons for all tools, not just help button */){c=document.createElement("span");c.innerHTML=n}else{c=document.createElement("img");c.id="editor-tools-img-"+b;c.className="editor-tools-button";c.src=r;c.width=h;c.height=d;c.style.padding="2px";c.alt=n;c.title=n;if(d<editor_tools_default_iconheight){var m=editor_tools_default_iconheight-d;var g=Math.round(m/2);var u=m-g;c.style.paddingTop=(u+2)+"px";c.style.paddingBottom=(g+2)+"px"}}j.appendChild(c);if(t=="subject"){if(k){c.style.verticalAlign="top";var f=k.parentNode;var q=k.nextSibling;f.insertBefore(j,q)}}else{e.appendChild(j)}}l.onclick=function(){editor_tools_hide_all_popups()};if(k){k.onclick=function(){editor_tools_hide_all_popups()}}}function editor_tools_construct_popup(b,a){var c=document.createElement("div");c.id=b;c.className="editor-tools-popup";c.style.display="none";document.getElementById("editor-tools").appendChild(c);c._anchor=a;var d=document.createElement("div");d.id=b+"-content";c.appendChild(d);return new Array(c,d)}function editor_tools_toggle_popup(a,e,d,c){var g=e;var h=g.offsetTop+g.offsetHeight+2;var f=g.offsetLeft;while(g.offsetParent!=null){g=g.offsetParent;f+=g.offsetLeft;h+=g.offsetTop}if(c){f-=c}if(d){a.style.width=d}if(a._anchor=="r"){var b=null;if(document.documentElement.clientWidth){b=document.documentElement.clientWidth}else{b=document.body.clientWidth;if(document.getElementById&&!document.all){b-=16}}var i=b-f-e.offsetWidth;a.style.right=i+"px";a.style.top=h+"px"}else{a.style.left=f+"px";a.style.top=h+"px"}if(a.style.display=="none"){editor_tools_hide_all_popups();a.style.display="block"}else{a.style.display="none";editor_tools_focus_textarea()}}function editor_tools_register_popup_object(a){if(!a){return}editor_tools_popup_objects[editor_tools_popup_objects.length]=a}function editor_tools_hide_all_popups(){for(var b=0;b<editor_tools_popup_objects.length;b++){var a=editor_tools_popup_objects[b];a.style.display="none"}}function editor_tools_store_range(){var a=editor_tools_get_textarea();if(a==null||a.setSelectionRange||!document.selection){return}a.focus();editor_tools_textarea_range=document.selection.createRange()}function editor_tools_restore_range(){if(editor_tools_textarea_range!=null){editor_tools_textarea_range.select();editor_tools_textarea_range=null}}function editor_tools_add_tags(e,o,j,m){var p;var n;var d;var i;var h=j?j:editor_tools_get_textarea();if(h==null){return}var f=h.scrollTop;if(h.setSelectionRange){n=h.value.substring(0,h.selectionStart);p=h.value.substring(h.selectionStart,h.selectionEnd);d=h.value.substring(h.selectionEnd,h.value.length);if(p==""&&m){p=prompt(m,"");if(p==null){return}}var k=editor_tools_strip_whitespace(p,true);p=k[0];e=k[1]+e;o=o+k[2];h.value=n+e+p+o+d;var c=n.length+e.length;var b=c+p.length;h.setSelectionRange(c,b);h.focus()}else{if(document.selection){h.focus();i=document.selection.createRange();var l=i.text.length;if(l>0){while(i.text.length==l){i.moveEnd("character",-1)}i.moveEnd("character",+1)}p=i.text;if(p==""&&m){p=prompt(m,"");if(p==null){return}}var k=editor_tools_strip_whitespace(p,true);p=k[0];e=k[1]+e;o=o+k[2];i.text=e+p+o;var g=o.length+p.length-((p+o).split("\r").length-1);var a=o.length+(o.split("\r").length-1);i.moveStart("character",-g);i.moveEnd("character",-a);i.select()}else{h.value=h.value+e+o}}h.scrollTop=f}function editor_tools_handle_help(){var h=editor_tools_help_chapters;if(h.length==0){alert("No help chapters available");return}if(h.length==1){editor_tools_handle_help_select(h[0][1]);return}if(!editor_tools_help_picker_obj){var a=editor_tools_construct_popup("editor-tools-help-picker","r");editor_tools_help_picker_obj=a[0];var e=a[1];for(var b=0;b<editor_tools_help_chapters.length;b++){var d=editor_tools_help_chapters[b];var f=document.createElement("a");f.href='javascript:editor_tools_handle_help_select("'+d[1]+'")';f.innerHTML=d[0];e.appendChild(f);e.appendChild(document.createElement("br"))}editor_tools_register_popup_object(editor_tools_help_picker_obj)}var g=document.getElementById("editor-tools-img-help");editor_tools_toggle_popup(editor_tools_help_picker_obj,g)}function editor_tools_handle_help_select(a){var b=window.open(a,"editor_tools_help","resizable=yes,menubar=no,directories=no,scrollbars=yes,toolbar=no,status=no,width="+editor_tools_help_width+",height="+editor_tools_help_height);editor_tools_focus_textarea();b.focus()};

/* Added by module "auto_http_path", function "mod_auto_http_path_empty_javascript" */
// Empty stub javascript for the auto_http_path module.

/* Added by module "bbcode", file "mods/bbcode/bbcode_editor_tools.min.js" */
var editor_tools_size_picker_obj=null;var editor_tools_list_picker_obj=null;var editor_tools_size_picker_sizes=new Array("x-large","large","medium","small","x-small");var editor_tools_list_picker_types=new Array("b","1","a","A","i","I");function quote_bbcode_argument(d){if(d.indexOf(" ")!=-1||d.indexOf('"')!=-1||d.indexOf("]")!=-1){var b="";for(var a=0;a<d.length;a++){var e=d[a];if(e=="\\"||e=='"'){b+="\\"}b+=e}return'"'+b+'"'}else{return d}}function editor_tools_handle_hr(){editor_tools_add_tags("\n[hr]\n","");editor_tools_focus_textarea()}function editor_tools_handle_b(){editor_tools_add_tags("[b]","[/b]");editor_tools_focus_textarea()}function editor_tools_handle_s(){editor_tools_add_tags("[s]","[/s]");editor_tools_focus_textarea()}function editor_tools_handle_u(){editor_tools_add_tags("[u]","[/u]");editor_tools_focus_textarea()}function editor_tools_handle_i(){editor_tools_add_tags("[i]","[/i]");editor_tools_focus_textarea()}function editor_tools_handle_center(){editor_tools_add_tags("[center]","[/center]");editor_tools_focus_textarea()}function editor_tools_handle_sub(){editor_tools_add_tags("[sub]","[/sub]");editor_tools_focus_textarea()}function editor_tools_handle_sup(){editor_tools_add_tags("[sup]","[/sup]");editor_tools_focus_textarea()}function editor_tools_handle_small(){editor_tools_add_tags("[small]","[/small]");editor_tools_focus_textarea()}function editor_tools_handle_large(){editor_tools_add_tags("[large]","[/large]");editor_tools_focus_textarea()}function editor_tools_handle_code(){editor_tools_add_tags("[code]\n","\n[/code]\n");editor_tools_focus_textarea()}function editor_tools_handle_email(){var a=prompt(editor_tools_translate("enter email"),"");if(a==null){return}a=editor_tools_strip_whitespace(a);var b=prompt(editor_tools_translate("enter subject"),"");if(b==null){return}b=editor_tools_strip_whitespace(b);if(b!=""){b=" subject="+quote_bbcode_argument(b)}if(a==""){editor_tools_add_tags("[email"+b+"]","[/email]")}else{editor_tools_add_tags("[email"+b+"]"+a+"[/email]","")}editor_tools_focus_textarea()}function editor_tools_handle_url(){var a="http://";for(;;){a=prompt(editor_tools_translate("enter url"),a);if(a==null){return}a=editor_tools_strip_whitespace(a);copy=a.toLowerCase();if(copy=="http://"||(copy.substring(0,7)!="http://"&&copy.substring(0,8)!="https://"&&copy.substring(0,6)!="ftp://"&&copy.substring(0,7)!="mailto:")){alert(editor_tools_translate("invalid url"));continue}break}editor_tools_add_tags("[url="+a+"]","[/url]",null,editor_tools_translate("enter url description"));editor_tools_focus_textarea()}function editor_tools_handle_color(){editor_tools_store_range();var a=document.getElementById("editor-tools-img-color");showColorPicker(a);return}function editor_tools_handle_color_select(a){editor_tools_restore_range();editor_tools_add_tags("[color="+a+"]","[/color]");editor_tools_focus_textarea()}function editor_tools_handle_size(){editor_tools_store_range();if(!editor_tools_size_picker_obj){var a=editor_tools_construct_popup("editor-tools-size-picker","l");editor_tools_size_picker_obj=a[0];var e=a[1];for(var d=0;d<editor_tools_size_picker_sizes.length;d++){var c=editor_tools_size_picker_sizes[d];var f=document.createElement("a");f.href='javascript:editor_tools_handle_size_select("'+c+'")';f.style.fontSize=c;f.innerHTML=editor_tools_translate(c);e.appendChild(f);var b=document.createElement("br");e.appendChild(b)}editor_tools_register_popup_object(editor_tools_size_picker_obj)}var g=document.getElementById("editor-tools-img-size");editor_tools_toggle_popup(editor_tools_size_picker_obj,g)}function editor_tools_handle_size_select(a){editor_tools_hide_all_popups();editor_tools_restore_range();a=editor_tools_strip_whitespace(a);editor_tools_add_tags("[size="+a+"]","[/size]");editor_tools_focus_textarea()}function editor_tools_handle_img(){var a="http://";for(;;){a=prompt(editor_tools_translate("enter image url"),a);if(a==null){return}a=editor_tools_strip_whitespace(a);var b=a.toLowerCase();if(b=="http://"||(b.substring(0,7)!="http://"&&b.substring(0,8)!="https://"&&b.substring(0,6)!="ftp://")){alert(editor_tools_translate("invalid image url"));continue}break}editor_tools_add_tags("[img]"+a+"[/img]","");editor_tools_focus_textarea()}function editor_tools_handle_quote(){var a=prompt(editor_tools_translate("enter who you quote"),"");if(a==null){return}a=editor_tools_strip_whitespace(a);if(a==""){editor_tools_add_tags("[quote]","[/quote]")}else{a=quote_bbcode_argument(a);editor_tools_add_tags("[quote="+a+"]\n","\n[/quote]")}editor_tools_focus_textarea()}function editor_tools_handle_list(){if(!editor_tools_list_picker_obj){var b=editor_tools_construct_popup("editor-tools-list-picker","l");editor_tools_list_picker_obj=b[0];var f=b[1];var a=document.createElement("div");a.style.marginLeft="1em";for(var e=0;e<editor_tools_list_picker_types.length;e++){var h=editor_tools_list_picker_types[e];var g;if(h=="b"){g=document.createElement("ul")}else{g=document.createElement("ol");g.type=h}g.style.padding=0;g.style.margin=0;var j=document.createElement("li");var d=document.createElement("a");d.href='javascript:editor_tools_handle_list_select("'+h+'")';d.innerHTML=editor_tools_translate("list type "+h);j.appendChild(d);g.appendChild(j);a.appendChild(g)}f.appendChild(a);editor_tools_register_popup_object(editor_tools_list_picker_obj)}var c=document.getElementById("editor-tools-img-list");editor_tools_toggle_popup(editor_tools_list_picker_obj,c)}function editor_tools_handle_list_select(e){editor_tools_hide_all_popups();var b=new Array();var a=0;for(;;){var f=prompt(editor_tools_translate("enter new list item"),"");if(f==null){return}f=editor_tools_strip_whitespace(f);if(f==""){break}b[a++]=f}if(b.length==0){b=new Array("...","...")}var c="";for(var d=0;d<b.length;d++){c+="[*] "+b[d]+"\n"}if(e=="b"){e=""}else{e="="+e}editor_tools_add_tags("[list"+e+"]\n"+c+"[/list]\n","")};

/* Added by module "bbcode", file "mods/bbcode/colorpicker/js_color_picker_v2.min.js.php" */
var MSIE=navigator.userAgent.indexOf("MSIE")>=0?true:false;var navigatorVersion=navigator.appVersion.replace(/.*MSIE (\d\.\d).*/g,"$1")/1;var form_widget_amount_slider_handle="http://lensbaby.de/forum/mods/bbcode/colorpicker/images/slider_handle.gif";var slider_handle_image_obj=false;var sliderObjectArray=new Array();var slider_counter=0;var slideInProgress=false;var handle_start_x;var event_start_x;var currentSliderIndex;function form_widget_cancel_event(){return false}function getImageSliderHeight(){if(!slider_handle_image_obj){slider_handle_image_obj=new Image();slider_handle_image_obj.src=form_widget_amount_slider_handle}if(slider_handle_image_obj.width>0){return}else{setTimeout("getImageSliderHeight()",50)}}function positionSliderImage(f,d,a){if(this){a=this}if(!d){d=a.getAttribute("sliderIndex")}var g=document.getElementById("slider_handle"+d);var c=sliderObjectArray[d]["width"]/(sliderObjectArray[d]["max"]-sliderObjectArray[d]["min"]);var b=sliderObjectArray[d]["formTarget"].value-sliderObjectArray[d]["min"];g.style.left=b*c+"px";setColorByRGB()}function adjustFormValue(c){var d=document.getElementById("slider_handle"+c);var b=sliderObjectArray[c]["width"]/(sliderObjectArray[c]["max"]-sliderObjectArray[c]["min"]);var a=d.style.left.replace("px","");sliderObjectArray[c]["formTarget"].value=Math.round(a/b)+sliderObjectArray[c]["min"]}function initMoveSlider(a){if(document.all){a=event}slideInProgress=true;event_start_x=a.clientX;handle_start_x=this.style.left.replace("px","");currentSliderIndex=this.id.replace(/[^\d]/g,"");return false}function startMoveSlider(e){if(document.all){e=event}if(!slideInProgress){return}var leftPos=handle_start_x/1+e.clientX/1-event_start_x;if(leftPos<0){leftPos=0}if(leftPos/1>sliderObjectArray[currentSliderIndex]["width"]){leftPos=sliderObjectArray[currentSliderIndex]["width"]}document.getElementById("slider_handle"+currentSliderIndex).style.left=leftPos+"px";adjustFormValue(currentSliderIndex);if(sliderObjectArray[currentSliderIndex]["onchangeAction"]){eval(sliderObjectArray[currentSliderIndex]["onchangeAction"])}}function stopMoveSlider(){slideInProgress=false}function form_widget_amount_slider(g,b,a,e,h,c){if(!slider_handle_image_obj){getImageSliderHeight()}slider_counter=slider_counter+1;sliderObjectArray[slider_counter]=new Array();sliderObjectArray[slider_counter]={width:a-9,min:e,max:h,formTarget:b,onchangeAction:c};b.setAttribute("sliderIndex",slider_counter);b.onchange=positionSliderImage;var d=document.createElement("DIV");d.style.width=a+"px";d.style.height="12px";d.style.position="relative";d.id="slider_container"+slider_counter;document.getElementById(g).appendChild(d);var f=document.createElement("DIV");f.className="form_widget_amount_slider";f.innerHTML="<span></span>";f.style.width=a+"px";f.id="slider_slider"+slider_counter;f.style.position="absolute";f.style.bottom="0px";d.appendChild(f);var i=document.createElement("IMG");i.style.position="absolute";i.style.left="0px";i.style.zIndex=5;i.src=slider_handle_image_obj.src;i.id="slider_handle"+slider_counter;i.onmousedown=initMoveSlider;if(document.body.onmouseup){if(document.body.onmouseup.toString().indexOf("stopMoveSlider")==-1){alert("You allready have an onmouseup event assigned to the body tag")}}else{document.body.onmouseup=stopMoveSlider;document.body.onmousemove=startMoveSlider}i.ondragstart=form_widget_cancel_event;d.appendChild(i);positionSliderImage(false,slider_counter)}var namedColors=new Array("AliceBlue","AntiqueWhite","Aqua","Aquamarine","Azure","Beige","Bisque","Black","BlanchedAlmond","Blue","BlueViolet","Brown","BurlyWood","CadetBlue","Chartreuse","Chocolate","Coral","CornflowerBlue","Cornsilk","Crimson","Cyan","DarkBlue","DarkCyan","DarkGoldenRod","DarkGray","DarkGreen","DarkKhaki","DarkMagenta","DarkOliveGreen","Darkorange","DarkOrchid","DarkRed","DarkSalmon","DarkSeaGreen","DarkSlateBlue","DarkSlateGray","DarkTurquoise","DarkViolet","DeepPink","DeepSkyBlue","DimGray","DodgerBlue","Feldspar","FireBrick","FloralWhite","ForestGreen","Fuchsia","Gainsboro","GhostWhite","Gold","GoldenRod","Gray","Green","GreenYellow","HoneyDew","HotPink","IndianRed","Indigo","Ivory","Khaki","Lavender","LavenderBlush","LawnGreen","LemonChiffon","LightBlue","LightCoral","LightCyan","LightGoldenRodYellow","LightGrey","LightGreen","LightPink","LightSalmon","LightSeaGreen","LightSkyBlue","LightSlateBlue","LightSlateGray","LightSteelBlue","LightYellow","Lime","LimeGreen","Linen","Magenta","Maroon","MediumAquaMarine","MediumBlue","MediumOrchid","MediumPurple","MediumSeaGreen","MediumSlateBlue","MediumSpringGreen","MediumTurquoise","MediumVioletRed","MidnightBlue","MintCream","MistyRose","Moccasin","NavajoWhite","Navy","OldLace","Olive","OliveDrab","Orange","OrangeRed","Orchid","PaleGoldenRod","PaleGreen","PaleTurquoise","PaleVioletRed","PapayaWhip","PeachPuff","Peru","Pink","Plum","PowderBlue","Purple","Red","RosyBrown","RoyalBlue","SaddleBrown","Salmon","SandyBrown","SeaGreen","SeaShell","Sienna","Silver","SkyBlue","SlateBlue","SlateGray","Snow","SpringGreen","SteelBlue","Tan","Teal","Thistle","Tomato","Turquoise","Violet","VioletRed","Wheat","White","WhiteSmoke","Yellow","YellowGreen");var namedColorRGB=new Array("#F0F8FF","#FAEBD7","#00FFFF","#7FFFD4","#F0FFFF","#F5F5DC","#FFE4C4","#000000","#FFEBCD","#0000FF","#8A2BE2","#A52A2A","#DEB887","#5F9EA0","#7FFF00","#D2691E","#FF7F50","#6495ED","#FFF8DC","#DC143C","#00FFFF","#00008B","#008B8B","#B8860B","#A9A9A9","#006400","#BDB76B","#8B008B","#556B2F","#FF8C00","#9932CC","#8B0000","#E9967A","#8FBC8F","#483D8B","#2F4F4F","#00CED1","#9400D3","#FF1493","#00BFFF","#696969","#1E90FF","#D19275","#B22222","#FFFAF0","#228B22","#FF00FF","#DCDCDC","#F8F8FF","#FFD700","#DAA520","#808080","#008000","#ADFF2F","#F0FFF0","#FF69B4","#CD5C5C","#4B0082","#FFFFF0","#F0E68C","#E6E6FA","#FFF0F5","#7CFC00","#FFFACD","#ADD8E6","#F08080","#E0FFFF","#FAFAD2","#D3D3D3","#90EE90","#FFB6C1","#FFA07A","#20B2AA","#87CEFA","#8470FF","#778899","#B0C4DE","#FFFFE0","#00FF00","#32CD32","#FAF0E6","#FF00FF","#800000","#66CDAA","#0000CD","#BA55D3","#9370D8","#3CB371","#7B68EE","#00FA9A","#48D1CC","#C71585","#191970","#F5FFFA","#FFE4E1","#FFE4B5","#FFDEAD","#000080","#FDF5E6","#808000","#6B8E23","#FFA500","#FF4500","#DA70D6","#EEE8AA","#98FB98","#AFEEEE","#D87093","#FFEFD5","#FFDAB9","#CD853F","#FFC0CB","#DDA0DD","#B0E0E6","#800080","#FF0000","#BC8F8F","#4169E1","#8B4513","#FA8072","#F4A460","#2E8B57","#FFF5EE","#A0522D","#C0C0C0","#87CEEB","#6A5ACD","#708090","#FFFAFA","#00FF7F","#4682B4","#D2B48C","#008080","#D8BFD8","#FF6347","#40E0D0","#EE82EE","#D02090","#F5DEB3","#FFFFFF","#F5F5F5","#FFFF00","#9ACD32");var color_picker_div=false;var color_picker_active_tab=false;var color_picker_form_field=false;var color_picker_active_input=false;function baseConverter(e,b,a){e=e+"";e=e.toUpperCase();var g="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var h=0;for(var d=0;d<=e.length;d++){h+=(g.indexOf(e.charAt(d)))*(Math.pow(b,(e.length-d-1)))}e="";var f=Math.floor((Math.log(h))/(Math.log(a)));for(var d=f;d>=0;d--){var c=Math.floor(h/Math.pow(a,d));e=e+g.charAt(c);h-=c*(Math.pow(a,d))}if(e.length==0){e=0}return e}function colorPickerGetTopPos(a){var b=a.offsetTop;while((a=a.offsetParent)!=null){b+=a.offsetTop}return b}function colorPickerGetLeftPos(a){var b=a.offsetLeft;while((a=a.offsetParent)!=null){b+=a.offsetLeft}return b}function cancelColorPickerEvent(){return false}function showHideColorOptions(h,d){var b=this;if(d){var g=d.parentNode;b=d}else{var g=this.parentNode}var a=false;var i=g.getElementsByTagName("DIV")[0];counter=0;var j=10;var c=document.getElementById("color_picker_content").getElementsByTagName("DIV")[0];do{if(i.tagName=="DIV"&&i.className!="colorPickerCloseButton"){if(i==b){b.className="colorPickerTab_active";b.style.zIndex=50;var f=b.getElementsByTagName("IMG")[0];f.src="http://lensbaby.de/forum/mods/bbcode/colorpicker/images/tab_right_active.gif";f.src=f.src.replace(/inactive/,"active");c.style.display="block";a=c}else{i.className="colorPickerTab_inactive";var f=i.getElementsByTagName("IMG")[0];f.src="http://lensbaby.de/forum/mods/bbcode/colorpicker/images/tab_right_inactive.gif";if(a){i.style.zIndex=j-counter}else{i.style.zIndex=counter}c.style.display="none"}counter++}i=i.nextSibling;if(c.nextSibling){c=c.nextSibling}}while(i);document.getElementById("colorPicker_statusBarTxt").innerHTML="&nbsp;"}function createColorPickerTopRow(e){var i=[editor_tools_lang.rgb,editor_tools_lang.named,editor_tools_lang.slides];var f=[parseInt(editor_tools_lang.rgb_size),parseInt(editor_tools_lang.named_size),parseInt(editor_tools_lang.slides_size)];var b=document.createElement("DIV");b.className="colorPicker_topRow";e.appendChild(b);var d=0;for(var j=0;j<i.length;j++){var h=document.createElement("DIV");h.onselectstart=cancelColorPickerEvent;h.ondragstart=cancelColorPickerEvent;if(j==0){suffix="active";color_picker_active_tab=this}else{suffix="inactive"}h.id="colorPickerTab"+j;h.onclick=showHideColorOptions;if(j==0){h.style.zIndex=50}else{h.style.zIndex=1+(i.length-j)}h.style.left=d+"px";h.style.position="absolute";h.className="colorPickerTab_"+suffix;var g=document.createElement("SPAN");g.innerHTML=i[j];h.appendChild(g);var a=document.createElement("IMG");a.src="http://lensbaby.de/forum/mods/bbcode/colorpicker/images/tab_right_"+suffix+".gif";h.appendChild(a);b.appendChild(h);if(navigatorVersion<6&&MSIE){g.style.position="relative";a.style.position="relative";a.style.left="-3px";h.style.cursor="hand"}d=d+f[j]}var c=document.createElement("DIV");c.className="colorPickerCloseButton";c.innerHTML="x";c.onclick=closeColorPicker;c.onmouseover=toggleCloseButton;c.onmouseout=toggleOffCloseButton;b.appendChild(c)}function toggleCloseButton(){this.style.color="#FFF";this.style.backgroundColor="#317082"}function toggleOffCloseButton(){this.style.color="";this.style.backgroundColor=""}function closeColorPicker(){color_picker_div.style.display="none"}function createWebColors(e){var k=document.createElement("DIV");k.style.paddingTop="1px";e.appendChild(k);for(var a=15;a>=0;a-=3){for(var i=0;i<=15;i+=3){for(var j=0;j<=15;j+=3){var d=baseConverter(a,10,16)+"";var h=baseConverter(i,10,16)+"";var l=baseConverter(j,10,16)+"";var f="#"+d+d+h+h+l+l;var c=document.createElement("DIV");c.style.backgroundColor=f;c.innerHTML="<span></span>";c.className="colorSquare";c.title=f;c.onclick=chooseColor;c.setAttribute("rgbColor",f);c.onmouseover=colorPickerShowStatusBarText;c.onmouseout=colorPickerHideStatusBarText;k.appendChild(c)}}}}function createNamedColors(b){var c=document.createElement("DIV");c.style.paddingTop="1px";c.style.display="none";b.appendChild(c);for(var d=0;d<namedColors.length;d++){var a=namedColorRGB[d];var e=document.createElement("DIV");e.style.backgroundColor=a;e.innerHTML="<span></span>";e.className="colorSquare";e.title=namedColors[d];e.onclick=chooseColor;e.onmouseover=colorPickerShowStatusBarText;e.onmouseout=colorPickerHideStatusBarText;e.setAttribute("rgbColor",a);c.appendChild(e)}}function colorPickerHideStatusBarText(){document.getElementById("colorPicker_statusBarTxt").innerHTML="&nbsp;"}function colorPickerShowStatusBarText(){var a=this.getAttribute("rgbColor");if(this.title.indexOf("#")<0){a=a+" ("+this.title+")"}document.getElementById("colorPicker_statusBarTxt").innerHTML=a}function createAllColorDiv(b){var f=document.createElement("DIV");f.style.display="none";f.className="js_color_picker_allColorDiv";f.style.paddingLeft="3px";f.style.paddingTop="5px";f.style.paddingBottom="5px";b.appendChild(f);var e=document.createElement("DIV");e.className="colorSliderLabel";e.innerHTML="R";f.appendChild(e);var a=document.createElement("DIV");a.className="colorSlider";a.id="sliderRedColor";f.appendChild(a);var d=document.createElement("DIV");d.className="colorInput";var h=document.createElement("INPUT");h.id="js_color_picker_red_color";h.maxlength=3;h.style.width="48px";h.style.fontSize="11px";h.name="redColor";h.value=0;d.appendChild(h);f.appendChild(d);var e=document.createElement("DIV");e.className="colorSliderLabel";e.innerHTML="G";f.appendChild(e);var a=document.createElement("DIV");a.className="colorSlider";a.id="sliderGreenColor";f.appendChild(a);var d=document.createElement("DIV");d.className="colorInput";var h=document.createElement("INPUT");h.id="js_color_picker_green_color";h.maxlength=3;h.style.width="48px";h.style.fontSize="11px";h.name="GreenColor";h.value=0;d.appendChild(h);f.appendChild(d);var e=document.createElement("DIV");e.className="colorSliderLabel";e.innerHTML="B";f.appendChild(e);var a=document.createElement("DIV");a.className="colorSlider";a.id="sliderBlueColor";f.appendChild(a);var d=document.createElement("DIV");d.className="colorInput";var h=document.createElement("INPUT");h.id="js_color_picker_blue_color";h.maxlength=3;h.style.width="48px";h.style.fontSize="11px";h.name="BlueColor";h.value=0;d.appendChild(h);f.appendChild(d);var g=document.createElement("DIV");g.className="colorPreviewDiv";g.id="colorPreview";g.style.backgroundColor="#000000";g.innerHTML="<span></span>";g.title="Click on me to assign color";f.appendChild(g);g.onclick=chooseColorSlider;var i=document.createElement("DIV");i.className="colorCodeDiv";var h=document.createElement("INPUT");h.id="js_color_picker_color_code";i.appendChild(h);h.maxLength=7;h.style.fontSize="11px";h.style.width="48px";h.value="#000000";h.onchange=setPreviewColorFromTxt;h.onblur=setPreviewColorFromTxt;f.appendChild(i);var c=document.createElement("DIV");c.style.clear="both";f.appendChild(c);form_widget_amount_slider("sliderRedColor",document.getElementById("js_color_picker_red_color"),170,0,255,"setColorByRGB()");form_widget_amount_slider("sliderGreenColor",document.getElementById("js_color_picker_green_color"),170,0,255,"setColorByRGB()");form_widget_amount_slider("sliderBlueColor",document.getElementById("js_color_picker_blue_color"),170,0,255,"setColorByRGB()")}function setPreviewColorFromTxt(){if(this.value.match(/\#[0-9A-F]{6}/g)){document.getElementById("colorPreview").style.backgroundColor=this.value;var d=this.value.substr(1,2);var c=this.value.substr(3,2);var a=this.value.substr(5,2);document.getElementById("js_color_picker_red_color").value=baseConverter(d,16,10);document.getElementById("js_color_picker_green_color").value=baseConverter(c,16,10);document.getElementById("js_color_picker_blue_color").value=baseConverter(a,16,10);positionSliderImage(false,1,document.getElementById("js_color_picker_red_color"));positionSliderImage(false,2,document.getElementById("js_color_picker_green_color"));positionSliderImage(false,3,document.getElementById("js_color_picker_blue_color"))}}function chooseColor(){editor_tools_handle_color_select(this.getAttribute("rgbColor"));color_picker_div.style.display="none"}function createStatusBar(b){var c=document.createElement("DIV");c.className="colorPicker_statusBar";var a=document.createElement("SPAN");a.id="colorPicker_statusBarTxt";c.appendChild(a);b.appendChild(c)}function chooseColorSlider(){editor_tools_handle_color_select(document.getElementById("js_color_picker_color_code").value);color_picker_div.style.display="none"}function showColorPicker(a){if(!color_picker_div){color_picker_div=document.createElement("DIV");color_picker_div.id="dhtmlgoodies_colorPicker";color_picker_div.style.display="none";document.body.appendChild(color_picker_div);createColorPickerTopRow(color_picker_div);var b=document.createElement("DIV");b.id="color_picker_content";color_picker_div.appendChild(b);createWebColors(b);createNamedColors(b);createAllColorDiv(b);createStatusBar(color_picker_div);editor_tools_register_popup_object(color_picker_div)}if(color_picker_div.style.display=="none"||color_picker_active_input!=a){editor_tools_hide_all_popups();color_picker_div.style.display="block"}else{color_picker_div.style.display="none"}color_picker_div.style.left=colorPickerGetLeftPos(a)+"px";color_picker_div.style.top=colorPickerGetTopPos(a)+a.offsetHeight+2+"px";color_picker_active_input=a}function setColorByRGB(){var c=document.forms[0];var e=document.getElementById("js_color_picker_red_color").value.replace(/[^\d]/,"");var d=document.getElementById("js_color_picker_green_color").value.replace(/[^\d]/,"");var a=document.getElementById("js_color_picker_blue_color").value.replace(/[^\d]/,"");if(e/1>255){e=255}if(d/1>255){d=255}if(a/1>255){a=255}e=baseConverter(e,10,16)+"";d=baseConverter(d,10,16)+"";a=baseConverter(a,10,16)+"";if(e.length==1){e="0"+e}if(d.length==1){d="0"+d}if(a.length==1){a="0"+a}document.getElementById("colorPreview").style.backgroundColor="#"+e+d+a;document.getElementById("js_color_picker_color_code").value="#"+e+d+a};

/* Added by module "bbcode", file "mods/bbcode/colorpicker/color_functions.min.js" */
function baseConverter(e,b,a){e=e+"";e=e.toUpperCase();var h="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var j=0;for(var d=0;d<=e.length;d++){j+=(h.indexOf(e.charAt(d)))*(Math.pow(b,(e.length-d-1)))}e="";var g=Math.floor((Math.log(j))/(Math.log(a)));for(var d=g;d>=0;d--){var c=Math.floor(j/Math.pow(a,d));e=e+h.charAt(c);j-=c*(Math.pow(a,d))}if(e.length==0){e=0}return e}function toHSV(b){b=b.replace("#","");red=baseConverter(b.substr(0,2),16,10);green=baseConverter(b.substr(2,2),16,10);blue=baseConverter(b.substr(4,2),16,10);if(red.length==0){red=0}if(green.length==0){green=0}if(blue.length==0){blue=0}red=red/255;green=green/255;blue=blue/255;maxValue=Math.max(red,green,blue);minValue=Math.min(red,green,blue);var a=0;if(maxValue==minValue){a=0;saturation=0}else{if(red==maxValue){a=(green-blue)/(maxValue-minValue)/1}else{if(green==maxValue){a=2+(blue-red)/1/(maxValue-minValue)/1}else{if(blue==maxValue){a=4+(red-green)/(maxValue-minValue)/1}}}saturation=(maxValue-minValue)/maxValue}a=a*60;valueBrightness=maxValue;if(valueBrightness/1<0.5){}if(valueBrightness/1>=0.5){}returnArray=[a,saturation,valueBrightness];return returnArray}function toRgb(a,b,c){Hi=Math.floor(a/60);if(a==360){Hi=0}f=a/60-Hi;p=(c*(1-b)).toPrecision(2);q=(c*(1-(f*b))).toPrecision(2);t=(c*(1-((1-f)*b))).toPrecision(2);switch(Hi){case 0:red=c;green=t;blue=p;break;case 1:red=q;green=c;blue=p;break;case 2:red=q;green=c;blue=t;break;case 3:red=p;green=q;blue=c;break;case 4:red=t;green=p;blue=c;break;case 5:red=c;green=p;blue=q;break}if(b==0){red=c;green=c;blue=c}red*=255;green*=255;blue*=255;red=Math.round(red);green=Math.round(green);blue=Math.round(blue);red=baseConverter(red,10,16);green=baseConverter(green,10,16);blue=baseConverter(blue,10,16);red=red+"";green=green+"";blue=blue+"";while(red.length<2){red="0"+red}while(green.length<2){green="0"+green}while(blue.length<2){blue="0"+blue}rgbColor="#"+red+""+green+""+blue;return rgbColor.toUpperCase()}function findColorByDegrees(a,b){a=a.replace("#","");myArray=toHSV(a);myArray[0]+=b;if(myArray[0]>=360){myArray[0]-=360}if(myArray[0]<0){myArray[0]+=360}return toRgb(myArray[0],myArray[1],myArray[2])}function findColorByBrightness(a,b){a=a.replace("#","");myArray=toHSV(a);myArray[2]+=b/100;if(myArray[2]>1){myArray[2]=1}if(myArray[2]<0){myArray[2]=0}myArray[1]+=b/100;if(myArray[1]>1){myArray[1]=1}if(myArray[1]<0){myArray[1]=0}return toRgb(myArray[0],myArray[1],myArray[2])};

