﻿// JScript File

function alignMenu(id)
{
    var linkCell = getElement(id + 'LinkElement');
	var spanMenu = getElement(id);
	    
	var cellY = getElementOffsetTop(id + 'LinkElement');
	var cellX = getElementOffsetLeft(id + 'LinkElement');
	var adjustedY = cellY + linkCell.offsetHeight;// + 3;
	var adjustedX = cellX;
	adjustedX = cellX - (0.5 * (spanMenu.offsetWidth - linkCell.offsetWidth));
	
	if (adjustedX < 0)
	    adjustedX = 0;
	    
	if (adjustedY < 0)
	    adjustedY = 0;
	    
	if (spanMenu.style)
	{
	    spanMenu.style.left = adjustedX + "px";
	    spanMenu.style.top = adjustedY + "px";
	}
	
	/*if (spanMenu.left)
	{
	    spanMenu.left = adjustedX;
	    spanMenu.top = adjustedY;
	}*/
}

function getElementOffsetLeft(id)
{
    var offsetElement = getElement(id);
	var offsetLeft = 0;
	while (offsetElement) 
	{
		offsetLeft += offsetElement.offsetLeft;
		offsetElement = offsetElement.offsetParent;
	}
	
	if (navigator.userAgent.indexOf("Mac") != -1 && typeof document.body.leftMargin != "undefined") 
	{
		offsetLeft += document.body.leftMargin;
	}
	
	
	return offsetLeft;
}

function getElementOffsetTop(id)
{

    var offsetElement = getElement(id);
	var offsetTop = 0;
	while (offsetElement) 
	{
		offsetTop += offsetElement.offsetTop;
		offsetElement = offsetElement.offsetParent;
	}
	
	if (navigator.userAgent.indexOf("Mac") != -1 && typeof document.body.leftMargin != "undefined") 
	{
		offsetTop += document.body.topMargin;
	}
	
	return offsetTop;
}

/*function getElementPosition(id) 
{
	var offsetElement = getElement(id);
	var offsetLeft = 0;
	var offsetTop = 0;
	while (offsetElement) 
	{
		offsetLeft += offsetElement.offsetLeft;
		offsetTop += offsetElement.offsetTop;
		offsetElement = offsetElement.offsetParent;
	}
	
	if (navigator.userAgent.indexOf("Mac") != -1 && typeof document.body.leftMargin != "undefined") 
	{
		offsetLeft += document.body.leftMargin;
		offsetTop += document.body.topMargin;
	}
	
	return {left:offsetLeft, top:offsetTop};
}*/

function openMenu(id, hideDropDown)
{
    alignMenu(id);
    var spanMenu = getElement(id);
    var dropDown = getElement(hideDropDown);
    var menuState = getElement("hid" + id);
    if (menuState.value == 0)
    {
        spanMenu.style.visibility = "visible";
        //dropDown.style.visibility = "hidden";
        menuState.value = 1
        //closeMenu(id);
    }
}

function closeMenu(id, hideDropDown)
{
    var spanMenu = getElement(id);
    var dropDown = getElement(hideDropDown);
    var menuState = getElement("hid" + id);
    if (menuState.value == 0)
    {
	    spanMenu.style.visibility = "hidden";
        //dropDown.style.visibility = "visible";	
    }
    else
        setTimeout("closeMenu('" + id + "', '" + hideDropDown + "');", 1000);
}

function scheduleClose(id) //, hideDropDown)
{
    var menuState = getElement("hid" + id);
    menuState.value = 0;
    closeMenu(id) //, hideDropDown);
    //setTimeout("closeMenu('" + id + "', '" + hideDropDown + "');", 1000);
}



function getElement(elementID)
{
	if (document.getElementById)
		return document.getElementById(elementID);
	else if (document.all)
		return document.all(elementID);
	else
		return null;
}

// Settings

function getWindowDimensions() 
{
	var myWidth = 0
	var myHeight = 0;
	
	if(typeof(window.innerWidth) == 'number') 
	{
		//Non-IE
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
	} 
	else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) 
	{
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
	} 
	else if (document.body && (document.body.clientWidth || document.body.clientHeight))
	{
		//IE 4 compatible
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
	}
  
  return {width:myWidth, height:myHeight};
}

