function XHConn(sURL, sMethod, sVars, fnDone) {
	if (sURL) {
		var selfobj=new XHConn();
		selfobj.connect(sURL, sMethod, sVars, fnDone);
		return;
	}
	var xmlhttp, bComplete = false;
	this.init = function() {
		var tmpxmlhttp;
		try { tmpxmlhttp = new XMLHttpRequest(); }
		catch (e) { try { tmpxmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
		catch (e) { try { tmpxmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
		catch (e) { tmpxmlhttp = false; }}}
		return tmpxmlhttp;
	}
	xmlhttp=this.init();
	if (!xmlhttp) return null;

	this.connect = function(sURL, sMethod, sVars, fnDone) {
		if (!xmlhttp) {xmlhttp=this.init();}
		if (!xmlhttp) return false;
		bComplete = false;
		if (!sMethod) {sMethod='GET';}
		sMethod = sMethod.toUpperCase();
		if (typeof sVars == 'object') {
			var objvars=sVars;
			sVars=[];
			for (var i in objvars) {sVars.push(i+'='+encodeURIComponent(objvars[i]));}
			sVars=sVars.join('&');
		}
		try {
			if (sMethod == "GET") {
				xmlhttp.open(sMethod, sURL+(sVars!=''?'?'+sVars:''), true);
				sVars = "";
			} else {
				xmlhttp.open(sMethod, sURL, true);
				xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
				xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			}
			xmlhttp.onreadystatechange = function() {if ((xmlhttp.readyState==4||xmlhttp.readyState=='complete') && !bComplete) {
				bComplete = true;
				if ((fnDone!='') && (typeof fnDone == 'string')) {
					document.getElementById(fnDone).innerHTML=xmlhttp.responseText;
					var els=document.getElementById(fnDone).getElementsByTagName('script');
					for (var i=0;i<els.length;i++) setTimeout(els[i].text.replace(/^\s*<!--/,'').replace(/-->\s*$/,''),100);
				}
				else if (fnDone) fnDone(xmlhttp.responseText);
			}};
			xmlhttp.send(sVars);
		}
		catch(z) {return false;}
		return true;
	};
}

function $id(id) {
	return document.getElementById(id);
}

function ani_bg(el,fadefrom,fadeto) {
	if (this==window) {var newobj=new ani_bg(el);return false;}
	this.el=el;
	this.step=function () {
		this.el.style.background
	}
}

function auction_update(getbidders,bid_update_ids_opt) {
	if (!bid_update_ids_opt) bid_update_ids_opt=bid_update_ids;
	XHConn(window.siteurl+'?p=ajax_updateauctions&ids='+bid_update_ids_opt+(getbidders?'&bidders=1':''),'GET',null,function (text) {
		if (text=='') return false;
		var obj;
		var TOTS;
		eval('obj='+text);
		$id('tP2').innerHTML=TOTS;
		for (id in obj) {
			if (obj[id].time) $id('bid_'+id+'_time').innerHTML=obj[id].time;
			if (obj[id].price) if ($id('bid_'+id+'_price').innerHTML!=obj[id].price) {
				$id('bid_'+id+'_price').innerHTML=obj[id].price;
				colorFade('bid_'+id+'_price','background','FFFFFF','FFEC1F',25,20,function() {
					colorFade('bid_'+id+'_price','background','FFEC1F','FFFFFF',25,20);
				});
			}
			if (obj[id].lastbid) $id('bid_'+id+'_lastbid').innerHTML=obj[id].lastbid;
			if (obj[id].bidders) $id('bid_'+id+'_bidders').innerHTML=obj[id].bidders;
		}
	});
	setTimeout(function(){auction_update(getbidders,bid_update_ids_opt);},1000);
}

function auction_bid(id) {
	if (!window.loggedin) {alerta('Trebuie sa fiti logat pentru a licita!',300,50);return false;}
	XHConn(window.siteurl+'?p=ajax_bidauction&id='+id,'GET',null,function (text) {
		if (!text.match(/^SUCCESS/) && text!='') {alerta(text,300,50);}
		else {
			text=text.replace(/^SUCCESS/,'');
			var json;
			eval('json='+text);
			if (json.credits) {$id('user_credits').innerHTML=json.credits;}
			if (json.credits_25) {
				$id('user_credits_25').style.height=(json.credits_25)+'px';
				var ramase_25=(50-json.credits_25);
				if (ramase_25==0) {
					$id('img_user_credits_25').title='Ai primit bonus 3 credite';
					alerta('Ai primit bonus 3 credite');
				} else $id('img_user_credits_25').title=(50-json.credits_25)+' oferte ramase';
			}
			if (json.credits_100) {
				$id('user_credits_100').style.height=((json.credits_100/4)*3)+'px';
				var ramase_100=(100-json.credits_100);
				if (ramase_100==0) {
					$id('img_user_credits_100').title='Ai primit bonus 5 credite';
					alerta('Ai primit bonus 5 credite');
				} else $id('img_user_credits_100').title=(100-json.credits_100)+' oferte ramase';

			}
			$('.alt_tool_tip').qtip({
				position: {
					corner: {
						tooltip: 'rightTop',
						target: 'leftBottom'
					}
				},
				show: {
					when: 'mouseover'
				},
				hide: { when: 'mouseout' },
				style: {
					border: {
						width: 5,
						radius: 10
					},
					padding: 10,
					textAlign: 'center',
					tip: true,
					name: 'cream'
				}
			});
		}
	});
}

// COLOR FADER
// main function to process the fade request //
function colorFade(id,element,start,end,steps,speed,oncomplete) {
	var startrgb,endrgb,er,eg,eb,step,rint,gint,bint,step;
	var target = document.getElementById(id);
	steps = steps || 20;
	speed = speed || 20;
	clearInterval(target.timer);
	endrgb = colorConv(end);
	er = endrgb[0];
	eg = endrgb[1];
	eb = endrgb[2];
	if(!target.r) {
		startrgb = colorConv(start);
		r = startrgb[0];
		g = startrgb[1];
		b = startrgb[2];
		target.r = r;
		target.g = g;
		target.b = b;
	}
	rint = Math.round(Math.abs(target.r-er)/steps);
	gint = Math.round(Math.abs(target.g-eg)/steps);
	bint = Math.round(Math.abs(target.b-eb)/steps);
	if(rint == 0) { rint = 1 }
	if(gint == 0) { gint = 1 }
	if(bint == 0) { bint = 1 }
	target.step = 1;
	target.timer = setInterval( function() { animateColor(id,element,steps,er,eg,eb,rint,gint,bint,oncomplete) }, speed);
}
function animateColor(id,element,steps,er,eg,eb,rint,gint,bint,oncomplete) {
	var target = document.getElementById(id);
	var color;
	if(target.step <= steps) {
		var r = target.r;
		var g = target.g;
		var b = target.b;
		if(r >= er) {
			r = r - rint;
		} else {
			r = parseInt(r) + parseInt(rint);
		}
		if(g >= eg) {
			g = g - gint;
		} else {
			g = parseInt(g) + parseInt(gint);
		}
		if(b >= eb) {
			b = b - bint;
		} else {
			b = parseInt(b) + parseInt(bint);
		}
		color = 'rgb(' + r + ',' + g + ',' + b + ')';
		if(element == 'background') {
			target.style.backgroundColor = color;
		} else if(element == 'border') {
			target.style.borderColor = color;
		} else {
			target.style.color = color;
		}
		target.r = r;
		target.g = g;
		target.b = b;
		target.step = target.step + 1;
	} else {
		clearInterval(target.timer);
		color = 'rgb(' + er + ',' + eg + ',' + eb + ')';
		if(element == 'background') {
			target.style.backgroundColor = color;
		} else if(element == 'border') {
			target.style.borderColor = color;
		} else {
			target.style.color = color;
		}
		if (oncomplete) {
			oncomplete();
		}
	}
}
function colorConv(color) {
	var rgb = [parseInt(color.substring(0,2),16),
	parseInt(color.substring(2,4),16),
	parseInt(color.substring(4,6),16)];
	return rgb;
}



