      
   /**
   /* Ajax object for multiple Ajax instances
   */
   
   function callAjax() {
      var xmlreqs=new Array();
      //this.xmlreqs=xmlreqs;
      this.CXMLReq=CXMLReq;
      this.xmlreqGET=xmlreqGET;
      this.xmlhttpChange=xmlhttpChange;
      
      function CXMLReq(type,xmlhttp) {
         this.type=type;
         this.xmlhttp=xmlhttp;
      }

      function xmlreqGET(url) { 
         this.xmlhttp=false; 
         if (window.XMLHttpRequest) { // Mozilla, etc. 
            this.xmlhttp=new XMLHttpRequest(); 
            this.xmlhttp.onreadystatechange = xmlhttpChange; 
            this.xmlhttp.open("GET",url,true); 
            this.xmlhttp.send(null); 
         } else if (window.ActiveXObject) { // IE 
            this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
            if (this.xmlhttp) { 
               this.xmlhttp.onreadystatechange = xmlhttpChange; 
               this.xmlhttp.open("GET",url,true); 
               this.xmlhttp.send(); 
         } 
      } 
      xmlreq = new CXMLReq('', this.xmlhttp);
      this.xmlreq=xmlreq; 
      xmlreqs.push(this.xmlreq); 
   }

   function xmlhttpChange() { 
      //if (typeof(window['xmlreqs']) == "undefined") return; 
      for (var i=0; i < xmlreqs.length; i++) { 
         if (xmlreqs[i].xmlhttp.readyState == 4) { 
            if (xmlreqs[i].xmlhttp.status == 200 || xmlreqs[i].xmlhttp.status == 304) { 
               // 200 OK 
               // get response info here before splicing - see below on creating an xml object 
               this.result=xmlreqs[i].xmlhttp.responseText;
               //alert("Got result");
               eval(this.result);
               //Process result here
               //alert(this.result);
               xmlreqs.splice(i,1); 
               i--; 
            } else { 
               // error 
               xmlreqs.splice(i,1); 
               i--; 
            } 
         } 
      } 
   }
}

function catchClick(sender,url) {
   ajax=new callAjax();
   ajax.xmlreqGET(url);
}

function changeInner(sender,newval) {
   sender.innerHTML=newval;
}

function switchInner(sender,val1,val2) {
   if (sender.innerHTML==val1) {
      changeInner(sender,val2);
   } else {
      changeInner(sender.val1);
   }
}

function showSuggest(sender) {
   el=document.getElementById("suggestionbox");
   senderel=document.getElementById(sender);
   el.style.display="block";
   el.style.width=senderel.style.width;
   el.style.top=senderel.offsetTop+senderel.offsetHeight;
   el.style.left=senderel.offsetLeft;
   el.onclick=function(){chooseSuggestion(sender)};
}

function hideSuggest() {
	if (document.getElementById("suggestionbox")) {
		el=document.getElementById("suggestionbox");
		el.style.display="none";
		el.options.length=0;
	}
}

function chooseSuggestion(sender) {
   el=document.getElementById("suggestionbox");
   senderel=document.getElementById(sender);
   senderel.value=el.options[el.selectedIndex].value;
   hideSuggest();   
}

function createSuggest() {
   if (document.getElementById("id_editform")) {
      var suggest=document.createElement("select");
      suggest.setAttribute("id","suggestionbox");
      suggest.style.position="absolute";
      document.getElementById("id_editform").appendChild(suggest);
      hideSuggest();
   }
}

var timer;

function showAjaxFloater(url,timeout) {
   floater=document.getElementById("floater");   
   floater.style.display="none";   
   screenx = document.body.clientWidth;
   screeny = document.body.clientHeight;
   midx=screenx / 2;
   midy=screeny / 2;
   
   //alert(screenX);
   if (mouseposx < midx) {
      floater.style.left=mouseposx;
   } else {
      floater.style.left=mouseposx - 200;
   }
   if ((mouseposy - document.body.scrollTop) < midy) {
      floater.style.top=mouseposy + 20;
   } else {
      floater.style.top=mouseposy - 170;
   }
   if (timeout) {
      timer=setTimeout("hideAjaxFloater()",3000);
   }
   catchClick("floater",url);
}

