/*AHAH overview: http://microformats.org/wiki/rest/ahah */
/* revised from version at: http://groups.google.com/group/XMLHttpRequest/browse_thread/thread/3deab0ff4778fdf7/a8f83be73f135ed5 */
/* added third parameter to to allow the passing in of pre-load text or HTML to the target */

function ahah(url,target,loadingmessage,funcname) { 
        function ahahDone() { 
          if(req.readyState == 4){ 
            if(req.status == 200){ 
                  if(!(target == undefined)){ 
                    document.getElementById(target).innerHTML = req.responseText; 
                  } 					
                  if(!(funcname == undefined)){ 
                    eval(funcname + "(req.responseText);");
                  } 
            }else{ 
                  if(!(target == undefined)){ 
                    document.getElementById(target).innerHTML = "ahah error:\n"+req.statusText; 
                  } 
              if(!(funcname == undefined)){ 
                    eval(funcname+"(req.responseText);"); 
                  } 
            } 
          } 
        } 
		
        if(!(target == undefined)){ 
		loadingmessage = loadingmessage || "loading data...";
		if(loadingmessage != '(none)'){
    	document.getElementById(target).innerHTML = loadingmessage;
		}
        } 
        if(window.XMLHttpRequest){ 
                var req = new XMLHttpRequest(); 
        }else if(window.ActiveXObject) { 
                var req = new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
        if(req){ 
                req.onreadystatechange = function() { 
                        ahahDone(); 
                }; 
                req.open("GET", url, true); 
                req.send(""); 
        } 


} 

function BoxX(e,boxwidth){<!--- function to find ideal X position of an element based on mouse position relative to side of browser --->
/* This function will find the best X position for a DIV near the mouse based on the mouse event (e) and the DIV width */
/* example: 	document.getElementById('yourdiv').style.left= BoxX(e,250) + "px"; */
	if( !e ) { e = window.event; } if( !e || ( typeof( e.pageX ) != 'number' && typeof( e.clientX ) != 'number' ) ) { return 100; }
  	 if( typeof( e.pageX ) == 'number' ) { var posX = e.pageX;} else {
      var posX = e.clientX;
      if( !( ( window.navigator.userAgent.indexOf( 'Opera' ) + 1 ) || ( window.ScriptEngine && ScriptEngine().indexOf( 'InScript' ) + 1 ) || window.navigator.vendor == 'KDE' ) ) {
         if( document.documentElement && ( document.documentElement.scrollTop || document.documentElement.scrollLeft ) ) {
            posX += document.documentElement.scrollLeft; 
         } else if( document.body && ( document.body.scrollTop || document.body.scrollLeft ) ) {
            posX += document.body.scrollLeft; posY += document.body.scrollTop;
         }
      }      	
   }
  
   if( typeof( window.innerWidth ) == 'number' ) {
		browserWidth = window.innerWidth;
	} else {
		browserWidth = document.documentElement.clientWidth;
	}
	
   if ( document.documentElement && (document.documentElement.scrollLeft)) {
		browserLeftX = document.documentElement.scrollLeft;
	} else {
	browserLeftX = document.body.scrollLeft;
	}

	if ((browserWidth + browserLeftX - posX < boxwidth + 45 ) & (posX - browserLeftX  > boxwidth)){
		var posX = posX - boxwidth - 45 ;
	}
	
	return posX + 20 ;
}

function showDiv(objectID) {
var theElementStyle = document.getElementById(objectID);

if(theElementStyle.style.display == "none")
{
theElementStyle.style.display = "block";
}
else
{
theElementStyle.style.display = "none";
}
}

function BoxY(e,boxheight){
/* This function will find the best Y position for a DIV near the mouse based on the mouse event (e) and the DIV height */
/* example:  document.getElementById('yourdiv').style.top= BoxY(e,260) + "px";  */
if( !e ) { e = window.event; } if( !e || ( typeof( e.pageX ) != 'number' && typeof( e.clientX ) != 'number' ) ) { return 100; }
  	 if( typeof( e.pageY ) == 'number' ) { var posY = e.pageY; } else {
      var posY = e.clientY;
      if( !( ( window.navigator.userAgent.indexOf( 'Opera' ) + 1 ) || ( window.ScriptEngine && ScriptEngine().indexOf( 'InScript' ) + 1 ) || window.navigator.vendor == 'KDE' ) ) {
         if( document.documentElement && ( document.documentElement.scrollTop || document.documentElement.scrollLeft ) ) {
            posY += document.documentElement.scrollTop;
         } else if( document.body && ( document.body.scrollTop || document.body.scrollLeft ) ) {
              posY += document.body.scrollTop;
         }
      }      	
   }
  
   if( typeof( window.innerHeight ) == 'number' ) {
		browserHeight = window.innerHeight;
	} else {
		browserHeight = document.documentElement.clientHeight;
	}
	if ( document.documentElement && (document.documentElement.scrollTop)) {
		browserTopY = document.documentElement.scrollTop;
	} else {
	browserTopY = document.body.scrollTop;
	}
 
	if (browserHeight + browserTopY - posY < boxheight + 45 ){
		var posY = browserHeight+ browserTopY - boxheight - 45
	}
	return posY;
}

function make_pageing_links(pagepanelname,clickedpage,pagecount){	 	
		var htmlout = '';
		var ending_num = clickedpage + 2;
		var starting_num = clickedpage - 2;
		var htmlout = '<div class="numbercount"><a href="javascript:' + pagepanelname + '_clicknumber(1,' + pagecount + ');">&laquo;</a></div>&nbsp;';
		if(pagecount <1){pagecount = 1};
		if(starting_num < 3){
			starting_num = 1;
			ending_num = 5;
			htmlout = "";
			}
		if(ending_num > pagecount){ending_num = pagecount}	
		if(clickedpage > 1){
			htmlout += '<div class="numbercount"><a href="javascript:' + pagepanelname + '_clicknumber(' + (clickedpage -1) + ',' + pagecount + ');">&lt;</a></div>&nbsp;';
		}
		if(ending_num - clickedpage < 4){starting_num = ending_num - 5};
		if(starting_num < 1){starting_num = 1};
		
		for (i = starting_num; i <= ending_num; i++ )
		{		 
			var clicklink = 'Javascript:' + pagepanelname + '_clicknumber(' + i + ',' + pagecount + ');' ;
			if(i == clickedpage){
					htmlout += '<div class="numbercount nmactive"><a href="' + clicklink + '">' + i + '</a></div>&nbsp;';
			}else{
					htmlout += '<div class="numbercount"><a href="javascript:' +  clicklink + '">' + i + '</a></div>&nbsp;';
			}
	
		}
		htmlout += '<span style="font-size:11px">&nbsp;&nbsp;of&nbsp;&nbsp;<div class="numbercount"><a href="javascript:' + pagepanelname + '_clicknumber(' + pagecount +',' + pagecount + ')">' + pagecount + '</a></div>&nbsp;';
		if(clickedpage < pagecount){
			htmlout += '<div class="numbercount"><a href="javascript:' + pagepanelname + '_clicknumber(' + (clickedpage +1) + ',' + pagecount + ');">&gt;</a></div>&nbsp;';
		}		
		document.getElementById(pagepanelname + '_container').innerHTML = htmlout;	
	}
	
function getsubids(idlist,itemsperpage,clickedpage){
	var idarray= idlist.split(',');	
	var idgroup = '';
	var idstart = ((clickedpage - 1) * itemsperpage) + 1;
	var idend = (clickedpage * itemsperpage);
	if (idend > idarray.length){idend = idarray.length }
		for (i = idstart; i <= idend; i++ ){
			idgroup += idarray[i - 1] + ';'
			}
	return idgroup
}
