function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function HelpOff(){

//	var helpButton= document.getElementById('helpToggle');
//	
//	set_cookie("help","off");
//
//	helpButton.src= "images/help-pointer-off.gif";
//
//	for( var i = 1; i<=15; i++){
//		var element = "help"+i+"div";
//		if (document.getElementById(element)==null){
//			continue;
//		}
//		var e = document.getElementById(element);
//		document.body.removeChild(e);
//	}
	
}

function HelpOn(){

	//var helpButton= document.getElementById('helpToggle');
	
	set_cookie("help","on");

	//if switch back to toggle help on/off
	//switch image to help-pointer.gif
	//helpButton.src= "images/help-pointer-off.gif";

//	for( var i = 1; i<=15; i++){
//		var element = "help"+i;
//		
//		if (document.getElementById(element)==null){
//			continue;
//		}
//		var placement=findPos(document.getElementById(element));
//
//		var div = document.createElement("div");
//		div.style.background = "#dedede";
//		div.style.position = "absolute";
//		div.style.top = placement[1]+ "px";
//		if (i==4) {
//			div.style.left = (placement[0]-25) +document.getElementById(element).offsetWidth+ 1+"px";
//		} else {
//			div.style.left = placement[0] +document.getElementById(element).offsetWidth+ 3+"px";
//		}
//		div.style.width = "1px";
//		div.style.height = "1px";
//		div.zindex= 1;
//		div.setAttribute("id",element+"div");
//		div.onmouseover=Function("showHelpDiv('"+element+"')");	
//		div.onmouseout=Function("hidePopup('helpDiv')");
//		div.innerHTML = "<img src=images/help-pointer-off.gif></img>";
//
//		document.body.appendChild(div);
//		
//		}

	
}

function CheckSize(){

	var h = get_cookie("help");
	
	if (h == null) {
		set_cookie("help","on");
		h = get_cookie("help");
	}
	
	if (h == "on"){

		// -- Remove help divs
		HelpOff();

		// -- Add help divs
		HelpOn();

	}
	
}

function set_cookie ( name, value, exp_y, exp_m, exp_d, path, domain, secure )
{
  var cookie_string = name + "=" + escape ( value );

  if ( exp_y )
  {
    var expires = new Date ( exp_y, exp_m, exp_d );
    cookie_string += "; expires=" + expires.toGMTString();
  }
  if ( path )
        cookie_string += "; path=" + escape ( path );
  if ( domain )
        cookie_string += "; domain=" + escape ( domain );
  if ( secure )
        cookie_string += "; secure";
  
  document.cookie = cookie_string;
}
function delete_cookie ( cookie_name )
{
  var cookie_date = new Date ( );  // current date & time
  cookie_date.setTime ( cookie_date.getTime() - 1 );
  document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}
function get_cookie ( cookie_name )
{
  var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );

  if ( results )
    return ( unescape ( results[2] ) );
  else
    return null;
}

function showPopup(p)
{
	greyout(true);
	var pvar=document.getElementById(p);
	if (pvar==null){
		alert(pvar);
		return;
	}

	pvar.style.display = 'block';
	showCenter(pvar);

	var url ="Portal?ACTION=CONTENT&DIV="+pvar.id; 
	pvar.innerHTML = "";
	http.open('GET', url, true);
    http.setRequestHeader('User-Agent', 'My XMLHTTP Agent');
    pvar.style.display='block';;
  	http.onreadystatechange=function() {
	    if(http.readyState == 4) {
	    	 pvar.innerHTML = http.responseText;
	    }
   }
 	http.send(null);
}

function showHelp(p)
{
	greyout(true);
	var pvar=document.getElementById('fxMarketing');
	if (pvar==null){
		alert(pvar);
		return;
	}

	pvar.style.display = 'block';
	showCenter(pvar);

	var url ="Portal?ACTION=CONTENT&DIV="+p; 
	pvar.innerHTML = "";
	http.open('GET', url, true);
    http.setRequestHeader('User-Agent', 'My XMLHTTP Agent');
    pvar.style.display='block';;
  	http.onreadystatechange=function() {
	    if(http.readyState == 4) {
	    	 pvar.innerHTML = http.responseText;
	    }
   }
 	http.send(null);
}

