/**
 * CMS main JavaScript library, needed by the CMSForms php class
 *
 * @author Markus Klein <m.klein@intersolute.de>
 * @version $Id: CMSServer forms.js.php v1.00.59 (Uploaded 2010-09-02 15:17:09 by admin_mk, installed here 2010-09-02 15:17:35 by unknown) $ 
 * @package cms
 * @subpackage javascript
 */

// GLOBALE VARS

var intervalID = 0, execInterval = 0; // Timer IDs
var lookupVisible = false; // Lookup-Dropdown Sichtbarkeit
var lookupRequest = false; // Request-Objekt fuer Lookups
var lookupTask; // Task-Schluessel
var lookupLastVal; // Vorheriger Wert im Lookup
var lookupDomId; // DOM-ID des aktuellen Lookup
var script_path = "cms/"; // Initialisieren
var shiftPressed = false;
var altPressed   = false;
var ctrlPressed  = false;
var formFocus = '';


// JSON.parse for older browsers
if (typeof(JSON) == "undefined") { JSON = {}; }
if (typeof(JSON.parse) == "undefined") { JSON.parse = function(expr) { return eval('('+expr+')'); }}

// ALLGEMEINE FUNKTIONEN

function str_replace(wht, wth, in_strg)
{
    var strg=new String(in_strg);
    return strg.split(wht).join(wth);
}

function strtr(instr, searchstring, replacestring)
{
    for(var i = 0; i < searchstring.length; i++) { instr=str_replace(searchstring[i], replacestring[i], instr); }
    return instr;
}

function check_url(identifier)
{
    var urlst=document.getElementById(identifier).value;
    if(urlst.substring(0,4)=="www.") {
        document.getElementById(identifier).value="http://"+urlst;
    }
}

function encode_utf8(s)
{
    return unescape(encodeURIComponent(s));
}

function decode_utf8(s)
{
    return decodeURIComponent(escape(s));
}

/**
 * Convert &amp; to & for proper calls in js
 *
 * @param string url
 * @return string fixed url
 */
function url_amp_remove(url)
{
    return str_replace('&amp;', '&', url);
}


function check_digits(identifier,maxvalue)
{
    var str=document.getElementById(identifier).value;
    var valu=parseInt(str);
    if (valu > maxvalue) {valu=maxvalue;}
    str="" + valu;
    if (str=="NaN") str="";
    document.getElementById(identifier).value=str;
}

function select_gethtml(selecter, targetid)
{
    var srcid=document.getElementById(selecter).value;
    var tarelem=document.getElementById(targetid);
    var htmlcode=document.getElementById(srcid).innerHTML;
    tarelem.innerHTML=htmlcode;
}


function cms_html_cleanup(htmlString, cleanLevel)
{
    var req = exec_request('/cms/ajax_handler.php', false, 'task=htmlcleanup&cleanlevel='+encodeURIComponent(cleanLevel)+'&value='+encodeURIComponent(htmlString));

    if(typeof(cleanLevel) == 'undefined') {
        disarmLevel = 0;
    }

    if(req.status == 200) {
        if(req.responseText) {  // is there any response
            htmlString = req.responseText;
        }
    } else {
        debug_print("cms_html_cleanup error: "+req.status);
    }
    return htmlString;
}

function disarm(s, disarmLevel, defaultifresponseempty)
{
    if (typeof(defaultifresponseempty) == 'undefined') {   // if no default value for empty responses is supplied, use the input string
        defaultifresponseempty = s;
    }

    if(typeof(disarmLevel) == 'undefined') {
        disarmLevel = 5;
    }
    var req = exec_request('/cms/ajax_handler.php?task=disarm&value='+encodeURIComponent(s)+'&level='+disarmLevel);
    if(req.status == 200) {
        if(req.responseText) {  // is ther any response
            s = req.responseText;
        } else {    // if not, apply default value
            s = defaultifresponseempty;
        }
    } else {
        debug_print("disarm error: "+req.status);
    }
    return s;
}

function setURLTitle(defaultvalue)
{
    var linktitle = document.getElementById('obj_obj_linktitle');
    var headline = document.getElementById('obj_obj_headline');
    if (trim(linktitle.value) == '') {
        linktitle.value = disarm(headline.value, 5, defaultvalue);
    }
}

/**
 * Detect mouse position (cross browser)
 *
 * @param e event reference
 * @return array 0 => x position, 1 => y position
 */
function get_mouse_position(e)
{
    e = e || window.event;
    var cursor = {x:0, y:0};
    if (e.pageX || e.pageY) {
        cursor.x = e.pageX;
        cursor.y = e.pageY;
    } else {
        cursor.x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
        cursor.y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
    }
    return cursor;
}


function trim (str) {
  // trim leading and following whitespaces
  return str.replace (/^\s+/, '').replace (/\s+$/, '');
}

/**
 * Detect keycode
 *
 * @param evt event reference
 * @return integer keycode
 */
function get_keycode(evt)
{
    var keyCode;
    if(!evt) evt = window.event;

    if ("which" in evt) {
        keyCode = evt.which; // modern
    } else if ("keyCode" in evt) {
        keyCode = evt.keyCode; // legacy
    }
    shiftPressed = evt.shiftKey;
    altPressed   = evt.altKey;
    ctrlPressed  = evt.ctrlKey;
    return keyCode;
}

// Dom-Objekt leeren/loeschen

function empty_node(dom_id) {
    var clearDom;
    if(clearDom = document.getElementById(dom_id)) {
        clearDom.innerHTML='';
    }
}

function kill_node(dom_id) {
    var killme = document.getElementById(dom_id);
    killme.parentNode.removeChild(killme);
}

// Ersetzen einer Text-Box Auswahl, bzw. Einfassen

function selection_replace(tid, repl, wrap_st, wrap_nd)
{
    var ta, sel_text;
    if(ta = document.getElementById(tid)) {
        if(typeof wrap_st == 'undefined') { wrap_st = ''; }
        if(typeof wrap_nd == 'undefined') { wrap_nd = ''; }
        ta.focus();

        // IE
        if(typeof document.selection != 'undefined') {
            var range = document.selection.createRange();
            sel_text = range.text;
            if(repl != null) { sel_text = repl; }
            range.text = wrap_st + sel_text + wrap_nd;
            range = document.selection.createRange();
            if(sel_text.length == 0) {
                range.move('character', -wrap_nd.length);
            } else {
                range.moveStart('character', wrap_st.length + sel_text.length + wrap_nd.length);
            }
            range.select();

        // Gecko
        } else if(typeof ta.selectionStart != 'undefined') {
            var start = ta.selectionStart;
            var end = ta.selectionEnd;
            sel_text = ta.value.substring(start, end);
            if(repl != null) { sel_text = repl; }
            ta.value = ta.value.substr(0, start) + wrap_st + sel_text + wrap_nd + ta.value.substr(end);
            var pos;
            if (sel_text.length == 0)
            {   pos = start + wrap_st.length;   }
            else
            {   pos = start + wrap_st.length + sel_text.length + wrap_nd.length; }
            ta.selectionStart = pos;
            ta.selectionEnd = pos;
        }
    }
}

// Herausloesen einer Seite

function flyout(winid, w, h)
{
    var theWin = popwin("", w, h, winid);
    document.getElementById("flyoutlink").innerHTML="";
    theWin.document.write(document.documentElement.innerHTML)
    document.body.innerHTML="&nbsp;";
    theWin.focus();
}

/**
 * Maximise window
 */

function maximize_window()
{
    window.moveTo(0,0);
    window.resizeTo(screen.availWidth, screen.availHeight);
}


// Oeffnen einer Hilfe-Box

function help_page(linktitle_or_url)
{
    if ((linktitle_or_url.indexOf('download.php') >= 0) || (linktitle_or_url.indexOf('services/files') >= 0)) {
        window.location.href = linktitle_or_url;
    } else if (linktitle_or_url.indexOf('/') >= 0) {
        popwin(linktitle_or_url, 640, 480, "cmshelp", "yes");
    } else {
        popwin("/"+linktitle_or_url+".html?print=1", 640, 480, "cmshelp", "yes");
    }
}

// Duplizieren eines Eingabebereichs mit fortlaufend nummeriertem Array

function auto_expand(thisnode)
{
    setTimeout('auto_expand_now("'+ thisnode.id +'")', 15);
}

function auto_expand_now(thisnodeId)
{
    var src_range;
    var trg_range;
    var thisnode;
    thisnode = document.getElementById(thisnodeId);

    if((thisnode.value != "")||(thisnode.value=="SELECT")) if(src_range=auto_expand_detect_frame(thisnode)) {
        var range_id=src_range.id;
        var range_nr=range_id;
        range_nr=range_nr.replace(/(.*__)([0-9]+)(.*)/, "$2");
        range_nr=parseInt(range_nr);
        var new_nr=range_nr+1;
        new_id=str_replace("__"+range_nr, "__"+new_nr, range_id);
        if(trg_range=document.getElementById(new_id)) {
            // Existiert, Event entfernen
            thisnode.onChange=null;
            thisnode.onKeyDown=null;
        } else {
            trg_range=src_range.cloneNode(true);
            trg_range.id=new_id;
            auto_expand_recursive_repl(trg_range, "__"+range_nr, "__"+new_nr);
            src_range.parentNode.insertBefore(trg_range, src_range.nextSibling);
        }
    }
}



function auto_expand_detect_frame(nod)
{
    var par;
    while(par=nod.parentNode) {
        nod=par;
        if(typeof(nod.id) != "undefined") {
            var s = new String;
            s=nod.id;
            if(s.substring(s.length-6)=="_frame")   {   return(nod); }
        }
    }
    return(false);
}

// Rekursiver String-Replace innerhalb eines Knotens ueber id, value, name

function auto_expand_recursive_repl(nodeobj, strwhat, strwith)
{
    var tagTyp;
    for(var i = 0; i < nodeobj.childNodes.length; i++) {
        if(typeof(nodeobj.childNodes[i].tagName) != "undefined") {
            tagTyp = nodeobj.childNodes[i].tagName;

            if(nodeobj.childNodes[i].hasChildNodes()) {
                auto_expand_recursive_repl(nodeobj.childNodes[i], strwhat, strwith);
            }

            if(nodeobj.childNodes[i].id)    { nodeobj.childNodes[i].id = str_replace(strwhat, strwith, nodeobj.childNodes[i].id); }
            if(nodeobj.childNodes[i].name)  { nodeobj.childNodes[i].name = str_replace(strwhat, strwith, nodeobj.childNodes[i].name); }
            if(nodeobj.childNodes[i].href)  { nodeobj.childNodes[i].href = str_replace(strwhat, strwith, nodeobj.childNodes[i].href); }
            if(tagTyp != "OPTION" &&  nodeobj.childNodes[i].type != "button") {
                if(nodeobj.childNodes[i].value) {nodeobj.childNodes[i].value = ""; }
            }
        }
    }
}

// Klassisches Popup

function popwin(targeturl, w, h, winid, scrlbars)
{
    var nw = 30 + w;
    var nh = 55 + h;
    var theWin;
    if(typeof winid == 'undefined') { winid="theWin"; }
    if(typeof scrlbars == 'undefined') { scrlbars="no"; }
    if(theWin = window.open(targeturl, winid, "toolbar=no,location=no,status=no,menubar=no,scrollbars="+scrlbars+",resizable=yes,width="+nw+",height="+nh+""))
    {
        theWin.resizeTo(nw,nh);
        theWin.focus();
    }
    if(winid != "theWin") { return theWin; }
}

// Zaehler und Maxlength-Funktion fuer Textareas

function textarea_count(span_id, maxlen, count_text)
{
    var inp=document.getElementById(span_id);
    var span=document.getElementById(span_id + "_counter");

    var lft=maxlen - inp.value.length;

    if(lft < 0)
    {
        lft=0;
        inp.value = inp.value.substring(0,maxlen);
    }

    count_text=str_replace("%", lft, count_text);
    span.innerHTML = "<div class='txtQuote' style='text-align:right;'>" + count_text + "</div>";
}

// Bild / Downloaduebersicht starten

function open_archive(dom_id, overview_type)
{
    elem=document.getElementById(dom_id);

    var nw=750;
    var nh=700;

    imgArch = window.open("/cms/admin/overview.php?item_nr="+elem.value+"&dom_id="+dom_id+"&displaymode=2&imgselect=1&type="+overview_type, "imgArch","toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width="+nw+",height="+nh+"");
    if(imgArch) {
        imgArch.focus();
        imgArch.resizeTo(nw,nh);
    }
}

// Bildvorschau Swap

function preview_image(dom_id)
{
    var imgpath=document.getElementById(dom_id).value;
    var ext=imgpath.substring(imgpath.length-4);

    if((ext==".gif")||(ext==".jpg")||(ext==".png"))
    {
        var prev=document.getElementById(dom_id+"_preview");
        var oldsrc=prev.src;
        var thumb=imgpath;
        var check=thumb.lastIndexOf("/")+1;
        thumb="/images/"+thumb.substring(0,check)+"th_"+thumb.substring(check);

        if(oldsrc.indexOf(thumb) == -1)
        {
            prev.src=(thumb);
        }
    }
}

// Bildauswahl wiederherstellen

function preview_restore(dom_id)
{
    document.getElementById(dom_id+"_preview").src="/cms/gfx/nopic.gif";
}

// Dokument-Charset ermitteln

function get_charset()
{
    var ret="", s=new String;
    if(document.charset)
    { ret=document.charset; } // Simpel in IE
    else
    {
        var metas=document.getElementsByTagName("meta");
        var c=0, cont;
        while(metas[c])
        {
            if(s=metas[c].getAttribute("http-equiv")) if(s.toLowerCase() == "content-type")
            {
                cont=metas[c].getAttribute("content")+";charset=;";
                cont=cont.split("charset=")[1];
                cont=cont.split(";")[0];
                return cont;
            }
            c++;
        }
    }
    return ret;
}


///// "AJAX" Funktionen basierend auf HTTP-Request Objekt //////////////////////////////

// Request Objekt laden

function get_request()
{
    var req;
    if(window.XMLHttpRequest) // Moz
    {
        req = new XMLHttpRequest();
        //if(req.overrideMimeType) { req.overrideMimeType('text/xml'); }
    }
    else if (window.ActiveXObject) // IE
    {
        try
        {   req = new ActiveXObject("Msxml2.XMLHTTP");  }
        catch (e)
        {   try {   req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} }
    }

    if(!req)
    {   return false;   }
    else
    {
        return req;
    }
}

// Ajax Aufruf einer URI

function exec_request(url, async, params)
{
    var meth='POST';
    if(typeof(async) == "undefined")  { async = false; }
    if(typeof(params) == "undefined") { params = ''; } // meth='GET'; }
    var req;

    if(req = get_request()) {
        req.open(meth, url, async);
        if(meth == 'POST') {
            req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            req.setRequestHeader("Content-length", params.length);
            req.setRequestHeader("Connection", "close");
            req.send("charset=UTF-8&"+params);
        } else {
            req.send(null);
        }
        hourglass(false);
        return req;
    } else {
        return false;
    }
}

// Hourglass-Cursor an/aus

function hourglass(stats)
{
    if (typeof(document.body) != 'undefined' && document.body != null) {
        if(typeof(document.body.style.cursor) != 'undefined') {
            document.body.style.cursor = (stats ? "wait" : "auto");
        }
    }
}

// Synchroner Aufruf einer URI und Annahme von Daten

function ajax_call(url)
{
    var req=exec_request(url, false);
    if(req.status == 200) {
        ajax_parent_push(req);
    } else {
        debug_print("Ajax Call error: "+req.status);
    }
}

// Asynchroner Aufruf einer URI und Annahme von Daten
var async_acall;
function ajax_call_async(url)
{
    async_acall = exec_request(url, true);
    async_acall.onreadystatechange = ajax_call_async_receive;
}

function ajax_call_async_receive()
{
    if(typeof(async_acall)!="undefined") if(async_acall.readyState == 4) {
        if(async_acall.status == 200) {
            ajax_parent_push(async_acall);
        }
    }
}

/**
 * Place an ajax call and return the plain response text
 */
function ajax_get_value(url)
{
    var req=exec_request(url, false);
    if(req.status == 200) {
        if (req.responseText) {
            return req.responseText;
        } else {
            return false;
        }
    } else {
        return false;
    }
}

// Auslesen des HTML Blocks aus der Response, und Uebertragung in Block-Element

function ajax_parent_push(req)
{
    var root = false;
    if(req.responseXML || req.responseText) {
        /* XML */
        if (req.responseXML && (root = req.responseXML.getElementsByTagName("body")[0])) {
            var dom_id=ajax_return_value(root, "domid");
            var html=ajax_content_reassemble(root);
            fill_dom_innerhtml(dom_id, html);
        /* JSON */
        } else if(req.responseText) {
            try {
                root = JSON.parse(req.responseText);
            } catch(err) {
                debug_print('Failed to parse JSON: '+err.description);
            }
            if (root) {
                if(typeof(root.body) != 'undefined') {
                    fill_dom_innerhtml(root.domid, root.body);
                }
                if(typeof(root.jsexec) != "undefined") {
                    eval(root.jsexec);
                }
            }

        } else {
            debug_print("No XML / JSON body!");
        }
    } else {
        debug_print("No ajax response!");
    }
}

/**
 * Put some contents into an element identified by dom_id.
 * If the element is not found, do nothing.
 */
function fill_dom_innerhtml(dom_id, inner_html)
{
    var elem;
    if (dom_id) {
        elem = document.getElementById(dom_id);
        if (elem) {
            elem.innerHTML = inner_html;
        }
    }
}

// Rueckgabewert aus XML Textknoten extrahieren

function ajax_return_value(obj, tagnam)
{
    var elem;
    if(elem = obj.getElementsByTagName(tagnam)[0].firstChild) {
        return elem.data;
    } else {
        return '';
    }
}

// Inhalte aller enthaltener DIVs aneinanderreihen

function ajax_content_reassemble(root)
{
    var cnt=0, chunk, ret='';
    var divs = root.getElementsByTagName("div");
    var chunk;
    var conts;

    for(var k=0, chunk; chunk=divs[k++];) {
        if(conts = chunk.firstChild) {
            ret = ret + conts.data;
        } else {
            debug_print('nofirstchild:'+chunk);
        }
    }
    return ret;
}

// Formularinhalt per AJAX Aufruf uebermittlen

