
function previewRequest() {
	this.request = new getXmlHttpObject();
}

function loadPreview( cardID, fileName, description ) {
	
	document.getElementById('previewPane').style.display = 'block';
	document.getElementById('previewName').innerHTML = "Preview: <span style='color: black;'>"+fileName+"<\/span>";
	document.getElementById('previewInfo').innerHTML = "<b>Description: </b> " + description + "<hr>";
	document.getElementById('previewText').innerHTML = "Loading...";
	
	dsShowOverlay();

	var theRequest = new previewRequest();
	var request = theRequest.request;
	var url = "fileGet.php?fileid=" + cardID;
	
	request.open("GET",url,true);
	
	// set this after the open call. normally you would think you'd set it before to avoid race conditions but it doesn't work properly on IE 
	//if ( request.onreadystatechange == "undefined" )
		request.onreadystatechange = function() { stateChanged(theRequest) };
	
	request.send(null);

	//var previewText = document.getElementById('previewText');
	//var content = document.getElementById('fileContent').value;
	
	//var fileName = document.getElementById('fileName');
	//var previewName = document.getElementById('previewName');
	//previewName.innerHTML = fileName.value + " Preview";
	
	//previewText.innerHTML = parseCards( content );
}


function stateChanged( theRequest ) {

	//console.log( "entering statechanged" );
	
	var request = theRequest.request;

	if ( typeof(request) == "undefined" ) {
		// i don't really know how this happens, but it does. usually on a refresh or something
		// somehow the object becomes undefined yet the object's stateChanged() method is still called
		//console.log( "exiting statechanged- request type is undefined" );
		return;
	}
	
	//console.log( "entering statechanged " + pingRequest.host + " pingRequest.host = " + pingRequest.host + " state = " + request.readyState );
	
	if ( request.readyState==4)
	{ 
		// if status == 401
		var el = document.getElementById( "previewText" );
		
		if ( request.status == 200 ) {
			
			//el.innerHTML = request.responseText;
			var cm = new CardManager();
			cm.parseCards( request.responseText );
			el.innerHTML = cm.toHTMLList();
			
		} else {
			el.innerHTML = request.responseText;
		}
	}

	//console.log( "exiting statechanged " + pingRequest.host + " pingRequest.host = " + pingRequest.host + " state = " + request.readyState );
}