function getHTTPObject() {
	var xhr = false;
	if(window.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				xhr = false;
			}
		}
	}
	return xhr;
}
function addLoadEvent(func) {
	var oldonload = window.onload;
	if(typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if(oldonload) {
				oldonload();
			}
			func();
		};
	}
}

/* Last.fm xml list */

function grabLastFM(file) {
	if(!document.getElementById) {
		return;
	}
	if(!document.getElementById("linkblog2")) {
		return;
	}
	var request = getHTTPObject();
	if(request) {
		request.onreadystatechange = function() {
			parseLastFMResponse(request);
		};
		request.open("GET",file,true);
		request.send(null);
	}
}
function parseLastFMResponse(request) {
	if(request.readyState == 4) {
		if(request.status == 200 || request.status == 304) {
			var data = request.responseXML;
			var artist = data.getElementsByTagName("name");
			var url = data.getElementsByTagName("url");
			var details = document.getElementById("linkblog2");
			while (details.hasChildNodes()) {
				details.removeChild(details.lastChild);
			}
			var ul = document.createElement("ul");
			details.appendChild(ul);
			for(i=0;i<10;i++) {
				details.firstChild.innerHTML += "<li><a href='"+url[i].firstChild.nodeValue+"'>"+artist[i].firstChild.nodeValue+"<br /><span class='notes'>"+url[i].firstChild.nodeValue+"</span></a></li>\n";
			}
		}
	}
}

/* Contact Page */

function sendContactData(data) {
	var request = getHTTPObject();
	if(request) {
		request.onreadystatechange = function() {
			parseContactResponse(request);
		};
		request.open("POST","/formlogic-contact.php",true);
		request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		request.send(data);
		return true;
	} else {
		return false;
	}
}

function formCheck(args) {
	if(!document.getElementById) {
		return;
	}
	if(!document.getElementById("contactform")) {
		return;
	}
	var contactform = document.getElementById("contactform");
		if(contactform.elements[0].value == "") {
			document.getElementById("namelabel").innerHTML += " <span class='warning'>Your name is required.</span>";
			return false;
		} else if(contactform.elements[1].value == "") {
			document.getElementById("emaillabel").innerHTML += " <span class='warning'>Your email is required.</span>";
			return false;
		} else if(contactform.elements[2].value == "") {
			document.getElementById("messagelabel").innerHTML += " <span class='warning'>You didn't write anything!</span>";
			return false;
		} else {
			return true;
		}
}

function prepareContactForm() {
	if(!document.getElementById) {
		return;
	}
	if(!document.getElementById("contactform")) {
		return;
	}
	document.getElementById("contactform").onsubmit = function() {
		if(formCheck() == false) {
			return false;
		} else {
			var data ="";
			for (var i=0; i<this.elements.length; i++) {
				data+= this.elements[i].name;
				data+= "=";
				data+= escape(this.elements[i].value);
				data+= "&";
			}
			return !sendContactData(data); // returns the opposite boolean value returned by sendData
		}
	}	
}

function parseContactResponse(request) {
	if(request.readyState == 4) {
		if(request.status == 200 || request.status == 304) {
			var container = document.getElementById("container");
			container.innerHTML = request.responseText;
			prepareContactForm();
		}
	}
}

/* Search submit replace */

function prepareSubmit() {
	if(!document.getElementById) {
		return;
	}
	if(!document.getElementById("contactform")) {
		return;
	}
	var submit = document.getElementById("searchsubmit");
	var newsubmit = document.createElement("input");
	submit.replace(newsubmit);
}


addLoadEvent(grabLastFM('/weeklyartistchart.xml'));
addLoadEvent(prepareContactForm());
addLoadEvent(prepareSubmit());