/*
 * ViewMain.js
 * (c)2009 Bell Systems LLC
 * 
 * License: http://bellspace.net/licenses/non-commercial.html (Non-Commercial) 
 * Licensing: http://bellspace.net/licensing/index.html 
 * 
 * pageMain() program to be shared among Nav Views
 *
 */

//preferences dropdown
useTriDrop = true;
includeScript("../../lib/js/TriDrop.js");

//include StyleSelector
useStyleSelector = true;
includeScript("../../lib/js/StyleSelector.js");

dojo.addOnLoad(pageMain);
var t = window.location.href.split("?");

function pageMain()
{
    initDropNav();
    initForms();
    checkExampleNavVisibility();
	
    //START preferences
	
    var prefTriDrop = new TriDrop();
    prefTriDrop.connect(document.getElementById("pref_triangle"));
    prefTriDrop.connect(document.getElementById("pref_link"));
    prefTriDrop.connect(document.getElementById("pref_div"));
    //END preferences
}

function prefToggle(obj)
{
    var param = "";
	var successFunction = false;
	
    var yourNavContainer = document.getElementById("your_nav_container");
    var exampleNavContainer = document.getElementById("example_nav_container");	
	
    if(obj)
    {
        if(obj.type == "radio")
        {
            param = "?" + obj.name + "=" + obj.value;
        }
        else if(obj.type == "checkbox")
        {
            param = "?" + obj.name + "=" + obj.checked;
        }
    }
    
    if(obj.name == "orientation_pref")
    {
        loadNavStyle(obj.value);  
		
	    //we hide the nav container so we dont see all the funky css switching 
	    if(yourNavContainer)
	    {
	        yourNavContainer.style.display = "none";
	    }
	    if(exampleNavContainer)
	    {
	        exampleNavContainer.style.display = "none";
	    }		
				
	    var theCursor = new Cursor();
	    theCursor.startWaiting(); 				
					
	    var successFunction = function(response)
	    {
			//re-render the nav	        
	        var param = "http://" + myHost + "/new_slang/lib/php/ajax/My_Navs_ajax.php?get_current_nav=true";
			ajaxCall(param, successFunction2);
	    };

        var successFunction2 = function(response)
        {
            if(yourNavContainer)
            {
                yourNavContainer.innerHTML = response;
				yourNavContainer.style.display = "inline";
            } 
			
            //re-render the example nav         
            var param = "http://" + myHost + "/new_slang/lib/php/ajax/My_Navs_ajax.php?get_example_nav=true";
            ajaxCall(param, successFunction3);			         
        }
		
		var successFunction3 = function(response)
		{
            //get Your Nav: container
            if(exampleNavContainer && exampleNavContainer.parentNode.style.display != "none")
            {
                exampleNavContainer.innerHTML = response;
                exampleNavContainer.style.display = "inline";
            } 
			
			//finally run our init script
            initDropNav();
			
            theCursor.stopWaiting();   					
		} 
		
    }
	else if(obj.name == "example_nav_pref")
	{
        if(exampleNavContainer && obj.checked)
        {
            exampleNavContainer.parentNode.style.display = "block";
        }
		else if(exampleNavContainer && !obj.checked)
		{
			exampleNavContainer.parentNode.style.display = "none";
		}
		
	    //for ConstructionView.php
	    //adjust the tabs length if 
	    if(exampleNavContainer.parentNode.style.display == "none")
	    {
	        var t_tabs = new Array();
	        newTabsLength = tabs.length /2;
	        for(var i=0; i<newTabsLength; i++)
	        {
	            t_tabs[i] = tabs[i];
	        }
	        tabs = t_tabs;
	    }   		
        
		var param = "http://" + myHost + "/new_slang/lib/php/ajax/My_Navs_ajax.php?use_example_nav=" + obj.checked;				
	}
	
    ajaxCall(param, successFunction);	
}

function checkExampleNavVisibility()
{
    //for ConstructionView.php
    //adjust the tabs length if 
    var exampleNavContainer = document.getElementById("example_nav_container");	
	
    if(exampleNavContainer && exampleNavContainer.parentNode.style.display == "none")
    {
        var t_tabs = new Array();
        newTabsLength = tabs.length /2;
        for(var i=0; i<newTabsLength; i++)
        {
            t_tabs[i] = tabs[i];
        }
        tabs = t_tabs;
    }
}

function reloadNav(navContainer)
{
    var response;
    
    if(globalInterrupt)
    {
        //some other event handler is interrupting us
        return true;
    }
    
    //we hide the nav container so we dont see all the funky css switching 
    if(navContainer)
    {
       //navContainer.style.display = "none";
    }
    
    //update the css
    var loadDefaultCss = function(response)
    {   
        updateCss(response, "nav_"+navOrientation);
          
        //note: the loadNavStyle() function adds "nav_" to the 1st argument
        
        loadNavStyle(navOrientation);
        
        //then update the nav html          
        var param = "http://" + myHost + "/new_slang/lib/php/ajax/My_Navs_ajax.php?get_current_nav=true";
        ajaxCall(param, updateNavHtml);         
    }
    
    var updateNavHtml = function(response)
    {
        //js re-render the nav
        if(navContainer)
        {
            navContainer.innerHTML = response;
            navContainer.style.display = "block";
            initDropNav();
        }               
    }
    
    //first default the css
    var param = "http://" + myHost + "/new_slang/lib/php/ajax/My_Navs_ajax.php?load_default_css=true&browser="+browserDetect.browser;
    ajaxCall(param, loadDefaultCss);  
}