var oRequest;

function showrating(_n, _fix) {
	for(var i = 0; i < 5; i++) {
		document.getElementById("rating_" + i).src = "images/icons/star" + (i >= _n ? "_grey" : "") + ".jpg";
		if(_fix == true) {
			document.getElementById("rating_" + i).onmouseover = new Function("return false");
			document.getElementById("rating_" + i).onmouseout = new Function("return false");
			document.getElementById("rating_" + i).style.cursor = "";
			//document.getElementById("rating_" + i).onmouseout = new Function("showrating(" + _n + ");");
		}
	}
}

function rate(_code, _n) {

	oRequest = false;

	if(window.XMLHttpRequest) {
		oRequest = new XMLHttpRequest();
	}
	else if(window.ActiveXObject) {
		if(oRequest = new ActiveXObject("Msxml2.XMLHTTP")) {
		} else {
			oRequest = new ActiveXObject("Microsoft.XMLHTTP")
		}
	}

	if(oRequest) {
		oRequest.onreadystatechange = getrating;
		oRequest.open('GET', "rate.php?id=" + _code + "&rating=" + _n, true);
		oRequest.send(null);
	}

}

function getrating() {

	if(oRequest.readyState == 4) {
		showrating(parseInt(oRequest.responseText), true);
		document.getElementById("ratingText").innerHTML = "Thanks for rating.<br>Rating: " + oRequest.responseText;
	}

}

function writecomment(_code) {
	
	var template = "<div class=\"comment\">";
		template += "<b>{name}</b> <i>on {date}</i>";
		template += "<div class=\"indent\">";
		template += "{text}";
		template += "</div>";
		template += "</div>";

	var name = document.getElementById("sName").value;
	var text = document.getElementById("sText").value;

	var date = new Date();

	var datestring = (date.getYear() + 1900) + "-" + date.getMonth() + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();

	var string = template.replace("{date}", datestring);
	string = string.replace("{name}", name);
	string = string.replace("{text}", text);

	oRequest = false;

	if(window.XMLHttpRequest) {
		oRequest = new XMLHttpRequest();
	}
	else if(window.ActiveXObject) {
		if(oRequest = new ActiveXObject("Msxml2.XMLHTTP")) {
		} else {
			oRequest = new ActiveXObject("Microsoft.XMLHTTP")
		}
	}

	if(oRequest) {
		oRequest.open('GET', "writecomment.php?id=" + _code + "&name=" + escape(name) + "&text=" + escape(text), true);
		oRequest.send(null);

		if(document.getElementById("comments_none"))
			document.getElementById("comments_none").style.display = "none";

		document.getElementById("commentslist").innerHTML = "<span style=\"color: red\" id=\"newcomment\">Comment saved!</span>" + string + document.getElementById("commentslist").innerHTML;

		document.getElementById("write_comment").style.display = "none";

		location.hash = "#newcomment";

	}

	return false;

}










function loadAds() {

	var iframes = document.getElementsByTagName("iframe");
	if(iframes.length < 2)
		return;

	var googleIframe = iframes[0];
	var myIframe = iframes[1];

	var googleSrc = googleIframe.src;

	var request = new AjaxRequest("giveMeTest.php", false, true);
	request.setPostvars("url=" + escape(googleSrc));
	
	request.callFunction = loadAds2;
	request.doRequest();

}

function loadAds2(_response) {

	document.getElementById("testFrame").src = _response.responseText;

}

















function delegate(_object, _method) {

	return function(_e) {
		return _method.call(_object, _e);
	}

}

function AjaxRequest(_url, _isSynchron, _post) {
	
	/* Private Members */
	
	var url = _url;
	var postvars = null;
	var isSynchron = (_isSynchron == null ? false : _isSynchron);
	var http_request = false;
	var method = (_post == null ? "GET" : "POST");
	
	// Overlay Members
	
	var image = null;
	var overlay = null;
	
	var replaceObj = null;
	
	/* Public Members */
	
	this.callFunction = null;
	this.callObject = null;
	
	
	/* Public Methods */
	
	this.doRequest = function() {
		
		if(window.XMLHttpRequest) {
			http_request = new XMLHttpRequest();
		}
		else if(window.ActiveXObject) {
			if(http_request = new ActiveXObject("Msxml2.XMLHTTP")) {
				
			} else {
				http_request = new ActiveXObject("Microsoft.XMLHTTP")
			}
		}
		
		if(http_request) {
			
			http_request.onreadystatechange = delegate(this, checkReadyState);
			http_request.open(method, url, !isSynchron);
			
			if(method == "POST") {
				http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				http_request.send(postvars);
			}
			else {
				http_request.send(null);
			}
			
			return true;
			
		}
		else return false;
	}
	
	// Returns response Text from http_request
	this.getResponseText = function() {
		if(http_request)
			return http_request.responseText;
		else
			return "";
	}
	
	// Returns response XML from http_request
	this.getResponseXML = function() {
		if(http_request)
			return http_request.responseXML;
		else
			return "";
	}
	
	// Sets POST vars
	this.setPostvars = function(_postvars) {
		postvars = _postvars;
	}
	
	// Shows an ajax loading icon and a transparent overlay div

	this.ajaxLoadingOverlay = function(_element) {
		
		if(!overlay && !image) {
			overlay = document.createElement("div");
			image = new Image();
			replaceObj = _element;
		
		} else {
			if(overlay.style.display == "none")
				overlay.style.display = "";
			else
				overlay.style.display = "none";
			
			if(image.style.display == "none")
				image.style.display = "";
			else
				image.style.display = "none";
			
			return;
		}

		var y = posY(_element);
		var x = posX(_element);
		
		// Overlay Div (Transparent)
		
		overlay.style.backgroundColor = "white";
		overlay.style.width = _element.offsetWidth + "px";
		overlay.style.height = _element.offsetHeight + "px";
		if(IE)
			overlay.style.filter = "Alpha(opacity=70)";
		else
			overlay.style.opacity = "0.7";
			
		overlay.style.position = "absolute";
		overlay.style.left = x + "px";
		overlay.style.top = y + "px";
		
		document.body.appendChild(overlay);
		
		
		// Image
		image.src = "images/ajax-loaders/circle_thickbox_blue.gif";
		image.style.position = "absolute";
		
		var imageWidth = 100;
		var imageHeight = 100;
		
		x = x +((_element.offsetWidth/2) -(imageWidth/2));
		y = y +((_element.offsetHeight/2) - (imageHeight/2));
		
		//alert(x);
		
		image.style.top = y + "px";
		image.style.left = x + "px";
		
		document.body.appendChild(image);
		
	}
	
	// This function replaces inner HTML of replaceObj
	// The replaceObj ist given by the ajaxLoadingOverlay function
	
	this.replaceInnerHTML = function(_request) {
		if(replaceObj) {
			replaceObj.innerHTML = _request.responseText;
		}
	}
		
	/* Private Methods */
	
	function checkReadyState(){
		
		if (!http_request) 
			return;
		
		if (http_request.readyState != 4) 
			return;
		
		if (http_request.status != 200) 
			return;
			
		if (replaceObj) {
			this.ajaxLoadingOverlay(replaceObj);
		}
		
		if (this.callFunction != null)
			this.callFunction(http_request);
		
		else if (this.callObject != null)
			this.callObject.updateState(http_request);
	}	
}