function getElementDimensions(id) 
{
	var element = getElement(id);
	var myWidth = -1;
	var myHeight = -1;
	
	if (element)
	{
		myWidth = element.offsetWidth;
		myHeight = element.offsetHeight;
	}
	
	return {width:myWidth, height:myHeight};
}

function getElementPosition(id) 
{
	var offsetElement = getElement(id);
	var offsetLeft = 0;
	var offsetTop = 0;
	while (offsetElement) 
	{
		offsetLeft += offsetElement.offsetLeft;
		offsetTop += offsetElement.offsetTop;
		offsetElement = offsetElement.offsetParent;
	}
	
	if (navigator.userAgent.indexOf("Mac") != -1 && typeof document.body.leftMargin != "undefined") 
	{
		offsetLeft += document.body.leftMargin;
		offsetTop += document.body.topMargin;
	}
	
	return {left:offsetLeft, top:offsetTop};
}

function horizontalAlignElement(id, alignment)
{
	var elementToAlign = getElement(id);

	var elementWidth = elementToAlign.offsetWidth;
	var screenWidth = getWindowDimensions().width;
	if (elementToAlign)
	{
		switch (alignment)
		{
			case 'center':
				var left = 0.5 * (screenWidth - elementWidth);
				elementToAlign.style.left = left + 'px';
				break;
			case 'right':
				var left = screenWidth - elementWidth - 2;
				elementToAlign.style.left = left + 'px';
				break;
			default:
				elementToAlign.style.left = '0px';
				break;
		}
	}
}

function showElement(id)
{
	if (document.getElementById)
	{
		if (document.getElementById(id).style.display == 'none')
			document.getElementById(id).style.display = '';
			
		if (document.getElementById(id).style.visibility == 'hidden')
			document.getElementById(id).style.visibility = 'visible';
	}
	else if (document.layers)
	{
		document.layers[id].display = '';
		document.layers[id].visibility = 'show';
	}
	
}

function hideElement(id)
{
	if (document.getElementById)
	{
	    document.getElementById(id).style.display = 'none';
		document.getElementById(id).style.visibility = 'hidden';
	}
	else if (document.layers)
	{
		document.layers[id].display = 'none';
		document.layers[id].visibility = 'hide';
	}
	else if (document.all)
	{
		eval("document.all." + id + ".style.display = 'none'");
	}
	
}

var settingsVisible = false;

function alignSettings(idSettings, idSettingsPopup)
{
    horizontalAlignElement(idSettingsPopup, 'right');
    
    var settingsPosition = getElementPosition(idSettings);
    var settingsDimensions = getElementDimensions(idSettings);
    
    var top = settingsPosition.top + settingsDimensions.height + 2;
    
    var elementToAlign = getElement(idSettingsPopup);
    elementToAlign.style.top = top + 'px';
}

function showSettings(idSettingsPopup)
{
    settingsVisible = true;
    showElement(idSettingsPopup);
}

function hideSettings(idSettingsPopup)
{
    settingsVisible = false;    
    hideElement(idSettingsPopup);    
}

function toggleSettings(idSettingsPopup)
{
    if(settingsVisible)
    {
        hideSettings(idSettingsPopup);
    }
    else
    {
        showSettings(idSettingsPopup);
    }
}

function disableEnterKey(evt) {
  var evt = (evt) ? evt : ((event) ? event : null);
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
  if ((evt.keyCode == 13))
  {
    return false;
  }
}

function enableEnterKey(evt, targetButtonID) {
    var evt = (evt) ? evt : ((event) ? event : null);
    
    if (targetButtonID && evt.keyCode == 13) {
        var postBackElement = getElement(targetButtonID);
        if (postBackElement) {
            __doPostBack(postBackElement.name, '');
        }
    }
    
    return true;
}

function allowEnter(evt) {    
    return true;
}

document.onkeypress = disableEnterKey; 

var textAreas = document.getElementsByTagName("textarea");
for (i = 0; i < textAreas.length; i++)
{
	textAreas[i].onkeypress = allowEnter;
}

var textBoxes = document.getElementsByTagName("input");
for (i = 0; i < textBoxes.length; i++)
{
	if (textBoxes[i].type == 'text')
		textBoxes[i].onkeypress = allowEnter;
}