/// eventHandling routines

function __add_handler(obj, evt, handler, captures) 
{ 
        if (obj.addEventListener) 
                obj.addEventListener(evt, handler, captures); 
        else if (obj.attachEvent) 
                obj.attachEvent('on' + evt, handler); 
        else 
        { 
                var old_handler = obj['on' + evt]; 
                if (null == old_handler) 
                        obj['on' + evt] = handler; 
                else obj['on' + evt] = function() 
                { 
					old_handler(); 
					handler(); 
                } 
        } 
}

/// dimmingdiv.js

//************************************************************************************
// original dimmingdiv.js code by Massimo Beatini (greatly modified_
//************************************************************************************

//
// global variables
//
var isMozilla;
var objDiv = null;
var originalDivHTML = "";
var DivID = "";
var over = false;

var __DimmerWdOffset = 21;
var __DimmerHtOffset = 4;

//
// dynamically add a div to 
// dim all the page
//
function buildDimmerDiv()
{	//Remove style width and height: Sanket Pathre on 04/10/2006.
	//Added style z-Index: Sanket Pathre on 04/10/2006.
	//style="width:'+ (document.body.offsetWidth - __DimmerWdOffset) + 'px; height:' + (document.body.offsetHeight - __DimmerHtOffset) +'px"
    document.write('<div id="dimmer" class="dimmer" style="z-index=1000;"></div>');
	// Commentted: Sanket Pathre on 04/10/2006.
	//__add_handler(window, "load", resizeDimmer, false);
}

function resizeDimmer()
{
	var d = document;
	var dimmerDiv=d.getElementById?d.getElementById("dimmer"):d.all?d.all["dimmer"]:d.layers["dimmer"];
	if(d.layers)dimmerDiv.style=dimmerDiv;
	if(document.body.offsetWidth > 0)
		dimmerDiv.style.width=(document.body.offsetWidth - __DimmerWdOffset).toString() + "px";
	if(document.body.offsetHeight > 0)
		dimmerDiv.style.height=(document.body.offsetHeight - __DimmerHtOffset).toString() + "px";
}

var tmrKeepDimmerAtTop;

function displayDimmer(show)
{
	if((document.getElementById('dimmer').style.visibility == "visible" && show) ||
		(document.getElementById('dimmer').style.visibility != "visible" && !show))
		return;
	if(show)
	{//show=true
		document.getElementById('dimmer').style.visibility = "visible";
		tmrKeepDimmerAtTop = setTimeout("KeepDimmerAtTop()", 10);	
		//Added following 2 lines by sanket Pathre on 04/10/2006
		//reason to add:dimmer height and width are set dureing dimmer visible=true
		document.getElementById('dimmer').style.width=document.body.offsetWidth - __DimmerWdOffset +"px";
		document.getElementById('dimmer').style.height=document.body.offsetHeight - __DimmerHtOffset +"px";
	
	}
	else
	{
		document.getElementById('dimmer').style.visibility = "hidden";
		clearTimeout(tmrKeepDimmerAtTop);
		//Added following two line by Sanket Pathre on 04/10/2006
		//reason to add:beacause of dimmer height and width at some popup windows get extra scrollbar
		document.getElementById('dimmer').style.width="0px";
		document.getElementById('dimmer').style.height="0px";
	}
	//disableFormElements(show)
}

function KeepDimmerAtTop()
{
	var dimmerDiv = document.getElementById('dimmer')
	dimmerDiv.style.top = document.body.scrollTop + 'px';
	dimmerDiv.style.left = document.body.scrollLeft + 'px';
	tmrKeepDimmerAtTop = setTimeout("KeepDimmerAtTop()", 10);	
}

