//show / hide div
function showHide(show, div1, div2) {
    if (show) {
        if (div1 != "") { document.getElementById(div1).style.display = "none"; }
        if (div2 != "") { document.getElementById(div2).style.display = ""; }
    }
    else {
        if (div1 != "") { document.getElementById(div1).style.display = ""; }
        if (div2 != "") { document.getElementById(div2).style.display = "none"; }
    }
}


//submits to paypal 
function goPayPal(paypalURL) {
    document.aspnetForm.action = paypalURL;
    document.aspnetForm.submit();
} 

//set login or logout
function setLoginAction(direction) {
	var login = document.getElementById("loginAction");
	login.value = direction;
	document.aspnetForm.submit();
}

//so can click enter when logging in
function fnEnterKey() {
	if (event.keyCode == 13) {
		event.cancelBubble = true;
		event.returnValue = false;
		document.getElementById('btnLogin').click();
	}
}

//disables button once clicked
var origButtonVal = "";
function buttonClick(button) {
    button.disabled = true;
    origButtonVal = button.value;
    button.value = "Please wait...";
}

//disables button once clicked
function buttonClear(button) {
    button.disabled = false;
    button.value = origButtonVal;
}

//gets the selected value for a radio group
function getRadioValue(radioName) {
    var radios = document.getElementById(radioName).getElementsByTagName("input");
    var selectedValue = ""; 
    for (var i=0; i< radios.length; i++) {
        if (radios[i].checked) { 
            selectedValue = radios[i].value; 
            break;
       }
    }
   return selectedValue;
}

//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)
}

//hides or shows controls based on value of another control
function displayControls(controlName, values, type) {
   var field = document.getElementById(controlName+"_field");
   var selectedValue = "";
   
   
   //get radio button selected value
   if (type == "radio") {
        var radios = field.getElementsByTagName("input");
        for (var i=0; i< radios.length; i++) {
            if (radios[i].checked) { 
                selectedValue = radios[i].value; 
                break;
           }
        }
   } 

   //get radio button selected value
   if (type == "dropdown") { selectedValue = field.value; } 

    //loop through values
    var valArray = values.split("|");
    var valToCheck = ""; 
    for (var i=0; i < valArray.length; i++) {
        valToCheck = valArray[i].substring(0, valArray[i].indexOf(":"));

       //check if match on value 
        if (valToCheck == selectedValue) {
            var hide = valArray[i].substring(valToCheck.length+1, valArray[i].indexOf(":", valToCheck.length+1));
            var show = valArray[i].substring(valToCheck.length + hide.length + 2);
            
            //loop through controls to hide
            var controls = hide.split(",");
            for (var j = 0; j < controls.length; j++) {
                if (eval(document.getElementById(controls[j]+"_control"))) { document.getElementById(controls[j]+"_control").style.display = 'none'; }
            }
       
            //loop through controls to show
            controls = show.split(",");
            for (var k=0; k < controls.length; k++) {
                if (eval(document.getElementById(controls[k]+"_control"))) { document.getElementById(controls[k]+"_control").style.display = ''; }
            }
            
        } 
    }
}



//moves values from one dual select box to the other
function moveDualBox(fromBoxID, toBoxID, textfieldID, selectedBoxID) {
   var frombox = document.getElementById(fromBoxID);
   var tobox = document.getElementById(toBoxID);
   var textfield = document.getElementById(textfieldID);
   var selectedbox = document.getElementById(selectedBoxID);

   if (frombox != null && tobox != null) {
       if (frombox.options.selectedIndex == -1) {
           alert("Select an item to move");
           return false;
       }

        while (frombox.selectedIndex > -1) {
           var newOption = new Option();
           newOption.text = frombox.options[frombox.options.selectedIndex].text;
           newOption.value = frombox.options[frombox.options.selectedIndex].value;
           tobox.options[tobox.length] = newOption;
           frombox.remove(frombox.selectedIndex); 
       }
      
      //add all selected to text field 
       textfield.value = "";
        for (var i=0; i < selectedbox.length; i++) { textfield.value += selectedbox.options[i].value+","; }
  }
  return false;    
}

//update day or wek label
function updateDayOfWeek(controlName) {	
	var year = document.getElementById(controlName+"_ddlYear").value;
	var month = document.getElementById(controlName+"_ddlMonth").value-1;
	var date = document.getElementById(controlName+"_ddlDay").value;
	
	if (year > 0 && month >= 0 && date > 0) {
		var theDays = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
		var theDate = new Date();
		theDate.setFullYear(year, month, date);
		document.getElementById(controlName+"_divDayOfWeek").innerHTML = theDays[theDate.getDay()];
		document.getElementById(controlName+"_ddlYear").value = theDate.getFullYear();
		document.getElementById(controlName+"_ddlMonth").value = theDate.getMonth()+1;
		document.getElementById(controlName+"_ddlDay").value = theDate.getDate();
	}
	else { document.getElementById(controlName+"_divDayOfWeek").innerHTML = ""; }
}

//update date control based on another date control
function updateDate(controlName, updateControlName, daysToAdd) {
	
	//get parts of first date
	var firstyear = document.getElementById(controlName+"_ddlYear").value;
	var firstmonth = document.getElementById(controlName+"_ddlMonth").value-1;
	var firstday = document.getElementById(controlName+"_ddlDay").value;
	
	if (firstyear != "" && firstmonth != -1 && firstday != "") {
		//get first date and set second to first
		var firstdate = new Date(firstyear, firstmonth, firstday);
		var seconddate = new Date(firstyear, firstmonth, firstdate.getDate()+parseInt(daysToAdd));
		
		//set second date control
		document.getElementById(updateControlName+"_ddlYear").value = seconddate.getFullYear();
		document.getElementById(updateControlName+"_ddlMonth").value = seconddate.getMonth()+1;
		document.getElementById(updateControlName+"_ddlDay").value = seconddate.getDate();
	}
	
	//update day of week
	updateDayOfWeek(controlName) 
	updateDayOfWeek(updateControlName) 
}

//update date control based on another date control
function updateNumDays(firstControlName, secondControlName, numControlName) {
	
	//get first date
	var year = document.getElementById(firstControlName+"_ddlYear").value;
	var month = document.getElementById(firstControlName+"_ddlMonth").value-1;
	var day = document.getElementById(firstControlName+"_ddlDay").value;
	if (year == "" && month == -1 && day == "") { return; }
	var firstdate = new Date(year, month, day).getTime();
	
	//get second date
	var year = document.getElementById(secondControlName+"_ddlYear").value;
	var month = document.getElementById(secondControlName+"_ddlMonth").value-1;
	var day = document.getElementById(secondControlName+"_ddlDay").value;
	if (year == "" && month == -1 && day == "") { return; }
	var seconddate = new Date(year, month, day).getTime();
	
	//get difference
    document.getElementById(numControlName+"_field").value = Math.round(Math.abs(firstdate - seconddate)/(1000 * 60 * 60 * 24))
}

//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;
}

//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";
   } 
}

//function showCalendar
function showCalendar(calendar, controlName, today) {
    var d = document.getElementById(controlName+"_ddlDay").value;
    var m = document.getElementById(controlName+"_ddlMonth").value;
    var y = document.getElementById(controlName+"_ddlYear").value;
   if (d != "" && m != "" && y != "") { today =  y+"-"+m+"-"+d; }
    calendar.showCalendar(controlName+"CalIcon", today); 
}

function submitAndClose() {
   reloadParent();
   window.close(); 
}
function reloadParent() {
	var parent = window.opener;
	parent.document.aspnetForm.submit();
}



