function safe_getObjectById(elemID)
{
		if (document.all) {
			obj = document.all(elemID)
		} else if (document.getElementById) {
			obj = document.getElementById(elemID)
		} else if (document.layers) {
			obj = document.layers[elemID]
		}
		return obj;
}

function hide(elem) {
		var e = safe_getObjectById(elem);
		e.style.display = "none";
}

function show(elem) {
		var e = safe_getObjectById(elem);
		e.style.display = "block";
}

function switch_layers(visiblelayer, hiddenlayer) {
		hide(visiblelayer);
		show(hiddenlayer);
		show_trail(hiddenlayer);
}

function changeStates() {

		var myStates 		= new Array();
		myStates['USA'] 	= new Array("--Select--", "Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware",  "District of Columbia", "Florida", "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nevada", "Nebraska", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virgin Islands", "Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming");
		myStates['Canada'] 	= new Array("--Select--", "Alberta", "British Columbia", "Manitoba", "New Brunswick", "Newfoundland and Labrador", "Northwest Territories", "Nova Scotia", "Nunavut", "Ontario", "Prince Edward Island", "Quebec", "Saskatchewan", "Yukon Territory");
		myStates['Other'] 	= new Array("Foreign State");

		var f=safe_getObjectById('state');
		var c=safe_getObjectById('country');

		for (i=f.length-1; i >= 0; i--) {
		    f[i] = null;
		}

		var statesArray;
		
		if (myStates[c.options[c.selectedIndex].value]) {
		    statesArray = myStates[c.options[c.selectedIndex].value];
		} else {
		    statesArray = myStates['Other'];
		}
		
		//statesArray = myStates[c.options[c.selectedIndex].value];
		
		for (i=0; i < statesArray.length; i++) {
			f[i] = new Option(statesArray[i],statesArray[i]);
		}

}


function submit_divprofile() {
		//TODO div 2 controls validations
		var form = safe_getObjectById('frm_quote');

		if (form.package_type[0].checked || form.package_type[1].checked) { 
			form.car_type.value="";
			form.car_pickup_location.value="";
			form.car_pickup_date.value="";
			form.car_pickup_time.value="";
			form.car_dropoff_location.value="";
			form.car_dropoff_date.value="";
			form.car_dropoff_time.value="";
		}
		if (form.package_type[0].checked) {
		    form.facility_checkin_date.value="";
		    form.facility_checkout_date.value="";
		    form.room_number_of_beds.value="";
		    form.facility_budget.value="";
		    form.property_type.value="";
		}


		if (form.fname.value == '') { alert("Required field!"); form.fname.focus(); return false; }
		if (form.lname.value == '') { alert("Required field!"); form.lname.focus(); return false; }
		if (form.email.value == '') { alert("Required field!"); form.email.focus(); return false; }
		if (form.email2.value == '') { alert("Required field!"); form.email2.focus(); return false; }
		if (form.email.value != form.email2.value) {
			alert("Emails don't match");
			form.email2.focus();
			return false;
		}

		if (form.cboCountry.value == '0') { alert("Required field!"); form.cboCountry.focus(); return false; }
		if (form.cboState.value == '0') { alert("Required field!"); form.cboState.focus(); return false; }
		if (form.address.value == '') { alert("Required field!"); form.address.focus(); return false; }
		if (form.zip.value == '') { alert("Required field!"); form.zip.focus(); return false; }
		if (form.dayphone.value == '') { alert("Required field!"); form.dayphone.focus(); return false; }

		if (form.remember.checked) {
		
		    var cookie = '';
		    cookie += 'form.fname.value=\'' + form.fname.value + '\';';
		    cookie += 'form.lname.value=\'' + form.lname.value + '\';';			
		    cookie += 'form.email.value=\'' + form.email.value + '\';';
		    cookie += 'form.email2.value=\'' + form.email2.value + '\';';			
		    cookie += 'form.cboCountry.selectedIndex=\'' + form.cboCountry.selectedIndex + '\';';
		    cookie += 'form.cboState.selectedIndex=\'' + form.cboState.selectedIndex + '\';';			
		    cookie += 'form.address.value=\'' + form.address.value + '\';';			
		    cookie += 'form.zip.value=\'' + form.zip.value + '\';';			
		    cookie += 'form.city.value=\'' + form.city.value + '\';';			
		    cookie += 'form.dayphone.value=\'' + form.dayphone.value + '\';';
		    cookie += 'form.mobilephone.value=\'' + form.mobilephone.value + '\';';
		    cookie += 'form.fax.value=\'' + form.fax.value + '\';';
		    
		    var today = new Date();
		    var expiry = new Date(today.getTime() + 365 * 24 * 60 * 60 * 1000); // 
		    
		    setCookie('t', cookie, expiry);
		
		}

		return true;

}

function  switch_to_divprofile (from_div) {
	switch_layers(from_div, 'fldivprofile');
	var form = safe_getObjectById('frm_quote');
	if (cookie = getCookie("t")) {
	    eval(cookie);
	}

}
function submit_divgolf() {
		//TODO div 3 controls validations

		var form = safe_getObjectById('frm_quote');

		

		fix_date();
	
		if (!form.package_type[0].checked && !form.package_type[1].checked)
			{ alert("Please specify package type!"); return false; }
		if (form.golf_budget.value == '') { alert("Required field!"); form.golf_budget.focus(); return false; }
		if (form.days_of_golf.value == '') { alert("Required field!"); form.days_of_golf.focus(); return false; }

		if (form.package_type[0].checked) { // golf only

			switch_to_divprofile('fldivgolf');
		}
		else if (form.package_type[1].checked){ //Golf room
			if (form.facility_checkin_date.value == '') {
				form.facility_checkin_date.value = form.first_day_of_golf.value;
			}
			if (form.facility_checkout_date.value == '') {
				form.facility_checkout_date.value = form.last_day_of_golf.value;
			}
			switch_layers('fldivgolf', 'fldivroom');
		}
}

function submit_divroom() {

		var form = safe_getObjectById('frm_quote');

		var d1 = parse_date(form.facility_checkin_date.value);
		var d2 = parse_date(form.facility_checkout_date.value);

		if ( d1.getTime() >= d2.getTime() ) {
		    alert("Can't checkout before checkin!"); form.facility_checkout_date.focus(); return false; 
		}
		
		if(form.facility_budget.value == '') {
			alert("Required field!" ); form.facility_budget.focus(); return false; 
		}

		if (form.package_type[1].checked){ //Golf room
			switch_to_divprofile('fldivroom');
		}
		else if (form.package_type[2].checked) { // "Golf room car"

			if (form.car_pickup_date.value == '') {
				form.car_pickup_date.value = form.first_day_of_golf.value;
			}
			if (form.car_dropoff_date.value == '') {
				form.car_dropoff_date.value = form.last_day_of_golf.value;
			}

			switch_layers( 'fldivroom', 'fldivcar');
		}
		
}

function submit_divcar() {
		//TODO div 3 controls validations
		var form = safe_getObjectById('frm_quote');

		var d1 = parse_date(form.car_pickup_date.value);
		var d2 = parse_date(form.car_dropoff_date.value);
		
		if (form.car_pickup_location.value == '') { alert("Required field!"); form.car_pickup_location.focus(); return false; }
		if (form.car_pickup_time.value == '') { alert("Required field!"); form.car_pickup_time.focus(); return false; }
		if (form.car_dropoff_location.value == '') { alert("Required field!"); form.car_dropoff_location.focus(); return false; }
		if (form.car_dropoff_time.value == '') { alert("Required field!"); form.car_dropoff_time.focus(); return false; }

		if ( d1.getTime() >= d2.getTime() ) {
		    alert("Can't drop you off before pick you up!"); form.car_dropoff_date.focus(); return false; 
		}


		switch_to_divprofile('fldivcar');
}

function back_divprofile() {
		var form = safe_getObjectById('frm_quote');
		if (form.package_type[0].checked) { // golf only
			switch_layers('fldivprofile', 'fldivgolf');
		}
		else if (form.package_type[1].checked){ //Golf room
			switch_layers('fldivprofile', 'fldivroom');
		}
		else if (form.package_type[2].checked) { // "Golf room car"
			switch_layers('fldivprofile', 'fldivcar');
		}
}

function fix_date() {
	var form = safe_getObjectById('frm_quote');
	var dmax= parse_date(form.first_day_of_golf.value);
	for(i =1 ; i<= form.days_of_golf.value; i++) {
		var d = safe_getObjectById('golfing_day_'+i);
		if(d) {
			d2 = parse_date(d.value);
		}
		//alert(dmax.getTime() + "<>" + d2.getTime());
		if (dmax.getTime() < d2.getTime()) {
			dmax.setTime(d2.getTime());
		}
	}
	form.last_day_of_golf.value = get_formated_date(dmax);
}

function get_formated_date(date){

	var year = date.getYear();
	var day = date.getDate();
	var month= date.getMonth()+1;
	year = year < 1000 ? year + 1900 : year;
	day = day < 10 ? "0"+day: day;
	month= month< 10 ? "0"+month:month;
	return (month + "/" + day + "/" + year);

}

function parse_date(date_string) {
	var d1 = new Date();
	var s = new String(date_string);
	parts = s.split("/");
	if (parseInt(parts[2])<100) {
		parts[2] = 2000+parseInt(parts[2]);
	}
	return  new Date(parts[2], parts[0]-1, parts[1]);
}

function add_days_to_date(date_string, days){
	d1 = parse_date(date_string);
	d2 = new  Date(d1.getTime() + days * 1000 * 60 * 60 * 24);
	return get_formated_date(d2);
}

function fix_schedule() {

	var form = safe_getObjectById('frm_quote');
	var ptag = safe_getObjectById('holder');

	var i;

	for (i=1; i<=20; i++) {
		var ctag = safe_getObjectById('day'+i+'tag')
		if (ctag) {
		    ptag.removeChild(ctag);
		}
	}

	no_golfers_options_html= '';
	g = form.golfers.value;
	if (g<12) {
	    g=12;
	}
	for (i=1; i <= g; i++) {
		sel = '';
		if (i==form.golfers.value) {
		    sel = ' selected="selected"';
		}
		no_golfers_options_html = no_golfers_options_html + '<option value="'+i+'"'+sel+'>'+i+'</option>';

	}
	if(form.days_of_golf.value >= 1) {
		show("note");
	}
	
	//no_golfers_options_html = no_golfers_options_html+ '<option selected value="'+form.golfers.value+'">'+form.golfers.value+'</option>';
	
	for (i=1; i<=form.days_of_golf.value; i++) {
		var ctag = safe_getObjectById('day'+i+'tag')
		if (ctag) {
		    //nada
		} else {
		    ctag = document.createElement('div');
		    ctag.setAttribute('id', 'day'+i+'tag');
		    ctag.setAttribute('class', 'daytext');
		    //ctag.appendChild(document.createTextNode('<input name=maca"" type="text" value="" />'))
		    ptag.appendChild(ctag);
		    ctag = safe_getObjectById('day'+i+'tag');
		    
		    var date_for_day_string = add_days_to_date(form.first_day_of_golf.value, i-1);
		    day_date = '&nbsp;&nbsp;<input type="text" class="inp_gray65" name="golfing_day_'+i+'" id="golfing_day_'+i+'" value="'+date_for_day_string+'" readonly="readonly" onclick="alert(\'Please use calendar the selector\')" />&nbsp;<a href="javascript:show_calendar(\'frm_quote.golfing_day_'+i+'\');" onmouseover="window.status=\'Date Picker\';return true;" onmouseout="window.status=\'\';return true;"><IMG alt="" src="http://www.teebone.com/images/ico_calendar.gif" border="0" style="position:absolute; margin-top: 4px;"></A>';

		var airport_option ;
		if ( i == 1 || i == form.days_of_golf.value ) { // show only on first and last day
			airport_option  = '<div class="schedulerow3">&nbsp;&nbsp;<input name="day_'+i+'_course_loc" checked type="radio" value="anywhere">&nbsp;<span class="txtDefault">Anywhere</span> &nbsp;<input name="day_'+i+'_course_loc" type="radio" value="near_airport"><span class="txtDefault">Near Airport</span></div>';
		}
		else {
			airport_option = ' ';
		}

ctag.innerHTML='<div class="schedulerow1">&nbsp;&nbsp;<span class="txtDefault"><strong>Day '+i+'</strong>'+ day_date + '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Golfers : </span><select class="box" name="day_'+i+'_no_golfers">'+no_golfers_options_html+'</select></div>'
+'<div class="schedulerow2 txtDefault">&nbsp;&nbsp;<input name="day_'+i+'_holes" type="radio" checked value="18" onclick="toggle_after_price_break(\'enable\', ' + i +')" /> <span class="txtDefault">18 holes &nbsp;&nbsp;&nbsp;&nbsp;<input name="day_'+i+'_holes" type="radio" value="36" onclick="toggle_after_price_break(\'disable\', ' + i +')"/>36 holes</span>&nbsp;&nbsp; <span class="note">Choose "36" to quote preconfirmed rates, if avail.</span></div>'
+airport_option
+'<div class="schedulerow4"><table border=0 cellpadding="0" cellspacing="0"><tr><td><div id="ambox" class="ambox"><input name="day_'+ i + '_round_time" type="radio" value="morning" checked onclick="update_round_time(\'morning\', '+ i +')"/>&nbsp;<span class="txtDefault">Morning Round</span></br><span class="note">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Highest price of the day</span></div></td>'
+'<td><div class="pmbox" id="pmbox'+i+'"><input name="day_'+i+'_round_time" id="day_'+i+'_round_time_noon" type="radio" value="noon" onclick="update_round_time(\'noon\', '+ i +')" />&nbsp;<Span class="txtDefault">After Price break</span>&nbsp;&nbsp;&nbsp;&nbsp;'
+'<select name="day_'+ i +'_start" id="day_'+ i +'_start" class="box" >'
+'<option value="07:00"> 7:00 AM</option>'
+'<option value="07:15"> 7:15 AM</option>'
+'<option value="07:30"> 7:30 AM</option>'
+'<option value="07:45"> 7:45 AM</option>'
+'<option value="08:00" selected="selected"> 8:00 AM</option>'
+'<option value="08:15"> 8:15 AM</option>'
+'<option value="08:30"> 8:30 AM</option>'
+'<option value="08:45"> 8:45 AM</option>'
+'<option value="09:00"> 9:00 AM</option>'
+'<option value="09:15"> 9:15 AM</option>'
+'<option value="09:30"> 9:30 AM</option>'
+'<option value="09:45"> 9:45 AM</option>'
+'<option value="10:00">10:00 AM</option>'
+'<option value="10:15">10:15 AM</option>'
+'<option value="10:30">10:30 AM</option>'
+'<option value="10:45">10:45 AM</option>'
+'<option value="11:00">11:00 AM</option>'
+'<option value="11:15">11:15 AM</option>'
+'<option value="11:30">11:30 AM</option>'
+'<option value="11:45">11:45 AM</option>'
+'<option value="12:00">12:00</option>'
+'<option value="12:15">12:15</option>'
+'<option value="12:30">12:30</option>'
+'<option value="12:45">12:45</option>'
+'<option value="13:00"> 1:00 PM</option>'
+'<option value="13:15"> 1:15 PM</option>'
+'<option value="13:30"> 1:30 PM</option>'
+'<option value="13:45"> 1:45 PM</option>'
+'<option value="14:00"> 2:00 PM</option>'
+'<option value="14:15"> 2:15 PM</option>'
+'<option value="14:30"> 2:30 PM</option>'
+'<option value="14:45"> 2:45 PM</option>'
+'<option value="15:00"> 3:00 PM</option>'
+'<option value="15:15"> 3:15 PM</option>'
+'<option value="15:30"> 3:30 PM</option>'
+'<option value="15:45"> 3:45 PM</option>'
+'<option value="16:00"> 4:00 PM</option>'
+'</select><br>'
+'<span class="note">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Break usualy by noon or 1pm</span></div></td></tr></table>'
+'</div>' //end div class=schedulerow4
+'<hr>'; 
		}
	}
	
	fix_date();
	// change number_of_guests
	if (form.room_number_of_beds) {
		form.room_number_of_beds.selectedIndex = form.golfers.value - 1;
	}

}

function update_round_time(when, day_no) {

	var round_time = safe_getObjectById("day_"+ day_no +"_start");
	if (round_time) {
		if(when == "morning") {
				round_time.selectedIndex = 4; // 8:00am
		}
		else {
				round_time.selectedIndex = 24; // 1:00pm
		}
	}
}

function toggle_after_price_break(how, day_no) {
	var pmbox_id = "pmbox" + day_no;
	if(how == 'disable') {
		hide(pmbox_id);
	}
	else {
		show(pmbox_id);
	}
}

function get_trail(current, div, text, link) {
    if (current!=div && link==true) {
	return (' :: <a class="trail_past" href="javascript:switch_layers(\''+current+'\',\''+div+'\');">'+text+'</a>');
    } else if (current==div) {
	return (':: <span class="trail_current">'+text+'</span>');
    } else {
	return (':: <span class="trail_future">'+text+'</span>');
    }

}

function show_trail(active) {

	var form = safe_getObjectById('frm_quote');
	var ptag = safe_getObjectById('trail');
	
	var text = '';
	
	if ( active=="fldivgolf" ) {
		// nada
	}
	
	if ( active=="fldivroom" ) {

		text += get_trail('fldivroom','fldivgolf','Golf',true);

		text += get_trail('fldivroom','fldivroom','Room',true);
		
		if (form.package_type[2].checked) { // "Golf room car"
			text += get_trail('fldivroom','fldivcar','Car',false);
		}		
		
		text += get_trail('fldivroom','fldivprofile','Profile',false);
	
	}
	
	if ( active=="fldivcar" ) {

		text += get_trail('fldivcar','fldivgolf','Golf',true);

		text += get_trail('fldivcar','fldivroom','Room',true);
		
		text += get_trail('fldivcar','fldivcar','Car',true);
		text += get_trail('fldivcar','fldivprofile','Profile',false);
	
	}
	
	if ( active=="fldivprofile" ) {

		text += get_trail('fldivprofile','fldivgolf','Golf',true);

		if (form.package_type[0].checked) { // golf only
			// nada
		}
		else if (form.package_type[1].checked){ //Golf room
			text += get_trail('fldivprofile','fldivroom','Room',true);
		}
		else if (form.package_type[2].checked) { // "Golf room car"
			text += get_trail('fldivprofile','fldivroom','Room',true);
			text += get_trail('fldivprofile','fldivcar','Car',true);
		}		
		
		text += get_trail('fldivprofile','fldivprofile','Profile',true);
	
	}
	
	ptag.innerHTML = text;
	
}


