function mainNil() {
    void 0;
};


function mainExternalLinks() {
    $$('a').each(function(el) {
        var rel = el.get('rel');
        if(rel && el.get('href')) {
            if(rel.contains('external', ' ')) {
                el.target = '_blank';
            };
        };
    });
};


function mainSetupFlags() {
    $$('.lang-flag').each(function(el) {
        var s = el.getProperty('src');
        if($chk(s)) {
            if(s.match(/0\.gif/g)) {
                el.addEvents({
                    'mouseover': function() {
                        this.src = this.src.replace(/0\.gif/g, '1.gif');

                    },

                    'mouseout': function() {
                        this.src = this.src.replace(/1\.gif/g, '0.gif');
                    }
                });
            };
        };
    });
};


function mainPopup(url, name, w, h, showScrollBars) {
    w = (w > screen.availWidth) ? (screen.availWidth - 32) : w;
    h = (h > screen.availHeight) ? (screen.availHeight - 64) : h;

    var myX = (screen.availWidth - w) / 2;
    var myY = (screen.availHeight - h) / 2;
    var opt = (mainPopup.arguments.length == 5 && showScrollBars) ? ",scrollbars=yes" : ",scrollbars=no";
    var win = window.open(url, name, "width=" + w + ",height=" + h + ",left=" + myX + ",top=" + myY + ",resizable=yes" + opt);
    win.focus();

    return(win);
};


function mainSetupSkypeCheck(wr) {
    $$('.skype-check').each(function(el) {
        var ref = el.getProperty('href');
        var im  = el.getChildren('img');
        if($chk(ref) && $chk(im) && $chk(im[0])) {
            im = im[0];
            var ref = ref.replace(/skype:/, '').replace(/\?call/, '');
            var req = new Request({
                method: 'get',
                url: wr + '/php/skypecheck.php',
                data: 'id=' + ref,
                async: true,
                onSuccess: function(txt) {
                    im.setProperty('src', im.getProperty('src').replace(/\-1\.png/, '-' + txt + '.png'));
                    el.addEvent('click', function() {
                        return skypeCheck();
                    });
                }
            }).send();
        };
    });
};


