function launchwin(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);

  if (window == null || window.closed)
	{
	newwindow = window.open(theURL,winName,features);
		if (window.opener == null) // set the opener property manually for Nav 2.0.
		{				
			//window.opener = windowparent;
		}
	window.opener.name = windowparent; // give our parent window a name so we can target it from newwindow
	}	
 }

	 
function secureWindow(theURL, width, height) {
   windowprops = "width=" + width + ",height=" + height;
   if (document.all||document.layers||document.getElementById)
   {
   	var top = ((screen.height-50)-height)/2;
  	var left = ((screen.width-10 )-width)/2;
  	 windowprops += ",top=" + top + ",left=" + left;
   }
   	windowprops += "location=0,toolbar=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0";
  	 //alert(theURL);
	 secure = window.open(theURL, 'secure', windowprops);
	secure.focus();
  }	 
	 
function defaultMessageWindow(theURL, width, height, scrollbars) {
   windowprops = "width=" + width + ",height=" + height+",scrollbars="+scrollbars;
   messageWindow = window.open(theURL, 'messageWindow', windowprops);
   messageWindow.focus();
 }		 
	 
	 
function NewPrintWindow(FileToPrint) {
PrintWindow = window.open(FileToPrint,"","height=600,width=650,toolbar=yes,statusbar=no,menubar=no,titlebar=yes,location=no,scrollbars=yes");
			PrintWindow.focus();
}

/* shows/hides a layer */
function toggleBox(szDivID, iState) // 1 visible, 0 hidden
{
    if(document.layers)	   //NN4+
    {
       document.layers[szDivID].visibility = iState ? "show" : "hide";
    }
    else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {
        var obj = document.getElementById(szDivID);
        obj.style.visibility = iState ? "visible" : "hidden";
    }
    else if(document.all)	// IE 4
    {
        document.all[szDivID].style.visibility = iState ? "visible" : "hidden";
    }
}

function switchBoxOnOff(szDivID)
{
    if(document.layers)	   //NN4+
    {
       document.layers[szDivID].visibility = iState ? "show" : "hide";
    }
    else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {
        var obj = document.getElementById(szDivID);
		if (obj.style.visibility == "visible") {
         obj.style.visibility = "hidden";
		}
		else {
          obj.style.visibility = "visible";
		}
   }
    else if(document.all)	// IE 4
    {
        document.all[szDivID].style.visibility = iState ? "visible" : "hidden";
    }
}

function openaprintwindow(theURL) {
	var width = 850;
	var height = 500;
	
	windowprops = "width=" + width + ",height=" + height;
	if (document.all||document.layers||document.getElementById)
	{
		var top = ((screen.height-50)-height)/2;
		var left = ((screen.width-10)-width)/2;
		windowprops += ",top=" + top + ",left=" + left;
	}
	windowprops += "toolbar=0,location=0,directories=0,status=0,menubar=1,scrollbars=1,resizable=1";
	window.open(theURL, 'printableWindow', windowprops);
}

function openapopupwindow(theURL,theName,theWidth,theHeight) {
	
	windowprops = "width=" + theWidth + ",height=" + theHeight;
	if (document.all||document.layers||document.getElementById)
	{
		var top = ((screen.height-50)-theHeight)/2;
		var left = ((screen.width-10)-theWidth)/2;
		windowprops += ",top=" + top + ",left=" + left;
	}
	windowprops += "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1";
	window.open(theURL, theName, windowprops);
}


function trimstring(sInString) {
  sInString = sInString.replace( /^\s+/g, "" );// strip leading
  return sInString.replace( /\s+$/g, "" );// strip trailing
}

