// JScript File



function checkIt(string){
    place = detect.indexOf(string) + 1;
    thestring = string;
    return place;
}

function noScrollIE(){
    document.body.scroll = "no";
}

function scrollIE(){
    document.body.scroll = "yes";
}

function noScrollNS(){
    document.width = window.innerWidth;
    document.height = window.innerHeight;
}

function scrollNS(){
    document.width = 1000;
    document.height = 1000;
}

function removeScrollBars(){
    if (browser == "Internet Explorer") {
        noScrollIE();
    }
    else 
        if (browser == "Netscape Navigator") {
            noScrollNS();
        }
}

var Client = {
    viewportWidth: function(){
        return self.innerWidth || (document.documentElement.clientWidth || document.body.clientWidth);
    },
    
    viewportHeight: function(){
        return self.innerHeight || (document.documentElement.clientHeight || document.body.clientHeight);
    },
    
    viewportSize: function(){
        return {
            width: this.viewportWidth(),
            height: this.viewportHeight()
        };
    }
};

function returnObjById(id){
    if (document.getElementById) 
        var returnVar = document.getElementById(id);
    else 
        if (document.all) 
            var returnVar = document.all[id];
        else 
            if (document.layers) 
                var returnVar = document.layers[id];
    return returnVar;
};


	var ns4 = document.layers;
	var op5 = (navigator.userAgent.indexOf("Opera 5")!=-1) ||(navigator.userAgent.indexOf("Opera/5")!=-1);
	var op6 = (navigator.userAgent.indexOf("Opera 6")!=-1) ||(navigator.userAgent.indexOf("Opera/6")!=-1);
	var agt=navigator.userAgent.toLowerCase();
	var mac = (agt.indexOf("mac")!=-1);
	var ie = (agt.indexOf("msie") != -1); 
	var mac_ie = mac && ie;

    //var headerHeight = 110;
    var headerHeight = 100;
    var footerHeight = 34;

function getElementWidth(Elem) {

    
	if (ns4) {
		var elem = getObjNN4(document, Elem);
		return elem.clip.width;
	} else {
		if(document.getElementById) {
			var elem = document.getElementById(Elem);
		} else if (document.all){
			var elem = document.all[Elem];
		}
		if (op5) {
			xPos = elem.style.pixelWidth;
		} else {
			xPos = elem.offsetWidth;
		}
		return xPos;
	}
};

function resizediv(){
    //alert('resizing');
    returnObjById('container').style.height = (Client.viewportHeight() - headerHeight /*- footerHeight-66+66*/) + 'px';
    
    var ctab = returnObjById('layoutTable');
    ctab.style.width = "100%";
    var wdth = getElementWidth('layoutTable');
    if(ie)
    {
    
       //ctab.style.width = (wdth- 16) +'px';
       ctab.style.width = "98%";
    
    }
};

function ExtendTreeviewClicks(){
    var Anchors = document.getElementsByTagName("a");
    if (Anchors && Anchors.length > 0) {
        for (var a = 0; a < Anchors.length; a++) {
            var PopHref = "javascript:TreeView_PopulateNode";
            var TogHref = "javascript:TreeView_ToggleNode";
            var TheId = Anchors[a].id;
            var NewHref = "";
            
            if (Anchors[a].href.substring(0, PopHref.length) == PopHref) {
                NewHref = Anchors[a].href.replace("javascript:TreeView_PopulateNode", 
                "javascript:document.getElementById('" + TheId + "').style.cursor = 'wait';window.setTimeout('ExtendTreeviewClicks()',4000);TreeView_PopulateNode");
                
                Anchors[a].href = NewHref;
            }
            
            if (Anchors[a].href.substring(0, TogHref.length) == TogHref) {
                if (document.getElementById(TheId).style.cursor == 'wait') {
                    document.getElementById(TheId).style.cursor = 'default';
                }
            }
        }
    }
}


function processEmpty()
{
   
   return void(0);

}

function aspect_alertStartFunc ( args, name) {
    
        //alert('Start');
        
	return Array('start'+args[0]);
    
}

function scrollToSelectedNode()
{
    var name = ctl00_ContentPlaceHolder1_APITree_Data.selectedNodeID.value;
    var selectedNode = document.getElementById(name);

    if (selectedNode == null) 
    {
        
        //alert('selectednode is null');

    }
    else 
    {
        
        
        var tvDiv = document.getElementById('nav');
        
        if(ie)
        {
            //alert('scrolltop:'+findPosY(selectedNode));
            tvDiv.scrollTop = findPosY(selectedNode)-headerHeight-50;

            //tvDiv.scrollLeft = findPosX(selectedNode);
        }
        else
        {
            selectedNode.scrollIntoView(true);
        }
       
      // scrollToElement(name);

    }
}


function findPosX(obj) {
var curleft = 0;

if (obj.offsetParent) 
{
    while (obj.offsetParent)  
    {

        curleft += obj.offsetLeft

        obj = obj.offsetParent;

    }

}
else if (obj.x)

curleft += obj.x;
return curleft;

}


function findPosY(obj) {

var curtop = 0;
if (obj.offsetParent) 
{

    while (obj.offsetParent) 

    {

        curtop += obj.offsetTop

        obj = obj.offsetParent;

     }

}
else {if (obj.y) 
{

curtop += obj.y;

}

}
return curtop;

} 


function getElementPos(pElmName)
{
	//	find "Destination" Element
	var elm = returnObjById(pElmName);
	var coords = {x: 0, y: 0 };
	
	
	while (elm)
	{
		coords.x += elm.offsetLeft;
		coords.y += elm.offsetTop;
		elm = elm.offsetParent;
	}
	return coords;
}