function getAbsLeft(el){
var l=el.offsetLeft;
  while((el=el.parentNode) && el!=document)
    l+=el.offsetLeft;
  return l;
}

function getAbsTop(el){
var t=el.offsetTop;
  while((el=el.parentNode) && el!=document)
    t+=el.offsetTop;
  return t;
}

function getViewPortHeight() {
	 var viewportheight;
	 
	 // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight	 
	 if (typeof window.innerHeight != 'undefined')
	 {
	      viewportheight = window.innerHeight;
	 }
	 
	// IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)

	 else if (	typeof document.documentElement != 'undefined' && 
			 	typeof document.documentElement.clientHeight != 'undefined' && 
			 	document.documentElement.clientHeight != 0) {
		 
	       viewportheight = document.documentElement.clientHeight;
	 }	 
	 // older versions of IE	 
	 else
	 {
	       viewportheight = document.getElementsByTagName('body')[0].clientHeight;
	 }

	 return viewportheight;
}

function getViewPortWidth() {
	
	var viewportwidth;
	 
	// the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
	 
	if (typeof window.innerWidth != 'undefined') {
	      viewportwidth = window.innerWidth;
	}
	 
	// IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)

	 else if (	typeof document.documentElement != 'undefined' && 
			 	typeof document.documentElement.clientWidth != 'undefined' && 
			 	document.documentElement.clientWidth != 0)
	 {
	       viewportwidth = document.documentElement.clientWidth;
	 }
	 
	 // older versions of IE
	 else
	 {
	       viewportwidth = document.getElementsByTagName('body')[0].clientWidth;
	 }

	return viewportwidth;
}


var popupTimerHandle = null;

function hideHelpBox() {
    popupTimerHandle = setTimeout("reallyHideBox('helpDiv');", 250);
}

function reallyHideBox() {
    divObj = document.getElementById('helpDiv');
    divObj.style.display = 'none';
}

function showHelpDiv(p) {

	var placement=findPos(document.getElementById(p));
	
	var helpDivElement = document.getElementById(p);
	
	var pvar = document.getElementById('helpDiv');
	if (pvar == null){
		return;
	}

	var h = getViewPortHeight();
	var w = getViewPortWidth();

	if (popupTimerHandle != null) {
        clearTimeout(popupTimerHandle);
        popupTimerHandle = null;
    }

	// ---
	// --- AJAX Parameters get Set
	// ---
	var url ="Portal?ACTION=CONTENT&DIV="+p; 
	pvar.innerHTML = "";
	http.open('GET', url, true);
    http.setRequestHeader('User-Agent', 'My XMLHTTP Agent');

    // ---
    // --- AJAX Callback Function
    // ---
  	http.onreadystatechange=function() {
	    if(http.readyState == 4) {
	  
	    	pvar.innerHTML = http.responseText;
	    	 
	    	// Only make visible if the AJAX returned content
    		pvar.style.display = 'block';
    		
    		pvar.style.left = (placement[0] + document.getElementById(p).offsetWidth + 35) + "px";
    		pvar.style.top = (placement[1]+ 25) + "px";

    		
    		// off screen on right
	    	if ((getAbsLeft(pvar) + pvar.offsetWidth + 35) > w) {
	    		var adjL = getAbsLeft(pvar) - pvar.offsetWidth - 35;
	    		if (adjL < 0) {
	    			adjL = 0;
	    		}
	    		pvar.style.left = adjL + "px";	    		
	    	}

    		// off screen on bottom
	    	if ((getAbsTop(pvar) + pvar.offsetHeight + 25) > h) {
	    		var adjH = getAbsTop(pvar) - pvar.offsetHeight - 25;
	    		if (adjH < 0) {
	    			adjH = 0;
	    		}
	    		pvar.style.top = adjH + "px";	    		
	    	}
	    }
    }
  	
  	http.send(null);
  	
}
function hidePopup(p)
{
	helpRollOverActive=false;
	greyout(false);
	document.getElementById(p).style.display = 'none';
	if (p=='fxMarketing') {
		window.location="Now.jsp?view=0.0";
	}

}
function hidePopupThenView(p,v)
{
	greyout(false);
	document.getElementById(p).style.display = 'none';
	window.location.href = "Now.jsp?view="+v;

}

