
var draggedObj = 0;

function msieversion() {
	var ua = window.navigator.userAgent;
	var msie = ua.indexOf("MSIE ");
	if (msie > 0) {
		return parseInt(ua.substring (msie+5, ua.indexOf (".", msie)));
    }  else {// If another browser, return 0
		return 0;
	}
}

function dragPlate(obj) {
	draggedObj = obj;
	var div = document.getElementById("dragimage");
	div.innerHTML = "<img src='" + obj.src + "' />";
	return false;
}

document.onmousemove = function(e) {
	var div = document.getElementById("dragimage");
	var d = document.documentElement.scrollTop ? document.documentElement : document.body;
	if(document.all) {
		div.style.left = window.event.x + 1 + (msieversion() > 7 && msieversion != 0 ? 0 : d.scrollLeft) + "px";
		div.style.top = window.event.y + 1 + (msieversion() > 7 && msieversion != 0 ? 0 : d.scrollTop) + "px";
	} else {
		div.style.left = e.clientX + d.scrollLeft + "px";
		div.style.top = e.clientY + d.scrollTop + "px";
	}
	return draggedObj == 0;
}

function create_ajax() {
	return window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
}

document.onmouseup = function(e) {
	var el1 = document.getElementById("dragdrop");
	var d = document.all ? document.documentElement : document.body;
	var offsetX = el1.offsetLeft - d.scrollLeft;
	var offsetY = el1.offsetTop - d.scrollTop;
	if(msieversion() < 8 && msieversion() != 0) { // ie
		offsetX += document.getElementById("main").offsetLeft;
		offsetY += document.getElementById("sidebar").offsetTop;
	} else if(msieversion() != 0) { // why must 8 change again?! *sadface*
		offsetX += d.scrollLeft;
		offsetY += d.scrollTop;
	}
	var offsetW = offsetX + el1.offsetWidth;
	var offsetH = offsetY + el1.offsetHeight;
	var plate = draggedObj.getAttribute("alt");
	ev = window.event ? window.event : e;
	var mouseX = window.event ? window.event.x : e.clientX;
	var mouseY = window.event ? window.event.y : e.clientY;
	
	if(mouseX > offsetX && mouseX < offsetW && mouseY > offsetY && mouseY < offsetH && draggedObj != 0) {
		var xmlhttp = create_ajax();
		xmlhttp.onreadystatechange = function() {
			if(xmlhttp.readyState == 4) {
				if(xmlhttp.responseText != "gtfo") {
				//document.getElementById("dragdrop").innerHTML = xmlhttp.responseText;
					var newfav = document.createElement("div");
					newfav.id = plate;
					newfav.setAttribute("class", "nostyle");
					newfav.innerHTML = "<a href='http://www.britishcarregistrations.co.uk/buy/" + plate + "/summary'><img src='http://www.britishcarregistrations.co.uk/img/plate/" + plate + ".png' width='120' height='26' valign='middle' /></a>" +
									   " <a href='#' class='del' onclick='return delFav(\"" + plate + "\");'>x</a>";
					document.getElementById("dragdrop").appendChild(newfav);
					document.getElementById("protiptitle").innerHTML = "Like What You See?";
					document.getElementById("protipmsg").innerHTML = "Clicking the favourite will take you to our purchasing area. If you click the small 'x' next to the plate, "
																   + "it will be removed from your favourites.";
					fade("in", 0, plate);
					var shown = create_ajax();
					shown.onreadystatechange = function() {
						if(shown.readyState == 4) {
							if(shown.responseText != "1") {
								document.getElementById("protip").style.visibility = "visible";
								fade("in", 0, "protip");
								setTimeout("fade('out', 100, 'protip')", 20000);
							}
						}
					}
					shown.open("POST", "http://www.britishcarregistrations.co.uk/php/fav/showtip.php?get1&set1", true);
					shown.send(null);
				}
			}
		}
		xmlhttp.open("POST", "http://www.britishcarregistrations.co.uk/php/fav/index.php?action=add&p=" + plate + "&noprint", true);
		xmlhttp.send(null);
	}  
	draggedObj = 0;
	document.getElementById("dragimage").innerHTML = "";
}

function delFav(plate) {	
	var xmlhttp = create_ajax();
	xmlhttp.onreadystatechange = function() {
		if(xmlhttp.readyState == 4) {
			fade("out", 100, plate);
		}
	}
	xmlhttp.open("POST","http://www.britishcarregistrations.co.uk/php/fav/index.php?action=remove&p=" + plate,true);
	xmlhttp.send(null);
	
	return false;
}

// cool stuff.

function fade(dir, opacity, id) {
	opacity = opacity + (dir == "in" ? 10 : -10);
	if(dir == "out" && opacity < 0) {
		if(id == "protip") {
			document.getElementById("protip").style.visibility = "hidden";
		} else {
			var div = document.getElementById("dragdrop").removeChild(document.getElementById(id));
		}
		return false;
	} else if(dir == "in" && opacity >= 110) {
		return false;
	}else {
		div = document.getElementById(id);
		
		div.style.filter = "alpha(opacity="+opacity+")";
		div.style.KHTMLOpacity = opacity/100;
		div.style.MozOpacity = opacity/100;
		div.style.opacity = opacity/100;
		setTimeout("fade('" + dir + "', " + opacity + ", '" + id + "')", 30);
	}
	return false;
}