function ajax_form_submit(frm, async)
{
    var params="", act;
    if(frm) {
        act=frm.action;
        params+=ajax_form_submit_assemble(frm.getElementsByTagName("input"));
        params+=ajax_form_submit_assemble(frm.getElementsByTagName("select"));
        params+=ajax_form_submit_assemble(frm.getElementsByTagName("textarea"));

        return exec_request(act, async, params);
    }
}

function ajax_form_submit_assemble(elems)
{
    var c = 0, params = '', value = '';
    while(elems[c])
    {
        if(elems[c].name && elems[c].value) {
            if(elems[c].type == 'checkbox') {
                value = elems[c].checked ? elems[c].value : '';
            } else {
                value = elems[c].value;
            }
            params+=elems[c].name +"=" + encodeURIComponent(value) + "&";
        }
        c++;
    }
    return params;
}

// Aufruf einer Lookup-Box

var ajax_lookup_response_interval = 200;
function ajax_lookup(task, dom_id, e)
{
    lookupTask=task;
    lookupDomId=dom_id;
    var key_num=get_keycode(e);

    if (key_num==40) {
        // Down
        if(lookupVisible) {
            lookupRequest = false; // AJAX Abbruch
            var selbox = document.getElementById(dom_id+'_select');
            selbox.selectedIndex = 0;
            selbox.focus();
            lookup_onchange(e);
        }
    } else if(key_num==9) {
        // Tab
        lookup_hide_now();
        ajax_destroy(dom_id);
    } else if(typeof(intervalId) == "undefined" || intervalID < 1) {
        clearInterval(intervalID);
        intervalID = setTimeout('ajax_lookup_now();',ajax_lookup_response_interval);
        ajax_lookup_response_interval = 500;
    }
}

// Lookup-Rahmenbedingungen erzeugen, AJAX Request absetzen

function ajax_lookup_now(offs)
{
    lookupRequest = false;
    var dom_id=lookupDomId;
    if(!offs) {offs=0;}
    clearInterval(intervalID);
    intervalID = 0;

    var ajax_in;

    if(ajax_in=document.getElementById(dom_id)) {

        var ajax_div;
        if(!(ajax_div=document.getElementById(dom_id+'_ajaxdiv'))) {
            var divcontainer=document.createElement("div");
            divcontainer.style.position="relative";
            ajax_in.parentNode.appendChild(divcontainer);

            ajax_div=document.createElement("div");
            ajax_div.id=dom_id+'_ajaxdiv';
            ajax_div.style.zIndex="100";
            ajax_div.style.position="absolute";
            ajax_div.style.width="100%";
            ajax_div.style.left="0";
            ajax_div.style.top="0";
            ajax_div.style.padding="0";
            ajax_div.style.margin="0";
            ajax_div.style.overflow="hidden";
            ajax_div.style.visibility="visible";
            divcontainer.appendChild(ajax_div);
        }

        if(ajax_in.value.length >= 1) {
            if((ajax_in.value != lookupLastVal) && (!lookupRequest)) {
                lookupLastVal=ajax_in.value;
                lookupRequest=get_request();
                lookupRequest.onreadystatechange = lookup_receive;
                lookupRequest.open("GET", "/cms/ajax_handler.php?task="+lookupTask+"&dom_id="+dom_id+"&value="+encodeURIComponent(lookupLastVal)+"&offset="+offs, true);
                lookupRequest.send(null);
            }
        } else {
            lookup_hide_now();
        }
    }
}

/*
 * Set and position error bubble
 */

function forms_errorbubble_position(dom_id, hasError)
{
    var errorbubble;
    var errorbiframe;
    var fldnode;
    var useIeHack = false;
    var currentErrorBubble;

    // Detect IE6
    if(typeof(navigator.appVersion) != 'undefined') {
        useIeHack = (navigator.appVersion.indexOf('MSIE 6') >= 0);
    }

    if(errorbubble = document.getElementById('errorbubble')) {

        currentErrorBubble = errorbubble.getAttribute('name');

        if(fldnode = document.getElementById(dom_id)) {
            // Parent node
            var prnt = fldnode.parentNode;

            if(hasError) {
                currentErrorbubble = dom_id;
                prnt.setAttribute('class', 'favalError');
                prnt.setAttribute('className', 'favalError');
                if(currentErrorBubble == "" || currentErrorBubble == "none") {
                    // Allocate error bubble in page body
                    var body = document.getElementsByTagName('body')[0];
                    body.insertBefore(errorbubble, body.firstChild);

                    // Find field position
                    var fldPos = find_object_position(fldnode);

                    // Move bubble to field
                    errorbubble.style.top = (fldPos[1] - 81) + 'px';
                    errorbubble.style.left = (fldPos[0] - 10) + 'px';
                    errorbubble.style.zIndex = '101';

                    // IE 6 Hack: no element can be shown in front of select boxes
                    // except iframes. So we overlay the error bubble with an invisible
                    // iframe, which will block out any underlying select boxes
                    if(useIeHack) {
                        if(!(errorbiframe = document.getElementById('errorbiframe'))) {
                            errorbiframe = document.createElement('iframe');
                            errorbiframe.id = 'errorbiframe';
                            errorbiframe.style.position = 'absolute';
                            errorbiframe.style.display = 'none';
                            errorbiframe.setAttribute('frameBorder', 0);
                            body.insertBefore(errorbiframe, errorbubble);
                        }
                         // copy style
                        for (var i in errorbubble.style) { try { errorbiframe.style[i] = errorbubble.style[i]; } catch (e) {}}
                    }

                    // Show the bubble
                    errorbubble.style.display = 'block';
                    errorbubble.setAttribute('name', dom_id);

                    if(useIeHack) {
                        errorbiframe.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';
                        errorbiframe.style.display = 'block';
                        errorbiframe.style.height = '60px';
                    }
                }
                setTimeout('errorbubble_avoid_view_blocking("'+formFocus+'")', 100);

            } else {
                prnt.setAttribute('class', '');
                prnt.setAttribute('className', '');
                if(currentErrorBubble == dom_id) {
                    errorbubble_hide();
                }
            }

        }
    }
}


/**
 * Detect if current focussed element lies covered behind the error bubble.
 * If so, hide error bubble.
 */
function errorbubble_avoid_view_blocking(favalId)
{
    var errorbubble, errorpos;
    var currentelem, currentpos;
    var maxtop;

    if(errorbubble = document.getElementById('errorbubble')) {
        if (currentelem = document.getElementById(favalId)) {
            currentpos = find_object_position(currentelem);
            errorpos = find_object_position(errorbubble);
            maxtop = errorpos[1];
            maxtop = maxtop + 81;
            if (currentpos[1] < maxtop) {
                errorbubble_hide();
            }
        }
    }
}

/**
 * Remember focussed element
 */
function forms_faval_focus(dom_id)
{
    formFocus = dom_id;
}

/*
 * Hide the error bubble
 */
function errorbubble_hide()
{
    var errorbubble, errorbiframe;
    if(errorbubble = document.getElementById('errorbubble')) {
        errorbubble.setAttribute('name', '');
        errorbubble.style.display = 'none';
        if(errorbiframe = document.getElementById('errorbiframe')) {
            errorbiframe.style.display = 'none';
        }
    }
}


/*
 * Do forms class validation call
 */
function forms_faval(favalUrl, favalId, favalFtype, favalVtype, favalMand)
{
    var favalField, errorbubble;
    if((favalField = document.getElementById(favalId)) && (errorbubble = document.getElementById('errorbubble'))) {
        var currentErrorBubble = errorbubble.getAttribute('name');
        if(currentErrorBubble == favalId) {
            errorbubble_hide();
        }
        setTimeout('ajax_call_async("'+favalUrl+'?faval='+favalId+'&ftype='+favalFtype+'&vtype='+favalVtype+'&mand='+favalMand+'&value='+encodeURIComponent(favalField.value)+'")', 15);
    }
}



function find_object_position(obj)
{
    var curleft = curtop = 0;

    if (obj.offsetParent) {
        do {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;
        } while (obj = obj.offsetParent);
    }
    return [curleft,curtop];
}


// Antwort fuer Lookup- AJAX Request entgegennehmen

function lookup_receive()
{
    if(typeof(lookupRequest)!="undefined") if(lookupRequest.readyState == 4) {
        if(lookupRequest.status == 200) {
            var root=lookupRequest.responseXML;
            var lookie;

            if (lookie = root.getElementsByTagName("lookup")[0]) {
                var dom_id=lookie.getAttribute("dom_id");
                var offs=lookie.getAttribute("offset");
                var content=root.getElementsByTagName('div')[0];
                var opts=root.getElementsByTagName('option');
                var cnt;
                if(opts.length) { cnt=opts.length } else { cnt=0; }

                if(cnt > 0) {
                    lookup_show();
                    var selc, xt, curs, newopt;
                    if(selc=document.getElementById(dom_id+'_select')) {
                        curs=0;
                        if(offs == 0) {
                            selc.innerHTML="";
                        } else {
                            xt=selc.lastChild;
                            xt.id = opts[curs].getAttribute("id");
                            xt.value = opts[curs].getAttribute("value");
                            xt.innerHTML = opts[curs].firstChild.data;
                            curs++;
                        }
                        while(curs < cnt) {
                            if(opts[curs]) {
                                newopt = document.createElement("option");
                                newopt.id = opts[curs].getAttribute("id");
                                newopt.value = opts[curs].getAttribute("value");
                                newopt.innerHTML = opts[curs].firstChild.data;
                                selc.appendChild(newopt);
                            }
                            curs++;
                        }
                        if(offs > 0) { lookup_onchange(); }
                    }
                } else {
                    lookup_hide_now();
                }
            } else {
                lookupRequest = false;
                debug_print('lookup_receive(): invalid ajax response');
            }
            ajax_lookup_response_interval = 200;
        }
        lookupRequest=false;
    }
}

// Lookup-Selectbox ggf. erzeugen

function lookup_show()
{
    var dom_id=lookupDomId;
    if(lookupVisible != true) {
        var ajax_in=document.getElementById(dom_id);
        var ajax_div=document.getElementById(dom_id+'_ajaxdiv');
        ajax_div.style.top=ajax_in.style.top;
        ajax_div.style.visibility='visible';
        ajax_div.style.overflow='visible';
        var ajax_sel;
        if(!(ajax_sel=document.getElementById(dom_id+'_select'))) {
            ajax_sel = document.createElement("select");
            ajax_div.appendChild(ajax_sel);
            ajax_sel.id=dom_id+'_select';

            if(document.attachEvent) {
                ajax_sel.attachEvent ("onchange", lookup_onchange);
                ajax_sel.attachEvent ("onkeyup", lookup_onkey);
                ajax_sel.attachEvent ("onblur", lookup_hide_now);
                ajax_sel.attachEvent ("ondblclick", lookup_accept);
            } else {
                ajax_sel.addEventListener ("change", lookup_onchange, false);
                ajax_sel.addEventListener ("keyup", lookup_onkey, false);
                ajax_sel.addEventListener ("blur", lookup_hide_now, false);
                ajax_sel.addEventListener ("ondblclick", lookup_accept, false);
            }

            ajax_sel.size=6;
            ajax_sel.style.margin="0";
            ajax_sel.style.width="100%";
            ajax_sel.style.height="100pt";
        }

        ajax_in.focus();
        lookupVisible=true;
    }

    return false;
}





// Wert aus Lookup-Box uebertragen, oder Listenerweiterung ausloesen

function lookup_onchange(e)
{
    var selc=document.getElementById(lookupDomId+'_select');
    var ajax_in=document.getElementById(lookupDomId);
    if(selc.value.substr(0,8)=="_extend_") {
        ajax_in.value=lookupLastVal;
        lookupLastVal="";
        ajax_lookup_now(selc.value.substr(8));
    } else {
        ajax_in.value=selc.value;
        if(ajax_in.onchange) ajax_in.onchange();
    }
    return true;
}

// Tastendruck im Lookup entgegennehmen

function lookup_onkey(e)
{
    var key_num=get_keycode(e);
    if(key_num==13) lookup_accept();
}

function lookup_accept()
{
    document.getElementById(lookupDomId).focus();
    lookup_hide_now();
    ajax_destroy(lookupDomId);
}


// Lookup nach 100ms ausblenden

function lookup_hide()
{
    intervalID=setTimeout('lookup_hide_now();',100);
}

// Lookup sofort ausblenden

function lookup_hide_now()
{
    if(lookupVisible) {
        var ac;
        if(ac=document.getElementById(lookupDomId+'_ajaxdiv')) {
            ac.style.overflow="hidden";
            ac.style.visibility='hidden';
            lookupVisible=false;
        }
    }
}

/**
 * Cross browser add-event-listener functionality
 * Example: add_event_listener(document, 'onload', testfunction);
 *
 */
function add_event_listener(listenerobj, event_name, function_reference)
{
    if(document.attachEvent) {
        listenerobj.attachEvent (event_name, function_reference);
    } else {
        listenerobj.addEventListener (event_name, function_reference, false);
    }
}

// AJAX-Div leeren

function ajax_destroy(dom_id)   {   empty_node(dom_id+'_ajaxdiv'); }

// Timer anhalten

function ajax_keep() { clearInterval(intervalID);  }

// AJAX Loader iframe erstellen / wiederfinden

function get_portal(frameid)
{
    var iframe_obj;
    if(!(iframe_obj=document.getElementById(frameid))) {
        iframe_obj = document.createElement("iframe");
        iframe_obj.id=frameid;
        iframe_obj.name=frameid;
        iframe_obj.style.position = 'absolute';
        iframe_obj.style.top = '-10px';
        iframe_obj.width = '1px';
        iframe_obj.height = '1px';
        iframe_obj.frameborder = '0';
        document.body.appendChild(iframe_obj)
    }
    return(iframe_obj);
}

///// Tab-Navigation ///////////////////////////////////////////////////////////////////

function tab_open(tab_nr, targetUrl, reloadTab, instanceId)
{
    var tabs;
    var bord, wght, topbord, topimg;
    var instId = instanceId + '_';
    var tab_id = instId + 'body_' + tab_nr;
    var div_id = instId + 'body_div_' + tab_nr;

    targetUrl = url_amp_remove(targetUrl);
    tabs = document.getElementsByTagName("td");

    /* Highlight the tab */
    var check = instId + 'body';
    var checkStrLen = check.length;
    for(var i=0; i < tabs.length; i++) {
        if(tabs[i].id.substr(0, checkStrLen) == check) {

            if(tabs[i].id == tab_id) {
                bord="none";
                wght="bold";
                topbord="2px solid orange";
                topimg="2px";
            } else {
                bord="solid";
                wght="normal";
                topbord="0 none";
                topimg="0";
            }

            tabs[i].style.borderBottomStyle=bord;
            document.getElementById(tabs[i].id+"_label").style.fontWeight=wght;
            document.getElementById(tabs[i].id+"_label").style.borderTop=topbord;
            document.getElementById(tabs[i].id+"_img").style.top=topimg;
        }
    }

    /* Select the tab page */
    var divs=document.getElementById(instId + "tabcontainer").getElementsByTagName("div");

    check = instId + 'body_div';
    checkStrLen = check.length;

    for(var i=0; i < divs.length; i++) {

        if(divs[i].id.substr(0, checkStrLen) == check) {
            if(divs[i].id == div_id) {
                divs[i].style.visibility="visible";
                divs[i].style.display="block";
            } else {
                divs[i].style.visibility="hidden";
                divs[i].style.display="none";
            }
        }
    }

    /* Open desired location in tab */
    tab_load(tab_nr, targetUrl, reloadTab, instanceId);
}

/**
 * Change Tab iframe location without opening it
 */
function tab_load(tab_nr, targetUrl, reloadTab, instanceId)
{
    if((typeof(targetUrl) != "undefined") && targetUrl != '') {
        var ifrId = instanceId + "_tab_iframe_" + tab_nr;
        var ifr=document.getElementById(ifrId);
        var currentUrl = ifr.src;
        currentUrl = currentUrl.substring(currentUrl.length - targetUrl.length);

        if((currentUrl != targetUrl) || reloadTab) {
            ifr.src = '/cms/gfx/ajaxclock.gif';
            setTimeout('tab_open_switch_iframe("'+ifrId+'", "'+targetUrl+'");',15);
        }
    }
}

/*
 * Delayed opening of an iframe tab (for hourglass display)
 */
function tab_open_switch_iframe(ifrId, targetUrl)
{
    document.getElementById(ifrId).src = targetUrl;
}



// SELECTPLUS

function selectpluscomplete(fieldvalue, feld, keycode) {
    fieldvalue=fieldvalue.toLowerCase();
    mom=-1;
    for (i = 0; i < feld.length; i++)
    if (feld.options[i].selected) { mom = i; break; }

    if (keycode==38) {
        if ((!mom)||(mom<=0)) return;
        else feld.options[mom-1].selected = true;
        return;
    }
    if (keycode==40) {
        if ((!mom)||(mom<=0)) return;
        if (mom>=feld.length-1) return;
        else feld.options[mom+1].selected = true;
        return;
    }
    neu = 0;
    if (!fieldvalue || fieldvalue=="") { feld.options[0].selected = true; return; }
    for (i = 0; i < feld.length; i++) {
        nohit=1;
        current = feld.options[i].text.toLowerCase();
        for (j = 0; j<fieldvalue.length; j++) {
            if (fieldvalue.charAt(j) == current.charAt(j)) { nohit=0; neu = i; }
            else { nohit=1; break; }
        }
        if (nohit == 0) break;
    }
    if (mom>=0) { feld.options[mom].selected = false; }
    feld.options[neu].selected = true;

}

// f_SELECTMOVER
function move_highlighted_select_options(sourceObjId, targetObjId)
{
    var childOption;
    var IEPreserveWidth;
    var sourceObj = document.getElementById(sourceObjId);
    var targetObj = document.getElementById(targetObjId);
    IEPreserveWidth = sourceObj.offsetWidth;

    for(var i = 0; i < sourceObj.options.length; ++i) {
        if (sourceObj.options[i].selected) {
            childOption = sourceObj.removeChild(sourceObj.options[i]);
            childOption.ondblclick = function(){ move_highlighted_select_options(targetObjId, sourceObjId); }
            targetObj.appendChild(childOption);
            i--;
        }
    }
    sourceObj.style.width = IEPreserveWidth + 'px';
}

function smoAdd(fieldId)
{
    move_highlighted_select_options(fieldId+'_source', fieldId+'_list');
    smaUpdateValues(fieldId);
}