function Search(e) {
	var keynum;
	var keychar;
	var numcheck;

	var expElement = document.getElementById('expression');
	
	expElement.setAttribute("autocomplete","off");
	
	if(window.event) // IE
	  {
	  keynum = e.keyCode;
	  }
	else if(e.which) // Netscape/Firefox/Opera
	  {
	  keynum = e.which;
	  }
	keychar = String.fromCharCode(keynum);

	var searchElement = document.getElementById('SearchResults');
	
	//MAKE SURE EXPRESSION SOMETHING REASONABLE
	if (expElement.value.length < 3 ){
		searchElement.innerHTML = "";
		searchElement.style.display = "none";
		return;
	}

	showSearchResults(expElement,'SearchResults');
	
	var url = "Portal?ACTION=TOPIC_SEARCH&expression=" + expElement.value;

	http.open('GET', url, true);
  	http.onreadystatechange=function() {
    if(http.readyState == 4) {
    	var response = http.responseText;
    	if (response != null) {
    		response = trim(response);
    		if (response != null) {
    			searchElement.innerHTML = http.responseText;
    			if (response.length > 0) {
    				searchElement.style.display = "";
    			} else {
    				searchElement.style.display = "none";
    			}
    		}
    	}
    }
  }
  http.setRequestHeader('User-Agent', 'My XMLHTTP Agent');
  http.send(null);

}

function hideSearchResults(){
	var test = document.getElementById("searchResults")
	//test.style.display = "none";
}

function showSearchResults(parent,named)
{

	var searchResults = document.getElementById(named);

	searchResults.style.position="absolute";
//	searchResults.style.display = "";

		var placement = findPos(parent);
		searchResults.style.left = placement[0] + "px";
		searchResults.style.width = 510;
		searchResults.style.top = placement[1]+ 26+ "px";

}

function clickTopic(id,symbol,expression){

	var expr = expression;
	expr = expr.replace(" ","%20");
	var url = "SearchResults.jsp?ACTION=SEARCH&TOPIC_ID="+id+"&expression="+symbol+"&description="+expr;
	window.location.href = url;

}
function clickSearchResults(expression){
	
	expression = expression.replace(" ","%20");
	var url = "SearchResults.jsp?ACTION=SEARCH&TOPIC_ID=0&expression="+expression+"&description="+expression;

	window.location.href = url;
	
}

function ValidateSubmit(){
	var expr = document.getElementById("expression");
	if (expr.value.length<3 || expr.value.length>50){
		
		return false;
	}else{
		return true;
	}
}

function greyout(d,z){
var obj = document.getElementById('greyout');

if(!obj)
	{
	appendElement(document.body,'div','greyout');
	obj = document.getElementById('greyout');
	obj.style.position = 'absolute';
	obj.style.top = '0px';
	obj.style.left = '0px';
	obj.style.background = '#111';
	obj.style.opacity = '.5';
	obj.style.filter = 'alpha(opacity=50)';
	}
if(d)
{
	var ch = document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;
	var cw = document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth;
	var sh = document.documentElement.scrollHeight ? document.documentElement.scrollHeight : document.body.scrollHeight;
	if(document.body.scrollHeight) sh = Math.max(sh,document.body.scrollHeight)
	var sw = document.documentElement.scrollWidth ? document.documentElement.scrollWidth : document.body.scrollWidth;
	if(document.body.scrollWidth) sh = Math.max(sh,document.body.scrollWidth)
	var wh = window.innerHeight ? window.innerHeight : document.body.offsetHeight;
	if(!z){ z = 50 }
	obj.style.zIndex = z;
	obj.style.height = Math.max(wh,Math.max(sh,ch))+'px';
	obj.style.width = Math.max(sw,cw)+'px';
	obj.style.display = 'block';
	addEvent(window,'resize',greyoutResize);
}
else
{
	obj.style.display = 'none';
	removeEvent(window,'resize',greyoutResize);
}
}

