/*
Firefox v.2 seems to hang (or just consider itself finished) on readystate 3, but IE needs to 
get to readystate 4 before checking for status 200 -- maybe this is a hack but I made a 
here so we can use a variable for the readystate comparison value based on whether the browser
is IE or not.

so, usually in a callback function, where we would check if(request.readyState == 4),
we'll use the variable instead of 4 eg. if(request.readyState == rsDone)
*/

var rsDone = 4;
var agentStr = navigator.userAgent;
if(agentStr.indexOf("Firefox/2")>-1){
	var rsDone = 3;
}

var request = null;
function createRequest(){
	try{
		request = new XMLHttpRequest();
	}catch(trymicrosoft){
		try{
			request = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(othermicrosoft){
			try{
				request = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(failed){
			request = null;
			}
		}
	}
	if(request == null){
		alert("Error creating request object");
	}

}
var position;
function getFeatures(prodId,lang,obj){
	var row = obj.parentNode.parentNode;
	position = findPos(row);
	createRequest();
	var url = "/includes_common2/getFeaturesAjax.php?prodId="+prodId+"&lang="+lang;
	request.open("GET", url, true);
	request.onreadystatechange = showFeatures;
	request.send(null);
}


function getMultiDocs(idStr,lang,obj){
	var row = obj.parentNode.parentNode;
	position = findPos(row);
	createRequest();
	var url = "/includes_common2/getMultiDocAjax.php?prodId="+idStr+"&lang="+lang;
	//alert("the url for ajax is "+url);
	//return false;
	request.open("GET", url, true);
	request.onreadystatechange = showFeatures;
	request.send(null);
}

function getTrainingClassDesc(idStr,lang,obj){
	var row = obj;
	position = findPos(row);
	createRequest();
	var url = "/includes_common2/getTrainingClassDescAjax.php?classId="+idStr+"&lang="+lang;
	//alert("the url for ajax is "+url);
	//return false;
	request.open("GET", url, true);
	request.onreadystatechange = showTrainingFeatures;
	request.send(null);
}

function showTrainingFeatures(){
	//var y = getScrollXY();
	var rowYPos = position[1]+20+"px";
	if(request.readyState == rsDone){
	var features = request.responseText;
	//alert("response = "+features);
	var featuresDiv = document.getElementById("featuresDiv");
	//replaceText(featuresDiv, features);
	//featuresDiv.style.display="inline";
	featuresDiv.style.visibility="visible";
	featuresDiv.style.top = rowYPos;
	featuresDiv.innerHTML = features;
	}
}

function showFeatures(){
	//var y = getScrollXY();
	var rowYPos = position[1]+10+"px";
	if(request.readyState == rsDone){
	var features = request.responseText;
	//alert("response = "+features);
	var featuresDiv = document.getElementById("featuresDiv");
	//replaceText(featuresDiv, features);
	//featuresDiv.style.display="inline";
	featuresDiv.style.visibility="visible";
	featuresDiv.style.top = rowYPos;
	featuresDiv.innerHTML = features;
	}
}


function hideFeatures(){
var featuresDiv = document.getElementById("featuresDiv");
featuresDiv.innerHTML = "";
featuresDiv.style.visibility="hidden";
}


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 ];
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}