var page_controller_url;
var page_controller_timer;
var default_page = 'start';
var navi = new Array();

// Navi array controls which subnavigation will be presented of which page
navi.start = 'home,start,presse,galerie_presse';
navi.club = 'team,kuechenteam,advisoryboard,galerie,boardroom,foyer,cigar_lounge,lounge,members_bar,palmerston,capital_grill,salon_oriental,news,news_archiv,rundgang';
navi.gastronomie = 'speisekarte,vips_zu_gast,rezept_des_monats';
navi.gutegruende = 'testimonials,iac,hotelempfehlungen';
navi.veranstaltungen = 'gastsprecher,gastronomische,kulturelle,mitgliedertreffen,bankettangebote,details,anmelden,bankettdetails';
navi.businesstv = 'video_01,video_02';

/**
 * Init the page controller making it check the URL frequently
 */
function init_page_controller() {
    flashMovie('navi');
    page_controller();
    page_controller_timer = window.setInterval('page_controller()', 200);
}

/**
 * Check the URL, load content if the URL has changed
 */
function page_controller() {
    if (window.location.href == page_controller_url) return;
    page_controller_url = window.location.href;
    load_page(page_controller_url.split('#')[1]);
}

/**
 * Load content into main_content div
 *
 * On errors load default page
 */
function load_page(page) {
    if (typeof(page) == 'undefined') page = default_page;

    // Check for number at the end, compile URL
    var page_parms = page.match(/(\D+)(\d*)/);
    if (page_parms == null) return;
    page = page_parms[1];
    var url = 'pages/' + language + '/' + page + '.php';
    if (page_parms[2] != '') url += '?id=' + page_parms[2];

    new Request.HTML({
        update: $('content'),
        onFailure: function() {
            if (page != null) alert('Seite ' + page + ' existiert nicht.');
            if (page != default_page) load_page(default_page);
        },
        onSuccess: Slimbox.scanPage
    }).get(url);

    setFlash(page);
}

/**
 * Jump to a certain page, triggered from the flash movie
 */
function getFlash(page) {
    page_controller_url = window.location.href.split('#')[0] + '#' + page;
    window.location.href = page_controller_url;
    load_page(page);
}

/**
 * Navigate Flash to a certain section
 */
function setFlash(page) {
    var movie = flashMovie('navi');
    var regex = new RegExp('(^|,)' + page + '(,|$)');

    for (i in navi) {
        if (i == page) break;
        if (regex.test(navi[i])) { page = i; break; }
    }

    switch (page) {
        case "start":
            if (typeof(movie.goHome) != 'function') { window.setTimeout('setFlash("home")', 200); return; }
            movie.goHome();
            break;

        case "club":
            if (typeof(movie.goClub) != 'function') { window.setTimeout('setFlash("club")', 200); return; }
            movie.goClub();
            break;

        case "gastronomie":
            if (typeof(movie.goRestaurant) != 'function') { window.setTimeout('setFlash("gastronomie")', 200); return; }
            movie.goRestaurant();
            break;

        case "gutegruende":
            if (typeof(movie.goReasons) != 'function') { window.setTimeout('setFlash("gutegruende")', 200); return; }
            movie.goReasons();
            break;

        case "veranstaltungen":
            if (typeof(movie.goEvents) != 'function') { window.setTimeout('setFlash("veranstaltungen")', 200); return; }
            movie.goEvents();
            break;

        case "businesstv":
            if (typeof(movie.goBusiness) != 'function') { window.setTimeout('setFlash("businesstv")', 200); return; }
            movie.goBusiness();
            break;
    }
}

/**
 * Return the Flash Navigation Movie as an object for the function call.
 */
function flashMovie(movieName) {
    if (window.document[movieName]) return window.document[movieName];
    if (navigator.appName.indexOf("Microsoft Internet") != -1) return document.getElementById(movieName);
    if (document.embeds && document.embeds[movieName]) return document.embeds[movieName];
}

/**
 * Fenster öffnen zum Seite empfehlen
 */
function seite_empfehlen() {
    var url = 'seite_empfehlen.php?url=' + encodeURIComponent(window.location.href);
    window.open(url, 'seite_empfehlen', 'dependent=yes,height=500,width=430,menubar=no,toolbar=no,location=no,resizable=yes');
}

/**
 * Checks the form using the function sendform defined in the forms HTML document
 * Then submits via AJAX, updating the main content div with the Thank-you-page
 */
function send_form(me) {
    if (checkform(me) == false) return false;

    new Request.HTML({
        data: me,
        update: $('content')
    }).post('pages/common/form_mailer.php');

    return false;
}