var mainLightbox = new Class({
    lightboxName: null,

    initialize: function(lightbox_type, wr, ctah1, ctah2, eid, cpwebid) {
        var lightbox = 'lightbox-' + lightbox_type;
        var _this = this;
        var body = $$('body')[0];
        if(Browser.Engine.trident4) {
            body.setStyles({'width': '100%', 'height': '100%'});
            body.getParent('html').setStyles({'width': '100%', 'height': '100%'});
            $$('select').each(function(el) {
                if(!el.hasClass('lightbox-select')) {
                    el.setStyle('visibility', 'hidden');
                };
            });
        }

        $('lightbox-shutter').setStyles({'display': 'block', 'opacity': 0.75});

        $(lightbox).set('opacity', 0);
        $(lightbox).setStyle('display', 'block');
        new Fx.Tween($(lightbox), {
            'duration': 333
        }).start('opacity', 1);

        $$('#' + lightbox + ' .senden').addEvent('click', function(e) {
            e.stop();
            var frm = $(lightbox).getChildren('form');
            if($chk(frm) && $chk(frm[0])) {
                _this.formHandler(wr, ctah1, ctah2, frm[0], cpwebid);
            };
        });

        $$('#' + lightbox + ' .cta-regenerate').addEvent('click', function(e) {
            e.stop();
            var cta = $$('#' + lightbox + ' img.cta');
            if($chk(cta) && $chk(cta[0])) {
                var props = cta[0].getProperties('width', 'height');
                var ts = new Date().getTime();
                cta.setProperty('src', wr + '/php/cta.php?j=i&r=1&x=' + props['width'] + '&y=' + props['height'] + '&h1=' + ctah1 + '&h2=' + ctah2 + '&ts=' + ts);
            };
        });

        $$('#' + lightbox + ' .lb-close').addEvent('click', function(e) {
            _this.destroy();
        });

        if($chk($('form-direktkontakt')) && $chk($('form-fahrzeug'))) {
            $('form-direktkontakt').setStyle('display', 'block');
            $('form-direktkontakt').set('opacity', 1);
            $('form-fahrzeug').setStyle('display', 'none');
            $('form-fahrzeug').set('opacity', 1);

            $('kopf-fahrzeug').addEvent('click', function(e) {
                $('form-direktkontakt').set('opacity', 1);
                new Fx.Tween($('form-direktkontakt'), {
                    'duration': 200,
                    onComplete: function() {
                        $('kopf-direktkontakt').set('class', 'but-direktkontakt-inaktiv');
                        $('kopf-fahrzeug').set('class', 'but-fahrzeug-aktiv');
                        $('form-direktkontakt').setStyle('display', 'none');
                        $('form-fahrzeug').set('opacity', 0);
                        $('form-fahrzeug').setStyle('display', 'block');
                        new Fx.Tween($('form-fahrzeug'), {
                            'duration': 200
                        }).start('opacity', 1);
                    }
                }).start('opacity', 0);
            });

            $('kopf-direktkontakt').addEvent('click', function(e) {
                $('form-fahrzeug').set('opacity', 1);
                new Fx.Tween($('form-fahrzeug'), {
                    'duration': 200,
                    onComplete: function() {
                        $('kopf-direktkontakt').set('class', 'but-direktkontakt-aktiv');
                        $('kopf-fahrzeug').set('class', 'but-fahrzeug-inaktiv');
                        $('form-fahrzeug').setStyle('display', 'none');
                        $('form-direktkontakt').set('opacity', 0);
                        $('form-direktkontakt').setStyle('display', 'block');
                        new Fx.Tween($('form-direktkontakt'), {
                            'duration': 200
                        }).start('opacity', 1);
                    }
                }).start('opacity', 0);
            });
        };

        var cta = $$('#' + lightbox + ' img.cta');
        if($chk(cta) && $chk(cta[0])) {
            var props = cta[0].getProperties('width', 'height');
            var ts = new Date().getTime();
            cta.setProperty('src', wr + '/php/cta.php?j=i&r=1&x=' + props['width'] + '&y=' + props['height'] + '&h1=' + ctah1 + '&h2=' + ctah2 + '&ts=' + ts);
        };

        if(eid > 0 && $chk($('f' + lightbox_type + '_eid'))) {
            $('f' + lightbox_type + '_eid').value = eid;
        }

        this.lightboxName = lightbox;

        if(this.lightboxName == "lightbox-30") {
            var track = '/form/weiterleiten/open';
            pageTracker._trackPageview('/ut/' + cpwebid + track);
        };

        var frm = $(lightbox).getChildren('form');
        if($chk(frm) && $chk(frm[0])) {
            for(var i = 0; i < frm[0].elements.length; i++) {
                el = frm[0].elements[i];
                $(el);  // hello IE
                el.removeClass('error-input');
            };
        };

        var eMsg = $$('#' + this.lightboxName + ' .error-text');
        if($chk(eMsg) && $chk(eMsg[0])) {
            eMsg[0].set('html', '');
        };
    },

    formHandler: function(wr, ctah1, ctah2, frm, cpwebid) {
        var valid = true;
        var el    = null;
        for(var i = 0; i < frm.elements.length; i++) {
            el = frm.elements[i];
            $(el);  // hello IE
            if(el.hasClass('required')) {
                if(el.getProperty('type') == 'text') {
                    if(el.name.match(/email/i)) {
                        if(el.value == '' || (!el.value.match(/@/) && el.value != 'TESTMAIL')) {
                            valid = false;
                            el.addClass('error-input');
                        } else {
                            el.removeClass('error-input');
                        };
                    } else {
                        if(el.value == '') {
                            valid = false;
                            el.addClass('error-input');
                        } else {
                            if(el.hasClass('cta')) {
                                var req = new Request({
                                    method: 'get',
                                    url: wr + '/php/cta.php',
                                    data: 'j=v&t=' + el.value + '&h1=' + ctah1 + '&h2=' + ctah2,
                                    async: false,
                                    onSuccess: function(txt) {
                                        if(txt != 'true') {
                                            valid = false;
                                            el.addClass('error-input');
                                        } else {
                                            el.removeClass('error-input');
                                        }
                                    }
                                }).send();
                            } else {
                                el.removeClass('error-input');
                            };
                        };
                    };
                } else if(el.getProperty('type') == 'select-one') {
                    if(el.value == '-1') {
                        valid = false;
                        el.addClass('error-input');
                    } else {
                        el.removeClass('error-input');
                    };
                };
            };
        };

        if(valid == false) {
            var eMsg = $$('#' + this.lightboxName + ' .error-text');
            var fMeldung = trans.getTranslationPCP('cf_err1');
            if($(this.lightboxName).hasClass('lb-dual')) {
                fMeldung = fMeldung + trans.getTranslationPCP('cf_err2') + '!';
            } else {
                fMeldung = fMeldung + '!';
            };

            if($chk(eMsg) && $chk(eMsg[0])) {
                eMsg[0].set('html', fMeldung);
                eMsg[0].highlight('#900');
            } else {
                alert(fMeldung);
            };
        } else {
            var track = '/form/kontaktform/send';
            if(this.lightboxName == "lightbox-30") {
                var track = '/form/weiterleiten/send';
            };

            pageTracker._trackPageview('/ut/' + cpwebid + track);
            frm.set('action', frm.get('action').substr(22));
            frm.submit();
        };
    },

    destroy: function() {
        var _this = this;
        var body = $$('body')[0];
        if($chk($('form-direktkontakt')) && $chk($('form-fahrzeug'))) {
            $('kopf-direktkontakt').removeEvents();
            $('kopf-fahrzeug').removeEvents();
        };
        $(this.lightboxName + '-close').removeEvents();
        $$('#' + this.lightboxName + ' .senden').removeEvents();
        $$('#' + this.lightboxName + ' .cta-regenerate').removeEvents();
        new Fx.Tween($(this.lightboxName), {
            'duration': 200,
            onComplete: function() {
                $(_this.lightboxName).setStyle('display', 'none');
                $('lightbox-shutter').setStyle('display', 'none');
                if(Browser.Engine.trident4) {
                    body.setStyles({'width': 'auto', 'height': 'auto'});
                    body.getParent('html').setStyles({'width': 'auto', 'height': 'auto'});
                    $$('select').each(function(el) {
                        if(!el.hasClass('lightbox-select')) {
                            el.setStyle('visibility', 'visible');
                        };
                    });
                };
            }
        }).start('opacity', 0);
    }
});


