//conditions to consider for future remake of this ajax request:
// 1. ability to focus a control after the complete event fired. (see function tryfocus() for workaround

var xmlhttp = null;
var spanid = "";


function xmlhttprequest(id, url) {
//alert("test"+url);
	spanid = id;
	xmlhttp = getxmlhttpobject();
	if (!xmlhttp) {
		alert('Your browser does not support xmlhttp object.');
		return;
	}

	xmlhttp.onreadystatechange = stateChanged;
	xmlhttp.open("GET", url, true);
	xmlhttp.send(null);
	return 1;

}

function getxmlhttpobject() {
	var objXMLHTTP = null;
	
	if (window.ActiveXObject){
		try { 
			objXMLHTTP = new ActiveXObject("Msxml2.XMLHTTP");
			}
		catch (e) {
			try {
				objXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
				}
			catch (e) {}
		}
	} else {
		try {
			objXMLHTTP = new XMLHttpRequest();
			}
		catch (e) { objXMLHTTP = false; }
	}
	
	if (!objXMLHTTP) { alert("...giving up. Failed to create XMLHttpRequest object."); }
	
return objXMLHTTP;
}

function stateChanged() {
		
	if (xmlhttp.readyState == 4 || xmlhttp.readyState == 'complete') {
	//	if (xmlhttp.status == 200) {
		//alert("readystate is 4");
		
			document.getElementById(spanid).style.visibility = 'visible';
			document.getElementById(spanid).innerHTML = xmlhttp.responseText; 
			tryfocus();
	}
	else {
		
		document.getElementById(spanid).innerHTML = "<br><div align='center' class='loaderstyle'> Loading <img src='images/ajax-loader.gif'></div>";
	}

}

function tryfocus(){
	try {document.forms[0].elements['forumid'].focus();}
	catch(e) {}	
}


///////////////duplicate request with additional params

function xmlhttprequest2(id, url, methods, keyvalue) {
//alert("test"+url);
	spanid = id;
	xmlhttp = getxmlhttpobject();
	if (!xmlhttp) {
		alert('Your browser does not support xmlhttp object.');
		return;
	}

	xmlhttp.onreadystatechange = stateChanged;
	xmlhttp.open(methods, url, true);
	//alert('method: '+methods+' keyvalue: '+keyvalue);
	if (methods=='post') {
		//alert(methods);
		//xmlhttp.setRequestHeader('X-Referer', document.location);
        xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
        xmlhttp.setRequestHeader("Content-Length", keyvalue.length);
        xmlhttp.setRequestHeader("Connection", "close");
	    xmlhttp.send(keyvalue);
	}
	else {
		xmlhttp.send(null);
	}
	
	return 1;
	
}

function spanfloat(spanid,size,width,height){
//	alert("1");
globalsize = size;
globalspan = spanid;
	browser = navigator.appName;

	if(size=='big'){ 
	document.getElementById('span_global').style.width = (document.body.clientWidth - 300)+"px";
	var topx =  400;
	var leftx = document.body.clientWidth - 300;
	 }
	 
	else if(size=='mid'){ 
	document.getElementById('span_global').style.width = (document.body.clientWidth - 600)+"px";
	var topx =  400;
	var leftx = document.body.clientWidth - 600;
	 }
	 
	else if(size=='custom'){ 
	document.getElementById('span_global').style.width = width;
	var topx =  height;
	var leftx = width;
	 }
	 
	else if(size=='profile'){
	document.getElementById('span_global').style.width = 588+"px";
	var topx =  687;
	var leftx = 588;
//	alert(topx);
//	alert(leftx);
	}
	else if(size=='addfriend'){
	document.getElementById('span_global').style.width = 588+"px";
	var topx =  687;
	var leftx = 588;
//	alert(topx);
//	alert(leftx);
	}
	 
	else{
	var topx = 400; var leftx = 300;
	document.getElementById('span_global').style.width = "300px";	
	}
	 
///	document.getElementById('span_global').style.width = (document.body.clientWidth - 600)+"px";	 
//else { var topx = 400; var leftx = 300; }
document.getElementById(spanid).style.display = "block";
document.getElementById(spanid).style.visibility = "visible";
var topmargin = gettop(topx);
if(topmargin<=20) topmargin = 25;
document.getElementById(spanid).style.top = topmargin+"px";
document.getElementById(spanid).style.left = getleft(leftx)+"px";
//alert(gettop(topx));
bodyshade('bodyshade');
}