function smoRemove(fieldId)
{
    move_highlighted_select_options(fieldId+'_list', fieldId+'_source');
    smaUpdateValues(fieldId);
}

// f_SELECTMULTI

function smaRemove( fieldId ) {
    // remove text item
    if ($(fieldId+'_search'))
    for(i=0;i<$(fieldId+'_list').options.length;++i) {
        if ($(fieldId+'_list').options[i].text == $(fieldId+'_search').value) {
            $(fieldId+'_list').removeChild($(fieldId+'_list').options[i]);
        }
    }
    // remove selected items
    for(i=0;i<$(fieldId+'_list').options.length;++i) {
        if (!$(fieldId+'_list').options[i].selected) continue;
        $(fieldId+'_list').removeChild($(fieldId+'_list').options[i]);
    }
    smaUpdateValues( fieldId );
}

function smaUpdateValues( fieldId ) {
    if (!$(fieldId+'_values')) return;
    if (!$(fieldId+'_list')) return;

    $(fieldId+'_values').value='';
    var len = $(fieldId+'_list').options.length;
    for(i=0;i<len;++i) {
        $(fieldId+'_values').value+=(i > 0 ? '|' : '') + $(fieldId+'_list').options[i].value;
    }
}

function smaAdd( fieldId, url, error ) {
    var searchStr = $(fieldId+'_search').value;
    if (!searchStr || searchStr.length < 1 ) return;

    $(fieldId+'_indicator').style.display = 'inline';
    new Ajax.Request(url, {
        method: 'post', parameters: 'smai=' + encodeURIComponent(searchStr),
        onComplete:function(smaRequest)
        {
                if(smaRequest.responseText && smaRequest.responseText!='undefined') {
                var responseArr = smaRequest.responseText.split('|');
                    // Check if value does not exist
                for (i = 0; i < $(fieldId+'_list').options.length; i++) {
                    if ($(fieldId+'_list').options[i].value == responseArr[0]) {
                        $(fieldId+'_indicator').style.display = 'none';
                        return;
                    }
                }
                opt = new Option(responseArr[1], responseArr[0]);
                try {
                    $(fieldId+'_list').options[$(fieldId+'_list').options.length]=opt;
                    $(fieldId+'_search').value='';
                    smaUpdateValues( fieldId );
                } catch(ex) {
                    return;
                }
            } else {
                alert(error);
            }
            $(fieldId+'_indicator').style.display = 'none';
        }
    }
    );
}


function smaKey(e, add, fieldId, url, error) {
    var keynum;
    keynum = (e.keyCode) ? e.keyCode : e.which;
    if (keynum==13 && add && $(fieldId+'_search').value) {
        smaAdd(fieldId,url,error);
        return false;
    }
    return true;
}

// Init EditArea, needs to have the editArea lib loaded

function init_editarea(dom_id, the_syntax)
{
    editAreaLoader.init({
        id: dom_id,
        start_highlight: true,
        allow_resize: "both",
        allow_toggle: false,
        replace_tab_by_spaces: 4,
        language: "en",
        font_size: "9",
        syntax: the_syntax
    });
}

// datumshelfer

// Only allows certain keys to be used in the date field
function DateDigitsOnly(e) {
   var KeyCode = (e.keyCode) ? e.keyCode : e.which;

   return ((KeyCode == 8) // backspace
        || (KeyCode == 9) // tab
        || (KeyCode == 37) // left arrow
        || (KeyCode == 39) // right arrow
        || (KeyCode == 46) // delete
        || (KeyCode == 59) // :
        || (KeyCode == 190) // .
        || (KeyCode == 191) // /
        || (KeyCode == 13) // Enter
        || ((KeyCode > 47) && (KeyCode < 58))  // 0 - 9 Keyboard
        || ((KeyCode > 95) && (KeyCode < 106)) // 0 - 9 NUM Pad
   );
}

// Adds an option to a select box specified by selectId
// can e.g. be called from within xajax with $xajaxresponse->AddScript() so that
// you don't need to refer to element ids in xajax responses directly
function addOption(selectId, txt, val)
{
    var objOption = new Option(txt, val);
    document.getElementById(selectId).options.add(objOption);
}

// deletes all options of a given selectbox element
function clearAllOptions(selectId)
{
    var objSelectbox = document.getElementById(selectId);
    for(var i=(objSelectbox.options.length - 1);i>=0;i--) {
        objSelectbox.options[i] = null;
    }
}

// Firebug Debugging

function debug_print(str)
{
    if(typeof(console) != "undefined") {
        console.info(str);
    }
}

function resizeToFit(that)
{
    var objNode = (typeof(this.nodeName)=='undefined') ? that : this ;
    var objIframe = window.parent.document.getElementById('resizeToFit');
    var intScrollX, intScrollY, intWinWidth, intWinHeight, intMaxWidth, intMaxHeight;

    var intWhileCount = 0;
    do{
        // scroll the document by 1 pixel
        window.scrollTo(1,1);
        // measure the scroll position
        intScrollX = (document.all) ? document.body.scrollLeft : window.pageXOffset ;
        intScrollY = (document.all) ? document.body.scrollTop : window.pageYOffset ;
        // measure window size
        intWinWidth = (document.all) ? document.body.offsetWidth : window.innerWidth ;
        intWinHeight = (document.all) ? document.body.offsetHeight : window.innerHeight ;
        // if the scroll position is not 0
        if(intScrollX>0){
            // make the window larger
            window.resizeBy(32,0);
            // make the iframe larger
            if(objIframe!=null && !document.all) objIframe.style.width = (objIframe.style.width=='') ? '64px' : (parseInt(objIframe.style.width) + 32) + 'px';
        }
        if(intScrollY>0){
            // make the window larger
            window.resizeBy(0,32);
            // make the iframe larger
            if(objIframe!=null && !document.all) objIframe.style.height = (objIframe.style.height=='') ? '64px' : (parseInt(objIframe.style.height) + 32) + 'px';
        }
        // count the steps
        intWhileCount += 1;
    }while((intScrollX>0 || intScrollY>0) && intWhileCount<900);
}

function waitToFit()
{
    setTimeout("resizeToFit()",100);
}

var watch_timer;
var last_time = 0;
var last_action_domain_key = '';
var last_action_rnd_ignore_key = 0;
function watch_session_action(action_domain_key, unixtime, rnd_ignore_key)
{
    clearInterval(watch_timer);
    if (last_action_domain_key == '' && typeof(action_domain_key) != 'undefined') {
        last_action_domain_key = action_domain_key;
    }
    if (last_time == 0 && typeof(unixtime) != 'undefined') {
        last_time = unixtime;
    }
    if (last_action_rnd_ignore_key == 0 && typeof(rnd_ignore_key) != 'undefined') {
        last_action_rnd_ignore_key = rnd_ignore_key;
    }
    //debug_print('watch_'+last_action_domain_key+','+last_time);
    var url = '/cms/ajax_handler.php?task=sessionaction&value='+last_action_domain_key+'&time='+last_time+'&rnd_ignore_key='+last_action_rnd_ignore_key;
    async_acall = exec_request(url, true);
    async_acall.onreadystatechange = watch_session_action_receive;
    watch_timer = setTimeout('watch_session_action("'+last_action_domain_key+'")', 5000);
}

function watch_session_action_receive()
{
    if(typeof(async_acall) != "undefined") if(async_acall.readyState == 4) {
        if(async_acall.status == 200) {
            if(root = JSON.parse(async_acall.responseText)) {
                if(typeof(root.javascript) != "undefined") {
                    debug_print(root.javascript);
                    eval(root.javascript);
                }
                if(typeof(root.lasttime) != "undefined") {

                    last_time = root.lasttime;
                    clearInterval(watch_timer);
                    watch_timer = setTimeout('watch_session_action("'+root.action_domain_key+'")', 5000);
                }
            }
        }
    }
}

/**
 * Display a tooltip
 */
function tooltip_show(event, tooltiphtml)
{
    var mousepos = get_mouse_position(event);
    var tooltip;
    if (!(tooltip = document.getElementById('cmstooltip'))) {
        /* Create tooltip */
        tooltip = document.createElement('div');
        tooltip.id = 'cmstooltip';
        tooltip.className = 'cmstooltip';
        tooltip.style.position = 'absolute';
        document.body.appendChild(tooltip)
    }
    if (tooltip.innerHTML == '') {
        tooltip.innerHTML = tooltiphtml;
        tooltip.style.display = 'block';
    }
    tooltip.style.left = (mousepos['x'] + 10)+'px';
    tooltip.style.top = (mousepos['y'] + 10)+'px';
}

/**
 * Hide the tooltip
 */
function tooltip_hide()
{
    var tooltip;
    if (tooltip = document.getElementById('cmstooltip')) {
        tooltip.innerHTML = '';
        tooltip.style.display = 'none';
    }
}

function show_social_networking_list(soc_instance_id)
{
    var soc_nw_lst = document.getElementById(soc_instance_id);
    soc_nw_lst.style.visibility = 'visible';
}

function hide_social_networking_list(soc_instance_id)
{
    var soc_nw_lst = document.getElementById(soc_instance_id);
    soc_nw_lst.style.visibility = 'hidden';
}



function tc_get_value(fid, numberformat)
{
    var obj;
    if (obj = document.getElementById('c_' + fid + '_input')) {
        field_value = obj.value;
    } else if (obj = document.getElementById('c_' + fid)) {
        field_value = obj.innerHTML;
    } else {
        field_value = '#INVALID REFERENCE: ' + fid;
    }

    /* Check for numeric values */
    if (tc_is_number(field_value)) {
        if (numberformat) {
            /* Remove formatting */
            var digits = numberformat.substr(0, 1); // Adressing chars as string array fails in IE <= 7
            var decimalpoint = numberformat.substr(1, 1);
            var thousandsep = numberformat.substr(2, 1);
            field_value = tc_number_unformat(field_value, digits, decimalpoint, thousandsep);
        }
        /* Convert to float */
        field_value = parseFloat(field_value);
    }
    return field_value;
}

function tc_set_value(fid, field_value, numberformat)
{
    if (tc_is_number(field_value) && numberformat) {
        var digits = numberformat.substr(0, 1);;
        var decimalpoint = numberformat.substr(1, 1);;
        var thousandsep = numberformat.substr(2, 1);;
        field_value = tc_number_format(field_value, digits, decimalpoint, thousandsep);
    }

    var obj;
    if (obj = document.getElementById('c_' + fid + '_input')) {
        obj.value = field_value;
    } else if (obj = document.getElementById('c_' + fid)) {
        obj.innerHTML = field_value;
    }
}


function tc_is_number(v)
{
    if (typeof(v) == 'string' && typeof(v.search) != 'undefined') {
        return (v.search(/[a-zA-Z]+/) == -1);
    } else {
        return true;
    }
}

function tc_number_format(numeric_value, digits, decimalpoint, thousandsep_or_special)
{
    num_value = parseFloat(numeric_value);
    suffix = '';
    if (typeof(thousandsep_or_special) == 'undefined') thousandsep_or_special = '';

    if (thousandsep_or_special == '%') {
        thousandsep_or_special = '';

        if (!(typeof(numeric_value.indexOf) != 'undefined' && numeric_value.indexOf('%') != -1)) {
            num_value = num_value * 100;
        }
        suffix = ' %';
    }

    num_value = round(num_value, digits);

    /* Split decimal point */
    var strg = new String(num_value + '.0'); // Append second .0 as a fallback
    var split = strg.split('.');
    var len;

    /* Add trailing zeroes */
    if (digits) {
        len = split[1].length;
        if (len < digits) for (i = (digits-len); i <= len; i++) {
            split[1]+= '0';
        }
    }

    /* Add thousands separator */
    len = split[0].length;
    var splitter = 0;
    num_value = '';
    for (var i = len - 1; i >= 0; i--) {
        splitter++
        if (splitter == 4) {
            num_value = thousandsep_or_special + num_value;
            splitter = 1;
        }
        num_value = split[0].substr(i, 1) + num_value;
    }

    /* Attach decimals */
    if (digits > 0) {
        num_value = num_value + decimalpoint + split[1];
    }
    return num_value + suffix;
}

function tc_number_unformat(num_value, digits, decimalpoint, thousandsep_or_special)
{
    num_value = str_replace(thousandsep_or_special, '', num_value);
    num_value = str_replace(decimalpoint, '.', num_value);
    num_value = parseFloat(num_value);

    if (thousandsep_or_special == '%') {
        num_value = num_value / 100;
    }
    return num_value;
}


function tc_validate(v, vtype)
{
    if (vtype == 1) {
        v = parseInt(v);
    } else if (vtype == 2) {
        v = parseFloat(v);
    }
    if (isNaN(v)) {
        v = 0;
    }
    return v;
}

function round(v, decimals)
{
    decimals = Math.pow(10, decimals);
    return Math.round(v * decimals) / decimals;
}


/**
 *
 * JS-Lib: Highslide
 * 
 */


