function ajax(){
	var a = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
    return {
    	post: function(url,data,ok,er){
			if(a){
				try{
					if(a.readyState == 0 || a.readyState == 4){
						a.open('POST',url,true);
						a.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
						a.onreadystatechange = function(){
						 	if(a.readyState == 4){
						 		if(a.status == 200){
						 			try{
						 				ok(a.responseText);
									}catch(e){
										er(e);
									}
								}else{
									er(a.status);
								}
							}
						}
						a.send(data);
					}else{er(a.readyState)}
				}catch(e){er(e);}
			}
        }
    }
}
function getData(url,data){ /* грузит баннеры */
	var ok = function(respTxt){
		var a = respTxt.split('__');
		var c = a.length;
		for(i=0;i<c;i++){
			var arr = a[i].split('**');
			document.getElementById(arr[0]).innerHTML = arr[1];
		}
	}
	var er = function(err){		alert('_error: '+err);
	}
	data += '&page='+document.location.href;
	ajax().post(url,data,ok,er);
}
function goodList(backend, div){
	x = ajax();	var gl = document.getElementById(div);
	var cache = {};
	var ID;
	var z = tst(1,0.7,document.getElementById('gs1'));
	var pos = function(){		y = document.documentElement.scrollTop | window.pageYOffset;
  		gl.style.top = y+180+'px';
  	}
	var loading = function(){		gl.style.visibility = 'visible';		gl.innerHTML = 'Loading...';
		z.disappear();
  	}
	var ok = function(respTxt){
		gl.innerHTML = respTxt;
		cache[ID] = respTxt;
	}
	var er = function(err){		alert('error: '+err);
	}
	return{
		get: function(casinoID){
			pos();
			loading();
			if(cache[casinoID]){
				ok(cache[casinoID]);
			}else{
				ID = casinoID;
				data = 'id='+casinoID;
				x.post(backend,data,ok,er);
			}
		},
		close: function(){			gl.innerHTML = '';
			gl.style.visibility = 'hidden';
			z.appear()
		}
	}
}

/* play.php */
function play(backend, casinos){
	var aff = '';
	var page = encodeURIComponent(document.location.href);
 	/* set handlers */
 	for(var eid in casinos){
		document.getElementById(eid).onmousedown = function(e){
			aff = casinos[this.id].a;
            if(this.tagName == 'A'){
		    	if(aff != '') this.href = aff
		    	var success = ok;
			}else{		    	var success = ok_go;
			}
			data = 'id='+casinos[this.id].c+'&p='+page+'&i='+casinos[this.id].i;
			ajax().post(backend,data,success,er);
		}
	}
	var ok_go = function(respTxt){document.location.href = aff;}
	var ok = function(respTxt){};
	var er = function(err){		//alert('error: '+err);
	}
	return{
		wr: function(id,index){
			data = 'id='+id+'&p='+page+'&i='+index;
			ajax().post(backend,data,ok,er);
		}
	}
}
/* banner.php */
function writeClick(backend){	var page = encodeURIComponent(document.location.href);
	var ok = function(respTxt){};
	var er = function(err){		//alert('error: '+err);
	}
	return{
		wr: function(id,index){
			data = 'id='+id+'&p='+page+'&i='+index;
			ajax().post(backend,data,ok,er);
		}
	}
}
function tst(x,x2,obj){ /* x - конечное значение прозрачности, x2 - начальное */
	var t,t2;
	return{
		appear: function() {
			var op = (obj.style.opacity)?parseFloat(obj.style.opacity):parseInt(obj.style.filter)/100;
			if(op < x) {
				clearTimeout(t2);
				op += 0.05;
				obj.style.opacity = op;
				obj.style.filter='alpha(opacity='+op*100+')';
				t = setTimeout(arguments.callee,50);
			}
		},
		disappear: function() {
			var op = (obj.style.opacity)?parseFloat(obj.style.opacity):parseInt(obj.style.filter)/100;
			if(op > x2) {
				clearTimeout(t);
				op -= 0.05;
				obj.style.opacity = op;
				obj.style.filter='alpha(opacity='+op*100+')';
				t2 = setTimeout(arguments.callee,50);
			}
		}
	}
}
/ * flash */
function insertFlash(node, url, width, height, params) {
  var object, param, key;
  function newParam(name, value) {
    if(0 /*@cc_on + 1 @*/) return ['<PARAM name="', name, '" value="', value, '" />'].join('');
    else {
      param = document.createElement('param');
      param.name = name;
      param.value = value;
      return param;
    }
  }
  if(0 /*@cc_on + 1 @*/) {
    object = ['<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="', width, '" height="', height, '"><PARAM name="movie" value="', url, '" />'];
    if(params) for(key in params) if(params.hasOwnProperty(key)) object.push(newParam(key, params[key]));
    object.push('</OBJECT>');
    node.innerHTML = object.join('');
  }
  else {
    object = document.createElement('object');
    object.type = 'application/x-shockwave-flash';
    object.data = url;
    object.width = width;
    object.height = height;
    if(params) for(key in params) if(params.hasOwnProperty(key)) object.appendChild(newParam(key, params[key]));
    while(node.firstChild) node.removeChild(node.firstChild);
    node.appendChild(object);
  }
}
/* sort table */
function sort(tblID, url){
	var x = ajax();
	var c;
	var ok = function(respTxt){		c = '';
		var eid = document.getElementById(tblID);
		eid.innerHTML = respTxt;
	}
	var er = function(err){
		alert('_error: '+err);
	}
	return{
		exe: function(id){			if(c == 'loading') return;			var eid = document.getElementById(id);
			data = 's='+id+'&a='+eid.className;
			eid.className = 'loading';
			c = 'loading';
			x.post(url,data,ok,er);
		},
		over: function(id){
			if(c == 'loading') return;			var eid = document.getElementById(id);
			c = eid.className;
			eid.className = c != 'asc' ? 'asc' : 'desc';
		},
		out: function(id){			if(c == 'loading') return;			document.getElementById(id).className = c;
		}
	}
}
