﻿var agahMultiView_list=new Array();

// creates new multi view object
function agahMultiView()
{
    this.id='';
}

// loads agah multi view
function agahMultiView_load(viewId)
{
    var view=new agahMultiView();
    agahMultiView_list[viewId]=view;
    
    //
    view.id=viewId;
    view.control=document.getElementById(viewId);
    view.header=document.getElementById(viewId+"_"+"head");
    
    //
    view.waiting=false;    
    view.tabControls=new Array();
    view.oldTabCursors=new Array();
    view.oldTabClasses=new Array();
    
    //
    var n=0;
    for (var i=0; i<view.header.childNodes.length; i++)
    {
        var name=view.header.childNodes[i].tagName;
        if (name!=null)
            if (name.toLowerCase()=='a')
            {            
                view.tabControls[n]=view.header.childNodes[i];
                n++;
            }
    }    
}


//
function agahMultiView_tabClick(viewId,tabIndex,waitClass)
{
    var view=agahMultiView_list[viewId];
    
    // unwaiting waited views
    for (id in agahMultiView_list)
    {        
        var tview=agahMultiView_list[id];
                
        if (tview.waiting)
        {
            
            agahMultiView_unwait(tview.id);
        }
    }
    
    //
    agahMultiView_wait(viewId,tabIndex,waitClass);
    
    
    // doing post back
    var currentTab=view.tabControls[tabIndex];
    __doPostBack(currentTab.id,tabIndex);
}

// waits given tab
function agahMultiView_wait(viewId,tabIndex,waitClass)
{
    var view=agahMultiView_list[viewId];

    //
    view.waiting=true;

    // 
    view.control.style.cursor="wait";
    
    // waiting all tabs
    for (var i=0; i< view.tabControls.length; i++)
    {
        var tab=view.tabControls[i];
        
        //
        view.oldTabCursors[i]=tab.style.cursor;
        tab.style.cursor='wait';
        
        //
        view.oldTabClasses[i]=tab.getAttribute('class');
        if (i==tabIndex && waitClass!=null)
            tab.setAttribute('class',waitClass);
    }
}

// unwaits given tab
function agahMultiView_unwait(viewId)
{
    var view=agahMultiView_list[viewId];
    
    //
    view.waiting=false;
    view.control.style.cursor=null;
    
    // waiting all tabs
    for (var i=0; i< view.tabControls.length; i++)
    {
        var tab=view.tabControls[i];
        
        //
        tab.style.cursor=view.oldTabCursors[i];
        
        //
        tab.setAttribute('class',view.oldTabClasses[i]);
    }
}