function greyoutResize()
{
	var ch = document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;
	var cw = document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth;
	var sh = document.documentElement.scrollHeight ? document.documentElement.scrollHeight : document.body.scrollHeight;
	if(document.body.scrollHeight){ sh = Math.max(sh,document.body.scrollHeight)}
	var sw = document.documentElement.scrollWidth ? document.documentElement.scrollWidth : document.body.scrollWidth;
	if(document.body.scrollWidth){ sh = Math.max(sh,document.body.scrollWidth)}
	var wh = window.innerHeight ? window.innerHeight : document.body.offsetHeight;
	var obj = document.getElementById('greyout');
	obj.style.height = ch+'px';
	obj.style.width = cw+'px';
	obj.style.height = Math.max(wh,Math.max(sh,ch))+'px';
	obj.style.width = Math.max(sw,cw)+'px';
}

function addEvent(obj ,evt, fnc)
{
	if (obj.addEventListener)
	obj.addEventListener(evt,fnc,false);
	else if (obj.attachEvent)
	obj.attachEvent('on'+evt,fnc);
	else
	return false;
return true;
}

function removeEvent(obj ,evt, fnc)
{
	if (obj.removeEventListener)
	obj.removeEventListener(evt,fnc,false);
	else if (obj.detachEvent)
	obj.detachEvent('on'+evt,fnc);
	else
	return false;
	return true;
}


function appendElement(node,tag,id,htm)
{
	var ne = document.createElement(tag);
	if(id) ne.id = id;
	if(htm) ne.innerHTML = htm;
	node.appendChild(ne);
}


window.size = function()
{
	var w = 0;
	var h = 0;
	//IE
	if(!window.innerWidth)
	{
	//strict mode
	if(!(document.documentElement.clientWidth == 0))
	{
	w = document.documentElement.clientWidth;
	h = document.documentElement.clientHeight;
	}
	//quirks mode
	else
	{
	w = document.body.clientWidth;
	h = document.body.clientHeight;
	}
	}
	//w3c
	else
	{
	w = window.innerWidth;
	h = window.innerHeight;
	}
	return {width:w,height:h};
}
window.center = function()
{
	var hWnd = (arguments[0] != null) ? arguments[0] : {width:0,height:0};
	var _x = 0;
	var _y = 0;
	var offsetX = 0;
	var offsetY = 0;
	//IE
	if(!window.pageYOffset)
	{
	//strict mode
	if(!(document.documentElement.scrollTop == 0))
	{
	offsetY = document.documentElement.scrollTop;
	offsetX = document.documentElement.scrollLeft;
	}
	//quirks mode
	else
	{
	offsetY = document.body.scrollTop;
	offsetX = document.body.scrollLeft;
	}
	}
	//w3c
	else
	{
	offsetX = window.pageXOffset;
	offsetY = window.pageYOffset;
	}
	_x = ((this.size().width-hWnd.width)/2)+offsetX;
	_y = ((this.size().height-hWnd.height)/2)+offsetY;
	return{x:_x,y:_y};
}
function showCenter(divid)
	  {
	var point = window.center({width:100,height:100})

	  var divHeight = point.y - (divid.offsetHeight/2);
	  var divWidth = point.x - (divid.offsetWidth/2);

	  divid.style.position = "absolute";
	  divid.style.top = divHeight + "px";
	  divid.style.left = divWidth + "px";

}	

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