function displayFloatingDiv(divId, title, width, height, left, top) 
{
	DivID = divId;

	document.getElementById('dimmer').style.visibility = "visible";

    document.getElementById(divId).style.width = width + 'px';
    document.getElementById(divId).style.height = height + 'px';
    document.getElementById(divId).style.left = left + 'px';
    document.getElementById(divId).style.top = top + 'px';
	
	var addHeader;
	
	if (originalDivHTML == "")
	    originalDivHTML = document.getElementById(divId).innerHTML;
	
	addHeader = '<table style="width:' + width + 'px" class="floatingHeader">' +
	            '<tr><td ondblclick="void(0);" onmouseover="over=true;" onmouseout="over=false;" style="cursor:move;height:18px">' + title + '</td>' + 
	            '<td style="width:18px" align="right"><a href="javascript:hiddenFloatingDiv(\'' + divId + '\');void(0);">' + 
	            '<img alt="Close..." title="Close..." src="close.jpg" border="0"></a></td></tr></table>';
	

    // add to your div an header	
	document.getElementById(divId).innerHTML = addHeader + originalDivHTML;
	
	
	document.getElementById(divId).className = 'dimming';
	document.getElementById(divId).style.visibility = "visible";

}

function hiddenFloatingDiv(divId)
{


	document.getElementById(divId).innerHTML = originalDivHTML;
	document.getElementById(divId).style.visibility='hidden';
	document.getElementById('dimmer').style.visibility = 'hidden';
	
	DivID = "";
}


function init_Dimmer()
{
    // add the div
    // used to dim the page
	buildDimmerDiv();
	__add_handler(window, 'resize', window_ResizeForDimmer, false);
}

function window_ResizeForDimmer()
{
	try
	{
		// recalc center for loading div
		CalcCenter();
		var dimmerDiv = document.getElementById('dimmer');
		if(dimmerDiv != null)
		{
		//Following 2 if condition are addded by sanket(04/10/2006)
		// reason: unnecessaryly avoid defining width and height of dimmer.
		if(dimmerDiv.style.visible!='undefined')
		if(dimmerDiv.style.visible=="visible")
			{
			
			dimmerDiv.style.width = (document.body.offsetWidth - __DimmerWdOffset) + 'px';
			dimmerDiv.style.height = (document.body.offsetHeight - __DimmerHtOffset) +'px';
			}
		}
	}
	catch(ex)
	{
	}	
}

/// end dimmingdiv.js

/// Loading Support
function ShowHideLoadingDiv(Show)
{
	if(Show)
	{
		document.getElementById("divLoading").style.visibility = "visible";
		lowerOtherFloatingWindows();
	} 
	else
	{
		document.getElementById("divLoading").style.visibility = "hidden";
		raiseOtherFloatingWindows();
	}
}

function ShowHideTLCLoadingDiv(Show)
{
	if(Show)
	{
		document.getElementById("divTLCCreationLoading").style.visibility = "visible";
		//lowerOtherFloatingWindows();
	} 
	else
	{
		document.getElementById("divTLCCreationLoading").style.visibility = "hidden";
		//raiseOtherFloatingWindows();
	}
}

function lowerOtherFloatingWindows()
{
	var itemCount = floatingDivs.length;
	if(itemCount >0)
		for(i=0; i<itemCount; i++)
		{
			var dvFloat = floatingDivs[i];
			if(dvFloat.id != 'divLoading')
					dvFloat.style.display = "none";
		}
}

function raiseOtherFloatingWindows()
{
	var itemCount = floatingDivs.length;
	if(itemCount >0)
		for(i=0; i<itemCount; i++)
		{
			var dvFloat = floatingDivs[i];
			if(dvFloat.id != 'divLoading')
					dvFloat.style.display = "";
		}
}




/// Floating Div
var verticalpos="fromtop"
/*
__floatingDivs = new function()
{
	var items = new Array();
	
	this.push = function(item)
	{
		return items.push(item);
	}
	
	this.get_length = function()
	{
		return items.length;
	}
	*/
	FltDivLoaded = function(id)
	{
		if(floatingDivs.length >0)
			for(i=0; i<floatingDivs.length; i++)
			{
				var dvFloat = floatingDivs[i];
				if(dvFloat.id == id)
						return true;
			}
		return false;	
	}

	getFltDiv = function(id)
	{
		if(floatingDivs.length >0)
		{
			for(i=0; i<floatingDivs.length; i++)
			{
				var dvFloat = floatingDivs[i];
				if(dvFloat.id == id)
						return i;
			}
		}
		else
			alert("no items");
		alert("null");
		return floatingDivs.length;		
	}
	/*
}
*/
floatingDivs = new Array();
//alert(floatingDivs);