function bodyshade(spanid){
	//alert('12121');
//document.getElementById(spanid).style.bgColor = "#000000";
//alert(browser);
//	if(browser=='Netscape' || browser=='Microsoft Internet Explorer'){
	if(browser=='Netscape') document.getElementById(spanid).style.opacity = .5
	else if(browser=='Microsoft Internet Explorer') document.getElementById(spanid).style.filter = "alpha(opacity=50)";
	else if(browser=='Opera') document.getElementById(spanid).style.opacity = .5
	document.getElementById(spanid).style.top = 0;
	document.getElementById(spanid).style.left = 0;
	
	var sH = document.body.scrollHeight
	var cH = document.documentElement.scrollHeight
	if(sH < cH) document.getElementById(spanid).style.height = cH+"px";
	else document.getElementById(spanid).style.height = sH+"px";
	
	var sW = document.body.scrollWidth;
	document.getElementById(spanid).style.width = sW+"px";	
//	}
}

function bodyunshade(spanid){
//	if(browser=='Netscape' || browser=='Microsoft Internet Explorer'){
	if(browser=='Netscape') document.getElementById(spanid).style.opacity = .0
	else if(browser=='Microsoft Internet Explorer') document.getElementById(spanid).style.filter = "alpha(opacity=0)";
	else if(browser=='Opera') document.getElementById(spanid).style.opacity = .0
	document.getElementById(spanid).style.height = 0+"px";
	document.getElementById(spanid).style.width = 0+"px";
//	}
}

function closespan(spanid){
	document.getElementById(spanid).style.visibility = "hidden";
}

function closepop(){
	closespan('span_global');
	bodyunshade('bodyshade');
}

function gettop(objectheight){
	//var displacedH = ((screen.availHeight)/2) - (objectheight/2) ;
	var scrXY = new Array();
	var displacedH;
	scrXY = getScrollXY();
//	if(browser=='Netscape') var browserheight = document.body.clientHeight;
	if(browser=='Microsoft Internet Explorer'){
		if (document.documentElement && document.documentElement.clientHeight)
			browserheight = document.documentElement.clientHeight;
		else if (document.body)
			browserheight = document.body.clientHeight
		displacedH = (((browserheight)/2) - (objectheight/2)) + 15 + scrXY[1];
	}
	else if(browser=='Netscape'){
			displacedH = document.body.scrollTop + ((document.body.clientHeight - objectheight)/2);
//			alert(document.body.scrollTop);
	}
	else if(browser=='Opera') {
		var browserheight = document.body.clientHeight;
		displacedH = (((browserheight)/2) - (objectheight/2)) + 15 + scrXY[1];
	}
//	var displacedH = ((document.body.clientHeight-objectheight)/2)  + scrXY[1];
//	alert(browserheight+"::"+objectheight+"::"+document.body.scrollHeight);
//	var displacedH = document.body.scrollTop;
//	alert(document.body.scrollTop);
	return displacedH;
}

function getleft(objectwidth){
	//var displacedH = ((screen.availHeight)/2) - (objectheight/2) ;
//	var scrXY = new Array();
//	scrXY = getScrollXY();
		
	var displacedW = (((document.body.clientWidth)/2) - (objectwidth/2));
	return displacedW;
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
// return [ scrOfX, scrOfY ];
 var scr = new Array(scrOfX,scrOfY);
 return scr;
}

function ismaxlength(obj){
var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
if (obj.getAttribute && obj.value.length>mlength)
obj.value=obj.value.substring(0,mlength)
}


function removehelp(mobile,step){
	if(document.getElementById('removehelp').checked==true){
		xmlhttprequest2('span_global', 'ajax/updatehelp.php?mobile='+mobile+'&step='+step ,'get');	
	}
}
