
//
// Portions Copyright(c) 2006, The GoHome Networks, Inc. All rights reserved.
// No reproduction, distribution, or transmission of the copyrighted
// materials at this site is permitted without the written permission
// of The GoHome Networks, unless otherwise specified. MLSWorks,
// BrokerWorks, ActiveListing, and AdTracker are Trademarks of
// The GoHome Networks, Inc.
// 
// ActiveAgent is a registered Service Mark of The GoHome Networks, Inc.
//

//
// Open House Finder Helper JavaScript
//

//
// Return a string in the format 'YYYY-MM-DD' from a date object
//

var ohstart_default = '';
var ohend_default = '';


//
// Write to document object a string in the format 'Mon. dd, yyyy' from a String in the 'YYYY-MM-DD' format
//
function WriteDisplayableDateFromString(today)
{
	var today_display = '';
	var monthabbrev = new Array('', 'Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.');
	var month = '';
	var day = '';
	var year = '';

	var tm = today.split('-');
	if (tm.length != 3) {
		today_display = today;
	} else {
		year = tm[0];
		month = tm[1].replace(/^0/, "");
		day = tm[2].replace(/^0/, "");
		today_display = monthabbrev[month] + ' ' + day + ', ' + year;
	}
	document.writeln(today_display);
}


function GenerateSearchableDate(today)
{
	var today_value = '';
    today_value = today.getFullYear() + '-';
    if (today.getMonth() < 9) {
        today_value += '0' + (today.getMonth()+1) + '-';
    } else {
        today_value += (today.getMonth()+1) + '-';
    }
    if (today.getDate() < 10) {
        today_value += '0' + today.getDate() + '';
    } else {
        today_value += today.getDate() + '';
    }
	return(today_value);
}


//
// Return a string in the format 'Mon. dd, yyyy' from a date object
//
function GenerateDisplayableDate(today)
{
	var today_display = '';
	var monthabbrev = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');

	today_display = monthabbrev[today.getMonth()] + '. ' + today.getDate() + ', ' + today.getFullYear();
	return(today_display);
}


function AddOHOption(box, box_display, box_value, box_selected)
{
	var opt = document.createElement("OPTION");

	opt.text = box_display;
	opt.value = box_value;
	opt.selected = box_selected;
	opt.defaultSelected = box_selected;
	box.options[box.length] = opt;
}


function SetupOHSelectBoxes(startbox, endbox)
{
	var today = new Date();
	var today_display = '';
	var today_value = '';

	var tempdate = new Date();
	var tempdate_display = '';
	var tempdate_value = '';

	var dayms = 1000 * 60 * 60 * 24;
	var weekms = dayms * 7;

	var day;

	//
	// Setup Starting Date Select Box
	//
	for (day = 0; day <= 7; day++) {
		tempdate.setTime(today.getTime() + day * dayms);
		tempdate_value = GenerateSearchableDate(tempdate);
		tempdate_display = GenerateDisplayableDate(tempdate);
		if (day == 0) {
			AddOHOption(startbox, tempdate_display, tempdate_value, true);
		} else {
			AddOHOption(startbox, tempdate_display, tempdate_value, false);
		}
	}

	//
	// Setup Ending Date Select Box
	//
	for (day = 0; day <= 30; day++) {
		tempdate.setTime(today.getTime() + day * dayms);
		tempdate_value = GenerateSearchableDate(tempdate);
		tempdate_display = GenerateDisplayableDate(tempdate);
		if (day == 7) {
			AddOHOption(endbox, tempdate_display, tempdate_value, true);
		} else {
			AddOHOption(endbox, tempdate_display, tempdate_value, false);
		}
	}

	if (ohstart_default != '') {
		SelectOption(document.criteria.ohstart, ohstart_default);
	} 
	if (ohend_default != '') {
		SelectOption(document.criteria.ohend, ohend_default);
	} 
}


function OHStartDateChange(startbox, endbox)
{
	var opt = document.createElement("OPTION");
	var startSelectedIdx = -1;
	var endSelectedIdx = -1;

	// Discover which start date was selected
	for (var i = 0; i <= 7; i++) {
		if (startbox.options[i].selected) {
			startSelectedIdx = i;
		}
	}

	// Determine what end date was selected (ie: so it can be chaned)
	for (var i = 0; i <= 30; i++) {
		if (endbox.options[i].selected) {
			endSelectedIdx = i;
		}
	}

	// Deselect old end date and select new end date
	endbox.options[endSelectedIdx].selected = false;
	endbox.options[startSelectedIdx + 7].selected = true;

	return 1;
}


function OHEndDateChange(startbox, endbox)
{
	var opt = document.createElement("OPTION");
	var startSelectedIdx = -1;
	var endSelectedIdx = -1;

	// Discover which end date was selected
	for (var i = 0; i <= 30; i++) {
		if (endbox.options[i].selected) {
			endSelectedIdx = i;
		}
	}

	// Determine what start date was selected (ie: so it can be chaned if necessary)
	for (var i = 0; i <= 7; i++) {
		if (startbox.options[i].selected) {
			startSelectedIdx = i;
		}
	}

	// If the start date is now earlier than the close date, set the start date
	// to the end date
	if (startSelectedIdx > endSelectedIdx) {
		// Deselect old start date and select new start date
		startbox.options[startSelectedIdx].selected = false;
		startbox.options[endSelectedIdx].selected = true;
	}

	return 1;
}

