﻿
var control = new Array();
var con_name = new Array();
var con_reload = new Array();
var con_preload = new Array();
var cmap_con_init = false;

window.current_con = null;
var keyName = "";
var c_init = false;

var inTransit = false;
var last_load = 2;

var slideDelay = 14.0;
var slideDuration = 400.0;

var slideSpeed = 50;
var targetMargin = 0;
var curMargin = 0;

var con_buff = null;
var con_new = null;

var tran_id = 0;

function controlLoad(ctrl, preloadOption) // for when the site is just entered...
{                          // load the first page's content.
    if (!c_init)
        init_control_ref();
    var con_id;
    
    for (i = 0; i < con_name.length; i++)
    {
        if (con_name[i] == ctrl)
        {
            con_id = i;
            break;
        }
    }

    
    if ((con_preload[con_id] != null) &&
        (preloadOption == null))
    {
        
        con_preload[con_id]();
    }
    else if (con_preload[con_id] != null)
        con_preload[con_id](preloadOption);
    if ((con_reload[con_id] != null) &&
        (ctrl == "culturemap"))
    {
        con_reload[con_id](cmap_con_init);
        cmap_con_init = true;
    }
    else if ((con_reload[con_id] != null) &&
        (ctrl == "profile") && (current_section == "video"))
    {
        try
        {
            con_reload[con_id](cmap_con_init);
        } catch (err) { }
        //load_vid_player();
    }
    else if (con_reload[con_id] != null)
        con_reload[con_id]();
    last_load = con_id;
    //alert("con_id: " + con_id + " last_load: " + last_load);
    //alert("done controlLoad");
}
function controlSwap(ctrl, preloadOption) // switch that control.
{
    
    //alert(ctrl);
    if (ctrl == null)
        return;
    if (ctrl == "")
        return;
    if (!c_init)
        init_control_ref();

    
    if (inTransit)
        return;
    var i = 0;
    
    var con_id;
    for (i = 0; i < con_name.length; i++)
    {
        if (con_name[i] == ctrl)
        {
            con_id = i;
            break;
        }
    }
    
    con_buff = document.getElementById('Content_Current');
    con_new = document.getElementById('Content_New');
    
    //$(control['registration']).slideUp(400, function() { });

    if (con_id == last_load)
    {
        if (con_name[con_id] == 'profile')
            con_preload[con_id]();
        return; // do nothing
    }
    
    var parent = control[con_id].parentNode;
    parent.removeChild(control[con_id]);
    parent.appendChild(control[con_id]); // put child on the end

    control[con_id].style.display = "block";
    inTransit = true;
    if ((con_preload[con_id] != null) &&
        (preloadOption == null))
    {
        con_preload[con_id]();
    }
    else if (con_preload[con_id] != null)
        con_preload[con_id](preloadOption);
    $(control[last_load]).animate({ marginLeft: "-" + $(control[last_load]).width() }, 450, function()
    {

        control[last_load].style.display = "none";
        control[last_load].style.marginLeft = "0px";
        last_load = con_id;
        inTransit = false;
        if ((con_reload[last_load] != null) &&
            (ctrl == "culturemap"))
        {
            con_reload[last_load](cmap_con_init);
            cmap_con_init = true;
        }
        else if ((con_reload[con_id] != null) &&
        (ctrl == "profile") && (current_section == "video"))
        {
            try{
            con_reload[con_id](cmap_con_init);
            //load_vid_player();
            }catch(err){}
        }
        else if (con_reload[last_load] != null)
            con_reload[last_load]();
    });
    //alert("con_id: " + con_id + " last_load: " + last_load);
    // Remove any nodes in con_new
    /*
    var innerNodes = con_new.childNodes();
    if(innerNodes != null)
    for (i = 0; i < innerNodes.length; i++)
        con_new.removeChild(innerNodes[i]);
    con_new.appendChild(control[con_id]);
    control[con_id].style.display = "block";
    tran_id = (tran_id > 6) ? 0 : tran_id + 1;
    slideSwap(ctrl,tran_id);
    */
    //alert(last_load);
    /*$(control[last_load]).animate({ marginLeft: 'toggle' }, function()
    {
        if (ctrl == "culturemap")
        {
            if (cmap_con_init == false)
            {
                cmap_init();
                cmap_con_init = true;
            }
            else
            {
                display_markers();
            }
        }
    });
    */
    
    
    // $("#home").hide(400, function() { });
    // Now toggle left the control that is currently visible.

    //alert(ctrl);
    //
    /*
    for (i = 0; i < con_name.length; i++)
    {
        //alert("ctrl: " + ctrl + " con_name[i]: " + con_name[i]);
        if ((con_id != i) && (i == last_load))
        {
            //alert("ctrl: " + ctrl + " con_name[i]: " + con_name[i] + " \ndisplay: " + document.getElementById(con_name[i]+"_ctrl").style.display);
            $(control[i]).slideUp(400, function() {
                $(control[con_id]).slideDown(400, function() 
                {
                    if (ctrl == "culturemap") 
                    {
                        if (cmap_con_init == false) 
                        {
                            cmap_init();
                            cmap_con_init = true;
                        }
                        else 
                        {
                            display_markers();
                        }
                    }
                    last_load = con_id;
                });
            });
            
        }
    }
    */
    /*
    if (window.current_con == null) {
        //alert("null handler");
        keyName = "" + ctrl;
        window.current_con = ctrl;
        $(control[keyName]).slideDown(400, function() { });
        //control[keyName].style.display = "block";
        
    }
    else {

        alert("CURRENT handler: " + window.current_con);
        $(control[current_con]).slideUp(400, function() {
            //alert("slide up on: "+current);
            keyName = "" + ctrl;
            window.current_con = "" + ctrl;
            $(control[keyName]).slideDown(400, function() { });
            //control[keyName].style.display = "block";

        });
    }
    window.current_con = ctrl;
    */
}
function init_control_ref() // first called by controlSwap() above
{
    
    
    control[0] = document.getElementById('culturemap_ctrl');
    control[1] = document.getElementById('registration_ctrl');
    control[2] = document.getElementById('home_ctrl');
    control[3] = document.getElementById('profile_ctrl');
    control[4] = document.getElementById('membership_ctrl');
    control[5] = document.getElementById('navigation_ctrl');

    con_name[0] = 'culturemap';
    con_name[1] = 'registration';
    con_name[2] = 'home';
    con_name[3] = 'profile';


    con_reload[0] = cmap_reload;
    con_reload[1] = reg_reload;
    con_reload[2] = home_reload;
    con_reload[3] = prof_reload; //member_reload;
    con_reload[4] = member_reload;
    con_reload[5] = null; //nav_reload;

    con_preload[0] = null; // cmap_preload;
    con_preload[1] = null; // reg_preload;
    con_preload[2] = null; // home_preload;
    con_preload[3] = prof_preload;
    con_preload[4] = null; // member_preload;
    con_preload[5] = null; // nav_preload;

    c_init = true;    

    //$(control['home']).slideDown(400, function() { });
    //window.current_con = 'home';
}
//window.onload = ();
/*
function slideSwap(ctrl, s_id)
{
    
slideSpeed = $(con_buff).width() * (slideDuration / 14.0);
targetMargin = -1 * $(con_buff).width();
curMargin = 0;
//alert("last_node: " + last + " slide_speed: " + $(control[last]).width());
setTimeout('slideLeft()', slideDelay);
}
function slideLeft()
{
//if (s_id != tran_id) // animation interrupted
//    return;
curMargin -= slideSpeed;
if (curMargin <= targetMargin)
{
curMargin = targetMargin;
con_buff.style.marginLeft = curMargin;
slide_complete();
}
else
{
con_buff.style.marginLeft = curMargin;
setTimeout('slideLeft()', slideDelay);
}
}
function slide_complete()
{
var tempNode = con_buff.childNodes();
if (tempNode != null)
{
tempNode = tempNode[0];
con_buff.removeChild(tempNode);
con_buff.parentNode.appendChild(tempNode);
}
tempNode = con_new.childNodes()[0];
con_new.removeChild(tempNode);
con_buff.appendChild(tempNode);
con_buff.style.marginLeft = 0;
}
*/