function hideAjaxFloater() {
   document.getElementById("floater").style.display="none";
   clearTimeout(timer);
}

function dateSelect(target,date) {
   document.getElementById(target).innerHTML=date;
   document.getElementById("floater").style.display="none";
}

function updateField(field,value) {
   document.getElementById(field).value=value;
   hideAjaxFloater();
}

var mouseposx=0;
var mouseposy=0;

function trackMouse() {
   document.onmousemove=updateMousePos;
}

function updateMousePos(e) {
   if (!e) {
      e=window.event;
   }
   mouseposx=e.clientX + document.body.scrollLeft;
   mouseposy=e.clientY + document.body.scrollTop;
}

function updateFrame(url, targetid) {
	document.getElementById(targetid).src=url;
}

function top_window() {
	//find parent window
	win=window.top;
	return(win);
}

function window_size() {
	win=top_window();
	if (win.innerHeight) {
		winW=win.innerWidth;
		winH=win.innerHeight;
// 		alert("Win.innerHeight:"+winH);
	} else {
		winW=win.document.documentElement.clientWidth;
		winH=win.document.documentElement.clientHeight;
// 		alert("win.doc.body.offsetHeight:"+winH);
	}
	retarray=new Array(2);
	retarray[0]=winW;
	retarray[1]=winH;
	return(retarray);
}

var floater_title="";
var floater_content="";

function getScrollY() {
	var scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
	} else if( document.body && (document.body.scrollTop ) ) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
	} else if(document.documentElement && (document.documentElement.scrollTop)) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
	}
	return scrOfY;
}

function getIEVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
  var rv = -1; // Return value assumes failure.
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}

function create_floater(x,y,w,h) {
//Create a floating window
	win=top_window();
	doc=win.document;
	topel=doc.getElementById("toplevel");
	floaterel=doc.getElementById("floater1");
// 	document.body.style.overflow="hidden";
// 	floaterel.style.zIndex="600";
// 	floaterel.style.backgroundColor="#FFF";
	
	//Grey out background
	topel.className="show";
	doc.getElementById("toplevel").style.display="block";
// 	alert(doc.body.parentNode.scrollHeight);
	topel.style.height=doc.body.parentNode.scrollHeight+"px";
	
	//Create our new element
	el=doc.createElement("div");
	el.setAttribute("id","myfloater");
	ver=getIEVersion();
	if ((ver<7) && (ver>-1)) {
		
		el.style.position="absolute";
		y=y+getScrollY();
// 		alert(ver);
	} 

	
	
	el.style.width=w+"px";
	
	el.style.height=h+"px";
	
	el.style.top=y+"px";
// 	alert(y);
	el.style.left=x+"px";
	el.style.opacity="1";
	
	el.style.zIndex="600";
	el.style.backgroundColor="#FFF";
	el.className="floater";	
	el.innerHTML=floater_content;
	
	//Create a close icon
	closeel=doc.createElement("div");
	closeel.className="closefloater";
	//closeel.innerHTML="<img src='images/winclose.png' />";
	closeelimg=doc.createElement("img");
	closeelimg.src="images/winclose.png";
	closeelimg.onclick=kill_floater;
	
	//Create a title div
	titlediv=doc.createElement("div");
	titlediv.className="title";
	titlediv.innerHTML=floater_title;
	
	floaterel.appendChild(el);
	doc.getElementById("myfloater").display="block";
	el.appendChild(closeel);
	el.appendChild(titlediv);
	
	closeel.appendChild(closeelimg);
	//Just for IE
	hide_selects(doc);
	
	return(el);
}
var browser=navigator.appName;
	var b_version=navigator.appVersion;
	var version=parseFloat(b_version);
	
