
/* global_javascript.js
 *	Idetix Webgen global code
 * Rewritten by: Nicholas Michalek
 */

var onTable=false;
var onLabel=false;
var prevDD=null;
var prevDDparent=null;
var d=document;

var isIE=(typeof d.all != 'undefined');
var isIE7=navigator.userAgent.indexOf("MSIE 7.") != -1;
// for debugging on all browsers:
//isIE=true; isIE7=false;
//alert("DEBUG: isIE=" + isIE + ", and isIE7=" + isIE7);

function navigateWithQuickLinks(formElement)
{
	var url=formElement.value;
	if (url == '') return;
	var target="";
	var pos=url.indexOf("|");
	if (pos != -1)
	{
		target=url.substring(pos+1);
		url=url.substring(0,pos);
	}
	url=replacesubstring(url,"../","");
	RZgoto(url, target);
}

function RZsubstring(str, startpos, endpos)
{
	if (typeof endpos == 'undefined') endpos=str.length + 1

	//----- Validate input string
	if (str == null || str.length == 0)	//if null or empty string
		return "";						//...return empty string

	//----- Validate end position
	if (endpos > str.length )			//greater than string length
		endpos=str.length;			//...set to length

	else if( endpos <= 0 )				//if end position before 1st character
		return "";						//...return empty string

	//----- Validate start position
	if( startpos >= endpos )  			//if start position greater than ending position
		return "";						//...return empty string

	else if (startpos < 0) 				//if start position less than 0
		startpos=0;					//...assume 0

	//----- Return the substring
	return str.substring(startpos,endpos);
}

function replacesubstring( inStr, fromString, toString )
{
	var pos=0
	if (inStr == null
	|| typeof inStr.length == 'undefined' //true or false
	|| inStr.length == 0) return '';

	var fromLen=fromString.length
	if (fromLen == 0) return inStr

	while (true)
	{
		pos=inStr.indexOf(fromString,pos)
		if (pos == -1) break
		inStr=RZsubstring( inStr, 0, pos )
		      + toString
		      + RZsubstring( inStr, pos + fromLen )
		pos += toString.length
	}
	return inStr
}

function FixMenu()
{
	/*
	 *		ALL OF THIS NEEDS TO BE CALCULATED AND DONE
	 *		IN THE BACK END. ALL OF THIS JAVASCRIPT IS UNNECESSARY.
	 */

	//select left side  menulinks
	var html_left=d.getElementById("browseas").getElementsByTagName("a");
	//select right side  menulinks
	var html_right=d.getElementById("maintabs").getElementsByTagName("a");

	// calculate number of characters allowed per line
	var length_to_verify=50/(html_left.length+html_right.length);

	var space=/&nb[s]p;/g;

	//left side menu
	for (var i=0; i<html_left.length; ++i)
	{
		html_left[i].innerHTML=html_left[i].innerHTML.replace( space, ' ' );
		var alink=html_left[i].innerHTML;
		html_left[i].style.textAlign='center';

		if (alink.length>length_to_verify)
		{
			var asplit=alink.indexOf(" ",length_to_verify);
			if (asplit!=-1) html_left[i].innerHTML=alink.substr(0,asplit)+"<br>"+alink.substr(asplit,alink.length);
		}
	}

	//right side menu
	for (var i=0; i<html_right.length; ++i)
	{
		html_right[i].innerHTML=html_right[i].innerHTML.replace( space, ' ' );
		var alink=html_right[i].innerHTML;
		html_right[i].style.textAlign='center';

		if(alink.length>length_to_verify)
		{
			var asplit=alink.indexOf(" ",length_to_verify);
			if (asplit!=-1) html_right[i].innerHTML=alink.substr(0,asplit)+"<br>"+alink.substr(asplit,alink.length);
		}
	}

}

// ###############################################################################
function getArrayForTabNumber(dropdownlist, tabNumber)
{
	var resultArray=new Array();
	for (var i=0; i < dropdownlist.length; ++i)
	{
		if (dropdownlist[i].tabNumber == tabNumber)
		{
			resultArray.length++;
			resultArray[resultArray.length - 1]=dropdownlist[i];
		}
	}
	return resultArray;
}

function RZgoto(url, target)
{
	url=RZbaseurl(url)
	if (target != 'true' && target != '_new')
		location=url;
	else
		window.open(url)	//always new window, no features
//		RZpopupUrl( '', url )	//always new window, no features
}

function RZbaseurl(url)
{
	//----- Append baseurl to url (location does not honor html <link...> tag)
	//		TODO: validate all browsers ignore html <link...> tag
	//		(also may need to consider links starting with ../)
	if (url.substring(0,4) != "http" && url.substring(0,4) != "www.")
		url=RZ.baseurlprefix + url
	return url;
}

function dropChange(tabLabel)
{
	if ( prevDD )
	{
		if (isIE && !isIE7)
			prevDDparent.appendChild(prevDD);
		else
			prevDD.style.display="none";
	}

	prevDD=d.getElementById('dd'+tabLabel);
	if (prevDD)
	{
		prevDDparent=prevDD.parentNode;

		if (isIE && !isIE7)
		{
			horizDrop=d.getElementById("horizdrop");
			horizDrop.appendChild(prevDD);
		}
		else
			prevDD.style.display="block";
	}
}

function revertDrop()
{
	if (!onTable && !onLabel && prevDD)
	{
		if (isIE && !isIE7)
			prevDDparent.appendChild(prevDD);
		else
			prevDD.style.display="none";
	}
}

function clearSearch(theText, defaultVal)
{
	if (theText.value == defaultVal)
		theText.value="";
}