function mainSetupKontakt(wr, cpwebid) {
    $$('.setup-kontakt').each(function(el) {
        el.setStyle('outline', 'none');
        var rel  = el.getProperty('rel');
        var ctah = '';
        if($chk(rel) && rel.match(/^[0-9]+,[0-9a-f]{32},[0-9a-f]{32},[0-9]+$/)) {
            rel = rel.split(',');
            el.addEvent('click', function(e) {
                e.stop();
                var lightboxWindow = new mainLightbox(rel[0], wr, rel[1], rel[2], parseInt(rel[3]), cpwebid);
            });
        };
    });
};


function mainSetupGMapMini(latitude, longitude, baseImg, firmenid) {
    if($chk($('gmap-mini')) && (typeof(G_INCOMPAT) != 'undefined') && GBrowserIsCompatible()) {
        var minidiv = new Element('div', {
            'id': 'gmap-mini-wrapper',
            'styles': {
                'width': '230px',
                'height': '107px'
            }
        }).inject($('gmap-mini').getParent());
        $('gmap-mini').dispose();

        var minimap = new GMap2(minidiv);
        minimap.disableDragging();
        minimap.disableInfoWindow();
        minimap.disableDoubleClickZoom();
        minimap.setCenter(new GLatLng(latitude, longitude), 8, G_NORMAL_MAP);

        var icon = new GIcon();
        icon.image = baseImg + '/marker_bmw-mini.png';
        icon.mozPrintImage = baseImg + '/marker_bmw-mini.png';
        icon.printImage = baseImg + '/marker_bmw-mini.gif';
        icon.iconSize = new GSize(55, 34);
        icon.iconAnchor = new GPoint(10, 34);
        icon.infoWindowAnchor = new GPoint(10, 34);

        var icon2 = new GIcon();
        icon2.image = baseImg + '/marker_bmw.png';
        icon2.mozPrintImage = baseImg + '/marker_bmw.png';
        icon2.printImage = baseImg + '/marker_bmw.gif';
        icon2.iconSize = new GSize(38, 42);
        icon2.iconAnchor = new GPoint(2, 39);
        icon2.infoWindowAnchor = new GPoint(2, 42);

        var icon3 = new GIcon();
        icon3.image = baseImg + '/marker_bmw-yamaha.png';
        icon3.mozPrintImage = baseImg + '/marker_bmw-yamaha.png';
        icon3.printImage = baseImg + '/marker_bmw-yamaha.gif';
        icon3.iconSize = new GSize(48, 35);
        icon3.iconAnchor = new GPoint(2, 34);
        icon3.infoWindowAnchor = new GPoint(2, 34);

        if(firmenid == 1270050) {
            var marker = new GMarker(new GLatLng(latitude, longitude), {'icon': icon3, 'clickable' : false});
        } else if((firmenid == 1270031) || (firmenid == 1270032)) {
            var marker = new GMarker(new GLatLng(latitude, longitude), {'icon': icon, 'clickable' : false});
        } else {
            var marker = new GMarker(new GLatLng(latitude, longitude), {'icon': icon2, 'clickable' : false});
        };

        minimap.addOverlay(marker);
    };
};


