var md5_value = '';

function AJAX(as_xml) {
	this._method = "GET";
	this._vars = null;

	if (window.XMLHttpRequest) {
		this._request = new XMLHttpRequest();
		if (as_xml && this._request.overrideMimeType) {
			this._request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) {
		try {
			this._request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				this._request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				alert('Failed to create');
			}
		}
	}
}

AJAX.prototype.execute = function(url, parser) {
	var xml = this._request;

	if (url.indexOf('?') != -1) {
		url = url + "&rnd=" + Math.random();
	} else {
		url = url + "?rnd=" + Math.random();
	}

	xml.open(this._method, url, true);

	if (this._method == "POST") {
		xml.setRequestHeader("Content-Type",
				"application/x-www-form-urlencoded");
	}

	var readystate = function() {
		try {
			if ((xml.readyState == 4) && (xml.status == 200)) {

				try {
					parser(xml);
				} catch (e) {

				}

				xml.onreadystatechange = function() {
				};
				xml = null;
			}
		} catch (e) {
			
		}
	}

	this._request.onreadystatechange = readystate;
	this._request.send(this._vars);
}


function getMovie(id) {
    var M$ =  navigator.appName.indexOf("Microsoft")!=-1;
    return (M$ ? window : document)[id];
}

function callbackActive(xml) {
	var data = xml.responseText; // --- RT ---
	
	try {
		document.getElementById('main_').sendA(data);	
	} catch(e) {
		try {
			document.getElementById('_main').sendA(data);
		} catch(e) {
			//--- nothing to do ---
		}
		
	}
}

function callbackProgress(xml) {
	var data = xml.responseText; // --- RT ---
	
	if(!md5_value) return; //--- RETURN --- 
 	
	if(data == '-') {
		try {
			document.getElementById('main_').setUnknown();	
		} catch(e) {
			try {
				document.getElementById('_main').setUnknown();
			} catch(e) {
				//--- nothing to do ---
			}
			
		}
		return false; //--- false ---
	}
	
	try {
		document.getElementById('main_').setProgress(data);	
	} catch(e) {
		try {
			document.getElementById('_main').setProgress(data);
		} catch(e) {
			//--- nothing to do ---
		}
		
	}
	
	
	if(data != '100') {
		window.setTimeout('displayProgress()',1000);
	}	
}

function processVah(id) {
	var a = new AJAX();
	a.execute("/vah.php?id="+id, callbackActive);
}

function  redirectToUrl(url) {
	window.location = url;
}

//--- progress listener --- 
function startProgress(key) {
	md5_value = key;
	window.setTimeout('displayProgress()',2000); 
}

function displayProgress() {
	if(md5_value) {
		var a = new AJAX();
		a.execute("/bingo.php?progress="+md5_value, callbackProgress);
	}	
}


function cancelProgress() {
	md5_value = '';
}