//set login or logout
function setLoginAction(direction) {
	var login = document.getElementById("loginAction");
	login.value = direction;
	document.Form1.submit();
}

//so can click enter when logging in
function fnEnterKey() {
	if (event.keyCode == 13) {
		event.cancelBubble = true;
		event.returnValue = false;
		document.getElementById('btnLogin').click();
	}
}

//restrict number of chars in a text area
function ismaxlength(obj){
	var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
	if (obj.getAttribute && obj.value.length>mlength)
	obj.value=obj.value.substring(0,mlength)
}

//update day or wek label
function updateDayOfWeek(controlName, control) {
	var prefix = control.id.substring(0, control.id.indexOf("_")+1);
	
	var year = document.getElementById(prefix+"ddl"+controlName+"Year").value;
	var month = document.getElementById(prefix+"ddl"+controlName+"Month").value-1;
	var date = document.getElementById(prefix+"ddl"+controlName+"Date").value;
	
	if (year != "" && month != -1 && date != "") {
		var theDays = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun"]
		var theDate = new Date();
		theDate.setFullYear(year, month, date);
		document.getElementById("div"+controlName+"DayOfWeek").innerHTML = theDays[theDate.getDay()];
	}
}

//update date control based on another date control
function updateDate(firstDateName, secondDateName, whatToAdd, numberToAdd, control) {
	var prefix = control.id.substring(0, control.id.indexOf("_")+1);
	
	//get parts of first date
	var firstyear = document.getElementById(prefix+"ddl"+firstDateName+"Year").value;
	var firstmonth = document.getElementById(prefix+"ddl"+firstDateName+"Month").value-1;
	var firstday = document.getElementById(prefix+"ddl"+firstDateName+"Date").value;
	
	if (firstyear != "" && firstmonth != -1 && firstday != "") {
	
		//get first date and set second to first
		var firstdate = new Date();
		firstdate.setFullYear(firstyear, firstmonth, firstday);
		var seconddate = new Date();
		seconddate.setFullYear(firstyear, firstmonth, firstday);
		
		//add right amount
		if (whatToAdd == "y") { seconddate.setYear(seconddate.getFullYear()+numberToAdd); }
		else if (whatToAdd == "m") { seconddate.setMonth(seconddate.getMonth()+numberToAdd); }
		else if (whatToAdd == "d") { seconddate.setDate(seconddate.getDate()+numberToAdd); }
		
		//set second date control
		document.getElementById(prefix+"ddl"+secondDateName+"Year").value = seconddate.getFullYear();
		document.getElementById(prefix+"ddl"+secondDateName+"Month").value = padleft(seconddate.getMonth()+1, "0", 2);
		document.getElementById(prefix+"ddl"+secondDateName+"Date").value = padleft(seconddate.getDate(), "0", 2);
	}
	
	//update day of week
	updateDayOfWeek(firstDateName, control) 
	updateDayOfWeek(secondDateName, control) 
}

//pad left of a string
function padleft(val, ch, num) {
  var re = new RegExp(".{" + num + "}$");
  var pad = "";
  do  { pad += ch; }
  while(pad.length < num)
  return re.exec(pad + val);
}

//show / hide the instructions div
function showInstructions(show) {
	if (show) {
		document.getElementById("showinstructions").style.display = "none";
		document.getElementById("instructions").style.display = "";
	}
	else {
		document.getElementById("showinstructions").style.display = "";
		document.getElementById("instructions").style.display = "none";
	}
}

//open the view booking page for a booking
function viewBooking(bookingID, view, URL) {
	window.open(URL+"?bookingID="+bookingID+"&view="+view);
}

//open the cancel peeps / nights booking page for a booking
function editBooking(bookingID, view, URL) {
	window.open(URL+"?bookingID="+bookingID+"&edit=true&view="+view);
}

//add to a booking
function addToBooking(bookingID, addWhat, view, URL) {
	window.location.href = URL+"?bookingID="+bookingID+"&addWhat="+addWhat+"&view="+view;
}

//accept, decline or cancel a booking
function processBooking(bookingID, bookingStatus, theAction, view) {
    window.open("bookingcomment.aspx?bookingID="+bookingID+"&status="+bookingStatus+"&view="+view);
	return false;
}

//update radio buttons (for booking detail page)
function updateRadios(radClickedOn) {

	var id = radClickedOn.id;
	var turnOn = "";
	var turnOff = "";
	var status = "";
	status = id.substr(radClickedOn.id.length-1);
		
	//all nights and all peeps
	if (id.indexOf("allnightsallpeeps") > 0) {
		turnOn = id.substr(radClickedOn.id.length-1);
	}
	
	//all peeps for this night
	else if (id.indexOf("allpeeps") > 0) {
		turnOn = id.substr(3,10);
		turnOff = turnOn;
	}
	
	//all nights for this person
	else if (id.indexOf("allnights") > 0) {
		turnOn = id.substr(id.indexOf("|")).replace("|"+status, "|");
		turnOff = turnOn;
	}
	
	//single night
	else {
		turnOn = id.substr(0, id.length-1)
		turnOff = turnOn;
	}
	
	//loop through all radio divs and turn on / off
	var x = document.getElementsByTagName('div');
	for (var i=0;i<x.length;i++) {
		if (x[i].id.indexOf("rad") >= 0) {
			if (x[i].id.indexOf(turnOn) >= 0 && x[i].id.indexOf("|"+status) >= 0) { x[i].className += " selected"; }
			else if (x[i].id.indexOf(turnOff) >= 0) { x[i].className = x[i].className.replace(/ selected/g, ""); }
		}
	}
	
	//set all textbox values
	if (turnOn.indexOf("rad") >= 0) { turnOff = turnOff.replace("rad", ""); }
	for (var i=0; i<document.Form1.elements.length; i++) {
		if (document.Form1.elements[i].id.indexOf(turnOff) >= 0 && document.Form1.elements[i].id.indexOf("text") >= 0) { document.Form1.elements[i].value = status; }
	}
}

//shows or hides detail on booking system page
function showHideDetail(bookingID, showHide) {
    var showLink = document.getElementById("showdetail"+bookingID);
    var nightDetail = document.getElementById("nightdetail"+bookingID);
   
   if(showHide == "show") {
    showLink.style.display="none";
    nightDetail.style.display="";
   }
   else {
    showLink.style.display="";
    nightDetail.style.display="none";
   } 
}