function mainSetupBookmarkPage(topic, url, cpwebid) {
    $$('a.suche-speichern').each(function(el) {
        el.addEvent('click', function(e) {
            e.stop();
            pageTracker._trackPageview('/ut/' + cpwebid + '/liste/lesezeichen');
            mainBookmarkPage(topic, url);
        });
    });
};


function mainSetupBookmarkDetail(topic, url, cpwebid) {
    $$('a.lesezeichen').each(function(el) {
        el.addEvent('click', function(e) {
            e.stop();
            pageTracker._trackPageview('/ut/' + cpwebid + '/detail/lesezeichen');
            mainBookmarkPage(topic, url);
        });
    });
};


function mainBookmarkPage(topic, url) {
    if(topic == '') {
        topic = 'CarPresenter';
    };

    if(Browser.Engine.gecko) {
        // window.sidebar.addPanel(topic, url, '');
        alert('Bitte drücken Sie nach dem Klicken auf "OK" die Tastenkombination Strg+D oder Option+D, um die Suchabfrage zu speichern.');
    } else if(Browser.Engine.trident) {
        window.external.AddFavorite(url, topic);
    } else {
        alert('Bitte drücken Sie nach dem Klicken auf "OK" die Tastenkombination Strg+D oder Option+D, um die Suchabfrage zu speichern.');
    };
};


function mainSetupParkplatz(cpwebpath, cpwebid, removeItem) {
    $$('a.parken').each(function(el) {
        el.addEvent('click', function(e) {
            e.stop();
            mainParken(cpwebpath, cpwebid, el, removeItem);
        });
    });
};

function mainParken(cpwebpath, cpwebid, el, removeItem) {
    el.blur();
    var rel = el.getProperty('rel');
    if($chk(rel)) {
        var temp = rel.split(',');
        var fzid = temp[0];
        var mode = temp[1];
        var plnk = $('suche-parkplatz-container');
        var parkplatz = Cookie.read('parkplatz_' + cpwebid);
        if(!parkplatz) {
            parkplatz = [];
        } else {
            parkplatz = parkplatz.split('-');
        };

        if(mode == 1) {
            // einparken
            parkplatz = parkplatz.include(fzid);
            el.addClass('geparkt');
            el.setProperty('rel', fzid + ',0');
            el.setProperty('html', 'geparkt');
            if($chk(plnk)) {
                plnk.setStyle('display', 'block');
            };

            var track = '/detail/parken';
            if(window.location.href.match(/\/suche|\/parkplatz/)) {
                var track = '/liste/parken';
            };

            pageTracker._trackPageview('/ut/' + cpwebid + track);
        } else {
            // ausparken
            parkplatz = parkplatz.erase(fzid);
            el.removeClass('geparkt');
            el.setProperty('rel', fzid + ',1');
            el.setProperty('html', 'parken');
            if($chk(plnk) && (parkplatz.length == 0)) {
                plnk.setStyle('display', 'none');
            };
        };

        parkplatz = parkplatz.join('-');
        Cookie.write('parkplatz_' + cpwebid, parkplatz, {duration: 30, path: cpwebpath});

        if(removeItem && (mode == 0)) {
            var li = $('fahrzeug-' + fzid);
            if($chk(li)) {
                var fader = new Fx.Tween(li, {
                    'duration': 200,
                    onComplete: function() {
                        li.dispose();
                        var check = $$('.liste .fahrzeug');
                        if((!check || check.length == 0)) {
                            var temp = window.location.href.replace(/[\?&]seite=[0-9]+/g, '');
                            window.location.href = temp;
                        };
                    }
                });

                fader.start('opacity', 0);
            };
        };
    };
};


