var polling=0;
var silent=0;
var eventList=[];

function sleep(milliSeconds){

	var startTime = new Date().getTime(); // get the current time

	while (new Date().getTime() < startTime + milliSeconds); // hog cpu

}

function clicker(flag){
	//if (polling ==1 || silent==1)
	//	return;

	var thediv2=document.getElementById('floater_in');
	if (thediv2 != null){
		//if(thediv2.style.display == "none" || flag==true){
		if(flag==true){
			thediv2.style.display = "";
			
		}
		//else if(thediv2.style.display != "none" || flag==false) {
		else if(flag==false) {

			thediv2.style.display = "none";
			
		}
	}
		return false;
}

function renderDH(spinner) {
	var beg = '[_dhwnd_]';
	var end = '[/_dhwnd_]';
	
	var arr = document.tempvar.split(end);
	
	for (x=0; x<arr.length; x++)
	{
		var item = arr[x];//.trim();
		if (item.length > 0) {
			
			var data = item.split(beg);
			
			document.getElementById("uidh"+data[1]).innerHTML = data[0];
			
		}
	}
	//if (spinner != null && spinner==1) {
		
	//}
}

function sendEvent(o, e, n, sessionSuffix) {

	if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp = new XMLHttpRequest();
	} else { // code for IE6, IE5
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	xmlhttp.onreadystatechange = function() {
		
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			
			var txt = xmlhttp.responseText;
			var idx = txt.indexOf('[_endscript_]');
			
			scr = txt.substring(0, idx);
			html = txt.substring(idx+13);
			document.tempvar=html;
			
			eval(scr);
			if (polling==0 || eventList.length == 0)
				clicker(false);
			if (polling==1) {
				setTimeout(xeiPoll, 200);
			}
			
		}
	}
	
	var query = sessionSuffix+"?xeidh=1&xei_obj="+o+"&xei_event="+e;
	
	if (n != null) {
		query = query + "&xei_nav="+n;
	}
	
	query = query + "&xei_rand="+Math.floor(Math.random()*1000000);
	if (e != null && e!="poll") {
		frm = document.forms[0];
		for(i=0; i<frm.elements.length; i++){
			if (frm.elements[i].name  == null || frm.elements[i].name.indexOf("xeiinput")!=0)
				continue;
			
	    	query = query + "&"+frm.elements[i].name+"="+escape(frm.elements[i].value);
		}
	} else {
		
	}
	
	xmlhttp.open("GET", query, true);
	xmlhttp.send();
	
	//if (e != null && e!="poll" && silent==0) 
	{
		//clicker(true);
	}
}

function doEventDH(o, e, n, sessionSuffix) {
	
	if (e==null || e!="poll")
		clicker(true);
		
	if (polling == 1 && (e!=null && e!="poll")) {
		
		eventList.push([o,e,n,sessionSuffix])
		return;
	}
	
	sendEvent(o,e,n,sessionSuffix);
}

function xeiPoll()
{
	polling=1;
	
	if (eventList.length > 0) {
		var obj = eventList.shift();
		
		if (obj != null) {
			//alert('got item');
			sendEvent(obj[0], obj[1], obj[2], obj[3]);
			
			return;
		} 
	}
	
	doEvent(null,'poll', null, null);
	
}

function xeiAutoFocusNext(e){
	
    if (e.value.length==e.maxLength){
    	
      next=e.tabIndex;
      
      next = 1;
      old = null;
      var nextElem=null
      for(var i = 0; i < document.forms[0].elements.length; i++)
      {
      	var cur = document.forms[0].elements[i];
      	
      	if (old == e) {
      		nextElem = cur;
      		break;
      	}
      	old=cur;

      }
      if (nextElem != null){
      	
        nextElem.focus()
    	} else {
    		alert('no next found' );
    	}
      
  }
}

function testPost() {
	post_to_url("http://google.com", {one: 1, two: 2, three: 3, "i'm no 4": 4, q:123}, "post");
}

function post_to_url(path, params, method) {
    method = method || "post"; // Set method to post by default, if not specified.

    // The rest of this code assumes you are not using a library.
    // It can be made less wordy if you use one.
    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);

    for(var key in params) {
        if(params.hasOwnProperty(key)) {
            var hiddenField = document.createElement("input");
            hiddenField.setAttribute("type", "hidden");
            hiddenField.setAttribute("name", key);
            hiddenField.setAttribute("value", params[key]);

            form.appendChild(hiddenField);
         }
    }

    document.body.appendChild(form);
    form.submit();
}

function doEventSilent(obj, event, nav, sessionSuffix)
{
	silent=1;
	doEvent(obj, event, nav, sessionSuffix);
	silent=0;
}
