var xPos = 0;
var yPos = 0;
var axnode = null;
var docBodyNode = null;
var sdata = null;
var ident = null;
var spinner = false;

window.onload = initAll;
var statesArray = new Array();

function initAll() {
	try {
        ob = document.getElementById("searchbox");
        ob.onkeyup = searchSuggest;
        if (ob.value > "") {
			searchSuggest(ob);
        }
	} catch (e) {}
}

document.onmousemove = moveHandler;

function moveHandler(evt) {
	if (!evt) {
		evt = window.event;
	}
	xPos = evt.clientX;
	yPos = evt.clientY;
}

function getYOffset() {
    var pageY;
    if(typeof(window.pageYOffset)=='number') {
       pageY=window.pageYOffset;
    }
    else {
       pageY=document.documentElement.scrollTop;
    }
    return pageY;
}

function showBusy(scrncenter) {
	if (spinner) {
		return;
	}
	spinner = true;
	if (scrncenter == null) scrncenter == false;
	docBodyNode = document.getElementsByTagName("body")[0];
	axnode = document.createElement('div');
	axnode.setAttribute('id','axbusy');
	if (scrncenter == true) {
		axnode.style.position = "fixed";
		axnode.style.left = ((screen.availWidth / 2) - 100) + 'px'; //'300px';
		axnode.style.top = ((screen.availHeight / 2) - 100) + 'px'; //'300px';
		axnode.style.zIndex = 2;
	}
	else {
		axnode.style.position = "absolute";
		axnode.style.zIndex = 2;
		yPos = yPos + getYOffset();
		axnode.style.top = yPos - 120 + 'px'
		// alert('xPos : ' + xPos + '  yPos: ' + yPos);
		if (xPos > 700) xPos = xPos - 100;
		axnode.style.left = xPos - 60 + 'px'
		// alert("xPos:" + xPos + " " + "yPos:" + yPos);
	}
	axnode.innerHTML = '<img border="0" src="/web-dev/images/petal_spinner.gif">';
	docBodyNode.appendChild(axnode);
}

function clearBusy() {
	try {
                spinner = false;
		docBodyNode.removeChild(axnode);
	} 	catch(e) {
		// alert('Failed to remove spinner ...');
		// document.getElementById('astatus').innerHTML = "Failed to remove spinner ...";
	}
}

function page(way, block_id) {

	var toprec = document.getElementById("toprec_" + block_id).innerHTML;
	var pgsize = document.getElementById("pgsize_" + block_id).innerHTML;
	var template = document.getElementById("template_" + block_id).innerHTML;
	
	var next = 0;
	next = (way == "fwd") ? (toprec * 1) + (pgsize * 1) : (toprec * 1) - (pgsize * 1);
	if (next <= 0) next = 1;

	// alert(template);
	// alert("Paging: " + way + " Next Rec:" + next);
	// window.location.href = "render_id.php?pg=index.php&st=" + next;
	
	payload = "mode=axload&blockid=" + block_id + "&toprec=" + next + '&pgsize=' 
				+ pgsize + "&template=" + encodeURIComponent(template);

	// alert("Toprec:" + toprec + " Page:" + pgsize);
	// alert("Template Uploaded:" + "\n" + template);

	showBusy();
	
	if (payload != "") {
		client.isAsync = false;
		axsend('/ctx.php', payload);
		data = lastresult;
		// alert(lastresult);
		client.isAsync = true;
	}
	
	setTimeout(clearBusy, 1000);
	
	// alert("Download:" + "\n" + lastresult);
	ob = document.getElementById("bmb_" + block_id);
	
	var node = document.createElement('span');
	node.style.display = 'none';
	node.setAttribute('id','template_' + block_id);
	node.innerHTML = template;
	ob.innerHTML = lastresult;
	ob.appendChild(node);
	
	// alert("New Block:" + "\n" + ob.innerHTML);
}

function pagefrom(pageno, block_id) {

	var pgsize = document.getElementById("pgsize_" + block_id).innerHTML;
	var template = document.getElementById("template_" + block_id).innerHTML;
	
	var next = ((pageno - 1) * pgsize) + 1;

	// alert(template);
	// alert("Paging: " + way + " Next Rec:" + next);

	// window.location.href = "render_id.php?pg=index.php&st=" + next;
	
	payload = "mode=axload&blockid=" + block_id + "&toprec=" + next + '&pgsize=' 
				+ pgsize + "&template=" + encodeURIComponent(template);

	// alert("Toprec:" + toprec + " Page:" + pgsize);
	// alert("Template Uploaded:" + "\n" + template);

	showBusy();
			
	if (payload != "") {
		client.isAsync = false;
		axsend('/ctx.php', payload);
		data = lastresult;
		// alert(lastresult);
		client.isAsync = true;
	}

	setTimeout(clearBusy, 1000);
	
	// alert("Download:" + "\n" + lastresult);
	
	ob = document.getElementById("bmb_" + block_id);
	
	var node = document.createElement('span');
	node.style.display = 'none';
	// node.setAttribute('style','DISPLAY: none;');
	node.setAttribute('id','template_' + block_id);
	node.innerHTML = template;
	ob.innerHTML = lastresult;
	ob.appendChild(node);
	
	// alert("New Block:" + "\n" + ob.innerHTML);
}

