function get_el_value ( name, def )
{
	if ( document.getElementById(name) )
	{
		return document.getElementById(name).value;
	} else {
		if ( def )
		{
			return def;
		}
	}
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function createCookie(name,value,days)
{

	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function encode(str)
{
     return escape(str.replace(/ /g, "+"));
}

function decode(str)
{
     return unescape(str.replace(/\+/g, " "));
}

function show_edit(v)
{
	document.getElementById(v+'_content').style.display = 'none';
	document.getElementById(v+'_edit').style.display = 'block';
}

function show_content(v)
{
	document.getElementById(v+'_edit').style.display = 'none';
	document.getElementById(v+'_content').style.display = 'block';
}

var tlm_opener_save = '';
function toggle_lyr_multi ( layer_name, tlm_opener )
{

	if ( is_layer_visible(layer_name) == 1 ) // it's open
	{
		if ( tlm_opener_save == tlm_opener ) // the link they just clicked opened it, so hide
		{
			lyr_hide ( layer_name );
			tlm_opener_save = ''; // it's closed, so no opener is saved
		} else { // otherwise leave it open, it will be populated with other data
			tlm_opener_save = tlm_opener; // save new opener
		}
	} else { // not open
		tlm_opener_save = tlm_opener;
		lyr_unhide ( layer_name );
	}


}

function is_layer_visible ( layer_name )
{
    if(document.layers)	   //NN4+
    {
    	if ( document.layers[layer_name].display == 'block' )
    	{
       		return 1;
       	} else {
       		return 0;
       	}
    } else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {
        var obj = document.getElementById(layer_name);
        if ( obj.style.display == 'block' )
        {
        	return 1;
        } else {
        	return 0;
        }
    } else if(document.all)	// IE 4
    {
    	if ( document.all[layer_name].style.display == 'block' )
    	{
        	return 1;
        } else {
			return 0;
        }
    }
}



function toggle_lyr(szDivID) // 1 visible, 0 hidden
{
    if(document.layers)	   //NN4+
    {
    	if ( document.layers[szDivID].display == 'block' )
    	{
       		document.layers[szDivID].display = "none";
       	} else {
       		document.layers[szDivID].display = "block";
       	}
    }
    else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {
        var obj = document.getElementById(szDivID);
        if ( obj.style.display == 'block' )
        {
        	obj.style.display = "none";
        } else {
        	obj.style.display = "block";
        }
    }
    else if(document.all)	// IE 4
    {
    	if ( document.all[szDivID].style.display == 'block' )
    	{
        	document.all[szDivID].style.display = 'none';
        } else {
			document.all[szDivID].style.display = 'block';
        }
    }
}

function toggle_layers_w_same_name(classname)
{

	var all_w_id = getElementbyClass(classname);

	for ( i=0; i<all_w_id.length; i++ )
	{
		id = all_w_id[i].id;
	    if(document.layers)	   //NN4+
	    {
    		if ( document.layers[id].display == 'block' )
    		{
       			document.layers[id].display = "none";
       		} else {
       			document.layers[id].display = "block";
       		}
	    }
	    else if(document.getElementById)	  //gecko(NN6) + IE 5+
	    {
	        var obj = document.getElementById(id);
	        if ( obj.style.display == 'block' )
	        {
        		obj.style.display = "none";
	        } else {
        		obj.style.display = "block";
	        }
	    }
	    else if(document.all)	// IE 4
	    {
    		if ( document.all[id].style.display == 'block' )
    		{
        		document.all[id].style.display = 'none';
	        } else {
				document.all[id].style.display = 'block';
	        }
	    }
	}
}


function open_span_with_iframe_src (span,iframe,src) // 1 visible, 0 hidden
{
    if(document.layers)	   //NN4+
    {
       	document.layers[span].display = "block";
       	document.layers[iframe].src=src;
    }
    else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {
        var sobj = document.getElementById(span);
        var iobj = document.getElementById(iframe);
       	sobj.style.display = "block";
       	iobj.src=src;
    }
    else if(document.all)	// IE 4
    {
		document.all[span].style.display = 'block';
		document.all[iframe].src=src;
    }
}



function toggle_span_with_iframe_src (span,iframe,src) // 1 visible, 0 hidden
{
    if(document.layers)	   //NN4+
    {
    	if ( document.layers[span].display == 'block' )
    	{
       		document.layers[span].display = "none";
       	} else {
       		document.layers[span].display = "block";
       		document.layers[iframe].src=src;
       	}
    }
    else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {
        var sobj = document.getElementById(span);
        var iobj = document.getElementById(iframe);
        if ( sobj.style.display == 'block' )
        {
        	sobj.style.display = "none";
        } else {
        	sobj.style.display = "block";
        	iobj.src=src;
        }
    }
    else if(document.all)	// IE 4
    {
    	if ( document.all[span].style.display == 'block' )
    	{
        	document.all[span].style.display = 'none';
        } else {
			document.all[span].style.display = 'block';
			document.all[iframe].src=src;
        }
    }
}




function toggle_iframe_with_src(szDivID,src) // 1 visible, 0 hidden
{
    if(document.layers)	   //NN4+
    {
    	if ( document.layers[szDivID].display == 'block' )
    	{
       		document.layers[szDivID].display = "none";
       	} else {
       		document.layers[szDivID].display = "block";
       		document.layers[szDivID].src=src;
       	}
    }
    else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {
        var obj = document.getElementById(szDivID);
        if ( obj.style.display == 'block' )
        {
        	obj.style.display = "none";
        } else {
        	obj.style.display = "block";
        	obj.src=src;
        }
    }
    else if(document.all)	// IE 4
    {
    	if ( document.all[szDivID].style.display == 'block' )
    	{
        	document.all[szDivID].style.display = 'none';
        } else {
			document.all[szDivID].style.display = 'block';
			document.all[szDivID].src=src;
        }
    }
}


function lyr_hide(szDivID) // 1 visible, 0 hidden
{
    if(document.layers)	   //NN4+
    {
   		document.layers[szDivID].display = "none";
    }
    else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {
        var obj = document.getElementById(szDivID);
       	obj.style.display = "none";
    }
    else if(document.all)	// IE 4
    {
		document.all[szDivID].style.display = 'none';
    }
}

function lyr_unhide(szDivID)
{
    if(document.layers)	   //NN4+
    {
   		document.layers[szDivID].display = "block";
    }
    else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {
        var obj = document.getElementById(szDivID);
       	obj.style.display = "block";
    }
    else if(document.all)	// IE 4
    {
		document.all[szDivID].style.display = 'block';
    }
}

function showSubMenu(e,o) {

	/**
	 * usage: <div class="sItem" style="display:block" onclick="showSubMenu(event,this)">
	 * also need:
	 *	div.sItem
	 *	{
	 *	margin-left:10px;
	 *	font-family: Verdana, Arial, Helvetica, sans-serif;
	 *	font-size: 11px;
	 *	font-style: normal;
	 *	font-weight: normal;
	 *	color: #333333;
	 *	cursor:pointer;
	 *	cursor:hand;
	 *	}
	 */
	// e = event object in W3C DOM compatible browsers (Ex. Mozilla)
	// o = div object clicked by user

	// Parsing all children of the clicked div
	for (i=0;i<o.childNodes.length;i++) {
		// Find all div having the CSS class sItem
		if (o.childNodes[i].className=="sItem") {
			// If the div is hidden, make it visible
			if (o.childNodes[i].style.display=="none") {
				o.childNodes[i].style.display="block"
			} else if (o.childNodes[i].style.display=="block") {
				// If the div is visible, hide it
				o.childNodes[i].style.display="none"
			}

		}
	}

	// Stop click event propagation in upper div hierarchy
	if (document.all) {
		// Code for IE browsers
		window.event.cancelBubble=true
	} else if (!document.all && document.getElementById) {
		// Code for Mozilla browsers
		e.stopPropagation()
	}
}


// onkeypress="return noenter()"
function noenter()
{
    return !(window.event && window.event.keyCode == 13);
}

// onKeyPress="return tab_on_enter(this.form,this);"
function tab_on_enter(v,p)
{

	if(window.event && window.event.keyCode == 13)
	{

		for ( i=0; i<v.length;i++ )
		{
			if ( p.name == v[i].name )
			{
				for ( j=i+1; j<v.length-i; j++ )
				{
					if ( 'hidden' == v[j].type )
					{
						continue;
					} else {
						i = j; // we want the NEXT one //
						break;
					}
				}

				if ( i > v.length )
				{
					return false; // we already are on the last element //
				} else {
					v[i].focus(); // place the cursor in the next element //
					return false; // but DON'T submit form //
				}
				break;
			}

		}

		return false;
	}

}


function popup_modal ( url, width, height, caller_obj )
{
	window.showModalDialog(	url, caller_obj, 'dialogHeight:'+height+'px;dialogWidth:'+width+'px;help:no;edge:raised;');
}

function popup ( url, width, height, name, more )
{

	var windowURL 		= url;
	var windowWidth 	= width;
	var windowHeight 	= height;
	var windowName 		= name;
	more 				= ' '+more; // make sure the first one *can* be found...;

	if ( more.indexOf('toolbar') > 0 )
	{
		var toolbar = 1;
	} else {
		var toolbar = 0;
	}

	if ( more.indexOf('menubar') > 0 )
	{
		var menubar = 1;
	} else {
		var menubar = 0;
	}

	if ( more.indexOf('scrollbars') > 0 )
	{
		var scrollbars = 1;
	} else {
		var scrollbars = 0;
	}

	// just put scrollbars everywhere, we seem to be needing them
	scrollbars = 1;

	newWindow = window.open(windowURL,windowName,'width=' +windowWidth+ ',height=' +windowHeight+ ',location=0,resizable=1,scrollbars='+scrollbars+',toolbar='+toolbar+',menubar='+menubar+',status=1');
	newWindow.focus();

	return newWindow;

}

function check(frm,field,control,colored)
{

 f = frm[field];
 c = frm[control];
 len = f.length;

 if ( len == undefined )
 {
 	if (eval(c.checked))
	{
		f.checked=true;
		if ( colored == true )
		{
	    	f.style.background='green';
	    }

	} else {
		f.checked=false;
		if ( colored == true )
		{
	    	f.style.background='red';
	    }

	}
 }

var i;
if (eval(c.checked))
{

 	for (i=0;i<len;i++)
	{
	    f[i].checked=true;

		if ( colored == true )
		{
	    	f[i].style.background='green';
	    }
    }

} else {

	for(i=0;i<len;i++)
	{
		f[i].checked=false;

		if ( colored == true )
		{
			f[i].style.background='red';
		}
	}
 }
}

function getElementbyClass(classname)
{

	var inc=0;
	var alltags=document.all? document.all : document.getElementsByTagName("*");
	var customcollection = new Array;
	var i;

	for (i=0; i<alltags.length; i++)
	{
		if ( alltags[i].className == classname )
		{
			customcollection[inc++] = alltags[i];
		}
	}

	return customcollection;
}


// modified, not tested
function get_tag_by_class(tagname,classname)
{

	var inc=0;
	var alltags = document.getElementsByTagName(tagname);
	var customcollection = new Array;

	for (i=0; i<alltags.length; i++)
	{
		if ( alltags[i].className == classname )
		{
			customcollection[inc++] = alltags[i];
		}
	}

	return customcollection;

}

function img_toggle (host,img,t1,t2)
{
	if ( document.getElementById(img).src == host+t1 )
	{
		document.getElementById(img).src = host+t2;
	} else {
		document.getElementById(img).src = host+t1;
	}
}

function toggle_text (id,t1,t2)
{
	if ( document.getElementById(id).innerHTML == t1 )
	{
		document.getElementById(id).innerHTML = t2;
	} else {
		document.getElementById(id).innerHTML = t1;
	}
}


// TOOL TIP FUNCTIONS

var tool_tip_timeout_id;
var ie = document.all ? 1 : 0;
var ns = document.layers ? 1 : 0;

if(ns)
{
	doc = "document.";
	sty = ""
}

if(ie)
{
	doc = "document.all.";
	sty = ".style"
}

var initialize = 0;
var Ex, Ey, topColor, subColor, ContentInfo;

if(ie)
{
	Ex = "event.x";
	Ey = "event.y";
	topColor = "#DEDEC8";
	subColor = "#FFFFFF";
}

if(ns)
{
	Ex = "e.pageX";
	Ey = "e.pageY";
	window.captureEvents(Event.MOUSEMOVE);
	window.onmousemove=overhere;

	topColor = "#DEDEC8";
	subColor = "#FFFFFF";
}

function tool_tip ( title, text )
{

	var unhide = 0;
	if ( tool_tip_iframe.document.getElementById('tool_tip_text') )
	{
		tool_tip_iframe.document.getElementById('tool_tip_text').innerHTML  = text;
		tool_tip_iframe.document.getElementById('tool_tip_title').innerHTML = '<b>'+title+'</b>';
		unhide = 1;
	}

	if ( unhide )
	{
		tool_tip_timeout_id=setTimeout("unhide_tool_tip()",300);
		resize_tool_tip();
		move_tool_tip();
		resize_tool_tip();
	}

}

function tool_tip_div ( title, text, div_name, other_name, on_off)
{

	if ( on_off == 'on' )
	{
		document.getElementById(div_name).style.display = 'block';
		document.getElementById(other_name).style.display = 'none';
		document.getElementById('tool_tip_div_text').innerHTML  = text;
		document.getElementById('tool_tip_div_title').innerHTML = '<b>'+title+'</b>';
	} else {
		document.getElementById(div_name).style.display = 'none';
		document.getElementById(other_name).style.display = 'block';
	}

}

function unhide_tool_tip()
{
	lyr_unhide('tool_tip');
	resize_tool_tip();
}

function resize_tool_tip()
{
	var reveal_h = tool_tip_iframe.document.getElementById('height_checker').offsetTop;
	document.getElementById('tool_tip_iframe').style.height	= reveal_h;
}

function overhere(e)
{
	if ( tool_tip_iframe.document.getElementById('height_checker') )
	{
		resize_tool_tip();
		move_tool_tip();
	}
}

function move_tool_tip()
{
	var layerName = 'tool_tip';

	if(ie)
	{
		eval(doc + layerName + sty + ".top = "  + (eval(Ey) + document.body.scrollTop + 17));
	}

	if(ns)
	{
		eval(doc + layerName + sty + ".top = "  +  (eval(Ey) + 17));
	}


	eval(doc + layerName + sty + ".left = " + (eval(Ex) - 25));
	eval("var zzz = " + doc + layerName + sty + ".left" )
	zzz = zzz.replace ( /px/i, '' );

	// * 1 forces type conversion
	zzz = ( zzz * 1 );

	// tool tip area is 300 wide
    if ( ( zzz + 300 ) > document.body.clientWidth  )
	{
		eval(doc + layerName + sty + ".left = " + (eval(Ex) - 250));
	}

    if ( ( zzz - 25 ) < 0  )
	{
		eval(doc + layerName + sty + ".left = " + (eval(Ex) + 100));
	}

	// alter placement vertically
    eval("var yyy = " + doc + layerName + sty + ".top" );
    var yyZ = tool_tip_iframe.document.getElementById('height_checker').offsetTop;

	yyy = yyy.replace ( /px/i, '' );
	//yyZ = yyZ.replace ( /px/i, '' );

	// * 1 forces type conversion
	yyy = ( yyy * 1 );
	yyZ = ( yyZ * 1 );
	var b =  yyy + yyZ;

	if ( b > document.body.clientHeight  )
	{
		eval(doc + layerName + sty + ".top = " + (eval(Ey) - 70) );
	}

}

function setIframeHeight(iframeName)
{

	var iframeWin = window.frames[iframeName];
	var iframeEl = document.getElementById? document.getElementById(iframeName): document.all? document.all[iframeName]: null;
	if ( iframeEl && iframeWin )
	{
		iframeEl.style.height = "auto";
		var docHt = getDocHeight(iframeWin.document);
		if (docHt)
		{
			iframeEl.style.height = docHt + 30 + "px";
		}
	}

}

function getDocHeight(doc)
{
	var docHt = 0, sh, oh;
	if (doc.height)
	{
		docHt = doc.height;
	} else if (doc.body) {

		if (doc.body.scrollHeight) docHt = sh = doc.body.scrollHeight;
		if (doc.body.offsetHeight) docHt = oh = doc.body.offsetHeight;
		if (sh && oh) docHt = Math.max(sh, oh);
	}

	return docHt;
}
// END TOOL TIP FUNCTIONS
// ******************************************************************************** 

function check ( frm, field, control )
{

	f		= frm[field];
	c		= frm[control];
	len		= f.length;

	if ( len == undefined )
	{
		if ( eval ( c.checked ) )
		{
			f.checked=true;
		} else {
			f.checked=false;
		}
	}

	var i;

	if ( eval ( c.checked ) )
	{
		for ( i=0; i < len; i++ )
		{
		    f[i].checked=true;
		}
	} else {
		for ( i=0; i < len; i++ )
		{
			f[i].checked=false;
		}
	}
}

function check_all_in_form ( frm, check, type )
{
	len		= frm.elements.length;
	alert(len);
	var i;

	for ( i=0; i < len; i++ )
	{
		//alert ( frm.elements[i].name );
		alert ( frm.elements[i].type );
	    //form[i].checked= ( check == 'check' ) ? true : false;
	}
}


function ajax_keep_alive ()
{

	var http = getHTTPObject();
	var url  = '/members/ajax_keep_alive.php?z='+z;

	http.open("GET", url );
	http.onreadystatechange = function ()
	{
		if (http.readyState == 4)
		{
		 	// yeah!
		}
	}

	http.send(null);

	keep_alive_id = setTimeout("ajax_keep_alive()", 1800000 );
}

function set_scroll (span,min_height)
{
	if ( document.body.scrollHeight > 0 )
	{
		if ( min_height )
		{
			
			window.parent.document.getElementById(span).height = ( document.body.scrollHeight < 300 ) ? 300 : document.body.scrollHeight;
		} else {
			window.parent.document.getElementById(span).height = document.body.scrollHeight;
		}
	} else {
		setTimeout('set_scroll(\''+span+'\')',100);
	}
}


function showSubMenu(e,o) {

 /**
  * usage: <div class="sItem" style="display:block" onclick="showSubMenu(event,this)">
  * also need:
  * div.sItem
  * {
  * margin-left:10px;
  * font-family: Verdana, Arial, Helvetica, sans-serif;
  * font-size: 11px;
  * font-style: normal;
  * font-weight: normal;
  * color: #333333;
  * cursor:pointer;
  * cursor:hand;
  * }
  */
 // e = event object in W3C DOM compatible browsers (Ex. Mozilla)
 // o = div object clicked by user

 // Parsing all children of the clicked div
 for (i=0;i<o.childNodes.length;i++) {
  // Find all div having the CSS class sItem
  if (o.childNodes[i].className=="sItem") {
   // If the div is hidden, make it visible
   if (o.childNodes[i].style.display=="none") {
    o.childNodes[i].style.display="block"
   } else if (o.childNodes[i].style.display=="block") {
    // If the div is visible, hide it
    o.childNodes[i].style.display="none"
   }

  }
 }

 // Stop click event propagation in upper div hierarchy
 if (document.all) {
  // Code for IE browsers
  window.event.cancelBubble=true
 } else if (!document.all && document.getElementById) {
  // Code for Mozilla browsers
  e.stopPropagation()
 }
}

