function setActiveStyleSheet(title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
}

function loadMenu() {
	$('mainmenu').getElementsBySelector('li ul').invoke('hide');
	$('mainmenu').getElementsBySelector('li ul.sidemenuopen').invoke('show');
}

function toggleMenu(id) {
	$('mainmenu').getElementsBySelector('li ul').invoke('hide');
	$(id).toggle();
}

function disableForm() {

	document.sendmessage.txt.value = '';
	document.sendmessage.name.value = '';
	document.sendmessage.email.value = '';
	document.sendmessage.msg.value = '';

	document.sendmessage.submitform.disabled = true;

}

function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Your browser doesn't support the XmlHttpRequest object.");
	}
}

var receiveReq = getXmlHttpRequestObject();

function makeRequest(url, param, resultFunc) {

	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {

		receiveReq.open("POST", url, true);

		receiveReq.onreadystatechange = function() {
			if (receiveReq.readyState == 4) {
				eval(resultFunc + '(receiveReq.responseText);');
			}
		}

		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", param.length);
		receiveReq.setRequestHeader("Connection", "close");

		receiveReq.send(param);
	}
}

function sendMessage() {

	var theForm = '';

	theForm = document.sendmessage;
	
	var postStr = theForm.bid.name + "=" + encodeURIComponent( document.getElementById('mbid').value );
	postStr += "&" + theForm.txt.name + "=" + encodeURIComponent(  document.getElementById('mtxt').value );
	postStr += "&" + theForm.name.name + "=" + encodeURIComponent(  document.getElementById('mname').value );
	postStr += "&" + theForm.email.name + "=" + encodeURIComponent(  document.getElementById('memail').value );
	postStr += "&" + theForm.msg.name + "=" + encodeURIComponent(  document.getElementById('mmsg').value );
	
	disableForm(theForm.submitform);

	document.getElementById('result').innerHTML = '<label>&nbsp;</label><h3>Sending message...</h3>';

	Effect.Appear('result');

	var url = '/sendmessage.php';
	
	makeRequest(url, postStr, "updateForm");
}


function sendRating(id) {

	var theForm = '';
	var element = '';
	var stars = '';

	theForm = document.getElementById("ratelink" + id);

	element = "result" + id;
	stars = "stars" + id;

	theForm.submitform.disabled = true;

	document.getElementById(element).innerHTML = '<label>&nbsp;</label><h3>Rating link...</h3>';

	Effect.Appear(element);

	var url = '/rate2.php';

	var postStr = "weblink=" + encodeURIComponent( theForm.weblink.value );
	postStr += "&rating=" + encodeURIComponent( theForm.rating.value );

	makeRequest(url, postStr, "updateRating");
}

function updateForm(response) {

	var msg = '';

	switch (response) {

		case "1":
		msg = 'You can only send one message every few minutes - please try again soon';
		break;

		case "2":
		msg = 'Please fill in all fields';
		break;

		case "3":
		msg = 'Please enter a valid e-mail address';
		break;

		case "4":
		msg = 'Sorry, this business could not be found';
		break;

		case "5":
		msg = 'Thank you, your message has been sent';
		break;

		case "6":
		msg = 'Sorry, your code was incorrect - please try again';
		break;

		default:
		msg = 'Unrecognised error code';
	}

	document.getElementById('result').innerHTML = '<label>&nbsp;</label><h3>' + msg + '</h3>';

	Effect.Appear('result');

	img = document.getElementById('captcha');

	img.src = '/getimage.php?' + Math.random();

	if (response == "5") {
		disableForm();
	} else {
		document.sendmessage.submitform.disabled = false;
	}

}

function updateRating(response) {

	var msg = '';
	var element = '';
	var stars = '';

	var parts = response.split("-");

	switch (parts[0]) {

		case "1":
		msg = 'Please supply a valid link and rating';
		break;

		case "2":
		msg = 'Sorry, we could not find the weblink you requested';
		break;

		case "4":
		msg = 'There was a problem adding your rating - please try again';
		break;

		case "3":
		msg = 'Thank you, we have added your rating';
		break;

		default:
		msg = 'Unrecognised error code';
	}

	element = "result" + parts[1];
	stars = "stars" + parts[1];

	document.getElementById(element).innerHTML = '<h3>' + msg + '</h3>';

	Effect.Appear(element);

	if (parts[0] != "3") {

 		document.sendmessage.submitform.disabled = false;

	} else {

		newrating = parts[2];
		document.getElementById(stars).innerHTML =	'<img src="images/icons/' + newrating + '.png" alt="' + newrating + '/5" />';
		
	}
}

function switchCalendar(calendar, year, month) {
	window.location.href = "/calendar/" + calendar + "/full/" + year + "/" + month;
}