	var http_request = false;
	var http_delete = false;
	var categorysubject = '';
	var dorefreshflag = 0;
	var badcategories = '';
	var lastsubject = null;

	function doresizing(ename,t,l,w,h) {
		return;

		ww = document.body.clientWidth;
		wh = document.body.clientHeight;

		if (t.length>0) {
			et = parseInt(document.getElementById(ename).style.top);
		  val = decidevalue(t,wh);
			if (et!=val) document.getElementById(ename).style.top = val;
		}

		if (l.length>0) {
			el = parseInt(document.getElementById(ename).style.left);
		  val = decidevalue(l,ww);
			if (el!=val) document.getElementById(ename).style.left = val;
		}

		if (w.length>0) {
			ew = parseInt(document.getElementById(ename).style.width);
		  val = decidevalue(w,ww);
			if (ew!=val) document.getElementById(ename).style.width = val;
		}

		if (h.length>0) {
			eh = parseInt(document.getElementById(ename).style.height);
		  val = decidevalue(h,wh);
			if (eh!=val) document.getElementById(ename).style.height = val;
		}
	}

	function decidevalue(val,max) {
		if ( val.substring(val.length,1) == '%' ) {
			percent = parseInt(val);
			return ((max/100)*percent); 
		} else {
			return val+'';
		}
	}

	function restorespaces(text) {
		out = "+"; // replace this
		add = " "; // with this
		temp = "" + text; // temporary holder
		while (temp.indexOf(out)>-1) {
			pos= temp.indexOf(out);
			temp = "" + (temp.substring(0, pos) + add + 
			temp.substring((pos + out.length), temp.length));
		}
		return temp;
	}

	function minustbody( text ) {
		var t = text;
		if ( t.substring(0,7) 				== '<TBODY>') 	t = t.substring(7);
		if ( t.substring(0,7) 				== '<tbody>') 	t = t.substring(7);
		if ( t.substring(t.length-8) 	== '</TBODY>' ) t = t.substring(0,t.length-8);
		if ( t.substring(t.length-8) 	== '</tbody>' ) t = t.substring(0,t.length-8);
		return t;
	}

	var cookieEnabled=(navigator.cookieEnabled)? true : false
	//if not IE4+ nor NS6+
	if (typeof navigator.cookieEnabled=="undefined" && !cookieEnabled){ 
		document.cookie="testcookie"
		cookieEnabled=(document.cookie.indexOf("testcookie")!=-1)? true : false
	}

  function makeRequest(url, parameters) {
		http_request = false;
		if ( (!http_request) && (window.XMLHttpRequest) ) { // Mozilla, Safari,...
			try { http_request = new XMLHttpRequest(); } catch (e) {}
    }
		if ( (!http_request) && (window.ActiveXObject) ) { // IE
			try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
		}
		if ( (!http_request) && (window.ActiveXObject) ) { // IE
  		try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} 
		}
    if (!http_request) { alert('Cannot create XMLHTTP instance'); return false; }
		http_request.abort();
    http_request.onreadystatechange = doresponse;
    http_request.open('GET', url + parameters, true);
    http_request.send(null);
		//doresponse();
  }

  function makeDelete(url, parameters) {
		http_delete = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
			http_delete = new XMLHttpRequest();
    }
		if ( (!http_delete) && (window.ActiveXObject) ) { // IE
			try { http_delete = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
		}
		if ( (!http_delete) && (window.ActiveXObject) ) { // IE
  		try { http_delete = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} 
		}
    if (!http_delete) { alert('Cannot create XMLHTTP instance'); return false; }

    //http_delete.onreadystatechange = dodeleteresponse;
    http_delete.open('GET', url + parameters, true);
    http_delete.send(null);
  }
		
	function doresponse() {
    //if ( (http_request.readyState==4) && (http_request.status!=200)) { alert("Problem at doresponse"); }
		if ((http_request.readyState != 4) || (http_request.status != 200)) { return 1; };
		resp = http_request.responseText;
		if (resp.length<10) {
			topnum = document.getElementById('topnumber').innerHTML;
	    //document.getElementById('message').innerHTML = hhmmss() + " No Data after " + 
			//	topnum + " rcvd = " + document.getElementById('received').innerHTML;
	    //showmessage( hhmmss() + " No Data after " + topnum );
			return 1;
			}
		var h = eval( '(' + resp + ')' );
		rcvd = parseInt(document.getElementById('received').innerHTML) + parseInt(h.count);
		document.getElementById('received').innerHTML = rcvd;
		document.getElementById('topnumber').innerHTML = h.topid;
		var text = "";
		for(i=0;i<h.count;i++) {
			
			var headstr = unescape(h.heads[i].head);
			headstr = restorespaces(headstr);
			//headstr = headstr.replace(/+/g," ");

			text += "<div $width class='headline'>";
			text += "<span class='date'> " + h.heads[i].date + "</span>";
			text += "<a class='headlinetext' target='_top' href=" + q(h.heads[i].url) + ">" + headstr + "</a>";
			text += " <a class='domain' target='_top' href='http://" + h.heads[i].domain + 
				"'>" + h.heads[i].clean + "</a>";

			//if (thesubject=='') {
				href = "dblist.php?s=" + h.heads[i].subject;
				text += " <a class='subject' target='_top' href='" + href + "'>" + h.heads[i].subject + "</a> ";
			//}

			//if ((thecategory=='')&&(thesubject=='')) {
				href = "dblist.php?c=" + h.heads[i].category;
				text += " <a class='category' target='_top' href='" + href + "'>" + h.heads[i].category + "</a> ";
			//}

			text += "</div>\n";
			}

		var oldtext = document.getElementById('heads').innerHTML;
		document.getElementById('heads').innerHTML = text + oldtext;
		return 1;
	}	
				   
	function hhmmss() {
		var currentTime = new Date();
		var hours = currentTime.getHours();
		var minutes = currentTime.getMinutes();
		if (minutes < 10) minutes = "0" + minutes
		var seconds = currentTime.getSeconds();
		if (seconds < 10) seconds = "0" + seconds;
		return hours + ":" + minutes + ":" + seconds;
	}

	function doajax(subject,category) {
		topnum = document.getElementById('topnumber').innerHTML ;
		href = 'dbupdate.php';
		param = '?id=' + topnum;
		if (subject!='') param += "&s=" + subject;
		if (category!='') param += "&c=" + category;		
		makeRequest(href,param);
		return 1;
	}

	function doajaxOLD() {
		document.getElementById('message').style.visibility = 'hidden';
		rcvd = parseInt(document.getElementById('received').innerHTML);
		// if (rcvd>100) { window.location.href = unescape(window.location.pathname); return 1; }
		thesubject = document.getElementById('thesubject').innerHTML;				
		theword = document.getElementById('theword').innerHTML;
		topnum = document.getElementById('topnumber').innerHTML;
		thecategory = document.getElementById('thecategory').innerHTML;
		// alert("doajax topnum: " + topnum + " subject: " + thesubject );
		makeRequest('dbupdate.php', "?id=" + topnum + "&subject=" + thesubject + "&word=" + theword + "&cat=" + thecategory );
		return 1;
	}
      
	function dodeleteresponse() {
		if ((http_delete.readyState != 4) || (http_delete.status != 200)) { return 1; };
		var n = http_delete.responseText;
		if (n.length<6) return 0;
		//alert("delete response (" + n + ")" );
		o = n.substring(5);
		var deleted = document.getElementById(o);
		deleted.innerHTML = '';
		// deleted.removeNode(true);
		return 0;
	}	

	function doajaxdelete(story) {
		makeDelete('dbdelete.php', "?story=" + story );
		dorefreshflag = 1;
		return 0;
	}

	function getleft(elem) {
    var offsetTrail = elem;
    var offsetLeft = 0;
    while (offsetTrail) {
        offsetLeft += offsetTrail.offsetLeft;
    		offsetTrail = offsetTrail.offsetParent;
    }
    if (navigator.userAgent.indexOf("Mac") != -1 && 
        typeof document.body.leftMargin != "undefined") {
        offsetLeft += document.body.leftMargin;
    }
    return offsetLeft;
	}

	function gettop(elem) {
    var offsetTrail = elem;
		var offsetTop = 0;
		while (offsetTrail) {
    	offsetTop += offsetTrail.offsetTop;
    	offsetTrail = offsetTrail.offsetParent;
		}
		if (navigator.userAgent.indexOf("Mac") != -1 && 
    	typeof document.body.leftMargin != "undefined") {
    	offsetTop += document.body.topMargin;
		}
		return offsetTop;
	}

	function docategory(elem,subject) {
		var l = getleft(elem);
		var t = gettop(elem);
		if (t>100) t = 100;
		categorysubject = subject;
		document.getElementById('categorylist').style.left = l;
		document.getElementById('categorylist').style.top = t;
		document.getElementById('categorylist').style.visibility = 'visible';	
		return 0;
	}

	function categoryclick(elem,category) {

		if (cookieEnabled != true) { showmessage("cookies are disabled"); return 0; }

		var l = category.length + 2;
		var bl = badcategories.length;
		var i = badcategories.indexOf("*"+category+"*");
		if ( i == -1 ) {
			elem.style.color = "AAAAAA";
			badcategories += "*"+category+"*";
			}
		else {
			switch (i) {
				case 0: 			badcategories = badcategories.substring(l); break;
				case (bl-l):	badcategories = badcategories.substring(0,bl-l); break;
				default:			badcategories = badcategories.substring(0,i) + badcategories.substring(i+l);
				}	
			elem.style.color = "000000";
			}

		//setcookie( 'badcategories', badcategories, 10000 );
		//showmessage(badcategories);
		dorefreshflag = 1;
		dorefresh();
		return 0;
	}

	function showmessage(text) {
		//parent.top.document.getElementById('message').style.visibility = 'visible';
		//parent.top.document.getElementById('message').innerHTML = text;
		document.getElementById('message').style.visibility = 'visible';		
		document.getElementById('message').innerHTML = text;		
	}

	function assigncategory(category) {
		if (category!='') {
			makeDelete('dbcategory.php', "?subject=" + categorysubject + "&category=" + category );
			dorefreshflag = 1;
		}
		document.getElementById('categorylist').style.visibility = 'hidden';	
		return 0;
	}

	function dorefresh() {
		if (dorefreshflag == 1 ) {
			dorefreshflag = 0;
			//dochref = document.getElementById('dochref').innerHTML;
			//alert("dochref = " + dochref);
			//document.location.href = unescape(dochref);
			document.location.reload(true);
		}
	}

	function dorefreshclick(dochref,dochref2) {
		location.href = dochref;
		parent.frames[1].location = dochref2; 
	}

	function usingie() {
		if ( document.getElementById('dochref').innerHTML == "1" ) { return true; } else { return false; }
	}

	function doframe(elem,frame,url) {
		document.getElementById(frame).src = url;
		// alert( "id = " + this.innerhtml );
		elem.style.color = 'red';
		if (lastsubject) lastsubject.style.color = 'black';
		lastsubject = elem;
		return 0;
	}

	function setcookie( name, value, expires ) {
		// set time, it's in milliseconds
		var today = new Date();
		today.setTime( today.getTime() );
		if ( expires ) { expires = expires * 1000 * 60 * 60 * 24; }
		var expires_date = new Date( today.getTime() + (expires) );
		document.cookie = name + "=" + value + ";expires=" + expires_date.toGMTString();
	}
				
	function q(text) {
		return '"' + text + '"';
		}