function JSFX_FloatTopDiv(divId, startX, startY)
		{
			var ns = (navigator.appName.indexOf("Netscape") != -1);
			var d = document;
			function ml(id)
			{
				var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
				if(d.layers)el.style=el;
				el.sP=function(newX,newY){this.style.left=newX; this.style.top=newY; };
				el.x = startX;
				if (verticalpos=="fromtop")
				el.y = startY;
				else{
				el.y = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight;
				el.y -= startY;
				}
				el.repos=function() {stayTopLeft(el.id, startX, startY)}
				return el;
				
			}
			window.stayTopLeft=function(id, startx, starty)
			{
				var ftlObj = document.getElementById(id);
				if (verticalpos=="fromtop"){
				var pY = ns ? pageYOffset : document.body.scrollTop;
				ftlObj.y += (pY + starty - ftlObj.y)/8;
				}
				else{
				var pY = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight;
				ftlObj.y += (pY - starty - ftlObj.y)/8;
				}
				ftlObj.sP(ftlObj.x, ftlObj.y);
				setTimeout("stayTopLeft('" + id + "', " + startx + ", " + starty + ")" , 10);
			}
			var ftlObj;
			ftlObj = ml(divId);
			floatingDivs.push(ftlObj);
			ftlObj.repos()
		}

function update_divMtgPermissions_pos()
{
	try
	{
		if(document.getElementById("divMtgPermissions") != null)
		{
			JSFX_FloatTopDiv("divMtgPermissions", 500, 120)
		}
	} catch(someEx)
	{
	}
}
function update_divGrpPermissions_pos()
{
	try
	{
		if(document.getElementById("divGrpPermissions") != null)
		{
			JSFX_FloatTopDiv("divGrpPermissions", 500, 180)
		}
	} catch(someEx)
	{
	}
}
function update_divOrgPermissions_pos()
{
	try
	{
		if(document.getElementById("divOrgPermissions") != null)
		{
			JSFX_FloatTopDiv("divOrgPermissions", 500, 120)
		}
	} catch(someEx)
	{
	}
}
function update_divInlineUserPickerSideBar_pos()
{
	try
	{
		if(document.getElementById("divInlineUserPickerSideBar") != null)
		{
			JSFX_FloatTopDiv("divInlineUserPickerSideBar", 600, 120)
		}
	} catch(someEx)
	{
	}
}

function update_divInlineOrgChartPickerSideBar_pos()
{
	try
	{
		if(document.getElementById("divInlineOrgChartPickerSideBar") != null)
		{
			JSFX_FloatTopDiv("divInlineOrgChartPickerSideBar", 500, 120);
			
		}
	} catch(someEx)
	{
	}
}

function update_divInlineAddUserPositionSidebar_pos()
{
	try
	{
		if(document.getElementById("divInlineAddUserPositionSidebar") != null)
		{
			JSFX_FloatTopDiv("divInlineAddUserPositionSidebar", 500, 120)
		}
	} catch(someEx)
	{
	}
}

var __Center_PosLeft = -1;
var __Center_PosTop = -1;
function update_divLoading_pos()
{
	try
	{
		if(__Center_PosLeft < 0 || __Center_PosTop < 0)
			CalcCenter();
		if(document.getElementById("divLoading") != null)
		{
			JSFX_FloatTopDiv("divLoading", __Center_PosLeft, __Center_PosTop)
		}
	} catch(someEx)
	{
	}
}

function update_divTLCCreationLoading_pos()
{
	try
	{
		if(__Center_PosLeft < 0 || __Center_PosTop < 0)
			CalcCenter();
		if(document.getElementById("divTLCCreationLoading") != null)
		{
			JSFX_FloatTopDiv("divTLCCreationLoading", __Center_PosLeft-250, __Center_PosTop-72)
		}
	} catch(someEx)
	{
	}
}

//<div id="divBottomRight" style="position:absolute"><img src="javascriptfx.gif"/></div>
update_divMtgPermissions_pos();
update_divGrpPermissions_pos();
update_divOrgPermissions_pos();
update_divInlineOrgChartPickerSideBar_pos();
update_divInlineAddUserPositionSidebar_pos();
update_divInlineUserPickerSideBar_pos();
// Loaded later so that the window is built first
//update_divLoading_pos();