/******************************************************************************
Name:    Highslide JS
Version: 4.1.8 (October 27 2009)
Config:  default +events +unobtrusive +imagemap +slideshow +positioning +transitions +viewport +thumbstrip +inline +ajax +iframe +flash +packed
Author:  Torstein Hønsi
Support: http://highslide.com/support

Licence:
Highslide JS is licensed under a Creative Commons Attribution-NonCommercial 2.5
License (http://creativecommons.org/licenses/by-nc/2.5/).

You are free:
	* to copy, distribute, display, and perform the work
	* to make derivative works

Under the following conditions:
	* Attribution. You must attribute the work in the manner  specified by  the
	  author or licensor.
	* Noncommercial. You may not use this work for commercial purposes.

* For  any  reuse  or  distribution, you  must make clear to others the license
  terms of this work.
* Any  of  these  conditions  can  be  waived  if  you  get permission from the 
  copyright holder.

Your fair use and other rights are in no way affected by the above.
******************************************************************************/
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('q(!m){A m={11:{9m:\'aE\',aR:\'dD...\',aD:\'8I 2d dE\',bk:\'8I 2d dC 2d dB\',9j:\'dz 2d dA D (f)\',cz:\'dF by <i>aa a7</i>\',cL:\'dG 2d dL aa a7 dM\',8x:\'ae\',8y:\'a8\',8j:\'ad\',8p:\'am\',8n:\'am (dK)\',aX:\'dJ\',a6:\'al\',at:\'al 1p (ag)\',bd:\'ap\',ab:\'ap 1p (ag)\',8w:\'ae (8N 18)\',8A:\'a8 (8N 3m)\',8s:\'ad\',aZ:\'1:1\',3G:\'dI %1 dy %2\',9E:\'8I 2d 24 2L, dx ai dn 2d 3x. do 8N dm O 1C ai 3c.\'},4Y:\'K/di/\',7M:\'dj.54\',6r:\'dk.54\',6Z:5G,8Y:5G,4B:15,90:15,5g:15,6z:15,4w:dp,b7:0.75,9t:L,9b:5,3R:2,dq:3,5F:1l,bn:\'4H 3m\',bp:1,bR:L,ck:\'dv://K.dw/\',cj:\'du\',aI:L,91:[\'a\',\'5k\'],3k:[],cx:5G,45:0,89:50,6Q:1l,6R:L,4E:L,3Q:\'60\',7W:L,4c:\'1P\',9q:\'1P\',aV:I,aW:I,9L:L,4I:an,6p:an,5U:L,1Y:\'dr-ds\',8g:{2U:\'<Q 1X="K-2U"><5V>\'+\'<1L 1X="K-3c">\'+\'<a 23="#" 2i="{m.11.8w}">\'+\'<1D>{m.11.8x}</1D></a>\'+\'</1L>\'+\'<1L 1X="K-3O">\'+\'<a 23="#" 2i="{m.11.at}">\'+\'<1D>{m.11.a6}</1D></a>\'+\'</1L>\'+\'<1L 1X="K-3h">\'+\'<a 23="#" 2i="{m.11.ab}">\'+\'<1D>{m.11.bd}</1D></a>\'+\'</1L>\'+\'<1L 1X="K-1C">\'+\'<a 23="#" 2i="{m.11.8A}">\'+\'<1D>{m.11.8y}</1D></a>\'+\'</1L>\'+\'<1L 1X="K-3x">\'+\'<a 23="#" 2i="{m.11.8s}">\'+\'<1D>{m.11.8j}</1D></a>\'+\'</1L>\'+\'<1L 1X="K-19-2F">\'+\'<a 23="#" 2i="{m.11.9j}">\'+\'<1D>{m.11.aZ}</1D></a>\'+\'</1L>\'+\'<1L 1X="K-24">\'+\'<a 23="#" 2i="{m.11.8n}" >\'+\'<1D>{m.11.8p}</1D></a>\'+\'</1L>\'+\'</5V></Q>\',b5:\'<Q 1X="K-ed"><5V>\'+\'<1L 1X="K-3c">\'+\'<a 23="#" 2i="{m.11.8w}" 2m="E m.3c(k)">\'+\'<1D>{m.11.8x}</1D></a>\'+\'</1L>\'+\'<1L 1X="K-1C">\'+\'<a 23="#" 2i="{m.11.8A}" 2m="E m.1C(k)">\'+\'<1D>{m.11.8y}</1D></a>\'+\'</1L>\'+\'<1L 1X="K-3x">\'+\'<a 23="#" 2i="{m.11.8s}" 2m="E 1l">\'+\'<1D>{m.11.8j}</1D></a>\'+\'</1L>\'+\'<1L 1X="K-24">\'+\'<a 23="#" 2i="{m.11.8n}" 2m="E m.24(k)">\'+\'<1D>{m.11.8p}</1D></a>\'+\'</1L>\'+\'</5V></Q>\'+\'<Q 1X="K-1f"></Q>\'+\'<Q 1X="K-ef"><Q>\'+\'<1D 1X="K-3Y" 2i="{m.11.aX}"><1D></1D></1D>\'+\'</Q></Q>\'},6u:[],9C:L,14:[],a3:[\'5U\',\'3w\',\'4c\',\'9q\',\'aV\',\'aW\',\'1Y\',\'3R\',\'ek\',\'em\',\'ej\',\'b3\',\'ei\',\'eg\',\'eh\',\'b2\',\'cJ\',\'9L\',\'3V\',\'66\',\'3k\',\'45\',\'M\',\'N\',\'9R\',\'6Q\',\'6R\',\'4E\',\'e7\',\'e6\',\'dh\',\'2E\',\'7W\',\'46\',\'4C\',\'3Q\',\'8c\',\'9W\',\'4I\',\'6p\',\'6N\',\'9o\',\'2M\',\'2P\',\'cp\',\'ct\',\'1d\'],1S:[],5I:0,8W:{x:[\'bJ\',\'18\',\'4y\',\'3m\',\'bK\'],y:[\'6v\',\'16\',\'9D\',\'4H\',\'7J\']},7B:{},b2:{},b3:{},8c:{aH:{},26:{},az:{}},3X:[],6b:[],4i:{},4v:[],7u:[],5e:[],7m:{},7R:{},77:[],3J:/dV\\/4\\.0/.1b(4n.6d)?8:8R((4n.6d.5u().2s(/.+(?:av|dT|dS|1E)[\\/: ]([\\d.]+)/)||[0,\'0\'])[1]),1E:(W.6j&&!2c.3T),4z:/cu/.1b(4n.6d),6f:/dP.+av:1\\.[0-8].+dR/.1b(4n.6d),$:C(1v){q(1v)E W.7X(1v)},2o:C(28,3o){28[28.V]=3o},1c:C(ba,3W,4f,68,bb){A el=W.1c(ba);q(3W)m.3L(el,3W);q(bb)m.R(el,{7T:0,8v:\'1B\',9z:0});q(4f)m.R(el,4f);q(68)68.21(el);E el},3L:C(el,3W){O(A x 3a 3W)el[x]=3W[x];E el},R:C(el,4f){O(A x 3a 4f){q(m.1E&&x==\'1A\'){q(4f[x]>0.99)el.G.e4(\'6a\');J el.G.6a=\'b9(1A=\'+(4f[x]*2w)+\')\'}J el.G[x]=4f[x]}},2x:C(el,1g,3y){A 4A,5d,4s;q(1F 3y!=\'7z\'||3y===I){A 2H=bh;3y={4a:2H[2],2P:2H[3],6L:2H[4]}}q(1F 3y.4a!=\'3G\')3y.4a=5G;3y.2P=1h[3y.2P]||1h.b6;3y.7e=m.3L({},1g);O(A 3d 3a 1g){A e=1I m.fx(el,3y,3d);4A=8R(m.8t(el,3d))||0;5d=8R(1g[3d]);4s=3d!=\'1A\'?\'F\':\'\';e.3r(4A,5d,4s)}},8t:C(el,1g){q(W.7S){E W.7S.bx(el,I).ca(1g)}J{q(1g==\'1A\')1g=\'6a\';A 3o=el.6q[1g.2h(/\\-(\\w)/g,C(a,b){E b.b1()})];q(1g==\'6a\')3o=3o.2h(/b9\\(1A=([0-9]+)\\)/,C(a,b){E b/2w});E 3o===\'\'?1:3o}},7I:C(){A d=W,w=2c,5L=d.7G&&d.7G!=\'8S\'?d.56:d.1f;A M=m.1E?5L.8i:(d.56.8i||7c.e2),N=m.1E?5L.cK:7c.e0;m.4u={M:M,N:N,5w:m.1E?5L.5w:e1,5z:m.1E?5L.5z:cP}},6C:C(el){q(/5k/i.1b(el.3E)){A 73=W.2u(\'1N\');O(A i=0;i<73.V;i++){A u=73[i].cY;q(u&&u.2h(/^.*?#/,\'\')==el.22.3d){el=73[i];5i}}}A p={x:el.4F,y:el.80};4Z(el.b8){el=el.b8;p.x+=el.4F;p.y+=el.80;q(el!=W.1f&&el!=W.56){p.x-=el.5w;p.y-=el.5z}}E p},2F:C(a,26,3r,U){q(!a)a=m.1c(\'a\',I,{1n:\'1B\'},m.2a);q(1F a.5K==\'C\')E 26;q(U==\'3A\'){O(A i=0;i<m.4v.V;i++){q(m.4v[i]&&m.4v[i].a==a){m.4v[i].c8();m.4v[i]=I;E 1l}}m.aK=L}1w{1I m.69(a,26,3r,U);E 1l}1t(e){E L}},95:C(a,26,3r){E m.2F(a,26,3r,\'3A\')},9O:C(){E m.1c(\'Q\',{1a:\'K-3A-S\',2g:m.8a(m.8g.b5)})},4J:C(el,3E,1a){A 1m=el.2u(3E);O(A i=0;i<1m.V;i++){q((1I 5p(1a)).1b(1m[i].1a)){E 1m[i]}}E I},8a:C(s){s=s.2h(/\\s/g,\' \');A 2k=/{m\\.11\\.([^}]+)\\}/g,6i=s.2s(2k),11;q(6i)O(A i=0;i<6i.V;i++){11=6i[i].2h(2k,"$1");q(1F m.11[11]!=\'1T\')s=s.2h(6i[i],m.11[11])}E s},cf:C(){A 1m=W.2u(\'a\');O(A i=0;i<1m.V;i++){A U=m.aC(1m[i]);q(U&&!1m[i].aS){(C(){A t=U;q(m.1z(m,\'cX\',{7b:1m[i],U:t})){1m[i].2m=(U==\'2L\')?C(){E m.2F(k)}:C(){E m.95(k,{2E:t})}}})();1m[i].aS=L}}m.5Z()},aC:C(el){q(el.7k==\'K\')E\'2L\';J q(el.7k==\'K-2R\')E\'2R\';J q(el.7k==\'K-1i\')E\'1i\';J q(el.7k==\'K-3t\')E\'3t\'},7Y:C(a){O(A i=0;i<m.5e.V;i++){q(m.5e[i][0]==a){A c=m.5e[i][1];m.5e[i][1]=c.6s(1);E c}}E I},bG:C(e){A 28=m.5Z();O(A i=0;i<28.5s.V;i++){A a=28.5s[i];q(m.44(a,\'2E\')==\'2R\'&&m.44(a,\'7W\'))m.2o(m.7u,a)}m.7Z(0)},7Z:C(i){q(!m.7u[i])E;A a=m.7u[i];A 64=m.4x(m.44(a,\'9R\'));q(!64)64=m.9O();A 2R=1I m.7A(a,64,1);2R.8X=C(){};2R.3u=C(){m.2o(m.5e,[a,64]);m.7Z(i+1)};2R.94()},aL:C(){A 7V=0,7t=-1,14=m.14,B,1G;O(A i=0;i<14.V;i++){B=14[i];q(B){1G=B.T.G.1G;q(1G&&1G>7V){7V=1G;7t=i}}}q(7t==-1)m.30=-1;J 14[7t].3B()},44:C(a,5P){a.5K=a.2m;A p=a.5K?a.5K():I;a.5K=I;E(p&&1F p[5P]!=\'1T\')?p[5P]:(1F m[5P]!=\'1T\'?m[5P]:I)},76:C(a){A 1d=m.44(a,\'1d\');q(1d)E 1d;E a.23},4x:C(1v){A 1M=m.$(1v),4Q=m.7R[1v],a={};q(!1M&&!4Q)E I;q(!4Q){4Q=1M.6s(L);4Q.1v=\'\';m.7R[1v]=4Q;E 1M}J{E 4Q.6s(L)}},3D:C(d){q(d)m.97.21(d);m.97.2g=\'\'},1x:C(B){q(!m.2S){m.2S=m.1c(\'Q\',{1a:\'K-dd K-2B-D\',6e:\'\',2m:C(){q(m.1z(m,\'de\'))m.24()}},{1o:\'1Z\',1A:0},m.2a,L)}m.2S.G.1n=\'\';m.2S.6e+=\'|\'+B.P;q(m.6f&&m.aP)m.R(m.2S,{9K:\'7E(\'+m.4Y+\'d5.au)\',1A:1});J m.2x(m.2S,{1A:B.45},m.89)},93:C(P){q(!m.2S)E;q(1F P!=\'1T\')m.2S.6e=m.2S.6e.2h(\'|\'+P,\'\');q((1F P!=\'1T\'&&m.2S.6e!=\'\')||(m.2r&&m.44(m.2r,\'45\')))E;q(m.6f&&m.aP)m.2S.G.1n=\'1B\';J m.2x(m.2S,{1A:0},m.89,I,C(){m.2S.G.1n=\'1B\'})},8Q:C(7r,B){A 1j=B=B||m.2C();q(m.2r)E 1l;J m.1j=1j;1w{m.2r=7r;7r.2m()}1t(e){m.1j=m.2r=I}1w{q(!7r||B.3k[1]!=\'43\')B.24()}1t(e){}E 1l},7q:C(el,2p){A B=m.2C(el);q(B)E m.8Q(B.8V(2p),B);J E 1l},3c:C(el){E m.7q(el,-1)},1C:C(el){E m.7q(el,1)},6V:C(e){q(!e)e=2c.2y;q(!e.2G)e.2G=e.a0;q(1F e.2G.9X!=\'1T\')E L;q(!m.1z(m,\'cM\',e))E L;A B=m.2C();A 2p=I;aq(e.dg){2b 70:q(B)B.7v();E L;2b 32:2p=2;5i;2b 34:2b 39:2b 40:2p=1;5i;2b 8:2b 33:2b 37:2b 38:2p=-1;5i;2b 27:2b 13:2p=0}q(2p!==I){q(2p!=2)m.5n(W,2c.3T?\'9c\':\'9d\',m.6V);q(!m.aI)E L;q(e.4X)e.4X();J e.bl=1l;q(B){q(2p==0){B.24()}J q(2p==2){q(B.1p)B.1p.bm()}J{q(B.1p)B.1p.3h();m.7q(B.P,2p)}E 1l}}E L},df:C(Z){m.2o(m.1S,m.3L(Z,{1V:\'1V\'+m.5I++}))},d9:C(1r){A 3b=1r.2M;q(1F 3b==\'7z\'){O(A i=0;i<3b.V;i++){A o={};O(A x 3a 1r)o[x]=1r[x];o.2M=3b[i];m.2o(m.6b,o)}}J{m.2o(m.6b,1r)}},9P:C(7b,7p){A el,2k=/^K-T-([0-9]+)$/;el=7b;4Z(el.22){q(el.6T!==1T)E el.6T;q(el.1v&&2k.1b(el.1v))E el.1v.2h(2k,"$1");el=el.22}q(!7p){el=7b;4Z(el.22){q(el.3E&&m.6M(el)){O(A P=0;P<m.14.V;P++){A B=m.14[P];q(B&&B.a==el)E P}}el=el.22}}E I},2C:C(el,7p){q(1F el==\'1T\')E m.14[m.30]||I;q(1F el==\'3G\')E m.14[el]||I;q(1F el==\'9n\')el=m.$(el);E m.14[m.9P(el,7p)]||I},6M:C(a){E(a.2m&&a.2m.cA().2h(/\\s/g,\' \').2s(/m.(d2|e)d4/))},bj:C(){O(A i=0;i<m.14.V;i++)q(m.14[i]&&m.14[i].6n)m.aL()},1z:C(5Y,9T,2H){E 5Y&&5Y[9T]?(5Y[9T](5Y,2H)!==1l):L},8d:C(e){q(!e)e=2c.2y;q(e.d7>1)E L;q(!e.2G)e.2G=e.a0;A el=e.2G;4Z(el.22&&!(/K-(2L|3x|3A|3Y)/.1b(el.1a))){el=el.22}A B=m.2C(el);q(B&&(B.5D||!B.6n))E L;q(B&&e.U==\'88\'){q(e.2G.9X)E L;A 2s=el.1a.2s(/K-(2L|3x|3Y)/);q(2s){m.2v={B:B,U:2s[1],18:B.x.H,M:B.x.D,16:B.y.H,N:B.y.D,aM:e.7C,aN:e.7L};m.2n(W,\'7F\',m.6X);q(e.4X)e.4X();q(/K-(2L|3A)-9M/.1b(B.S.1a)){B.3B();m.9S=L}E 1l}J q(/K-3A/.1b(el.1a)&&m.30!=B.P){B.3B();B.55(\'1q\')}}J q(e.U==\'ce\'){m.5n(W,\'7F\',m.6X);q(m.2v){q(m.4W&&m.2v.U==\'2L\')m.2v.B.S.G.4t=m.4W;A 3S=m.2v.3S;q(!3S&&!m.9S&&!/(3x|3Y)/.1b(m.2v.U)){q(m.1z(B,\'d1\'))B.24()}J q(3S||(!3S&&m.aK)){m.2v.B.55(\'1q\')}q(m.2v.B.3K)m.2v.B.3K.G.1n=\'1B\';q(3S)m.1z(m.2v.B,\'dc\',m.2v);m.9S=1l;m.2v=I}J q(/K-2L-9M/.1b(el.1a)){el.G.4t=m.4W}}E 1l},6X:C(e){q(!m.2v)E L;q(!e)e=2c.2y;A a=m.2v,B=a.B;q(B.1i){q(!B.3K)B.3K=m.1c(\'Q\',I,{1k:\'2l\',M:B.x.D+\'F\',N:B.y.D+\'F\',18:B.x.cb+\'F\',16:B.y.cb+\'F\',1G:4,9K:(m.1E?\'da\':\'1B\'),1A:.cQ},B.T,L);q(B.3K.G.1n==\'1B\')B.3K.G.1n=\'\'}a.dX=e.7C-a.aM;a.dY=e.7L-a.aN;A 9V=1h.cN(1h.aQ(a.dX,2)+1h.aQ(a.dY,2));q(!a.3S)a.3S=(a.U!=\'2L\'&&9V>0)||(9V>(m.cT||5));q(a.3S&&e.7C>5&&e.7L>5){q(!m.1z(B,\'ey\',a))E 1l;q(a.U==\'3Y\')B.3Y(a);J{B.9B(a.18+a.dX,a.16+a.dY);q(a.U==\'2L\')B.S.G.4t=\'3x\'}}E 1l},aG:C(e){1w{q(!e)e=2c.2y;A 6t=/fJ/i.1b(e.U);q(!e.2G)e.2G=e.a0;q(m.1E)e.9Y=6t?e.fL:e.fM;A B=m.2C(e.2G);q(!B.6n)E;q(!B||!e.9Y||m.2C(e.9Y,L)==B||m.2v)E;m.1z(B,6t?\'fk\':\'fy\',e);O(A i=0;i<B.1S.V;i++)(C(){A o=m.$(\'1V\'+B.1S[i]);q(o&&o.7f){q(6t)m.R(o,{1o:\'1Z\',1n:\'\'});m.2x(o,{1A:6t?o.1A:0},o.41)}})()}1t(e){}},2n:C(el,2y,3U){q(el==W&&2y==\'42\')m.2o(m.77,3U);1w{el.2n(2y,3U,1l)}1t(e){1w{el.aF(\'6w\'+2y,3U);el.fv(\'6w\'+2y,3U)}1t(e){el[\'6w\'+2y]=3U}}},5n:C(el,2y,3U){1w{el.5n(2y,3U,1l)}1t(e){1w{el.aF(\'6w\'+2y,3U)}1t(e){el[\'6w\'+2y]=I}}},7j:C(i){q(m.9C&&m.6u[i]&&m.6u[i]!=\'1T\'){A 1N=W.1c(\'1N\');1N.4O=C(){1N=I;m.7j(i+1)};1N.1d=m.6u[i]}},cg:C(3G){q(3G&&1F 3G!=\'7z\')m.9b=3G;A 28=m.5Z();O(A i=0;i<28.5l.V&&i<m.9b;i++){m.2o(m.6u,m.76(28.5l[i]))}q(m.1Y)1I m.5A(m.1Y,C(){m.7j(0)});J m.7j(0);q(m.6r)A 54=m.1c(\'1N\',{1d:m.4Y+m.6r})},7y:C(){q(!m.2a){m.7I();m.5c=m.1E&&m.3J<7;m.c0=m.5c&&81.fw==\'fA:\';O(A x 3a m.7i){q(1F m[x]!=\'1T\')m.11[x]=m[x];J q(1F m.11[x]==\'1T\'&&1F m.7i[x]!=\'1T\')m.11[x]=m.7i[x]}m.2a=m.1c(\'Q\',{1a:\'K-2a\'},{1k:\'2l\',18:0,16:0,M:\'2w%\',1G:m.4w,9r:\'aE\'},W.1f,L);m.2q=m.1c(\'a\',{1a:\'K-2q\',2i:m.11.aD,2g:m.11.aR,23:\'bH:;\'},{1k:\'2l\',16:\'-4l\',1A:m.b7,1G:1},m.2a);m.97=m.1c(\'Q\',I,{1n:\'1B\'},m.2a);m.2B=m.1c(\'Q\',{1a:\'K-2B K-2B-D\'},{1o:(m.4z&&m.3J<cy)?\'1Z\':\'1q\'},m.2a,1);m.3v=m.1c(\'Q\',I,{aw:\'aA\',fQ:\'fP\'},I,L);1h.fS=C(t,b,c,d){E c*t/d+b};1h.b6=C(t,b,c,d){E c*(t/=d)*t+b};1h.8M=C(t,b,c,d){E-c*(t/=d)*(t-2)+b};m.c9=m.5c;m.bz=((2c.3T&&m.3J<9)||4n.aU==\'aT\'||(m.1E&&m.3J<5.5));m.1z(k,\'fT\')}},42:C(){q(m.9f)E;m.9f=L;O(A i=0;i<m.77.V;i++)m.77[i]()},85:C(){A el,1m,6j=[],5l=[],5s=[],3e={},2k;O(A i=0;i<m.91.V;i++){1m=W.2u(m.91[i]);O(A j=0;j<1m.V;j++){el=1m[j];2k=m.6M(el);q(2k){m.2o(6j,el);q(2k[0]==\'m.2F\')m.2o(5l,el);J q(2k[0]==\'m.95\')m.2o(5s,el);A g=m.44(el,\'2M\')||\'1B\';q(!3e[g])3e[g]=[];m.2o(3e[g],el)}}}m.4G={6j:6j,3e:3e,5l:5l,5s:5s};E m.4G},5Z:C(){E m.4G||m.85()},24:C(el){A B=m.2C(el);q(B)B.24();E 1l}};m.fx=C(36,1r,1g){k.1r=1r;k.36=36;k.1g=1g;q(!1r.bc)1r.bc={}};m.fx.4V={96:C(){(m.fx.3C[k.1g]||m.fx.3C.ac)(k);q(k.1r.3C)k.1r.3C.af(k.36,k.4L,k)},3r:C(8r,2d,4s){k.9u=(1I 7a()).79();k.4A=8r;k.5d=2d;k.4s=4s;k.4L=k.4A;k.H=k.9i=0;A 7c=k;C t(7d){E 7c.3C(7d)}t.36=k.36;q(t()&&m.3X.2o(t)==1){m.aY=fN(C(){A 3X=m.3X;O(A i=0;i<3X.V;i++)q(!3X[i]())3X.fG(i--,1);q(!3X.V){fE(m.aY)}},13)}},3C:C(7d){A t=(1I 7a()).79();q(7d||t>=k.1r.4a+k.9u){k.4L=k.5d;k.H=k.9i=1;k.96();k.1r.7e[k.1g]=L;A 9s=L;O(A i 3a k.1r.7e)q(k.1r.7e[i]!==L)9s=1l;q(9s){q(k.1r.6L)k.1r.6L.af(k.36)}E 1l}J{A n=t-k.9u;k.9i=n/k.1r.4a;k.H=k.1r.2P(n,0,1,k.1r.4a);k.4L=k.4A+((k.5d-k.4A)*k.H);k.96()}E L}};m.3L(m.fx,{3C:{1A:C(fx){m.R(fx.36,{1A:fx.4L})},ac:C(fx){1w{q(fx.36.G&&fx.36.G[fx.1g]!=I)fx.36.G[fx.1g]=fx.4L+fx.4s;J fx.36[fx.1g]=fx.4L}1t(e){}}}});m.5A=C(1Y,3u){k.3u=3u;k.1Y=1Y;A v=m.3J,4b;k.9v=m.1E&&v>=5.5&&v<7;q(!1Y){q(3u)3u();E}m.7y();k.2e=m.1c(\'2e\',{eE:0},{1o:\'1q\',1k:\'2l\',eD:\'eH\',M:0},m.2a,L);A 4M=m.1c(\'4M\',I,I,k.2e,1);k.2D=[];O(A i=0;i<=8;i++){q(i%3==0)4b=m.1c(\'4b\',I,{N:\'1P\'},4M,L);k.2D[i]=m.1c(\'2D\',I,I,4b,L);A G=i!=4?{eI:0,eL:0}:{1k:\'4m\'};m.R(k.2D[i],G)}k.2D[4].1a=1Y+\' K-1e\';k.a9()};m.5A.4V={a9:C(){A 1d=m.4Y+(m.eK||"eJ/")+k.1Y+".au";A ao=m.4z?m.2a:I;k.3N=m.1c(\'1N\',I,{1k:\'2l\',16:\'-4l\'},ao,L);A 3z=k;k.3N.4O=C(){3z.aj()};k.3N.1d=1d},aj:C(){A o=k.1y=k.3N.M/4,H=[[0,0],[0,-4],[-2,0],[0,-8],0,[-2,-8],[0,-2],[0,-6],[-2,-2]],1x={N:(2*o)+\'F\',M:(2*o)+\'F\'};O(A i=0;i<=8;i++){q(H[i]){q(k.9v){A w=(i==1||i==7)?\'2w%\':k.3N.M+\'F\';A Q=m.1c(\'Q\',I,{M:\'2w%\',N:\'2w%\',1k:\'4m\',2j:\'1q\'},k.2D[i],L);m.1c(\'Q\',I,{6a:"es:er.bC.ep(eu=ev, 1d=\'"+k.3N.1d+"\')",1k:\'2l\',M:w,N:k.3N.N+\'F\',18:(H[i][0]*o)+\'F\',16:(H[i][1]*o)+\'F\'},Q,L)}J{m.R(k.2D[i],{9K:\'7E(\'+k.3N.1d+\') \'+(H[i][0]*o)+\'F \'+(H[i][1]*o)+\'F\'})}q(2c.3T&&(i==3||i==5))m.1c(\'Q\',I,1x,k.2D[i],L);m.R(k.2D[i],1x)}}k.3N=I;q(m.4i[k.1Y])m.4i[k.1Y].5v();m.4i[k.1Y]=k;q(k.3u)k.3u()},4D:C(H,1y,ah,41,2P){A B=k.B,5C=B.T.G,1y=1y||0,H=H||{x:B.x.H+1y,y:B.y.H+1y,w:B.x.Y(\'2f\')-2*1y,h:B.y.Y(\'2f\')-2*1y};q(ah)k.2e.G.1o=(H.h>=4*k.1y)?\'1Z\':\'1q\';m.R(k.2e,{18:(H.x-k.1y)+\'F\',16:(H.y-k.1y)+\'F\',M:(H.w+2*k.1y)+\'F\'});H.w-=2*k.1y;H.h-=2*k.1y;m.R(k.2D[4],{M:H.w>=0?H.w+\'F\':0,N:H.h>=0?H.h+\'F\':0});q(k.9v)k.2D[3].G.N=k.2D[5].G.N=k.2D[4].G.N},5v:C(ar){q(ar)k.2e.G.1o=\'1q\';J m.3D(k.2e)}};m.6O=C(B,1x){k.B=B;k.1x=1x;k.3f=1x==\'x\'?\'bV\':\'bO\';k.3j=k.3f.5u();k.5B=1x==\'x\'?\'c1\':\'bX\';k.6U=k.5B.5u();k.9p=1x==\'x\'?\'c3\':\'c7\';k.b0=k.9p.5u();k.1H=k.2Z=0};m.6O.4V={Y:C(P){aq(P){2b\'9F\':E k.1J+k.3i+(k.t-m.2q[\'1y\'+k.3f])/2;2b\'9G\':E k.H+k.cb+k.1H+(k.D-m.2q[\'1y\'+k.3f])/2;2b\'2f\':E k.D+2*k.cb+k.1H+k.2Z;2b\'52\':E k.4S-k.3n-k.4p;2b\'8h\':E k.Y(\'52\')-2*k.cb-k.1H-k.2Z;2b\'63\':E k.H-(k.B.1e?k.B.1e.1y:0);2b\'9w\':E k.Y(\'2f\')+(k.B.1e?2*k.B.1e.1y:0);2b\'2J\':E k.1W?1h.31((k.D-k.1W)/2):0}},83:C(){k.cb=(k.B.S[\'1y\'+k.3f]-k.t)/2;k.4p=m[\'9z\'+k.9p]},9Z:C(){k.t=k.B.el[k.3j]?3s(k.B.el[k.3j]):k.B.el[\'1y\'+k.3f];k.1J=k.B.1J[k.1x];k.3i=(k.B.el[\'1y\'+k.3f]-k.t)/2;q(k.1J==0||k.1J==-1){k.1J=(m.4u[k.3j]/2)+m.4u[\'29\'+k.5B]}},86:C(){A B=k.B;k.2O=\'1P\';q(B.9q==\'4y\')k.2O=\'4y\';J q(1I 5p(k.6U).1b(B.4c))k.2O=I;J q(1I 5p(k.b0).1b(B.4c))k.2O=\'4j\';k.H=k.1J-k.cb+k.3i;q(k.9o&&k.1x==\'x\')B.6N=1h.2Y(B.6N||k.19,B.9o*k.19/B.y.19);k.D=1h.2Y(k.19,B[\'4j\'+k.3f]||k.19);k.2N=B.5U?1h.2Y(B[\'2Y\'+k.3f],k.19):k.19;q(B.2I&&B.3w){k.D=B[k.3j];k.1W=k.19}q(k.1x==\'x\'&&m.5F)k.2N=B.4I;k.2G=B[\'2G\'+k.1x.b1()];k.3n=m[\'9z\'+k.5B];k.29=m.4u[\'29\'+k.5B];k.4S=m.4u[k.3j]},6W:C(i){A B=k.B;q(B.2I&&(B.3w||m.5F)){k.1W=i;k.D=1h.4j(k.D,k.1W);B.S.G[k.6U]=k.Y(\'2J\')+\'F\'}J k.D=i;B.S.G[k.3j]=i+\'F\';B.T.G[k.3j]=k.Y(\'2f\')+\'F\';q(B.1e)B.1e.4D();q(B.3K)B.3K.G[k.3j]=i+\'F\';q(k.1x==\'y\'&&B.5O&&B.1f.G.N!=\'1P\')1w{B.5O.1f.G.2j=\'1P\'}1t(e){}q(B.2z){A d=B.2t;q(k.92===1T)k.92=B.1s[\'1y\'+k.3f]-d[\'1y\'+k.3f];d.G[k.3j]=(k.D-k.92)+\'F\';q(k.1x==\'x\')B.48.G.M=\'1P\';q(B.1f)B.1f.G[k.3j]=\'1P\'}q(k.1x==\'x\'&&B.1u)B.5o(L);q(k.1x==\'x\'&&B.1p&&B.2I){q(i==k.19)B.1p.58(\'19-2F\');J B.1p.4R(\'19-2F\')}},9U:C(i){k.H=i;k.B.T.G[k.6U]=i+\'F\';q(k.B.1e)k.B.1e.4D()}};m.69=C(a,26,3r,3g){q(W.bu&&m.1E&&!m.9f){m.2n(W,\'42\',C(){1I m.69(a,26,3r,3g)});E}k.a=a;k.3r=3r;k.3g=3g||\'2L\';k.2z=(3g==\'3A\');k.2I=!k.2z;m.9C=1l;k.1S=[];k.1j=m.1j;m.1j=I;m.7y();A P=k.P=m.14.V;O(A i=0;i<m.a3.V;i++){A 3d=m.a3[i];k[3d]=26&&1F 26[3d]!=\'1T\'?26[3d]:m[3d]}q(!k.1d)k.1d=a.23;A el=(26&&26.87)?m.$(26.87):a;el=k.aB=el.2u(\'1N\')[0]||el;k.7O=el.1v||a.1v;q(!m.1z(k,\'f8\'))E L;O(A i=0;i<m.14.V;i++){q(m.14[i]&&m.14[i].a==a&&!(k.1j&&k.3k[1]==\'43\')){m.14[i].3B();E 1l}}q(!m.fc)O(A i=0;i<m.14.V;i++){q(m.14[i]&&m.14[i].aB!=el&&!m.14[i].6I){m.14[i].6B()}}m.14[P]=k;q(!m.9t&&!m.2r){q(m.14[P-1])m.14[P-1].24();q(1F m.30!=\'1T\'&&m.14[m.30])m.14[m.30].24()}k.el=el;k.1J=m.6C(el);m.7I();A x=k.x=1I m.6O(k,\'x\');x.9Z();A y=k.y=1I m.6O(k,\'y\');y.9Z();q(/5k/i.1b(el.3E))k.ak(el);k.T=m.1c(\'Q\',{1v:\'K-T-\'+k.P,1a:\'K-T \'+k.9W},{1o:\'1q\',1k:\'2l\',1G:m.4w+=2},I,L);k.T.f0=k.T.eT=m.aG;q(k.3g==\'2L\'&&k.3R==2)k.3R=0;q(!k.1Y||(k.1j&&k.2I&&k.3k[1]==\'43\')){k[k.3g+\'9J\']()}J q(m.4i[k.1Y]){k.9I();k[k.3g+\'9J\']()}J{k.65();A B=k;1I m.5A(k.1Y,C(){B.9I();B[B.3g+\'9J\']()})}E L};m.69.4V={9y:C(e){2c.81.23=k.1d},9I:C(){A 1e=k.1e=m.4i[k.1Y];1e.B=k;1e.2e.G.1G=k.T.G.1G-1;m.4i[k.1Y]=I},65:C(){q(k.6I||k.2q)E;k.2q=m.2q;A B=k;k.2q.2m=C(){B.6B()};q(!m.1z(k,\'eQ\'))E;A B=k,l=k.x.Y(\'9F\')+\'F\',t=k.y.Y(\'9F\')+\'F\';q(!2W&&k.1j&&k.3k[1]==\'43\')A 2W=k.1j;q(2W){l=2W.x.Y(\'9G\')+\'F\';t=2W.y.Y(\'9G\')+\'F\';k.2q.G.1G=m.4w++}49(C(){q(B.2q)m.R(B.2q,{18:l,16:t,1G:m.4w++})},2w)},eY:C(){A B=k;A 1N=W.1c(\'1N\');k.S=1N;1N.4O=C(){q(m.14[B.P])B.67()};q(m.eX)1N.eW=C(){E 1l};1N.1a=\'K-2L\';m.R(1N,{1o:\'1q\',1n:\'3M\',1k:\'2l\',6N:\'4l\',1G:3});1N.2i=m.11.9E;q(m.4z)m.2a.21(1N);q(m.1E&&m.eZ)1N.1d=I;1N.1d=k.1d;k.65()},eU:C(){q(!m.1z(k,\'eP\'))E;k.S=m.7Y(k.a);q(!k.S)k.S=m.4x(k.9R);q(!k.S)k.S=m.9O();k.a4([\'6E\']);q(k.6E){A 1f=m.4J(k.S,\'Q\',\'K-1f\');q(1f)1f.21(k.6E);k.6E.G.1n=\'3M\'}m.1z(k,\'eS\');A 1s=k.1s=k.S;q(/(3t|1i)/.1b(k.2E))k.8T(1s);m.2a.21(k.T);m.R(k.T,{1k:\'f1\',7T:\'0 \'+m.90+\'F 0 \'+m.4B+\'F\'});k.S=m.1c(\'Q\',{1a:\'K-3A\'},{1k:\'4m\',1G:3,2j:\'1q\'},k.T);k.48=m.1c(\'Q\',I,I,k.S,1);k.48.21(1s);m.R(1s,{1k:\'4m\',1n:\'3M\',9r:m.11.9m||\'\'});q(k.M)1s.G.M=k.M+\'F\';q(k.N)m.R(1s,{N:k.N+\'F\',2j:\'1q\'});q(1s.1R<k.4I)1s.G.M=k.4I+\'F\';q(k.2E==\'2R\'&&!m.7Y(k.a)){k.65();A B=k;A 2R=1I m.7A(k.a,1s);2R.1d=k.1d;2R.3u=C(){q(m.14[B.P])B.67()};2R.8X=C(){81.23=B.1d};2R.94()}J q(k.2E==\'1i\'&&k.3Q==\'60\'){k.6A()}J k.67()},67:C(){1w{q(!k.S)E;k.S.4O=I;q(k.6I)E;J k.6I=L;A x=k.x,y=k.y;q(k.2q){m.R(k.2q,{16:\'-4l\'});k.2q=I;m.1z(k,\'cl\')}q(k.2I){x.19=k.S.M;y.19=k.S.N;m.R(k.S,{M:x.t+\'F\',N:y.t+\'F\'});k.T.21(k.S);m.2a.21(k.T)}J q(k.7Q)k.7Q();x.83();y.83();m.R(k.T,{18:(x.1J+x.3i-x.cb)+\'F\',16:(y.1J+x.3i-y.cb)+\'F\'});k.9l();k.bT();A 2X=x.19/y.19;x.86();k.2O(x);y.86();k.2O(y);q(k.2z)k.b4();q(k.1u)k.5o(0,1);q(k.5U){q(k.2I)k.cr(2X);J k.7P();A 1O=k.1p;q(1O&&k.1j&&1O.2U&&1O.aJ){A H=1O.ch.1k||\'\',p;O(A 1x 3a m.8W)O(A i=0;i<5;i++){p=k[1x];q(H.2s(m.8W[1x][i])){p.H=k.1j[1x].H+(k.1j[1x].1H-p.1H)+(k.1j[1x].D-p.D)*[0,0,.5,1,1][i];q(1O.aJ==\'fb\'){q(p.H+p.D+p.1H+p.2Z>p.29+p.4S-p.4p)p.H=p.29+p.4S-p.D-p.3n-p.4p-p.1H-p.2Z;q(p.H<p.29+p.3n)p.H=p.29+p.3n}}}}q(k.2I&&k.x.19>(k.x.1W||k.x.D)){k.bI();q(k.1S.V==1)k.5o()}}k.9k()}1t(e){k.9y(e)}},8T:C(68,1P){A c=m.4J(68,\'7l\',\'K-1f\');q(/(1i|3t)/.1b(k.2E)){q(k.46)c.G.M=k.46+\'F\';q(k.4C)c.G.N=k.4C+\'F\'}},6A:C(){q(k.ay)E;A B=k;k.1f=m.4J(k.1s,\'7l\',\'K-1f\');q(k.2E==\'1i\'){k.65();A 53=m.3v.6s(1);k.1f.21(53);k.f2=k.1s.1R;q(!k.46)k.46=53.1R;A 5t=k.1s.1U-k.1f.1U,h=k.4C||m.4u.N-5t-m.5g-m.6z,4O=k.3Q==\'60\'?\' 4O="q (m.14[\'+k.P+\']) m.14[\'+k.P+\'].67()" \':\'\';k.1f.2g+=\'<1i 3d="m\'+(1I 7a()).79()+\'" f5="0" P="\'+k.P+\'" \'+\' G="M:\'+k.46+\'F; N:\'+h+\'F" \'+4O+\' 1d="\'+k.1d+\'" ></1i>\';k.53=k.1f.2u(\'Q\')[0];k.1i=k.1f.2u(\'1i\')[0];q(k.3Q==\'6l\')k.8u()}q(k.2E==\'3t\'){k.1f.1v=k.1f.1v||\'m-eO-1v-\'+k.P;A a=k.8c;q(!a.26)a.26={};q(1F a.26.aO==\'1T\')a.26.aO=\'eq\';q(9x)9x.et(k.1d,k.1f.1v,k.46,k.4C,a.eM||\'7\',a.eC,a.aH,a.26,a.az)}k.ay=L},7Q:C(){q(k.1i&&!k.4C){k.1i.G.N=k.1f.G.N=k.8H()+\'F\'}k.1s.21(m.3v);q(!k.x.19)k.x.19=k.1s.1R;k.y.19=k.1s.1U;k.1s.9h(m.3v);q(m.1E&&k.ax>3s(k.1s.6q.N)){k.ax=3s(k.1s.6q.N)}m.R(k.T,{1k:\'2l\',7T:\'0\'});m.R(k.S,{M:k.x.t+\'F\',N:k.y.t+\'F\'})},8H:C(){A h;1w{A 2A=k.5O=k.1i.9N||k.1i.5W.W;A 3v=2A.1c(\'Q\');3v.G.aw=\'aA\';2A.1f.21(3v);h=3v.80;q(m.1E)h+=3s(2A.1f.6q.5g)+3s(2A.1f.6q.6z)-1}1t(e){h=fD}E h},8u:C(){A 5f=k.1s.1R-k.53.1R;m.3D(k.53);q(5f<0)5f=0;A 5t=k.1s.1U-k.1i.1U;q(k.5O&&!k.4C&&!k.N&&k.y.D==k.y.19)1w{k.5O.1f.G.2j=\'1q\'}1t(e){}m.R(k.1i,{M:1h.a2(k.x.D-5f)+\'F\',N:1h.a2(k.y.D-5t)+\'F\'});m.R(k.1f,{M:k.1i.G.M,N:k.1i.G.N});k.5q=k.1i;k.2t=k.5q},b4:C(){k.8T(k.1s);q(k.2E==\'3t\'&&k.3Q==\'60\')k.6A();q(k.x.D<k.x.19&&!k.6Q)k.x.D=k.x.19;q(k.y.D<k.y.19&&!k.6R)k.y.D=k.y.19;k.2t=k.1s;m.R(k.48,{1k:\'4m\',M:k.x.D+\'F\'});m.R(k.1s,{8v:\'1B\',M:\'1P\',N:\'1P\'});A 1M=m.4J(k.1s,\'7l\',\'K-1f\');q(1M&&!/(1i|3t)/.1b(k.2E)){A 5b=1M;1M=m.1c(5b.fl,I,{2j:\'1q\'},I,L);5b.22.fm(1M,5b);1M.21(m.3v);1M.21(5b);A 5f=k.1s.1R-1M.1R;A 5t=k.1s.1U-1M.1U;1M.9h(m.3v);A 6G=m.4z||4n.aU==\'aT\'?1:0;m.R(1M,{M:(k.x.D-5f-6G)+\'F\',N:(k.y.D-5t)+\'F\',2j:\'1P\',1k:\'4m\'});q(6G&&5b.1U>1M.1U){1M.G.M=(3s(1M.G.M)+6G)+\'F\'}k.5q=1M;k.2t=k.5q}q(k.1i&&k.3Q==\'60\')k.8u();q(!k.5q&&k.y.D<k.48.1U)k.2t=k.S;q(k.2t==k.S&&!k.6Q&&!/(1i|3t)/.1b(k.2E)){k.x.D+=17}q(k.2t&&k.2t.1U>k.2t.22.1U){49("1w { m.14["+k.P+"].2t.G.2j = \'1P\'; } 1t(e) {}",m.6Z)}},ak:C(5k){A c=5k.fj.7o(\',\');O(A i=0;i<c.V;i++)c[i]=3s(c[i]);q(5k.fg.5u()==\'fs\'){k.x.1J+=c[0]-c[2];k.y.1J+=c[1]-c[2];k.x.t=k.y.t=2*c[2]}J{A 5R,5H,5J=5R=c[0],6o=5H=c[1];O(A i=0;i<c.V;i++){q(i%2==0){5J=1h.2Y(5J,c[i]);5R=1h.4j(5R,c[i])}J{6o=1h.2Y(6o,c[i]);5H=1h.4j(5H,c[i])}}k.x.1J+=5J;k.x.t=5R-5J;k.y.1J+=6o;k.y.t=5H-6o}},2O:C(p,57){A 4K,2W=p.2G,1x=p==k.x?\'x\':\'y\';q(2W&&2W.2s(/ /)){4K=2W.7o(\' \');2W=4K[0]}q(2W&&m.$(2W)){p.H=m.6C(m.$(2W))[1x];q(4K&&4K[1]&&4K[1].2s(/^[-]?[0-9]+F$/))p.H+=3s(4K[1]);q(p.D<p.2N)p.D=p.2N}J q(p.2O==\'1P\'||p.2O==\'4y\'){A 8b=1l;A 5a=p.B.5U;q(p.2O==\'4y\')p.H=1h.31(p.29+(p.4S+p.3n-p.4p-p.Y(\'2f\'))/2);J p.H=1h.31(p.H-((p.Y(\'2f\')-p.t)/2));q(p.H<p.29+p.3n){p.H=p.29+p.3n;8b=L}q(!57&&p.D<p.2N){p.D=p.2N;5a=1l}q(p.H+p.Y(\'2f\')>p.29+p.4S-p.4p){q(!57&&8b&&5a){p.D=1h.2Y(p.D,p.Y(1x==\'y\'?\'52\':\'8h\'))}J q(p.Y(\'2f\')<p.Y(\'52\')){p.H=p.29+p.4S-p.4p-p.Y(\'2f\')}J{p.H=p.29+p.3n;q(!57&&5a)p.D=p.Y(1x==\'y\'?\'52\':\'8h\')}}q(!57&&p.D<p.2N){p.D=p.2N;5a=1l}}J q(p.2O==\'4j\'){p.H=1h.fr(p.H-p.D+p.t)}q(p.H<p.3n){A cs=p.H;p.H=p.3n;q(5a&&!57)p.D=p.D-(p.H-cs)}},cr:C(2X){A x=k.x,y=k.y,3P=1l,35=1h.2Y(x.19,x.D),3Z=1h.2Y(y.19,y.D),3w=(k.3w||m.5F);q(35/3Z>2X){ 35=3Z*2X;q(35<x.2N){35=x.2N;3Z=35/2X}3P=L}J q(35/3Z<2X){ 3Z=35/2X;3P=L}q(m.5F&&x.19<x.2N){x.1W=x.19;y.D=y.1W=y.19}J q(k.3w){x.1W=35;y.1W=3Z}J{x.D=35;y.D=3Z}3P=k.7P(3w?I:2X,3P);q(3w&&y.D<y.1W){y.1W=y.D;x.1W=y.D*2X}q(3P||3w){x.H=x.1J-x.cb+x.3i;x.2N=x.D;k.2O(x,L);y.H=y.1J-y.cb+y.3i;y.2N=y.D;k.2O(y,L);q(k.1u)k.5o()}},7P:C(2X,3P){A x=k.x,y=k.y;q(k.1u&&(k.2I||k.6R)){4Z(y.D>k.6p&&x.D>k.4I&&y.Y(\'2f\')>y.Y(\'52\')){y.D-=10;q(2X)x.D=y.D*2X;k.5o(0,1);3P=L}}E 3P},fq:C(){q(k.2t){A h=/1i/i.1b(k.2t.3E)?(k.8H()+1)+\'F\':\'1P\';q(k.1f)k.1f.G.N=h;k.2t.G.N=h;k.y.6W(k.1s.1U)}},9k:C(){A x=k.x,y=k.y;k.55(\'1q\');m.1z(k,\'ff\');q(k.1p&&k.1p.2K)k.1p.2K.5m();k.9e(1,{T:{M:x.Y(\'2f\'),N:y.Y(\'2f\'),18:x.H,16:y.H},S:{18:x.1H+x.Y(\'2J\'),16:y.1H+y.Y(\'2J\'),M:x.1W||x.D,N:y.1W||y.D}},m.6Z)},9e:C(1K,2d,41){A 5S=k.3k,8U=1K?(k.1j?k.1j.a:I):m.2r,t=(5S[1]&&8U&&m.44(8U,\'3k\')[1]==5S[1])?5S[1]:5S[0];q(k[t]&&t!=\'2F\'){k[t](1K,2d);E}q(k.1e&&!k.3R){q(1K)k.1e.4D();J k.1e.5v((k.2z&&k.4E))}q(!1K)k.72();A B=k,x=B.x,y=B.y,2P=k.2P;q(!1K)2P=k.cp||2P;A 6l=1K?C(){q(B.1e)B.1e.2e.G.1o="1Z";49(C(){B.6S()},50)}:C(){B.5Q()};q(1K)m.R(k.T,{M:x.t+\'F\',N:y.t+\'F\'});q(1K&&k.2z){m.R(k.T,{18:(x.1J-x.cb+x.3i)+\'F\',16:(y.1J-y.cb+y.3i)+\'F\'})}q(k.ct){m.R(k.T,{1A:1K?0:1});m.3L(2d.T,{1A:1K})}m.2x(k.T,2d.T,{4a:41,2P:2P,3C:C(3o,2H){q(B.1e&&B.3R&&2H.1g==\'16\'){A 6m=1K?2H.H:1-2H.H;A H={w:x.t+(x.Y(\'2f\')-x.t)*6m,h:y.t+(y.Y(\'2f\')-y.t)*6m,x:x.1J+(x.H-x.1J)*6m,y:y.1J+(y.H-y.1J)*6m};B.1e.4D(H,0,1)}q(B.2z){q(2H.1g==\'18\')B.48.G.18=(x.H-3o)+\'F\';q(2H.1g==\'16\')B.48.G.16=(y.H-3o)+\'F\'}}});m.2x(k.S,2d.S,41,2P,6l);q(1K){k.T.G.1o=\'1Z\';k.S.G.1o=\'1Z\';q(k.2z)k.1s.G.1o=\'1Z\';k.a.1a+=\' K-4k-4c\'}},5M:C(1K,2d){k.3R=1l;A B=k,t=1K?m.6Z:0;q(1K){m.2x(k.T,2d.T,0);m.R(k.T,{1A:0,1o:\'1Z\'});m.2x(k.S,2d.S,0);k.S.G.1o=\'1Z\';m.2x(k.T,{1A:1},t,I,C(){B.6S()})}q(k.1e){k.1e.2e.G.1G=k.T.G.1G;A 6Y=1K||-1,1y=k.1e.1y,8m=1K?3:1y,8q=1K?1y:3;O(A i=8m;6Y*i<=6Y*8q;i+=6Y,t+=25){(C(){A o=1K?8q-i:8m-i;49(C(){B.1e.4D(0,o,1)},t)})()}}q(1K){}J{49(C(){q(B.1e)B.1e.5v(B.4E);B.72();m.2x(B.T,{1A:0},m.8Y,I,C(){B.5Q()})},t)}},43:C(1K,2d,8r){q(!1K)E;A B=k,1j=k.1j,x=k.x,y=k.y,3q=1j.x,3p=1j.y,T=k.T,S=k.S,1u=k.1u;m.5n(W,\'7F\',m.6X);m.R(S,{M:(x.1W||x.D)+\'F\',N:(y.1W||y.D)+\'F\'});q(1u)1u.G.2j=\'1Z\';k.1e=1j.1e;q(k.1e)k.1e.B=B;1j.1e=I;A 59=m.1c(\'Q\',{1a:\'K-2L\'},{1k:\'2l\',1G:4,2j:\'1q\',1n:\'1B\'});A 8J={co:1j,cn:k};O(A n 3a 8J){k[n]=8J[n].S.6s(1);m.R(k[n],{1k:\'2l\',8v:0,1o:\'1Z\'});59.21(k[n])}T.21(59);q(k.2z)m.R(k.48,{18:0,16:0});q(1u){1u.1a=\'\';T.21(1u)}59.G.1n=\'\';1j.S.G.1n=\'1B\';q(m.4z){A 2s=4n.6d.2s(/cu\\/([0-9]{3})/);q(2s&&3s(2s[1])<cy)k.T.G.1o=\'1Z\'}m.2x(T,{M:x.D},{4a:m.cx,3C:C(3o,2H){A H=2H.H,4o=1-H;A 1g,D={},8k=[\'H\',\'D\',\'1H\',\'2Z\'];O(A n 3a 8k){1g=8k[n];D[\'x\'+1g]=1h.31(4o*3q[1g]+H*x[1g]);D[\'y\'+1g]=1h.31(4o*3p[1g]+H*y[1g]);D.cw=1h.31(4o*(3q.1W||3q.D)+H*(x.1W||x.D));D.6J=1h.31(4o*3q.Y(\'2J\')+H*x.Y(\'2J\'));D.cv=1h.31(4o*(3p.1W||3p.D)+H*(y.1W||y.D));D.6K=1h.31(4o*3p.Y(\'2J\')+H*y.Y(\'2J\'))}q(B.1e)B.1e.4D({x:D.3l,y:D.4N,w:D.6g+D.47+D.8o+2*x.cb,h:D.6h+D.4d+D.8B+2*y.cb});1j.T.G.fo=\'fn(\'+(D.4N-3p.H)+\'F, \'+(D.6g+D.47+D.8o+D.3l+2*3q.cb-3q.H)+\'F, \'+(D.6h+D.4d+D.8B+D.4N+2*3p.cb-3p.H)+\'F, \'+(D.3l-3q.H)+\'F)\';m.R(S,{16:(D.4d+y.Y(\'2J\'))+\'F\',18:(D.47+x.Y(\'2J\'))+\'F\',5g:(y.H-D.4N)+\'F\',4B:(x.H-D.3l)+\'F\'});m.R(T,{16:D.4N+\'F\',18:D.3l+\'F\',M:(D.47+D.8o+D.6g+2*x.cb)+\'F\',N:(D.4d+D.8B+D.6h+2*y.cb)+\'F\'});m.R(59,{M:(D.cw||D.6g)+\'F\',N:(D.cv||D.6h)+\'F\',18:(D.47+D.6J)+\'F\',16:(D.4d+D.6K)+\'F\',1o:\'1Z\'});m.R(B.co,{16:(3p.H-D.4N+3p.1H-D.4d+3p.Y(\'2J\')-D.6K)+\'F\',18:(3q.H-D.3l+3q.1H-D.47+3q.Y(\'2J\')-D.6J)+\'F\'});m.R(B.cn,{1A:H,16:(y.H-D.4N+y.1H-D.4d+y.Y(\'2J\')-D.6K)+\'F\',18:(x.H-D.3l+x.1H-D.47+x.Y(\'2J\')-D.6J)+\'F\'});q(1u)m.R(1u,{M:D.6g+\'F\',N:D.6h+\'F\',18:(D.47+x.cb)+\'F\',16:(D.4d+y.cb)+\'F\'})},6L:C(){T.G.1o=S.G.1o=\'1Z\';S.G.1n=\'3M\';59.G.1n=\'1B\';B.a.1a+=\' K-4k-4c\';B.6S();1j.5Q();B.1j=I}})},c4:C(o,el){q(!k.1j)E 1l;O(A i=0;i<k.1j.1S.V;i++){A 6P=m.$(\'1V\'+k.1j.1S[i]);q(6P&&6P.1V==o.1V){k.a1();6P.fX=k.P;m.2o(k.1S,k.1j.1S[i]);E L}}E 1l},6S:C(){k.6n=L;k.3B();q(k.2z&&k.3Q==\'6l\')k.6A();q(k.1i){1w{A B=k,2A=k.1i.9N||k.1i.5W.W;m.2n(2A,\'88\',C(){q(m.30!=B.P)B.3B()})}1t(e){}q(m.1E&&1F k.5D!=\'fR\')k.1i.G.M=(k.46-1)+\'F\'}q(k.45)m.1x(k);q(m.2r&&m.2r==k.a)m.2r=I;k.cc();A p=m.4u,8F=m.7B.x+p.5w,8E=m.7B.y+p.5z;k.8Z=k.x.H<8F&&8F<k.x.H+k.x.Y(\'2f\')&&k.y.H<8E&&8E<k.y.H+k.y.Y(\'2f\');q(k.1u)k.c6();m.1z(k,\'fV\')},cc:C(){A P=k.P;A 1Y=k.1Y;1I m.5A(1Y,C(){1w{m.14[P].cd()}1t(e){}})},cd:C(){A 1C=k.8V(1);q(1C&&1C.2m.cA().2s(/m\\.2F/))A 1N=m.1c(\'1N\',{1d:m.76(1C)})},8V:C(2p){A 8f=k.7x(),as=m.4G.3e[k.2M||\'1B\'];q(!as[8f+2p]&&k.1p&&k.1p.bt){q(2p==1)E as[0];J q(2p==-1)E as[as.V-1]}E as[8f+2p]||I},7x:C(){A 28=m.5Z().3e[k.2M||\'1B\'];q(28)O(A i=0;i<28.V;i++){q(28[i]==k.a)E i}E I},bQ:C(){q(k[k.66]){A 28=m.4G.3e[k.2M||\'1B\'];q(28){A s=m.11.3G.2h(\'%1\',k.7x()+1).2h(\'%2\',28.V);k[k.66].2g=\'<Q 1X="K-3G">\'+s+\'</Q>\'+k[k.66].2g}}},9l:C(){q(!k.1j){O(A i=0;i<m.6b.V;i++){A 1O=m.6b[i],3b=1O.2M;q(1F 3b==\'1T\'||3b===I||3b===k.2M)k.1p=1I m.84(k.P,1O)}}J{k.1p=k.1j.1p}A 1O=k.1p;q(!1O)E;A P=1O.4h=k.P;1O.bF();1O.58(\'19-2F\');q(1O.2U){A o=1O.ch||{};o.4T=1O.2U;o.1V=\'2U\';k.4P(o)}q(1O.2K)1O.2K.7h(k);q(!k.1j&&k.3V)1O.3O(L);q(1O.3V){1O.3V=49(C(){m.1C(P)},(1O.fe||eG))}},6B:C(){m.3D(k.T);m.14[k.P]=I;q(m.2r==k.a)m.2r=I;m.93(k.P);q(k.2q)m.2q.G.18=\'-4l\';m.1z(k,\'cl\')},bP:C(){q(k.5y)E;k.5y=m.1c(\'a\',{23:m.ck,2G:m.cj,1a:\'K-5y\',2g:m.11.cz,2i:m.11.cL});k.4P({4T:k.5y,1k:k.cJ||\'16 18\',1V:\'5y\'})},a4:C(82,cE){O(A i=0;i<82.V;i++){A U=82[i],s=I;q(U==\'9H\'&&!m.1z(k,\'eF\'))E;J q(U==\'5h\'&&!m.1z(k,\'ez\'))E;q(!k[U+\'5r\']&&k.7O)k[U+\'5r\']=U+\'-O-\'+k.7O;q(k[U+\'5r\'])k[U]=m.4x(k[U+\'5r\']);q(!k[U]&&!k[U+\'8e\']&&k[U+\'cB\'])1w{s=ew(k[U+\'cB\'])}1t(e){}q(!k[U]&&k[U+\'8e\']){s=k[U+\'8e\']}q(!k[U]&&!s){k[U]=m.4x(k.a[\'cH\'+U+\'5r\']);q(!k[U]){A 1C=k.a.cD;4Z(1C&&!m.6M(1C)){q((1I 5p(\'K-\'+U)).1b(1C.1a||I)){q(!1C.1v)k.a[\'cH\'+U+\'5r\']=1C.1v=\'1V\'+m.5I++;k[U]=m.4x(1C.1v);5i}1C=1C.cD}}}q(!k[U]&&!s&&k.66==U)s=\'\\n\';q(!k[U]&&s)k[U]=m.1c(\'Q\',{1a:\'K-\'+U,2g:s});q(cE&&k[U]){A o={1k:(U==\'5h\')?\'6v\':\'7J\'};O(A x 3a k[U+\'cF\'])o[x]=k[U+\'cF\'][x];o.4T=k[U];k.4P(o)}}},55:C(1o){q(m.c9)k.6H(\'fa\',1o);q(m.bz)k.6H(\'f9\',1o);q(m.6f)k.6H(\'*\',1o)},6H:C(3E,1o){A 1m=W.2u(3E);A 1g=3E==\'*\'?\'2j\':\'1o\';O(A i=0;i<1m.V;i++){q(1g==\'1o\'||(W.7S.bx(1m[i],"").ca(\'2j\')==\'1P\'||1m[i].bw(\'1q-by\')!=I)){A 2Q=1m[i].bw(\'1q-by\');q(1o==\'1Z\'&&2Q){2Q=2Q.2h(\'[\'+k.P+\']\',\'\');1m[i].62(\'1q-by\',2Q);q(!2Q)1m[i].G[1g]=1m[i].9Q}J q(1o==\'1q\'){A 3F=m.6C(1m[i]);3F.w=1m[i].1R;3F.h=1m[i].1U;q(!k.45){A bA=(3F.x+3F.w<k.x.Y(\'63\')||3F.x>k.x.Y(\'63\')+k.x.Y(\'9w\'));A bB=(3F.y+3F.h<k.y.Y(\'63\')||3F.y>k.y.Y(\'63\')+k.y.Y(\'9w\'))}A 6F=m.9P(1m[i]);q(!bA&&!bB&&6F!=k.P){q(!2Q){1m[i].62(\'1q-by\',\'[\'+k.P+\']\');1m[i].9Q=1m[i].G[1g];1m[i].G[1g]=\'1q\'}J q(2Q.be(\'[\'+k.P+\']\')==-1){1m[i].62(\'1q-by\',2Q+\'[\'+k.P+\']\')}}J q((2Q==\'[\'+k.P+\']\'||m.30==6F)&&6F!=k.P){1m[i].62(\'1q-by\',\'\');1m[i].G[1g]=1m[i].9Q||\'\'}J q(2Q&&2Q.be(\'[\'+k.P+\']\')>-1){1m[i].62(\'1q-by\',2Q.2h(\'[\'+k.P+\']\',\'\'))}}}}},3B:C(){k.T.G.1G=m.4w+=2;O(A i=0;i<m.14.V;i++){q(m.14[i]&&i==m.30){A 4r=m.14[i];4r.S.1a+=\' K-\'+4r.3g+\'-9M\';q(4r.2I){4r.S.G.4t=m.1E?\'bf\':\'7D\';4r.S.2i=m.11.bk}m.1z(4r,\'eV\')}}q(k.1e)k.1e.2e.G.1G=k.T.G.1G-1;k.S.1a=\'K-\'+k.3g;q(k.2I){k.S.2i=m.11.9E;q(m.6r){m.4W=2c.3T?\'7D\':\'7E(\'+m.4Y+m.6r+\'), 7D\';q(m.1E&&m.3J<6)m.4W=\'bf\';k.S.G.4t=m.4W}}m.30=k.P;m.2n(W,2c.3T?\'9c\':\'9d\',m.6V);m.1z(k,\'eR\')},9B:C(x,y){k.x.9U(x);k.y.9U(y)},3Y:C(e){A w,h,r=e.M/e.N;w=1h.4j(e.M+e.dX,1h.2Y(k.4I,k.x.19));q(k.2I&&1h.a2(w-k.x.19)<12)w=k.x.19;h=k.2z?e.N+e.dY:w/r;q(h<1h.2Y(k.6p,k.y.19)){h=1h.2Y(k.6p,k.y.19);q(k.2I)w=h*r}k.9A(w,h)},9A:C(w,h){k.y.6W(h);k.x.6W(w);k.T.G.N=k.y.Y(\'2f\')+\'F\'},24:C(){q(k.5D||!k.6n)E;q(k.3k[1]==\'43\'&&m.2r){m.2C(m.2r).6B();m.2r=I}q(!m.1z(k,\'f7\'))E;k.5D=L;q(k.1p&&!m.2r)k.1p.3h();m.5n(W,2c.3T?\'9c\':\'9d\',m.6V);1w{q(k.2z)k.bZ();k.S.G.4t=\'f3\';k.9e(0,{T:{M:k.x.t,N:k.y.t,18:k.x.1J-k.x.cb+k.x.3i,16:k.y.1J-k.y.cb+k.y.3i},S:{18:0,16:0,M:k.x.t,N:k.y.t}},m.8Y)}1t(e){k.5Q()}},bZ:C(){q(m.6f){q(!m.5x)m.5x=m.1c(\'Q\',I,{1k:\'2l\'},m.2a);m.R(m.5x,{M:k.x.D+\'F\',N:k.y.D+\'F\',18:k.x.H+\'F\',16:k.y.H+\'F\',1n:\'3M\'})}q(k.2E==\'3t\')1w{m.$(k.1f.1v).f4()}1t(e){}q(k.3Q==\'6l\'&&!k.4E)k.c2();q(k.2t&&k.2t!=k.5q)k.2t.G.2j=\'1q\'},c2:C(){q(m.1E&&k.1i)1w{k.1i.5W.W.1f.2g=\'\'}1t(e){}q(k.2E==\'3t\')9x.f6(k.1f.1v);k.1f.2g=\'\'},bi:C(){q(k.1e)k.1e.2e.G.1n=\'1B\';k.3K=I;k.T.G.1n=\'1B\';m.2o(m.4v,k)},c8:C(){1w{m.14[k.P]=k;q(!m.9t&&m.30!=k.P){1w{m.14[m.30].24()}1t(e){}}A z=m.4w++,5C={1n:\'\',1G:z};m.R(k.T,5C);k.5D=1l;A o=k.1e||0;q(o){q(!k.3R)5C.1o=\'1q\';m.R(o.2e,5C)}q(k.1p){k.9l()}k.9k()}1t(e){}},4P:C(o){A el=o.4T,4U=(o.bN==\'2B\'&&!/7H$/.1b(o.1k));q(1F el==\'9n\')el=m.4x(el);q(o.3A)el=m.1c(\'Q\',{2g:o.3A});q(!el||1F el==\'9n\')E;q(!m.1z(k,\'eN\',{Z:el}))E;el.G.1n=\'3M\';o.1V=o.1V||o.4T;q(k.3k[1]==\'43\'&&k.c4(o,el))E;k.a1();A M=o.M&&/^[0-9]+(F|%)$/.1b(o.M)?o.M:\'1P\';q(/^(18|3m)7H$/.1b(o.1k)&&!/^[0-9]+F$/.1b(o.M))M=\'ex\';A Z=m.1c(\'Q\',{1v:\'1V\'+m.5I++,1V:o.1V},{1k:\'2l\',1o:\'1q\',M:M,9r:m.11.9m||\'\',1A:0},4U?m.2B:k.1u,L);q(4U)Z.6T=k.P;Z.21(el);m.3L(Z,{1A:1,bM:0,bL:0,41:(o.5M===0||o.5M===1l||(o.5M==2&&m.1E))?0:5G});m.3L(Z,o);q(k.bW){k.5E(Z);q(!Z.7f||k.8Z)m.2x(Z,{1A:Z.1A},Z.41)}m.2o(k.1S,m.5I-1)},5E:C(Z){A p=Z.1k||\'9D 4y\',4U=(Z.bN==\'2B\'),71=Z.bM,6y=Z.bL;q(4U){m.2B.G.1n=\'3M\';Z.6T=k.P;q(Z.1R>Z.22.1R)Z.G.M=\'2w%\'}J q(Z.22!=k.1u)k.1u.21(Z);q(/18$/.1b(p))Z.G.18=71+\'F\';q(/4y$/.1b(p))m.R(Z,{18:\'50%\',4B:(71-1h.31(Z.1R/2))+\'F\'});q(/3m$/.1b(p))Z.G.3m=-71+\'F\';q(/^bJ$/.1b(p)){m.R(Z,{3m:\'2w%\',90:k.x.cb+\'F\',16:-k.y.cb+\'F\',4H:-k.y.cb+\'F\',2j:\'1P\'});k.x.1H=Z.1R}J q(/^bK$/.1b(p)){m.R(Z,{18:\'2w%\',4B:k.x.cb+\'F\',16:-k.y.cb+\'F\',4H:-k.y.cb+\'F\',2j:\'1P\'});k.x.2Z=Z.1R}A 98=Z.22.1U;Z.G.N=\'1P\';q(4U&&Z.1U>98)Z.G.N=m.5c?98+\'F\':\'2w%\';q(/^16/.1b(p))Z.G.16=6y+\'F\';q(/^9D/.1b(p))m.R(Z,{16:\'50%\',5g:(6y-1h.31(Z.1U/2))+\'F\'});q(/^4H/.1b(p))Z.G.4H=-6y+\'F\';q(/^6v$/.1b(p)){m.R(Z,{18:(-k.x.1H-k.x.cb)+\'F\',3m:(-k.x.2Z-k.x.cb)+\'F\',4H:\'2w%\',6z:k.y.cb+\'F\',M:\'1P\'});k.y.1H=Z.1U}J q(/^7J$/.1b(p)){m.R(Z,{1k:\'4m\',18:(-k.x.1H-k.x.cb)+\'F\',3m:(-k.x.2Z-k.x.cb)+\'F\',16:\'2w%\',5g:k.y.cb+\'F\',M:\'1P\'});k.y.2Z=Z.1U;Z.G.1k=\'2l\'}},bT:C(){k.a4([\'5h\',\'9H\'],L);k.bQ();q(k.9H)m.1z(k,\'eA\');q(k.5h)m.1z(k,\'eB\');q(k.5h&&k.9L)k.5h.1a+=\' K-3x\';q(m.bR)k.bP();O(A i=0;i<m.1S.V;i++){A o=m.1S[i],6D=o.87,3b=o.2M;q((!6D&&!3b)||(6D&&6D==k.7O)||(3b&&3b===k.2M)){q(k.2I||(k.2z&&o.fd))k.4P(o)}}A 7N=[];O(A i=0;i<k.1S.V;i++){A o=m.$(\'1V\'+k.1S[i]);q(/7H$/.1b(o.1k))k.5E(o);J m.2o(7N,o)}O(A i=0;i<7N.V;i++)k.5E(7N[i]);k.bW=L},a1:C(){q(!k.1u)k.1u=m.1c(\'Q\',{1a:k.9W},{1k:\'2l\',M:(k.x.D||(k.3w?k.M:I)||k.x.19)+\'F\',N:(k.y.D||k.y.19)+\'F\',1o:\'1q\',2j:\'1q\',1G:m.1E?4:\'1P\'},m.2a,L)},5o:C(9g,c5){A 1u=k.1u,x=k.x,y=k.y;m.R(1u,{M:x.D+\'F\',N:y.D+\'F\'});q(9g||c5){O(A i=0;i<k.1S.V;i++){A o=m.$(\'1V\'+k.1S[i]);A 9a=(m.5c||W.7G==\'8S\');q(o&&/^(6v|7J)$/.1b(o.1k)){q(9a){o.G.M=(1u.1R+2*x.cb+x.1H+x.2Z)+\'F\'}y[o.1k==\'6v\'?\'1H\':\'2Z\']=o.1U}q(o&&9a&&/^(18|3m)7H$/.1b(o.1k)){o.G.N=(1u.1U+2*y.cb)+\'F\'}}}q(9g){m.R(k.S,{16:y.1H+\'F\'});m.R(1u,{16:(y.1H+y.cb)+\'F\'})}},c6:C(){A b=k.1u;b.1a=\'\';m.R(b,{16:(k.y.1H+k.y.cb)+\'F\',18:(k.x.1H+k.x.cb)+\'F\',2j:\'1Z\'});q(m.4z)b.G.1o=\'1Z\';k.T.21(b);O(A i=0;i<k.1S.V;i++){A o=m.$(\'1V\'+k.1S[i]);o.G.1G=o.1V==\'2U\'?5:4;q(!o.7f||k.8Z){o.G.1o=\'1Z\';m.R(o,{1o:\'1Z\',1n:\'\'});m.2x(o,{1A:o.1A},o.41)}}},72:C(){q(!k.1S.V)E;q(k.1p){A c=k.1p.2U;q(c&&m.2C(c)==k)c.22.9h(c)}O(A i=0;i<k.1S.V;i++){A o=m.$(\'1V\'+k.1S[i]);q(o&&o.22==m.2B&&m.2C(o)==k)m.3D(o)}q(k.2z&&k.4E){k.1u.G.16=\'-4l\';m.2a.21(k.1u)}J m.3D(k.1u)},bI:C(){q(k.1p&&k.1p.2U){k.1p.4R(\'19-2F\');E}k.7g=m.1c(\'a\',{23:\'bH:m.14[\'+k.P+\'].7v();\',2i:m.11.9j,1a:\'K-19-2F\'});q(!m.1z(k,\'fH\'))E;k.4P({4T:k.7g,1k:m.bn,7f:L,1A:m.bp})},7v:C(){1w{q(!m.1z(k,\'fF\'))E;q(k.7g)m.3D(k.7g);k.3B();A 35=k.x.D;k.9A(k.x.19,k.y.19);A 3l=k.x.H-(k.x.D-35)/2;q(3l<m.4B)3l=m.4B;k.9B(3l,k.y.H);k.55(\'1q\')}1t(e){k.9y(e)}},5Q:C(){k.a.1a=k.a.1a.2h(\'K-4k-4c\',\'\');k.55(\'1Z\');q(k.2z&&k.4E&&k.3k[1]!=\'43\'){k.bi()}J{q(k.1e&&k.3R)k.1e.5v();m.3D(k.T)}q(m.5x)m.5x.G.1n=\'1B\';k.72();q(!m.2B.7K.V)m.2B.G.1n=\'1B\';q(k.45)m.93(k.P);m.1z(k,\'fO\');m.14[k.P]=I;m.bj()}};m.7A=C(a,S,7s){k.a=a;k.S=S;k.7s=7s};m.7A.4V={94:C(){A 2T;q(!k.1d)k.1d=m.76(k.a);q(k.1d.2s(\'#\')){A 28=k.1d.7o(\'#\');k.1d=28[0];k.1v=28[1]}q(m.7m[k.1d]){k.cq=m.7m[k.1d];q(k.1v)k.a5();J k.5X();E}1w{2T=1I cI()}1t(e){1w{2T=1I bs("fU.bE")}1t(e){1w{2T=1I bs("bC.bE")}1t(e){k.8X()}}}A 3z=k;2T.fW=C(){q(3z.2T.bu==4){q(3z.1v)3z.a5();J 3z.5X()}};A 1d=k.1d;k.2T=2T;q(m.fh)1d=1d.2h(/$/,(/\\?/.1b(1d)?\'&\':\'?\')+\'fi=\'+(1I 7a()).79());2T.cC(\'fp\',1d,L);2T.cm(\'X-eo-ft\',\'cI\');2T.cm(\'fu-fB\',\'fz/x-fC-9X-fI\');2T.fK(I)},a5:C(){m.7y();A 3W=2c.3T||m.c0?{1d:\'cV:cS\'}:I;k.1i=m.1c(\'1i\',3W,{1k:\'2l\',16:\'-4l\'},m.2a);k.5X()},5X:C(){A s=k.cq||k.2T.cO,7n;q(k.7s)m.7m[k.1d]=s;q(!m.1E||m.3J>=5.5){s=s.2h(1I 5p(\'<d3[^>]*>\',\'cG\'),\'\').2h(1I 5p(\'<ci[^>]*>.*?</ci>\',\'cG\'),\'\');q(k.1i){A 2A=k.1i.9N;q(!2A&&k.1i.5W)2A=k.1i.5W.W;q(!2A){A 3z=k;49(C(){3z.5X()},25);E}2A.cC();2A.d8(s);2A.24();1w{s=2A.7X(k.1v).2g}1t(e){1w{s=k.1i.W.7X(k.1v).2g}1t(e){}}m.3D(k.1i)}J{7n=/(<1f[^>]*>|<\\/1f>)/d0;q(7n.1b(s))s=s.7o(7n)[m.1E?1:2]}}m.4J(k.S,\'7l\',\'K-1f\').2g=s;k.3u();O(A x 3a k)k[x]=I}};m.84=C(4h,1r){q(m.d6!==1l)m.85();k.4h=4h;O(A x 3a 1r)k[x]=1r[x];q(k.cU)k.bv();q(k.2K)k.2K=m.bo(k)};m.84.4V={bv:C(){k.2U=m.1c(\'Q\',{2g:m.8a(m.8g.2U)},I,m.2a);A 61=[\'3O\',\'3h\',\'3c\',\'1C\',\'3x\',\'19-2F\',\'24\'];k.1Q={};A 3z=k;O(A i=0;i<61.V;i++){k.1Q[61[i]]=m.4J(k.2U,\'1L\',\'K-\'+61[i]);k.4R(61[i])}k.1Q.3h.G.1n=\'1B\'},bF:C(){q(k.bt||!k.2U)E;A B=m.14[k.4h],54=B.7x(),2k=/7w$/;q(54==0)k.58(\'3c\');J q(2k.1b(k.1Q.3c.2u(\'a\')[0].1a))k.4R(\'3c\');q(54+1==m.4G.3e[B.2M||\'1B\'].V){k.58(\'1C\');k.58(\'3O\')}J q(2k.1b(k.1Q.1C.2u(\'a\')[0].1a)){k.4R(\'1C\');k.4R(\'3O\')}},4R:C(1Q){q(!k.1Q)E;A bg=k,a=k.1Q[1Q].2u(\'a\')[0],2k=/7w$/;a.2m=C(){bg[1Q]();E 1l};q(2k.1b(a.1a))a.1a=a.1a.2h(2k,\'\')},58:C(1Q){q(!k.1Q)E;A a=k.1Q[1Q].2u(\'a\')[0];a.2m=C(){E 1l};q(!/7w$/.1b(a.1a))a.1a+=\' 7w\'},bm:C(){q(k.3V)k.3h();J k.3O()},3O:C(bq){q(k.1Q){k.1Q.3O.G.1n=\'1B\';k.1Q.3h.G.1n=\'\'}k.3V=L;q(!bq)m.1C(k.4h)},3h:C(){q(k.1Q){k.1Q.3h.G.1n=\'1B\';k.1Q.3O.G.1n=\'\'}db(k.3V);k.3V=I},3c:C(){k.3h();m.3c(k.1Q.3c)},1C:C(){k.3h();m.1C(k.1Q.1C)},3x:C(){},\'19-2F\':C(){m.2C().7v()},24:C(){m.24(k.1Q.24)}};m.bo=C(1p){C 7h(B){m.3L(1r||{},{4T:4q,1V:\'2K\',1a:\'K-2K-\'+5j+\'-Z \'+(1r.1a||\'\')});q(m.5c)1r.5M=0;B.4P(1r);m.R(4q.22,{2j:\'1q\'})};C 29(3H){5m(1T,1h.31(3H*4q[3I?\'1R\':\'1U\']*0.7))};C 5m(i,8K){q(i===1T)O(A j=0;j<6c.V;j++){q(6c[j]==m.14[1p.4h].a){i=j;5i}}q(i===1T)E;A as=4q.2u(\'a\'),4k=as[i],4e=4k.22,18=3I?\'c1\':\'bX\',3m=3I?\'c3\':\'c7\',M=3I?\'bV\':\'bO\',4F=\'1y\'+18,1R=\'1y\'+M,78=Q.22.22[1R],51=78-2e[1R],5T=3s(2e.G[3I?\'18\':\'16\'])||0,2V=5T,cR=20;q(8K!==1T){2V=5T-8K;q(51>0)51=0;q(2V>0)2V=0;q(2V<51)2V=51}J{O(A j=0;j<as.V;j++)as[j].1a=\'\';4k.1a=\'K-4k-4c\';A 8D=i>0?as[i-1].22[4F]:4e[4F],8G=4e[4F]+4e[1R]+(as[i+1]?as[i+1].22[1R]:0);q(8G>78-5T)2V=78-8G;J q(8D<-5T)2V=-8D}A 8L=4e[4F]+(4e[1R]-74[1R])/2+2V;m.2x(2e,3I?{18:2V}:{16:2V},I,\'8M\');m.2x(74,3I?{18:8L}:{16:8L},I,\'8M\');8P.G.1n=2V<0?\'3M\':\'1B\';8C.G.1n=(2V>51)?\'3M\':\'1B\'};A 6c=m.4G.3e[m.14[1p.4h].2M||\'1B\'],1r=1p.2K,5j=1r.5j||\'bS\',8O=(5j==\'cW\'),4g=8O?[\'Q\',\'5V\',\'1L\',\'1D\']:[\'2e\',\'4M\',\'4b\',\'2D\'],3I=(5j==\'bS\'),4q=m.1c(\'Q\',{1a:\'K-2K K-2K-\'+5j,2g:\'<Q 1X="K-2K-cZ">\'+\'<\'+4g[0]+\'><\'+4g[1]+\'></\'+4g[1]+\'></\'+4g[0]+\'></Q>\'+\'<Q 1X="K-29-1K"><Q></Q></Q>\'+\'<Q 1X="K-29-en"><Q></Q></Q>\'+\'<Q 1X="K-74"><Q></Q></Q>\'},{1n:\'1B\'},m.2a),6x=4q.7K,Q=6x[0],8P=6x[1],8C=6x[2],74=6x[3],2e=Q.e3,4M=4q.2u(4g[1])[0],4b;O(A i=0;i<6c.V;i++){q(i==0||!3I)4b=m.1c(4g[2],I,I,4M);(C(){A a=6c[i],4e=m.1c(4g[3],I,I,4b),e5=i;m.1c(\'a\',{23:a.23,2m:C(){m.2C(k).3B();E m.8Q(a)},2g:m.bU?m.bU(a):a.2g},I,4e)})()}q(!8O){8P.2m=C(){29(-1)};8C.2m=C(){29(1)};m.2n(4M,W.dZ!==1T?\'dW\':\'dQ\',C(e){A 3H=0;e=e||2c.2y;q(e.bY){3H=e.bY/dU;q(m.3T)3H=-3H}J q(e.br){3H=-e.br/3}q(3H)29(-3H*0.2);q(e.4X)e.4X();e.bl=1l})}E{7h:7h,5m:5m}};m.7i=m.11;A ee=m.69;q(m.1E){(C(){1w{W.56.e9(\'18\')}1t(e){49(bh.e8,50);E}m.42()})()}m.2n(W,\'ea\',m.42);m.2n(2c,\'7U\',m.42);m.2n(W,\'42\',C(){q(m.7M||m.45){A G=m.1c(\'G\',{U:\'eb/8t\'},I,W.2u(\'ec\')[0]);C 6k(8z,8l){q(!m.1E){G.21(W.dO(8z+" {"+8l+"}"))}J{A 1j=W.bD[W.bD.V-1];q(1F(1j.6k)=="7z")1j.6k(8z,8l)}}C 5N(1g){E\'dN( ( ( dt = W.56.\'+1g+\' ? W.56.\'+1g+\' : W.1f.\'+1g+\' ) ) + \\\'F\\\' );\'}q(m.7M)6k(\'.K 1N\',\'4t: 7E(\'+m.4Y+m.7M+\'), 7D !dl;\');6k(\'.K-2B-D\',m.1E&&(m.3J<7||W.7G==\'8S\')?\'1k: 2l; \'+\'18:\'+5N(\'5w\')+\'16:\'+5N(\'5z\')+\'M:\'+5N(\'8i\')+\'N:\'+5N(\'cK\'):\'1k: dH; M: 2w%; N: 2w%; 18: 0; 16: 0\')}});m.2n(2c,\'3Y\',C(){m.7I();q(m.2B)O(A i=0;i<m.2B.7K.V;i++){A 1M=m.2B.7K[i],B=m.2C(1M);B.5E(1M);q(1M.1V==\'2K\')B.1p.2K.5m()}});m.2n(W,\'7F\',C(e){m.7B={x:e.7C,y:e.7L}});m.2n(W,\'88\',m.8d);m.2n(W,\'ce\',m.8d);m.2n(W,\'42\',m.cf);m.2n(2c,\'7U\',m.cg);m.2n(2c,\'7U\',m.bG)}',62,990,'||||||||||||||||||||this||hs||||if||||||||||var|exp|function|size|return|px|style|pos|null|else|highslide|true|width|height|for|key|div|setStyles|content|wrapper|type|length|document||get|overlay||lang|||expanders||top||left|full|className|test|createElement|src|outline|body|prop|Math|iframe|last|position|false|els|display|visibility|slideshow|hidden|options|innerContent|catch|overlayBox|id|try|dim|offset|fireEvent|opacity|none|next|span|ie|typeof|zIndex|p1|new|tpos|up|li|node|img|ss|auto|btn|offsetWidth|overlays|undefined|offsetHeight|hsId|imgSize|class|outlineType|visible||appendChild|parentNode|href|close||params||arr|scroll|container|case|window|to|table|wsize|innerHTML|replace|title|overflow|re|absolute|onclick|addEventListener|push|op|loading|upcoming|match|scrollerDiv|getElementsByTagName|dragArgs|100|animate|event|isHtml|doc|viewport|getExpander|td|objectType|expand|target|args|isImage|imgPad|thumbstrip|image|slideshowGroup|minSize|justify|easing|hiddenBy|ajax|dimmer|xhr|controls|tblPos|tgt|ratio|min|p2|focusKey|round||||xSize|elem||||in|sg|previous|name|groups|ucwh|contentType|pause|tb|wh|transitions|xpos|right|marginMin|val|lastY|lastX|custom|parseInt|swf|onLoad|clearing|useBox|move|opt|pThis|html|focus|step|discardElement|tagName|elPos|number|delta|isX|uaVersion|releaseMask|extend|block|graphic|play|changed|objectLoadTime|outlineWhileAnimating|hasDragged|opera|func|autoplay|attribs|timers|resize|ySize||dur|ready|crossfade|getParam|dimmingOpacity|objectWidth|xp1|mediumContent|setTimeout|duration|tr|anchor|yp1|cell|styles|tree|expKey|pendingOutlines|max|active|9999px|relative|navigator|invPos|marginMax|dom|blurExp|unit|cursor|page|sleeping|zIndexCounter|getNode|center|safari|start|marginLeft|objectHeight|setPosition|preserveContent|offsetLeft|anchors|bottom|minWidth|getElementByClass|tgtArr|now|tbody|ypos|onload|createOverlay|clone|enable|clientSize|overlayId|relToVP|prototype|styleRestoreCursor|preventDefault|graphicsDir|while||minTblPos|fitsize|ruler|cur|doShowHide|documentElement|moveOnly|disable|fadeBox|allowReduce|cNode|ieLt7|end|cacheBindings|wDiff|marginTop|heading|break|mode|area|images|selectThumb|removeEventListener|sizeOverlayBox|RegExp|scrollingContent|Id|htmls|hDiff|toLowerCase|destroy|scrollLeft|mask|credits|scrollTop|Outline|uclt|stl|isClosing|positionOverlay|padToMinWidth|250|maxY|idCounter|minX|getParams|iebody|fade|fix|iDoc|param|afterClose|maxX|trans|curTblPos|allowSizeReduction|ul|contentWindow|loadHTML|obj|getAnchors|before|buttons|setAttribute|opos|cache|showLoading|numberPosition|contentLoaded|parent|Expander|filter|slideshows|group|userAgent|owner|geckoMac|xsize|ysize|matches|all|addRule|after|fac|isExpanded|minY|minHeight|currentStyle|restoreCursor|cloneNode|over|preloadTheseImages|above|on|domCh|offY|marginBottom|writeExtendedContent|cancelLoading|getPosition|tId|maincontent|wrapperKey|kdeBugCorr|showHideElements|onLoadStarted|ximgPad|yimgPad|complete|isHsAnchor|maxWidth|Dimension|oDiv|allowWidthReduction|allowHeightReduction|afterExpand|hsKey|lt|keyHandler|setSize|dragHandler|dir|expandDuration||offX|destroyOverlays|imgs|marker||getSrc|onReady|overlayWidth|getTime|Date|element|self|gotoEnd|curAnim|hideOnMouseOut|fullExpandLabel|add|langDefaults|preloadFullImage|rel|DIV|cachedGets|regBody|split|expOnly|previousOrNext|adj|pre|topmostKey|preloadTheseAjax|doFullExpand|disabled|getAnchorIndex|init|object|Ajax|mouse|clientX|pointer|url|mousemove|compatMode|panel|getPageSize|below|childNodes|clientY|expandCursor|os|thumbsUserSetId|fitOverlayBox|htmlGetSize|clones|defaultView|padding|load|topZ|cacheAjax|getElementById|getCacheBinding|preloadAjaxElement|offsetTop|location|types|calcBorders|Slideshow|updateAnchors|calcExpanded|thumbnailId|mousedown|dimmingDuration|replaceLang|hasMovedMin|swfOptions|mouseClickHandler|Text|current|skin|maxsize|clientWidth|moveText|props|dec|startOff|closeTitle|xp2|closeText|endOff|from|moveTitle|css|correctIframeSize|border|previousTitle|previousText|nextText|sel|nextTitle|yp2|scrollDown|activeLeft|mY|mX|activeRight|getIframePageHeight|Click|names|scrollBy|markerPos|easeOutQuad|arrow|floatMode|scrollUp|transit|parseFloat|BackCompat|setObjContainerSize|other|getAdjacentAnchor|oPos|onError|restoreDuration|mouseIsOver|marginRight|openerTagNames|sizeDiff|undim|run|htmlExpand|update|garbageBin|parOff||ie6|numberOfImagesToPreload|keypress|keydown|changeSize|isReady|doWrapper|removeChild|state|fullExpandTitle|show|initSlideshow|cssDirection|string|maxHeight|ucrb|align|direction|done|allowMultipleInstances|startTime|hasAlphaImageLoader|osize|swfobject|error|margin|resizeTo|moveTo|continuePreloading|middle|restoreTitle|loadingPos|loadingPosXfade|caption|connectOutline|Create|background|dragByHeading|blur|contentDocument|getSelfRendered|getWrapperKey|origProp|contentId|hasFocused|evt|setPos|distance|wrapperClassName|form|relatedTarget|calcThumb|srcElement|genOverlayBox|abs|overrides|getInline|getElementContent|playText|JS|Next|preloadGraphic|Highslide|pauseTitle|_default|Move|Previous|call|spacebar|vis|and|onGraphicLoad|getImageMapAreaCorrection|Play|Close|200|appendTo|Pause|switch|hide||playTitle|png|rv|clear|newHeight|hasExtendedContent|attributes|both|thumb|isUnobtrusiveAnchor|loadingTitle|ltr|detachEvent|wrapperMouseHandler|flashvars|enableKeyListener|fixedControls|hasHtmlExpanders|focusTopmost|clickX|clickY|wmode|dimmingGeckoFix|pow|loadingText|hsHasSetClick|KDE|vendor|targetX|targetY|resizeTitle|timerId|fullExpandText|rb|toUpperCase|headingOverlay|captionOverlay|htmlSizeOperations|contentWrapper|easeInQuad|loadingOpacity|offsetParent|alpha|tag|nopad|orig|pauseText|indexOf|hand|sls|arguments|sleep|reOrder|focusTitle|returnValue|hitSpace|fullExpandPosition|Thumbstrip|fullExpandOpacity|wait|detail|ActiveXObject|repeat|readyState|getControls|getAttribute|getComputedStyle||hideIframes|clearsX|clearsY|Microsoft|styleSheets|XMLHTTP|checkFirstAndLast|preloadAjax|javascript|createFullExpand|leftpanel|rightpanel|offsetY|offsetX|relativeTo|Height|writeCredits|getNumber|showCredits|horizontal|getOverlays|stripItemFormatter|Width|gotOverlays|Top|wheelDelta|htmlPrepareClose|ie6SSL|Left|destroyObject|Right|reuseOverlay|doPanels|showOverlays|Bottom|awake|hideSelects|getPropertyValue||prepareNextOutline|preloadNext|mouseup|setClickEvents|preloadImages|overlayOptions|script|creditsTarget|creditsHref|onHideLoading|setRequestHeader|newImg|oldImg|easingClose|cachedGet|correctRatio|tmpMin|fadeInOut|Safari|yimgSize|ximgSize|transitionDuration|525|creditsText|toString|Eval|open|nextSibling|addOverlay|Overlay|gi|_|XMLHttpRequest|creditsPosition|clientHeight|creditsTitle|onKeyDown|sqrt|responseText|pageYOffset|01|mgnRight|blank|dragSensitivity|useControls|about|float|onSetClickEvent|useMap|inner|ig|onImageClick|htmlE|link|xpand|geckodimmer|dynamicallyUpdateAnchors|button|write|addSlideshow|white|clearTimeout|onDrop|dimming|onDimmerClick|registerOverlay|keyCode|maincontentEval|graphics|zoomin|zoomout|important|keys|drag|Use|1001|outlineStartOffset|drop|shadow|ignoreMe|_self|http|com|click|of|Expand|actual|front|bring|Loading|cancel|Powered|Go|fixed|Image|Resize|esc|the|homepage|expression|createTextNode|Macintosh|DOMMouseScroll|Gecko|ra|it|120|Trident|mousewheel|||onmousewheel|innerHeight|pageXOffset|innerWidth|firstChild|removeAttribute|pI|maincontentText|maincontentId|callee|doScroll|DOMContentLoaded|text|HEAD|header|HsExpander|footer|headingText|headingEval|headingId|captionEval|captionId||captionText|down|Requested|AlphaImageLoader|transparent|DXImageTransform|progid|embedSWF|sizingMethod|scale|eval|200px|onDrag|onBeforeGetHeading|onAfterGetCaption|onAfterGetHeading|expressInstallSwfurl|borderCollapse|cellSpacing|onBeforeGetCaption|500|collapse|lineHeight|outlines|outlinesDir|fontSize|version|onCreateOverlay|flash|onBeforeGetContent|onShowLoading|onFocus|onAfterGetContent|onmouseout|htmlCreate|onBlur|oncontextmenu|blockRightClick|imageCreate|flushImgSize|onmouseover|static|newWidth|default|StopPlay|frameborder|removeSWF|onBeforeClose|onInit|IFRAME|SELECT|fit|allowSimultaneousLoading|useOnHtml|interval|onBeforeExpand|shape|forceAjaxReload|dummy|coords|onMouseOver|nodeName|insertBefore|rect|clip|GET|reflow|floor|circle|With|Content|attachEvent|protocol||onMouseOut|application|https|Type|www|300|clearInterval|onDoFullExpand|splice|onCreateFullExpand|urlencoded|mouseover|send|fromElement|toElement|setInterval|onAfterClose|1px|paddingTop|boolean|linearTween|onActivate|Msxml2|onAfterExpand|onreadystatechange|reuse'.split('|'),0,{}))


