function dhtmlBreakOutOfFrame()
{
	if (top.location!= self.location) {
		top.location = self.location.href
	}
}

function dhtmlCloseNoAsk()
{
	if(navigator.userAgent.indexOf('Mozilla') >= 0 | navigator.userAgent.indexOf('Firefox') >= 0)
	{
		window.close();
	}
	else
	{
		window.opener = "none";
		window.open('','_parent',''); 
		window.close();
	}
}


function dhtmlGetPositionX(element)
{
	var x = element.offsetLeft;
	var parent = element;
	while ((parent = parent.offsetParent) != null)
	{
		x = x + parent.offsetLeft;
	}
	return x;
}


function dhtmlGetPositionY(element)
{
	var y = element.offsetTop;
	var parent = element;
	while ((parent = parent.offsetParent) != null)
	{
		y = y + parent.offsetTop;
	}
	return y;
}


function dhtmlHide(targetElementId)
{
	var targetElement = document.getElementById(targetElementId);

	if (targetElement == null)
	{
		alert("Unknown element " + targetElementId);
		return;
	}
	targetElement.style.display = "none";
	targetElement.style.visibility = "hidden";
}


function dhtmlOpenWindow(url, width, height)
{
	window.open(url, null, "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=" + width + ",height=" + height);
}


function dhtmlResizeIFrame(iframeId)
{
	try
	{
		var browserName=navigator.appName; 
		
		var iframe;
		iframe = document.getElementById(iframeId);

		var useStyleObject;
		useStyleObject = webBrowsers_iFrameUsesStyleObject();

		var iframeContents
		iframeContents = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;

		var iframeDimensions
		if (useStyleObject)
		{
			iframeDimensions = iframe.style;
		}
		else
		{
			iframeDimensions = iframe;
		}

		//Dynamically resize the iframe according to its contents
		iframeDimensions.height = iframeContents.body.scrollHeight;
		iframeDimensions.width = iframeContents.body.scrollWidth;
	}
	catch (err)
	{
		alert(err.message);
		window.status = err.message;
	}
}


function dhtmlResizeToFit(containerElement, contentsElement, extraWidth, extraHeight)
{
	try
	{
		var useStyleObject;
		useStyleObject = webBrowsersUsesStyleObject();

		var containerDimensions, contentsDimensions;

		if (useStyleObject)
		{
			containerDimensions = containerElement.style;
			contentsDimensions = contentsElement.style;

			// Even though the style object is available, if it hasn't been set then attempt to use the attributes.
			if (contentsDimensions.width == "" || contentsDimensions.height == "")
			{
				contentsDimensions = contentsElement;
			}
		}
		else
		{
			containerDimensions = containerElement;
			contentsDimensions = contentsElement;
		}

		// Width.
		var width;
		if (contentsDimensions.width.indexOf("px") > 0)
		{
			width = parseInt(contentsDimensions.width.substring(0, contentsDimensions.width.indexOf("px")));
		}
		else
		{
			width = parseInt(contentsDimensions.width);
		}

		// Height.
		var height;
		if (contentsDimensions.height.indexOf("px") > 0)
		{
			height = parseInt(contentsDimensions.height.substring(0, contentsDimensions.height.indexOf("px")));
		}
		else
		{
			height = parseInt(contentsDimensions.height);
		}

		// Add extra if necessary.
		if (extraWidth > 0 || extraHeight > 0)
		{
			width += extraWidth;
			height += extraHeight;
		}

		// Only set 'px' when using the style object.
		if (useStyleObject)
		{
			containerDimensions.width = width + "px";
			containerDimensions.height = height + "px";
		}
		else
		{
			containerDimensions.width = width;
			containerDimensions.height = height;
		}
	}
	catch (err)
	{
		alert(err.message);
		window.status = err.message;
	}
}

function dhtmlSetBoolean(controlElementId, targetElementId)
{
	var controlElement = document.getElementById(controlElementId);
	var targetElement = document.getElementById(targetElementId);

	if (controlElement == null)
	{
		alert("Unknown element " + controlElementId);
		return;
	}

	if (targetElement == null)
	{
		alert("Unknown element " + targetElementId);
		return;
	}

	if (typeof(controlElement) == "object")
	{
		if (controlElement.type == "radio" || controlElement.type == "checkbox") 
		{
			if (controlElement.checked == true)
			{
				targetElement.value = "1";
			}
			else
			{
				targetElement.value = "0";
			}
		}
	}
}