/// Dimming Form elements
		function disableFormElements(boolValu)
		{
			try
			{
			objElems = document.forms[0].elements;
			for(i=0;i<objElems.length;i++){
				objElems[i].disabled = boolValu;
				
				if(objElems[i].tagName.toLowerCase() == "select")
				{
					if(boolValu)
					{
						objElems[i].style.visibility = "hidden" ;
					}
					else
					{
						objElems[i].style.visibility = "visible" ;
					}
				}
			}
			} catch (ex) {
			}
			try
			{
			//Commented by sanket
			//disableLinks(boolValu);
			} catch (ex) {
			}

		}
		
		//var __radMenus = null;
		//var __linksOnForm = null;
		
		function disableLinks(boolValue)
		{
			
			
			objLinks = document.links;
			
			for(i=0;i<objLinks.length;i++){
				disableLink(boolValue, objLinks[i])
			}
			
			if(__radMenus != null || __linksOnForm != null)
			{
				disableRadMenus(boolValue);
				return;
			} 
		}
		
		function disableLink(boolValue, objLinks)
		{
				//objLinks.disabled = boolValue;
				objLinks.style.visibility = (boolValue?"hidden":"visible");
		}
		
		function disableRadMenus(boolValue)
		{
			if(__radMenus != null && __radMenus.length > 0)
				for(i=0; i<__radMenus.length; i++)
				{
					if(!boolValue) // is enabled
						__radMenus[i].Enable();
					else
						__radMenus[i].Disable();
				}
			
			if(__linksOnForm != null && __linksOnForm.length > 0)
				for(i=0; i<__linksOnForm.length; i++)
				{
					disableLink(boolValue, __linksOnForm[i]);
				}
		}

/// EmbedFile api
		function EmbedFile(id, fn, attribs)
		{
			document.write('<embed id="' + id + '"  src="' + fn + '" ' + attribs + '"></embed>');
		}
		
/// Save Scroll Position between Ajax Callbacks
		var __lastScrollXPos, __lastScrollYPos
		function saveScrollPosition()
		{
      
		      if (document.all)
				{
					if (!document.documentElement.scrollLeft)
						__lastScrollXPos = document.body.scrollLeft;
					else
						__lastScrollXPos = document.documentElement.scrollLeft;
               
					if (!document.documentElement.scrollTop)
						__lastScrollYPos = document.body.scrollTop;
					else
						__lastScrollYPos = document.documentElement.scrollTop;
				}   
			else
				{
					__lastScrollXPos = window.pageXOffset;
					__lastScrollYPos = window.pageYOffset;
				}
	   }
   
	   function setScrollPosition()
		{
			window.scrollTo(__lastScrollXPos, __lastScrollYPos);
		}	
	
		function setScrollPos()  
		{   
			setTimeout(setScrollPosition, 100);  
		}  

// Floating Loading Calc Center routing
		function CalcCenter()
		{
			__Center_PosLeft = 0;
			__Center_PosTop = 0;

		      if (document.all)
				{
					// Very crude method (but image size isn't necessarily guaranteed)
					__Center_PosTop = Math.floor(document.body.clientHeight/2);
					__Center_PosLeft = Math.floor(document.body.clientWidth/2);
				}   
			else
				{
					__Center_PosTop = Math.floor(window.outerHeight/2);
					__Center_PosLeft = Math.floor(window.outerWidth/2);
				}				
		}
		
		function WindowTopX(popUpHeight)
		{
		var h=0;
			if (document.all || document.layers) 
				h = screen.availHeight;
			else if (window.innerHeight)
				h = window.innerHeight + 200;
				if(h>popUpHeight)
					topPos = (h-popUpHeight)/2;
				else
					topPos=0;
				
					return topPos;
		}
		function WindowLeftY(popUpWidth)
		{
		var w=0;
			if (document.all || document.layers)
				w = screen.availWidth;
			else if(window.innerWidth)
				w=window.innerWidth;
				var leftPos;
				if(w>popUpWidth)
					leftPos=(w-popUpWidth)/2;
				else
					leftPos=0;
					return leftPos;
		}
		
