var default_values = { 'ged_guardian': "Parent/Guardian's Name",
						'first': 'First Name',
						'last': 'Last Name',
						'address': 'Address',
						'city': 'City',
						'state': 'State',
						'zip': 'Zip Code',
						'phone': 'Phone Number',
						'form_email': 'Email Address',
						'interest': 'Learn more about?',
						'contact': 'Contact me by?',
						'scholarship_first': 'First Name',
						'scholarship_last': 'Last Name',
						'scholarship_address': 'Address',
						'scholarship_city': 'City',
						'scholarship_state': 'State',
						'scholarship_zip': 'Zip Code',
						'scholarship_phone': 'Phone Number',
						'scholarship_email': 'Email Address',
						'scholarship_contact': 'Receive Application by?',
						'contact_name': 'Name',
						'contact_phone': 'Phone Number',
						'contact_email': 'Email Address',
						'contact_contact': 'Contact me by?'
					  };

function applyMask(number) {
	if (number) {
		var x = '';
		full_cc_number = number;
		for (i = 0; i < full_cc_number.length - 4; i++) x = x + 'X';
		x = x + full_cc_number.substring(full_cc_number.length - 4);
		return x;
	}
}

function stripMask() {
	if (full_cc_number) return full_cc_number;
}

function resetMask() {
	full_cc_number = null;
}

String.prototype.reverse = function() {
    var s = "";
    var i = this.length;
    while (i>0) {
        s += this.substring(i-1,i);
        i--;
    }
    return s;
}

function popup(url, width, height) {
	window.open(url, 'nnnnn', "status=1, scrollbars=1, height=" + height + ", width=" + width + ", resizeable=0, screenX=300, screenY=300");
}

function openTab(url) {
	window.open(url, '_blank');
}

function hideDivs() {}

function showStep2() {
	document.getElementById('payment_method_div').style.display = 'block';
	window.location.hash = 'payment_method_anchor';
}

function downPayment(plan) {
	var amt = downpayments[plan];
	return '$' + amt.toFixed(2);
}

function validateContactForm(form) {
	
	// by default, highlightField looks for an element with an ID matching
	// the name of the form element that failed validation. If you need to
	// use this ID for something else, set id_suffix
	var id_suffix = '';
	
	var success = true;
	for (var i = 0; i < form.elements.length; i++) {
		var element = form.elements[i];
		var default_value = '';
		if (default_values[element.name]) default_value = default_values[element.name];
		var element_value = null;
		switch(element.type) {
			case 'text':
				element_value = element.value;
				break;
			case 'radio':
				element_value = '';
				radio_array = document.getElementsByName(element.name);
				for (var j = 0; j < radio_array.length; j++) if (radio_array[j].checked) element_value = radio_array[j].value;
				break;
			case 'select-one':
				element_value = '';
				if (element.selectedIndex !== undefined) element_value = element.options[element.selectedIndex].value;
				break;
		}
		// FORM-SPECIFIC QUIRKS
		if (element.name == 'ged_guardian') {
			var ged_age = document.getElementsByName('ged_age');
			// I don't know WHAT IE 6's problem is, but we need a workaround, fast
			var index = 0;
			if (!ged_age[0].name) index = 1;
			
			if (ged_age[index].checked) {
				element.className = 'text-field';
				continue;
			}
		} else if (element.name == 'ged_contact') {
			var ged_method = document.getElementsByName('ged_method');
			var index = 0;
			if (!ged_method[0].name) index = 1;
			
			if (ged_method[index].checked) {
				element.className = 'text-field';
				continue;
			}
		}
		// END FORM-SPECIFIC QUIRKS
		if(element_value === '' || element_value == default_value) {
			success = false;
			highlightField(element.name + id_suffix);
			if (element_value === '' && default_value !== '') element.value = default_value;
		}
		if (element.name.indexOf('email') >= 0 && !validateEmail(element.value)) {
			success = false;
			highlightField(element.name + id_suffix);
		}
	}
	if (!success && document.getElementById(form.name + "_top")) window.location.hash = form.name + "_top";
	return success;
}

// ethan@waveriderdesign.com 8.26.2008 - replace with much smarter validateEmail in /javascript/email_validate.js
//function validateEmail(email) {
//	var regex = /^[A-Za-z0-9_.]+@([A-Za-z0-9_.]+)*[A-Za-z0-9_]+\.[A-Za-z0-9_]+$/;
//	return regex.test(email);
//}

function highlightField(field) {
	document.getElementById(field).className = 'formerror';
	if (field.indexOf('ged_') == 0) {
		document.getElementById('ged_instructions').style.color = '#CC0000';
		// ethan@waveriderdesign.com 2.29.2008 -- IE doesn't like the way I do things
		//window.location.hash = 'ged_form_top';
	} else if (field.indexOf('scholarship_') == 0) {
		document.getElementById('scholarship_instructions').style.color = '#CC0000';
		//window.location.hash = 'scholarship_form_top';
	} else if (field.indexOf('contact_') == 0) {
		document.getElementById('contact_instructions').style.color = '#CC0000';
		//window.location.hash = 'contact_form_top';
	} else document.getElementById('instructions_top').style.color = '#CC0000';
}

function fieldFocus(field, default_text) {
	if (field.value == default_text) field.value = '';
	document.getElementById(field.name).className = 'text-field';
	// FORM-SPECIFIC QUIRKS
	if (field.name == 'ged_age') document.getElementById('ged_guardian').className = 'text-field';
	// END FORM_SPECIFIC QUIRKS
}

function toggleList(program_code) {
	var listdiv = document.getElementById('list-' + program_code);
	var programbullet = document.getElementById('bullet_' + program_code);
	if (listdiv.style.display && listdiv.style.display != 'none') {
		listdiv.style.display = 'none';
		programbullet.src = '../images/plus.gif';
	} else if(navigator.appName.indexOf("Microsoft") > -1){
		listdiv.style.display = 'block';
		programbullet.src = '../images/minus.gif';
	} else {
		listdiv.style.display = 'table-row';
		programbullet.src='../images/minus.gif';
	}
}
	
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
