// Copyright AW Cox 2005 - www.uk-hotel-accommodation.co.uk

function expandCollapse(targetName)
	{
        if( document.getElementById ) { // NS6+
            target = document.getElementById(targetName);
        } else if( document.all ) { // IE4+
            target = document.all[targetName];
        }
        
        if( target ) {
            if( target.style.display == "none" ) {
                target.style.display = "inline";
            } else {
                target.style.display = "none";
            }
        }
    }
	
function showRoomDialogue()
	{
		roomCount = parseInt(document.getElementById('rooms').options[document.getElementById('rooms').selectedIndex].value,10);
		for (count=2; count <= 8; count++)
		{
			targetName = "roomNumber" + count;
			if( document.getElementById ) { // NS6+
	            target = document.getElementById(targetName);
	        } else if( document.all ) { // IE4+
	            target = document.all[targetName];
	        }
	      
	        if( target ) {
	            if( count <= roomCount ) {
	                target.style.display = "inline";
	            } else {
	                target.style.display = "none";
	            }
	        }
			
		}
	}
	
function expandThenJump(targetName,targetLocation)
	{ 
		expandCollapse(targetName);
		window.location.hash = targetLocation;
	}
	
function checkUncheck(targetName)
	{
        if( document.getElementById ) { // NS6+
            target = document.getElementById(targetName);
        } else if( document.all ) { // IE4+
            target = document.all[targetName];
        }

        if( target ) {
            if( target.checked == true ) {
                target.checked = false;
            } else {
                target.checked = true;
            }
        }
    }
	
	
function expandCalendar(targetName) 
	{
        if( document.getElementById ) { // NS6+
            target = document.getElementById(targetName);
        } else if( document.all ) { // IE4+
            target = document.all[targetName];
        }
        
        //if( target ) {
            if( target.style.display == "block" ) 
			{target.style.display = "none";
			 } else {
				var startYear = parseInt(document.getElementById('startYear').options[document.getElementById('startYear').selectedIndex].value,10);
				var startMonth = parseInt(document.getElementById('startMonth').options[document.getElementById('startMonth').selectedIndex].value,10);
				var startDate=parseInt(document.getElementById('startDate').options[document.getElementById('startDate').selectedIndex].value,10);
				target.src = "http://www.uk-hotel-accommodation.co.uk/shared/calendar.cfm?mode=" + targetName + "&thisDate=" + startYear + "-" + startMonth + "-" + startDate;
                target.style.display = "block";
            }
        //}
    }
	
	var today = new Date(new Date().valueOf());
	
	
function checkStartDate()
	{
	  var yearOffset = parseInt(document.getElementById('startYear').options[0].value,10);
	  var startMonth = parseInt(document.getElementById('startMonth').options[document.getElementById('startMonth').selectedIndex].value,10)-1;
	  var startYear = parseInt(document.getElementById('startYear').options[document.getElementById('startYear').selectedIndex].value,10);
	  
	  var monthOfYearString = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	  
	  var baseMonth = today.getMonth();
	  var baseDate = today.getDate();
	  var baseYear = today.getYear();
	
	  if(startMonth < baseMonth && startYear <= baseYear)
	  {
	    startYear++;
	    document.getElementById('startYear').options[startYear - yearOffset].selected = true;
	  }
	 
	  
	  if(testForLeapYear(startYear)) 
	  	{ var days = new Array(31,29,31,30,31,30,31,31,30,31,30,31); }
	  else 
	  	{ var days = new Array(31,28,31,30,31,30,31,31,30,31,30,31); }
	
	
	  var startDate=parseInt(document.getElementById('startDate').options[document.getElementById('startDate').selectedIndex].value,10);
	  
	  if(startDate >= days[startMonth]) 
	  	{ startDate = days[startMonth]; }
	  else 
	  	{ startDate = startDate%days[startMonth]; }
		
	  	document.getElementById('startDate').options[startDate - 1].selected=true;
		
	  
	  if((startMonth < baseMonth && startYear == baseYear) || (startMonth == baseMonth && startDate < baseDate && startYear == baseYear))
	  {
		document.getElementById('startMonth').options[baseMonth + 1].selected = true;
		startMonth++;
	    document.getElementById('startYear').options[((baseYear-yearOffset))].selected = true;
		originalMonth = monthOfYearString[baseMonth];
		alert("You have selected a date before today's date, so the month has been set to next month.\nTo select an earlier date in " + originalMonth + " for next year please select next year first.");
	  }	  
	  var departMonth = parseInt(document.getElementById('endMonth').options[document.getElementById('endMonth').selectedIndex].value,10) - 1;
	  var departDate = parseInt(document.getElementById('endDate').options[document.getElementById('endDate').selectedIndex].value,10);
	  var departYear = parseInt(document.getElementById('endYear').options[document.getElementById('endYear').selectedIndex].value,10);
	  
	  if((departYear < startYear) || (departYear == startYear && departMonth < startMonth) ||
	    (departYear == startYear && departMonth == startMonth && departDate <= startDate))
	  {
	    endMonth = startMonth;
	    endDate = startDate%days[startMonth];
	    endYear = startYear;
	    if(endDate == 0) 
			{ endMonth = (startMonth + 1) % 12; }
	    if(endDate == 0 && startMonth == 11) 
			{ endYear++; }
	  
	    document.getElementById('endMonth').options[endMonth].selected=true;
	    document.getElementById('endDate').options[endDate].selected=true;
	    document.getElementById('endYear').options[(endYear - yearOffset)].selected=true;
	  }
	}
	
function checkEndDate()
	{
	  var yearOffset = parseInt(document.getElementById('startYear').options[0].value,10);
	  var endDate=parseInt(document.getElementById('endDate').options[document.getElementById('endDate').selectedIndex].value,10);
	  var endMonth=parseInt(document.getElementById('endMonth').options[document.getElementById('endMonth').selectedIndex].value,10)-1;
	  var endYear=parseInt(document.getElementById('endYear').options[document.getElementById('endYear').selectedIndex].value,10);
	  
	 
	  if(testForLeapYear(endYear)) 
	  	{ var days = new Array(31,29,31,30,31,30,31,31,30,31,30,31); }
	  else 
	  	{ var days = new Array(31,28,31,30,31,30,31,31,30,31,30,31); }
	
	  
	  if(endDate >= days[endMonth]) 
	  	{ endDate = days[endMonth]; }
	  else 
	  	{ endDate = endDate%days[endMonth]; }
		
	  	document.getElementById('endDate').options[endDate-1].selected=true;
		
		checkStartDate();
	}
	
	
function testForLeapYear(yr)
	{
	  if (((yr % 4 == 0) && (yr % 100 != 0)) || (yr % 400 == 0)) { return true; }
	  else { return false; } 
	}
	
	
function validateForm(formObj)
	{
		if (emptyField(formObj.searchArea))
			alert("Enter a town into the 'Location' box, or the first few letters of a town or county");
		else return true;
		
		return false;
	}
	
	
function emptyField(textObj)
	{
		if (textObj.value.length == 0) return true;
		
		for (var i = 0; i < textObj.value.length; ++i)
		{
			var ch = textObj.value.charAt(i);
			if (ch != '' && ch != '\t') return false;
		}
		return true;
	}
	
	
function zapLocationID()
	{
		document.getElementById('location_id').value = '';
	}
	
	
function updateLocation(townName,townid)
	{
		document.getElementById('searchArea').value = townName;
		document.getElementById('location_id').value = townid;
	}	