/* Tabbed content scripts */

// **********************************************
// Global Variables
// **********************************************
var tabContent = new Array();
var tabLabel = new Array();

function showTabs(a,b){document.getElementById(a).className='tabContentTab'+b}

function checkURL(){
    var jumpLink = window.location.hash.substring(1);
    if(jumpLink.length>0){
        for (var i=0; i<tabLabel.length; i++){
            if(jumpLink == tabLabel[i].toLowerCase()){
                showTabs('tabContentWrapper',i);
            }

        }
    }
}



function tabbedContent(ids){

    // **********************************************
    // Functions
    // **********************************************

    // **********************************************
    // Validation function
    //     - Tests the supplied args
    //     - If any arg is not a valid element id then fail
    // **********************************************
    function validate(data){
        var passed = true;
        if (data !=  null){
            if(data.length > 0){
                // Test args as an array list or a single string
                if(data.constructor.toString().indexOf("Array")!=-1){
                    for (var i=0; i<data.length; i++){
                        if(document.getElementById(data[i]) == null){
                            passed=false;
                            message = "One or more args are not a valid element id";
                        }
                    }
                }
                else{
                    if(document.getElementById(data) == null){
                            passed=false;
                            message = "The arg is not a valid element id";
                    }
                }
            }
            else{
                passed=false;
                message = "Not enough args";
            }
        }
        return passed;
    }





    if (validate(ids)){

        var output;

        // If there's default content, store it as first tab with label
        if(ids != null){
            if(ids.constructor.toString().indexOf("Array")!=-1){
                for (var i=0; i<ids.length; i++){
                    if(i==0){output = document.getElementById(ids[i]);}
                    var origContent = document.getElementById(ids[i]);
                    tabContent.push(origContent.innerHTML);
                    if(origContent.title.length > 0){tabLabel.push(origContent.title);}
                    else if(origContent.getElementsByTagName('h2').length > 0){
                        tabLabel.push(origContent.getElementsByTagName('h2')[0].innerHTML);
                        var t = origContent.getElementsByTagName('h2')[0];
                        t.parentNode.removeChild(t);
                    }
                    else {tabLabel.push('page'+i);}
                    origContent.style.display="none";
                 }
             }
             else{
                var origContent = document.getElementById(ids);
                output = document.getElementById(ids);
                tabContent.push(origContent.innerHTML);
                if(origContent.title.length > 0){tabLabel.push(origContent.title);}
                else if(origContent.getElementsByTagName('h2').length > 0){
                    tabLabel.push(origContent.getElementsByTagName('h2')[0].innerHTML);
                    var t = origContent.getElementsByTagName('h2')[0];
                    t.parentNode.removeChild(t);
                }
                else {tabLabel.push('page'+i);}
                origContent.style.display="none";
             }
         }

        // **********************************************
        // Write tabs / navigation to the page
        // **********************************************

        var newnode = document.createElement("div");
        newnode.setAttribute('id','output');
        output.parentNode.insertBefore(newnode,output);
        var out = document.getElementById('output');


        var newsheet =document.createElement("link");
        newsheet.setAttribute("rel", "stylesheet");
        newsheet.setAttribute("type", "text/css");
        newsheet.setAttribute("href", "http://meetings.apnic.net/__data/assets/css_file/0005/34259/tabcontent2.css");
        document.getElementsByTagName("head")[0].appendChild(newsheet);



        var html = "";
        html += "<div id='tabContentWrapper' class='tabContentTab0'>";
        html += "<div id='tabContentNav'>";
        for (var i=0; i<tabLabel.length; i++){
        html += "<a href='#"+tabLabel[i].toLowerCase() +"' onclick=\"showTabs('tabContentWrapper','"+ i +"')\" id='tabContentNav"+i+"'>" + tabLabel[i] + "</a>";
        }
        html += "</div>";
        html += "<div id='tabContentTween'>";
        html += "<span></span>";
        html += "</div>";
        html += "<div id='tabContentTabs'>";
        for (var i=0; i<tabContent.length; i++){
        html += "<div id='tabContentTab"+i+"' class='tabContentTab'>";
        html += tabContent[i];
        html += "</div>";
        }
        html += "</div>";
        html += "</div>";
        out.innerHTML += html;

    }
    // **********************************************
    // Validation failed
    // **********************************************
    else{
        //document.write("Failed to validate: " + message);
    }

    checkURL();
} 
// **********************************************
// End Function
// **********************************************