/* used by DHTML dropdown menus */
sfHover = function() {
	if (document.getElementById("nav") !== null) {
		var sfEls = document.getElementById("nav").getElementsByTagName("LI");
		for (var i=0; i<sfEls.length; i++) {
			sfEls[i].onmouseover=function() {
				this.className+=" sfhover";
			}
			sfEls[i].onmouseout=function() {
				this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
			}
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);



/* used by Facebook and other sharing/social networking links */
function openShareWindow(site){
	var pageURL = escape(window.location.href);
	var articleTitle = 'null';
	var articleLeadin = 'null';
	switch (site) {
			case "Digg":
			postPopUp('http://digg.com/remote-submit?phase=2&url=' + pageURL + '&title=' + articleTitle + '&bodytext=' + articleLeadin +'', 'digg', 'toolbar=0,status=0,height=450,width=650,scrollbars=yes,resizable=yes');
			break;	
			case "Delicious":
			postPopUp('http://del.icio.us/post?v=4&partner=nyt&noui&jump=close&url=' + pageURL + '&title='+ articleTitle+ '&bodytext='+ articleLeadin+'', 'delicous', 'toolbar=0,status=0,height=450,width=650,scrollbars=yes,resizable=yes');
			break;
			case "Reddit":
			postPopUp('http://reddit.com/submit/?url=' + pageURL + '&title='+ articleTitle+ '', 'reddit', 'toolbar=0,status=0,height=450,width=650,scrollbars=yes,resizable=yes');
			break;
			case "Facebook":
			postPopUp('http://www.facebook.com/sharer.php?u=' + pageURL + '&t=' + articleTitle, 'facebook', 'toolbar=0,status=0,height=436,width=646,scrollbars=yes,resizable=yes');
			break;
			case "Newsvine":
			postPopUp('http://www.newsvine.com/_wine/save?ver=2&popoff=1&u=' + pageURL + '', 'Newsvine', 'toolbar=0,status=0,height=436,width=646,scrollbars=yes,resizable=yes');
			break;								
	}			
}
/* used by Facebook  so that title displays page name or blog entries name*/
function openShareWindowFacebook(pageName){
	var pageURL = escape(window.location.href);
	var articleTitle = (pageName);
	var articleLeadin = 'null';
	 {
			
			postPopUp('http://www.facebook.com/sharer.php?u=' + pageURL + '&t=' + articleTitle, 'facebook', 'toolbar=0,status=0,height=436,width=646,scrollbars=yes,resizable=yes');
			
	}
}
function postPopUp(url, name, params) {
	var win = window.open(url, name,params);
}
// JavaScript Document

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function getObj(name)
{
  if (document.getElementById)
  {
	this.obj = document.getElementById(name);
	this.style = document.getElementById(name).style;
  }
  else if (document.all)
  {
	this.obj = document.all[name];
	this.style = document.all[name].style;
  }
  else if (document.layers)
  {
	this.obj = document.layers[name];
	this.style = document.layers[name];
  }
}

var lastopen="";
var lastclosed="";
var closeinterval = "";

function showmenu(what,relativeto)
{
	
		thewhat = new getObj(what);
		therelativeto = new getObj(relativeto);
		//really hide the last open
		
		//hidemenu(lastopen);
	if (what != lastopen)
	{
		if (lastopen != "" && lastopen != what)
		{
			thelastopen = new getObj(lastopen);
			thelastopen.style.visibility="hidden";
		}
	}	
		//clear the interval
		window.clearInterval(closeinterval);
		//position the menu
		// window.alert((findPosX(relativeto.obj)+x)+" by "+(findPosY(relativeto.obj)+y));
		//thewhat.style.left=findPosX(therelativeto.obj)+x;
		thewhat.style.top=findPosY(therelativeto.obj)+28;
		thewhat.style.left=findPosX(therelativeto.obj);
		//thewhat.style.top=133;
		//show it
		thewhat.style.visibility="visible";
		lastopen=what;
		lastclosed=""
	
}

function hidemenu(what)
{
	//set a interval to close the menu
	lastclosed=what;
	closeinterval = window.setInterval("reallyhidemenu('"+what+"')", 2000);
}

function reallyhidemenu(what)
{
	//clear the interval
	//hide the last menu open
	
	window.clearInterval(closeinterval);
	
	if (lastclosed != "" && lastclosed == what)
	{
		thetempthing=new getObj(what);
		thetempthing.style.visibility="hidden";
	}
}


