var cmsmenus = {

    elements : [],

    add : function(src_id, tgt_id, droppos, offset, nested, active) {
        var srcel = document.getElementById(src_id);
        var tgtel = document.getElementById(tgt_id);
        if ( srcel && tgtel ) {
            this.elements[this.elements.length] = src_id;
            this.elements[this.elements.length] = tgt_id;
            srcel.tgtitem = new Object();
            srcel.tgtitem.id = tgt_id;
            srcel.offset     = offset;
            srcel.droppos    = droppos;
            srcel.nested     = nested ? true : false;

            if (!active) {
                srcel.onmouseover = function() {
                    cmsmenus.showsrc(this.id);
                }
                srcel.onmouseout = function() {
                    document.getElementById(this.tgtitem.id).vis = false;
                    window.setTimeout("cmsmenus.hidesrc('"+this.id+"')", 50);
                }
            } else {
                cmsmenus.showsrc(srcel.id, true);
                cmsmenus.memo = srcel.tgtitem.id;
            }

        }
    },

    showsrc : function(el, active) {
        var src = Ext.get(el);
        var tgt = Ext.get(src.dom.tgtitem.id);
        tgt.dom.style.display = 'block';
        tgt.alignTo(src, 'bl-tl');
        tgt.dom.vis = true;

        if (!active) {
            if (cmsmenus.memo) {
                document.getElementById(cmsmenus.memo).style.display = "none";
            }
            tgt.dom.onmouseover = function() {
                this.vis = true;
            }
            tgt.dom.onmouseout = function() {
                this.vis = false;
                window.setTimeout("cmsmenus.hidetgt('"+this.id+"')", 50);
            }
        } else {
            tgt.dom.vis = true;
        }
    },

    hidesrc : function(el) {
        var src = document.getElementById(el);
        var tgt = document.getElementById(src.tgtitem.id);
        if (tgt.vis) return;
        tgt.style.display = 'none';
        window.clearTimeout();
        if (cmsmenus.memo) {
            window.setTimeout("cmsmenus.showmemo()", 100);
        }
    },

    hidetgt : function(el) {
        var tgt = document.getElementById(el);
        if (tgt.vis) return;
        tgt.style.display = 'none';
        window.clearTimeout();
    },

    showmemo : function() {
        for ( var i=0; i<cmsmenus.elements.length; i++ ) {
            if (cmsmenus.elements[i].substr(0,3)=='div') {
                var tobj = document.getElementById(cmsmenus.elements[i]);
                if (tobj.style.display=='block') return;
            }
        }
        document.getElementById(cmsmenus.memo).style.display = "block";
    },

    getelpos : function(el) {
        if ( el.nested ) {
            return([el.clientWidth,el.offsetTop]);
        }
        var xpos = ypos = 0;
        var x = y = 0;
        var o_el = el;
        if ( !el.offset ) el.offset = [0,0];

        if ( document.getElementById ) {
            if ( !el ) {
                x = 0;
                y = 0;
            }
            xpos = el.offsetLeft;
            ypos = el.offsetTop;
            while( (el = el.offsetParent) != null ) {
                if (el.style && el.style.display=="none") {
                    el.style.display="block";
                }
                xpos += el.offsetLeft;
                ypos += el.offsetTop;
            }
        } else {
            x = 0;
            y = 0;
        }

        switch(o_el.droppos) {
            case "tl":
            break;
            case "tr":
            xpos = xpos+o_el.offsetWidth;
            break;
            case "bl":
            ypos = ypos+o_el.offsetHeight;
            break;
            case "br":
            xpos = xpos+o_el.offsetWidth;
            ypos = ypos+o_el.offsetHeight;
            break;
            default:
            break;
        }
        x = xpos+o_el.offset[0];
        y = ypos+o_el.offset[1];
        return([x,y]);
    }
}

var dynmenu = cmsmenus;

Ext.onReady(function(){
    var lnk;
    var img;
    var txt;
    var lnk1 = Ext.get('anfahrtbayreuth');
    var lnk2 = Ext.get('anfahrtkulmbach');
    if (lnk1) {
        lnk = lnk1;
        img = 'anfahrtbayreuth';
        txt = 'Nach Bayreuth kommend, fahren Sie immer Richtung Innenstadt.<br><br>Auf dem Hohenzollernring biegen Sie beim Rotmaincenter ab in Richtung A70 Bamberg/B85 Kulmbach.<br><br>Nach ca. 1 Kilometer vor der Ampel rechts in Richtung A9 Berlin/Nürnberg abbiegen.<br><br>Diese Straße (Nordring) verlassen Sie rechts an der zweiten Ampel in die Spinnereistrasse.<br><br>Nach ca. 400 Meter auf der linken Seite sehen Sie das imposante Backsteingebäude der NSB in der wir uns befinden.';
    }
    if (lnk2) {
        lnk = lnk2;
        img = 'anfahrtkulmbach';
        txt = 'Wenn Sie von Bayreuth aus nach Kulmbach fahren kommen Sie automatisch auf die Bayreuther Straße (B85).<br><br>Verlassen Sie die B 85 nach 1,52 km und biegen rechts in die Wilhelm-Meußdoerffer-Straße ein.<br><br>Folgen Sie dem Straßenverlauf für 235 m und biegen dann rechts in die Weiherer Straße.<br><br>Nach 138 m biegen Sie rechts in die Gabelsbergerstraße ab. An der Kanzlei Nicklas, mit der Hausnummer 14, sind Sie nach 198 m angekommen.';
    }
    if (lnk) {
        var msg = '<table width="100%" border="0" cellspacing="2" cellpadding="2">'+
                  '  	<tr>'+
                  '  		<td valign="top"><img src="/images/'+img+'.gif" alt="" height="285" width="420" border="0"></td>'+
                  '  		<td valign="top" width="20"></td>'+
                  '  		<td valign="top" bgcolor="white" style="padding:5px;">'+txt+'</td>'+
                  '  	</tr>'+
                  '</table>';
        lnk.dom.onclick = function() {
            Ext.MessageBox.maxWidth = 800;
            var box = Ext.MessageBox.show({
                title: 'Anfahrtsskizze',
                msg: msg,
                //buttons: Ext.MessageBox.OK,
                animEl: lnk,
                width: 800,
                height: 400,
                modal: false,
                fn: function() {
                    Ext.MessageBox.hide();
                }
            });
            return(false);
        }
    }
});