function setsort(fldname, block_id) {
	elem = document.getElementById("parms_x_" + block_id);
	var parms = elem.innerHTML;
	rx = /\[sort\].*?\[\/sort\]/;
	parms = parms.replace(rx, '[sort]' + fldname + '[/sort]');
	elem.innerHTML = parms;
	pagefrom(1, block_id);
}

function basket(item) {
	rx = /[']/;
	if (confirm('Add to basket ...' + item)) {
		payload = "descr=" + encodeURIComponent(item);
		showBusy();
		client.isAsync = false;
		axsend('/basket.php', payload);
		setTimeout(clearBusy, 500);
		alert(lastresult);
		client.isAsync = true;
	}
}

function switchpic(picname) {
	ob = document.getElementById("main");
	ob.setAttribute('src', '/images/' + picname);
}

function bmlogin(mode) {
	rx = /[']/;

	axnode = document.getElementById("bmlogon");
	
	switch(mode) {
	case 0 :
	    // alert("Move it 2");
		// axnode.style.position = "absolute";
		// axnode.style.visibility = "visible";
		axnode.style.position = "absolute";
		axnode.style.display = "block";
		yPos = yPos + getYOffset() - 300;
		axnode.style.top = yPos;
		// alert('xPos : ' + xPos + '  yPos: ' + yPos);
		if (xPos > 700) xPos = xPos - 100;
		axnode.style.left = xPos;
		break;
		
	case 1 :
		axnode.style.display = "none";
		break;
		
	case 2 :
		// axnode.style.display = "none";
		var bmuser = document.getElementById("bmuser").value;
		var bmpass = document.getElementById("bmpass").value;
		// alert("User: " + bmuser + " Pass: " + bmpass);
		payload = "user=" + bmuser + "&pass=" + bmpass;
		showBusy();
		client.isAsync = false;
		funlist = "nodisplay";
		axsend('/send.php', payload);
		clearBusy();
		if (lastresult != "")
			setTimeout("alert(lastresult)", 500);
		if (lastresult == "")
			setTimeout("window.location.href='/user-list-enquiries.php'", 500);
		client.isAsync = true;
		break;
		
	case 3 :
		var data = document.getElementById("bmemail").value;
		payload = "esend=1&email=" + encodeURIComponent(data);
		showBusy();
		client.isAsync = false;
		funlist = "nodisplay";
		axsend('/send.php', payload);
		setTimeout(clearBusy, 500);
		if (lastresult != "")
			setTimeout("alert(lastresult)", 500);
		if (lastresult == "")
			setTimeout("window.location.href='/render.php?pg=password-confirm.php'", 500);
		client.isAsync = true;
		break;		
	}
}

function makeChoice(evt) {
	var thisDiv = (evt) ? evt.target : window.event.srcElement;
	// document.getElementById("searchbox").value = thisDiv.innerHTML;
	// document.getElementById("popups").innerHTML = "";
}

function searchSuggest() {
	clearTimeout(ident);
	ident = setTimeout(loadSuggest, 1000);
}

function loadSuggest() {
	var str = document.getElementById("searchbox").value;
	// var smode = document.getElementById("sr1").checked ? "x" : "v";
	// document.getElementById("searchbox").className = "";
	
	if (str != "") {
		document.getElementById("popups").innerHTML = "";
		// payload = "smode=" + smode + "&scan=" + encodeURIComponent(str);
		payload = "&scan=" + encodeURIComponent(str);
		showBusy();		
		client.isAsync = false;
		axsend('/load.php', payload);
		// alert(lastresult);
		setTimeout(clearBusy, 500);
		client.isAsync = true;
		
		document.getElementById("popups").innerHTML = lastresult;

		var obs = document.getElementById("popups").childNodes;
		var tempDiv = obs[0];
		for (var i=0; i<obs.length; i++) {
			var tempDiv = obs[i];
			tempDiv.onclick = makeChoice;
			tempDiv.className = "suggestions";
		}
		
		var foundCt = document.getElementById("popups").childNodes.length;
		if (foundCt == 0) {
			// document.getElementById("searchbox").className = "error";
			alert("No result for " + str);
		}
		// if (foundCt == 1) {
			// document.getElementById("searchbox").value = document.getElementById("popups").firstChild.innerHTML;
			// document.getElementById("popups").innerHTML = "";
		// }
		
	}

}