function dhtmlSetHidden(targetElementId, value)
{
	var targetElement = document.getElementById(targetElementId);

	if (targetElement == null)
	{
		alert("Unknown element " + targetElementId);
		return;
	}

	if (typeof(targetElement) == "object" && targetElement.type == "hidden")
	{
		targetElement.value = value;
	}
	else
	{
		alert("Element " + targetElementId + " is not a hidden field.");
		return;
	}
}


function dhtmlSetText(targetElementId, value)
{
	var targetElement = document.getElementById(targetElementId);

	if (targetElement == null)
	{
		alert("Unknown element " + targetElementId);
		return;
	}

	if (typeof(targetElement) == "object" && targetElement.type == "text")
	{
		targetElement.value = value;
	}
	else
	{
		alert("Element " + targetElementId + " is not a textbox.");
		return;
	}
}


function dhtmlShow(targetElementId)
{
	var targetElement = document.getElementById(targetElementId);

	if (targetElement == null)
	{
		alert("Unknown element " + targetElementId);
		return;
	}
	targetElement.style.display = "";
	targetElement.style.visibility = "visible";
}


function dhtmlShowOrHide(controlElementId, targetElementId)
{
	var controlElement = document.getElementById(controlElementId);
	var targetElement = document.getElementById(targetElementId);

	if (controlElement == null)
	{
		alert("Unknown element " + controlElementId);
		return;
	}

	if (targetElement == null)
	{
		alert("Unknown element " + targetElementId);
		return;
	}

	var hide = true;

	if (typeof(controlElement) == "object")
	{
		if (controlElement.type == "radio" || controlElement.type == "checkbox") 
		{
			if (controlElement.checked == true)
			{
				hide = false;
			}
		}
	}

	if (hide)
	{
		dhtmlHide(targetElementId);
	}
	else
	{
		dhtmlShow(targetElementId);
	}
}


function TabHandler(){
}
TabHandler.prototype.handleClick=function(tabPrefix, clickedTab){
	this.deactivateAll(tabPrefix, clickedTab);
	this.activate(tabPrefix, clickedTab);
}
TabHandler.prototype.activate=function(tabPrefix, tab){
	if(this.isActive(tabPrefix, tab)){
		return;
	}else{
		tab.className+=tabPrefix+' '+tabPrefix+'ActiveTab';
		document.getElementById(tabPrefix+'Content'+this.tabNumber(tabPrefix, tab)).className+=tabPrefix+' '+tabPrefix+'VisibleContent';
	}
}
TabHandler.prototype.removeClass=function(target, className){
	var currentClasses=target.className.split(" ");
	var newClasses="";
	for(var i=0; i<currentClasses.length; i++){
		if(currentClasses[i]!=className){
			newClasses+=" "+currentClasses[i];
		}
	}
	target.className=newClasses;
}
TabHandler.prototype.deactivate=function(tabPrefix, tab){
	if(!this.isActive(tabPrefix, tab)){
		return;
	}else{
		this.removeClass(tab, tabPrefix+"ActiveTab");
		this.removeClass(document.getElementById(tabPrefix+'Content'+this.tabNumber(tabPrefix, tab)), tabPrefix+"VisibleContent");
	}
}
TabHandler.prototype.deactivateAll=function(tabPrefix){
	var currentTab=document.getElementById(tabPrefix+'Tab1');
	var i=1;
	while(currentTab!=undefined){
		this.deactivate(tabPrefix, currentTab);
		i++;
		currentTab=document.getElementById(tabPrefix+'Tab'+i.toString());
	}
}
TabHandler.prototype.isActive=function(tabPrefix, tab){
	return Boolean(tab.className.search(tabPrefix+"ActiveTab")!=-1);
}
TabHandler.prototype.tabNumber=function(tabPrefix, tab){
	// "tab" is three letters long
	return tab.id.slice(tabPrefix.length+3, tab.id.length);
}

/************************************************************************************************************************
//Author:		Tainsh Paul
//Date:			21 Jul 08
//Overview:		Given a html element that is a drop down, this function will change the selected Index of the drop down
//				to be the selected Index whose value matches that provided in intValueToChangeTo
//
//************************************************************************************************************************/
function dhtml_setSelectedIndexTo(objElementToChange,intValueToChangeTo) {
	if (objElementToChange.options.length != 0) {
		for (var intI = 0; intI < objElementToChange.options.length; intI++) {
		  if (objElementToChange.options[intI].value == intValueToChangeTo) {
			objElementToChange.options[intI].selected = true;
			break;
		  }
		}
	} 
}


function  dhtml_getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
} // Ends the "getSelectedRadio" function