// prototype $ function
function $() {
  var elements = new Array();

  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);

    if (arguments.length == 1)
      return element;

    elements.push(element);
  }

  return elements;
}

function checkEventForm() {
	//return false;
	var start_hour = $('start_hour');
	var start_minute = $('start_minute');
	var start_am_pm = $('start_am_pm');

	var end_hour = $('end_hour');
	var end_minute = $('end_minute');
	var end_am_pm = $('end_am_pm');
	
	var warning = '';

	// check for start time
	if (!hasValue(start_hour) || !hasValue(start_minute) || !hasValue(start_am_pm)) { 
		warning += "Please fill out starting time.\n"; 
	}
	
	// check for end time
	if (!hasValue(end_hour) || !hasValue(end_minute) || !hasValue(end_am_pm)) { 
		warning += "Please fill out ending time.\n"; 
	}

	// check to see start time < 24 hrs away
	if (!warning && $('is_admin').value != 'true') {
		var date_now = new Date();
		var date_set = new Date();
		date_set = getEventDate();
		if ('PM' == start_am_pm.value.toUpperCase() && start_hour.value != 12) {
			date_set.setHours(parseInt(start_hour.value) + 12);
		}
		else if ('AM' == start_am_pm.value.toUpperCase() && start_hour.value == 12) {
			date_set.setHours(0);
		}
		else {
			date_set.setHours(start_hour.value);
		}
		date_set.setMinutes(start_minute.value);
		date_set.setSeconds(0);
		var diff = date_set.getTime() - date_now.getTime();
		
		var day_millisecs = 86400000;
		var days_in_future = 2;
		var max_diff = day_millisecs * days_in_future;
		
		if (diff < max_diff) {
			warning += "Please pick a start time more than " + (24 * days_in_future) + " hours in the future.\nCall the Realty Rescue office for assistance: (818) 980-2111";
		}
	}

//	warning += "Difference is: " + diff + "\n";
//	warning += date_set + "\n";
//	warning += date_now + "\n";
//	warning += start_hour.value + "\n";
//	warning += start_am_pm.value.toUpperCase() + "\n";

	if (warning) {
		alert(warning);
		return false;
	}
	return true;
}

function hasValue(elem) {
	// if element has no value but displays '--', javascript will set the value to --
	// do not want that, so specifically exclude it
	if ('00' == elem.value) {
		return true;
	}
	else if (!elem.value || elem.value == '--') {
		return false;
	}
	return true;
}

function getEventDate() {
	var ar = document.forms[0].elements;
	for (i = 0; i < ar.length; i++) {
		if (ar[i].type == 'radio' && ar[i].checked) {
			var dn = new Date();
			var cp = ar[i].value.split("-");
			dn.setFullYear(cp[0], cp[1] - 1, cp[2])
			return dn;
		}
	}
}

function positionCursor() {
	return true;
}

function checkGiftCertificatePurchase() {
	var msg = '';
	var fields = new Array('ssl_card_number','ssl_exp_date', 'ssl_avs_address', 'ssl_city','ssl_state','ssl_avs_zip','ssl_cvv2cvc2');
	for (i=0;i<fields.length;i++) {
		if (!$(fields[i]).value) {
			msg += "Please fill out the entire form\n";
			break;
		}
	}
	if (msg) {
		alert(msg);
		return false;
	}
	return true;
}

function toggleSubscribeOther() {
	if ('Other' == $('how_hear').value) {
		$('how_hear_other').style.display = 'block';
	}
	else {
		$('how_hear_other').style.display = 'none';
	}
}

function doConfirmCancel(eid) {
	if (eid) {
		var cancel_reason = prompt("Why would you like to cancel this open?","");
		if (null != cancel_reason) {
			window.location = 'https://secure.therealtyrescue.com/?cancel_event=1&eid=' + escape(eid) + '&cancel_reason=' + escape(cancel_reason);
		}
		return false;
	}
	else {
		// should not be called w/o an eid, but just in case
		return confirm('Are you sure you want to CANCEL this Open?');
	}
}


function updateExtraCharges() {
	var total=0;
	if ($('extra_charge_other_amount')) {
		// add extra sign fee
		if ($('extra_signs')) {
			total += $('extra_signs').value * 3.00;
		}
		// add am upgrade
		if ($('am_guarantee') && $('am_guarantee').checked) {
			total += 10.00;
		}
		// vip upgrade
		if ($('vip_upgrade')) {
			if ('10C' == $('vip_upgrade').value) {
				total += 3.00;
			}
			else if ('12NC' == $('vip_upgrade').value) {
				total += 3.00;
			}
			else if ('12C' == $('vip_upgrade').value) {
				total += 6.00;
			}
		}
		$('extra_charge_other_amount').value = total;
	}
}



function onloadEvents() {
	positionCursor();
	if ($('how_hear')) {
		toggleSubscribeOther();
	}
}

window.onload = onloadEvents;