function scrollToElement(pElmName)
{
	
	// Get the Position of the Element
	var pos = getElementPos(pElmName);
	
	if (pos.y>200) pos.y -= 20;
	
	 var tvDiv = document.getElementById('nav');
	 //alert('setting pos');
	 tvDiv.scrollTop = pos.y-headerHeight-50;
	//window.scrollTo(pos.x,pos.y);
}

function placeSearch()
{
    var elm = returnObjById('searchpos');
    
    var sbox = returnObjById('searchBox');
    
    var topDiv = returnObjById('HeadContentTop');
    
    var navMenu = returnObjById('NavigationMenu');
    
    
    
    
    var pos = getElementPos('searchpos');
    
    var posTop = getElementPos('HeadContentTop');
    
    var xpos = findPosX(sbox);
    
    var xpos1 = findPosX(topDiv);
    
    
    //alert('Position of holder div:'+xpos+'\n Position of top div:'+(xpos1+560));
    
    
    //alert('NavMenu pos left:'+ navMenu.offsetLeft+' width:'+navMenu.offsetWidth);
    
    
    //alert('Got x position:'+xpos1);
    
    /*
    sbox.style.top = pos.y+'px';
    if(ie)
    {
        sbox.style.left = posTop.x+560+'px';
    }
    else
    {
        //sbox.style.left = posTop.x+560+186+'px';
        //sbox.style.left = navMenu.offsetLeft +navMenu.offsetWidth +'px';
         sbox.style.left = xpos1+560+186+'px';
    }
    
   */
    if(ie)
    {
        elm.style.verticalAlign='top';
        elm.style.marginTop='0px';
    }
    
    elm.appendChild(sbox);
    sbox.style.visibility = 'visible';
    
    //alert('Left:'+(posTop.x+560));
    //HeadContentTop
    
    
}


function placeSearch1()
{

    //alert('placing search');
    var elm = returnObjById('searchpos');
    var sbox = returnObjById('searchBox');
    if (null==elm)
    {
	if (sbox && sbox.parentNode)
	{
		sbox.parentNode.removeChild(sbox);
	}
	return ;
    }
    var ie = 0;
    try { if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { ie = 1;}}
    catch(e) { ie = 0; }
    if(ie)
    {
        //elm.style.verticalAlign='top';
        //elm.style.marginTop='0px';
        // 851 and 106 for IE versus 852 and 105 for Mozilla
        sbox.style.left='851px';
	   /* var sboxctl = returnObjById('sboxctl');
	    if (null!=sboxctl)
	    {
	    	sboxctl.style.width='106px';
	    }*/
    }
    elm.appendChild(sbox);
    sbox.style.visibility = 'visible';
}

Example = function(){
    return {
        init: function(){
        
            
            Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
            //alert('Setting height:'+Client.viewportHeight());
            //removeScrollBars();
            //returnObjById('container').style.height =  (Client.viewportHeight()-110/*-66+66*/)+'px';
            //resizediv();
            
            var layout = new Ext.BorderLayout(/*'container'/*/document.body, {
                north: {
                    split:false,
                    initialSize: 111,
                    titlebar: false
                },
            
                west: {
                    split: true,
                    initialSize: 200,
                    titlebar: true,
                    collapsible: true,
                    minSize: 100,
                    autoScroll: true,
                    maxSize: 400
                },
                center: {
                    autoScroll: false
                }
            
            
            });
            layout.beginUpdate();
            
            layout.add('west', new Ext.ContentPanel('nav', {
                title: 'Product Documentation',
                fitToFrame: true,
                closable: false
            }));
            
                       
            layout.add('north',new Ext.ContentPanel('Wrapper'));
            
            /* */
             layout.add('center', new Ext.ContentPanel('contentDiv',{fitToFrame:true,adjustments: [0, 0],
                fitContainer: true,closable:false}));
            
            
            /*
            var innerLayout = new Ext.BorderLayout('content', {
               
                center: {
                    autoScroll: false
                }
            });
            //innerLayout.add('south', new Ext.ContentPanel('utiltab', "Export"));
            innerLayout.add('center', new Ext.ContentPanel('contentDiv', {
                fitToFrame: true,
                closable: false,
                adjustments: [0, 0],
                fitContainer: true
            }));
            
            
            layout.add('center', new Ext.NestedLayoutPanel(innerLayout, {
                adjustments: [0, 0],
                fitContainer: true,
                fitToFrame: true
            }));
           */            
            
            
            layout.restoreState();
            //layout.endUpdate();
            /*
            var width = layout.getRegion("west").el.getWidth();
            layout.getRegion("west").resizeTo(width+1);
            layout.getRegion("west").resizeTo(width);
            var ctab = returnObjById('layoutTable');
            ctab.style.width = "100%";
            var wdth = getElementWidth('layoutTable');
            if(ie)
            {
               // ctab.style.width = (wdth- 16) +'px';
               ctab.style.width ="98%";
            }
            */
            
            //layout.restoreState();
            //ExtendTreeviewClicks();
            //alertsize();
           placeSearch();
          //   placeSearch1();
            layout.endUpdate();
            scrollToSelectedNode();
        }
    };
    
}
();
//
Ext.EventManager.onDocumentReady(Example.init, Example, true);

var detect = navigator.userAgent.toLowerCase();
var browser, thestring;

if (checkIt('msie')) {
    browser = "Internet Explorer";
}
else 
    if (!checkIt('compatible')) {
        browser = "Netscape Navigator";
    }
    else 
        browser = "An unknown browser";

//window.onresize = resizediv;
//window.onresize = placeSearch;