/**
 *
 * JS-Lib: Highslide config
 * 
 */





hs.graphicsDir = '/cms/lib/highslide/graphics/';
hs.outlineType = 'rounded-white';
hs.showCredits = false;
hs.dimmingOpacity = 0.5;
hs.dimmingDuration = 200;
hs.lang = {
	cssDirection: 'ltr',
	loadingText : 'Lade...',
	loadingTitle : 'Klicken: Abbruch',
	focusTitle : 'Klicken: In den Vordergrund',
	fullExpandTitle : 'F: Zur tatsächlichen Größe ausweiten',
	creditsText : '',
	creditsTitle : '',
	previousText : 'zurück',
	nextText : 'weiter',
	moveText : '<span style="font-size:20px;">&hArr;</span>',
	closeText : '<span style="font-size:20px;">&otimes;</span>',
	closeTitle : 'ESC: Schließen',
	resizeTitle : 'Größe ändern',
	playText : 'Abspielen',
	playTitle : 'Leertaste: Diashow - Abspielen',
	pauseText : 'Anhalten',
	pauseTitle : 'Leertaste: Diashow - Anhalten',
	previousTitle : '&#8592; zurück',
	nextTitle : '&#8594; weiter',
	moveTitle : 'Verschieben',
	fullExpandText : '1:1',
	number: 'Bild %1 von %2',
	restoreTitle : 'Klick schließt das Bild, klicken und ziehen verschiebt es. Benutzen Sie die Pfeiltasten, um zwischen den Bildern zu wechseln.'
};