function hide_selects(node) {
	
// 	alert(browser+version);
	if (browser=="Microsoft Internet Explorer") {
		selects=node.getElementsByTagName("select");
		for(x=0;x<selects.length;x++) {
			if (selects[x].style.display=="none") {
				selects[x].style.display="block";
			} else {
				selects[x].style.display="none";
			}
		}
	}
}

function kill_floater(e) {
	win=top_window();
	doc=win.document;
	doc.getElementById("toplevel").className="hiden";
	doc.getElementById("toplevel").style.display="none";
// 	alert("Killing floater"+doc.getElementById("toplevel").style.);
	el=doc.getElementById("myfloater");
	while (el.hasChildNodes()) {
		el.removeChild(el.firstChild);
	}
	el.innerHTML="";
	doc.getElementById("floater1").removeChild(el);
	hide_selects(doc);
}

function enlarge_image(id,cid,iid,title) {
	floater_content="";
	winsize=window_size();
	floater_title=title;
	el=create_floater(15,15,winsize[0]-50,winsize[1]-60);
//	win=window.open("attachment.php?id="+id+"&cid="+cid+"&iid="+iid+"", "+title+","width=610,height=550,scrollbars=1");
	win=top_window();
	doc=win.document;
	imgel=doc.createElement("img");
	imgel.className="bigimg";
	imgel.src="attachment.php?id="+id+"&cid="+cid+"&iid="+iid+"&sizex="+(winsize[0]-50)+"&sizey="+(winsize[1]-90+"&imgtype=2");
	el.appendChild(imgel);
}

function advanced_search(url) {
	winsize=window_size();
	floater_title="Advanced search";
	floater_content="<iframe src='"+url+"' id='floater_frame'></iframe>";
	el=create_floater(200,100,575,350);
	win=top_window();
	doc=win.document;
	frameel=doc.getElementById("floater_frame");
	frameel.style.width=winsize[0]-50;
	frameel.style.height=winsize[1]-90;
}

function big_popup(url,title) {
	winsize=window_size();
	floater_title=title;
	floater_content="<iframe src='"+url+"' style='height:"+(winsize[1]-80)+"px; width:"+(winsize[0]-80)+"px; ' id='floater_frame'></iframe>";
	el=create_floater(15,15,winsize[0]-50,winsize[1]-60);
	win=top_window();
	doc=win.document;
	frameel=doc.getElementById("floater_frame");
	frameel.style.width=winsize[0]-60;
	frameel.style.height=winsize[1]-90;
}

function medium_popup(url,title) {
	winsize=window_size();
	floater_title=title;
// 	alert(winsize[1]);
	floater_content="<iframe src='"+url+"' id='floater_frame'></iframe>";
	el=create_floater(winsize[0]/4,winsize[1]/4,winsize[0]/2,winsize[1]/2);
	win=top_window();
	doc=win.document;
	frameel=doc.getElementById("floater_frame");
	frameel.style.width=(winsize[0]/2)-60;
	frameel.style.height=(winsize[1]/2)-30;
}

function long_popup(url,title) {
	winsize=window_size();
	floater_title=title;
	floater_content="<iframe src='"+url+"' id='floater_frame'></iframe>";
	el=create_floater(15,winsize[1]/4,winsize[0]-50,winsize[1]/2);
	win=top_window();
	doc=win.document;
	frameel=doc.getElementById("floater_frame");
	frameel.style.width=winsize[0]-60;
	frameel.style.height=winsize[1]-90;
}

function msgwindow(msg,title) {
	winsize=window_size();
	floater_title=title;
	floater_content=msg;
	el=create_floater(winsize[0]/4,winsize[1]/4,winsize[0]/2,winsize[1]/2);
	win=top_window();
	doc=win.document;
	
}

function update_top_value(id,val) {
	win=top_window();
	doc=win.document;
	doc.getElementById(id).value=val;
}

// window.onload=function(){trackMouse(); createSuggest(); };


