/**
* Daffodil js helper oject
*/


function Utils() {
    var self = this;

    this.success = false;
   

	this.toggles = $H({});

	this.doExpand = function toggleViz(id_string, linkObj, frm)
	{
		if(this.toggles[id_string]){
			
			this.toggles.remove(id_string);
			linkObj.className = 'expanded';
			$j('#' + id_string).hide('slow');
		}else{
			
			this.toggles[id_string] = true;
			linkObj.className = 'collapsed';
			$j('#' + id_string).show('slow');
		}
		linkObj.blur();
		return;		
	}

    /*********************************************************/
    /* Warnings **/
    /*********************************************************/
    this.showNotice = function(txt){
    	//alert(txt);
    	$('alertBox').innerHTML = txt;
    	$j("#alertBox").show("fast");
    	setTimeout( self.clearNotice, 4000);
    };
    
    this.clearNotice = function(txt){
    	$j("#alertBox").hide("slow");
    };
    
    this.is_json_loading = false;
    
    this.showLoading = function(state, txt){
    	//alert(txt);
    	this.is_json_loading = state;
    	if(state){
    		$('alertBox').innerHTML = 'Loading';
    		$j("#alertBox").fadeIn("fast");
    		$j("#alertBox").addClass("loading");
    		setTimeout( self.update_loading, 300);
    	}else{
    		$j("#alertBox").fadeOut("fast");
    		$j("#alertBox").removeClass("loading");
    	}
    };  
    
    this.update_loading = function(state, txt){
    	var foo = $('alertBox').innerHTML;
    	foo.innerHTML += '..';
    	if(this.is_json_loading){
    		setTimeout( self.update_loading, 300);
    	}
    }
        
    /*********************************************************/
    /* Create Tab Panels **/
    /*********************************************************/
    this.tabsObj = null;
    this.selectedTab = null;
    this.panels = $H({});

    this.makeTabs = function (tObj, init_tab){
        this.tabsObj = tObj;
       var s = '';
        var ul = $('section-tabs');
        for(var i in this.tabsObj){
            var li = document.createElement('li');
            var a = document.createElement('a');
            a.setAttribute('id','panel_tab_' + i );
            a.setAttribute('onclick','return dUT.showPanel(this)');
            a.setAttribute('ki', i);
            a.appendChild( document.createTextNode( this.tabsObj[i] ) );
            li.appendChild(a);
            ul.appendChild(li);
            this.panels[i] = $('panel_' + i);
            this.panels[i].style.display = 'none';
        }
        if(init_tab){
            this.selectedTab = init_tab;
        }else{
            this.selectedTab = Object.keys(this.tabsObj)[0];
        }
        this.showPanel();
    };

    /*********************************************************/
    /* Shows Tab Panels **/
    /*********************************************************/
    this.showPanel = function showPanel(obj) {
        if(obj){
            this.selectedTab =  obj.getAttribute('ki');
        }
        //alert( this.selectedTab);
        var s = '';
        for(var i in this.tabsObj){
            //this.tabsObj[i];
            $('panel_tab_' + i).className = (this.selectedTab == i) ? 'section-tabs-current' : '';
            this.panels[i].style.display = (this.selectedTab == i) ? 'block':'none';
           // s += i +  ' = ' + this.panels[i] + ' ';
        }
       // alert(s);
        $('panel_tab_' + this.selectedTab).blur();
        return true;
    };

};

var ut = new Utils();

//alert(dUT);