function mainSetupSucheDropdowns() {
    var zindex = 999;
    $$('#suche .dropdown').each(function(el) {
        el.setStyle('z-index', zindex--);
        el.addEvents({
            'mouseover': function() {
                this.getChildren('ul')[0].setStyle('display', 'block');
                this.getChildren('span')[0].addClass('aktiv');
            },

            'mouseout': function() {
                this.getChildren('span')[0].removeClass('aktiv');
                this.getChildren('ul')[0].setStyle('display', 'none');
            }
        });
    });
};


var mainLightboxLeistung = new Class({
    lightbox: null,

    initialize: function(lightbox) {
        window.scrollTo(0, 0);

        this.lightbox = lightbox;
        var _this = this;
        var body = $$('body')[0];
        if(Browser.Engine.trident4) {
            body.setStyles({'width': '100%', 'height': '100%'});
            body.getParent('html').setStyles({'width': '100%', 'height': '100%'});
            $$('select').each(function(el) {
                if(!el.hasClass('lightbox-select')) {
                    el.setStyle('visibility', 'hidden');
                };
            });
        }

        $('lightbox-shutter').setStyles({'display': 'block', 'opacity': 0.75});

        lightbox.set('opacity', 0);
        lightbox.setStyle('display', 'block');
        new Fx.Tween(lightbox, {
            'duration': 333
        }).start('opacity', 1);

        lightbox.getElement('.lb-close').addEvent('click', function(e) {
            _this.destroy();
        });

        /*
        if(this.lightboxName == "lightbox-30") {
            var track = '/form/weiterleiten/open';
            pageTracker._trackPageview('/ut/' + cpwebid + track);
        };
        */
    },

    destroy: function() {
        var _this = this;
        var body = $$('body')[0];
        this.lightbox.getElement('.lb-close').removeEvents();
        new Fx.Tween(this.lightbox, {
            'duration': 200,
            onComplete: function() {
                _this.lightbox.setStyle('display', 'none');
                $('lightbox-shutter').setStyle('display', 'none');
                if(Browser.Engine.trident4) {
                    body.setStyles({'width': 'auto', 'height': 'auto'});
                    body.getParent('html').setStyles({'width': 'auto', 'height': 'auto'});
                    $$('select').each(function(el) {
                        if(!el.hasClass('lightbox-select')) {
                            el.setStyle('visibility', 'visible');
                        };
                    });
                };
            }
        }).start('opacity', 0);
    }
});


function mainSetupLeistung() {
    $$('.setup-lb-leistung').each(function(el) {
        el.setStyle('outline', 'none');
        rel = el.getProperty('rel');
        if($chk(rel)) {
            el.addEvent('click', function(e) {
                e.stop();
                var rel = this.getProperty('rel');
                var lbl = $(rel);
                if($chk(lbl)) {
                    var lightboxWindow = new mainLightboxLeistung(lbl);
                };
            });
        };
    });
};


function mainToggleMenu(what) {
    var a = $('toggle-' + what + '-main');
    var b = $('toggle-' + what + '-sub');
    if($chk(a) && $chk(b)) {
        if(a.hasClass('aktiv')) {
            a.removeClass('aktiv');
            b.setStyle('display', 'none');
        } else {
            a.addClass('aktiv');
            b.setStyle('display', 'block');
        };
    };
};
