		
	/**
	/* 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.position="absolute";
	el.style.width=senderel.style.width;
	el.style.top=senderel.offsetTop+senderel.offsetHeight+"px";
	el.style.left=senderel.offsetLeft+"px";
	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 top_doc() {
	//Find parent doc
	win=top_window();
	doc=win.document;
	return(doc);
}

function window_size() {
	win=top_window();
	if (win.innerHeight) {
		winW=win.innerWidth;
		winH=win.innerHeight;
// 		alert("Win.innerHeight:"+winH);
	} else {
// 		winW=Math.max(win.document.documentElement.clientWidth, win.document.body.clientWidth);
// 		winH=Math.max(win.document.documentElement.clientHeight, win.document.body.clientHeight);
			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 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 getScrollY() {
	var scrOfY = 0;
	win=top_window();
	if( typeof( win.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrOfY = win.pageYOffset;
	} else if( win.document.body && (win.document.body.scrollTop ) ) {
		//DOM compliant
		scrOfY = win.document.body.scrollTop;
	} else if(win.document.documentElement && (win.document.documentElement.scrollTop)) {
		//IE6 standards compliant mode
		scrOfY = win.document.documentElement.scrollTop;
	}
	return scrOfY;
}

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)) {
		//For IE6
		el.style.position="absolute";
		y=y+getScrollY();
	}
	el.style.width=w+"px";
	el.style.height=h+"px";
	el.style.top=y+"px";
	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 removeChildren(node) {
	if((node==undefined) || (node==null) || (node.className=="floater")) {
		return;
	}
	var len = node.childNodes.length;
	while (node.hasChildNodes()) {
		if (node.firstChild.hasChildNodes()) {
			removeChildren(node.firstChild);
		}
		node.removeChild(node.firstChild);
	}
}

function kill_floater(e) {
	win=top_window();
	var doc=win.document;
	doc.getElementById("toplevel").className="hiden";
	doc.getElementById("toplevel").style.display="none";
	var el=doc.getElementById("myfloater");
// 	alert(el);
	if ((el) && (el.hasChildNodes())) {
		removeChildren(el);
	}
// 	if (el) {
	el.innerHTML="";
	doc.getElementById("floater1").removeChild(el);
	//Just for IE
	hide_selects(doc);
}

function hide_selects(node) {
	//Hides selects for IE6
	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 enlarge_image(id,cid,iid,title) {
	floater_content="";
	winsize=window_size();
	floater_title=title;
// 	alert(winsize);
	el=create_floater(15,15,winsize[0]-50,winsize[1]-60);
// 	win=top_window();
	doc=top_doc();
	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="580px";
	frameel.style.height="80%";
}

function big_popup(url,title) {
	winsize=window_size();
// 	alert(winsize);
	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;
	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="<div class='floater_txt'>"+msg+"</div>";
	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=parent.document;
	doc.getElementById(id).value=val;
}

function showAttachments() {
	attachel=document.getElementById("uploadframe");
	showel=document.getElementById("show_upload");
	imgel=document.getElementById("show_upload_img");
	if ((attachel.style.display=="none") || (attachel.style.display==""))  {
		attachel.style.display="block";
		imgel.src="images/1downarrow.png";
	} else {
		attachel.style.display="none";
		imgel.src="images/1rightarrow.png";
	}
}

function playvideo(md5) {
	var s="<object id=flash><embed name='flash' src='flv.php?filename="+md5+"' menu='false' quality='high' width='200' height='150' type='application/x-shockwave-flash'> </embed></object>";
	imgel=document.getElementById("video_"+md5);
	imgel.innerHTML=s;
}

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

