var coupon_code, discount, good = new Array();

good['user']  = false;
good['pass']  = false;
good['pass2'] = false;

function checkUsername(){
	var obj    =  document.getElementById('id_username');
	var txt    =  document.getElementById('txt_username');
	good['user'] = false;
	
	if (obj.value.length == 0){
		txt.innerHTML = '';
	} else if (obj.value.length >= 5){
		txt.innerHTML = '<img src="/images/green_check.jpg" /> <a href="javascript: void(0);" onClick="usernameAvailability();">Check availability</a>';
	} else {
		txt.innerHTML = '<span class="asterik">*</span> Too short';
	}
}
	
function checkPassword(){
	var obj    = document.getElementById('id_password');
	var txt    = document.getElementById('txt_password');
	good['pass'] = false;	
	
	if (obj.value.length == 0){
		txt.innerHTML = '';
	} else if (obj.value.length >= 5){
		txt.innerHTML = '<img src="/images/green_check.jpg" />';
		good['pass']    = true;
	} else {
		txt.innerHTML = '<span class="asterik">*</span> Too short';
	}
}

function checkPassword2(){
	var obj     = document.getElementById('id_password2');
	var txt     = document.getElementById('txt_password2');
	var pass    = document.getElementById('id_password');
	good['pass2'] = false;
	
	if (obj.value == '' || obj.value.length < pass.value.length){
		txt.innerHTML = '';
	} else {
		if (obj.value === pass.value){
			txt.innerHTML = '<img src="/images/green_check.jpg" />';
			good['pass2']   = true;
		} else {
			txt.innerHTML = '<span class="asterik">*</span> Does not match';
		}
	}
}

function updateFields(){
	var core = document.getElementById('id_core').checked;
	var price = 0;
	
	if (core){
		price = 50;
	}
	
	for(i in sat_course){
		if (document.getElementById('id_' + i)){
			if (document.getElementById('id_' + i).checked){
				if (core){
					price += (sat_course[i] * .8);
				} else {
					price += sat_course[i];
				}
			}
		}
	}
	
	// Workstation basics
	if (document.getElementById('id_subcb').checked == false)
	{
		subs = getElementsByClassName('cm', 'input');
		for (i in subs)
		{
			if (subs[i].checked) price += 7;
		}
	}
	
	if (price && discount){
		price -= (price * (discount / 100));
	}
	
	price = price.toFixed(2);
	
	document.getElementById('id_pp_amount').value = price;
	document.getElementById('id_fee').innerHTML   = '$' + price;
	
}

function validateForm(){
	
	if (!good['user']){
		alert ('Please ensure your username is available');
		return false;
	} else if (!good['pass']){
		alert ('Please re-check your password');
		return false;
	} else if (!good['pass2']){
		alert ('Please re-check your password confirmation');
		return false;
	} else if (!(document.getElementById('id_pp_amount').value > 0)){
		alert ('You must select at least 1 course to signup');
		return false;
	} else {
		processOrder();
		return true;
	}
}

function sat_courses(){
	var core = document.getElementById('id_core').checked;
	switch(core){
		case true:
			var $reg  = 'none';
			var $disc = '';
			break;
		case false:
			var $reg  = '';
			var $disc = 'none';
			break;
	}
	
	var spans,i;
	spans    = document.getElementsByClassName('reg');
	
	for (i in spans){
		if (spans[i].style){
			spans[i].style.display = $reg;
		}
	}
	
	spans    = document.getElementsByClassName('disc');
	
	for (i in spans){
		if (spans[i].style){
			spans[i].style.display = $disc;
		}
	}
}

function w_basics(sub)
{
	maincb = document.getElementById('id_cmartirano');
	subcb  = document.getElementById('id_subcb');
	
	if (sub)
	{
		maincb.checked = subcb.checked;
	} else {
		subcb.checked  = maincb.checked;
	}
	
	subs = getElementsByClassName('cm', 'input');
	for (i in subs)
	{
		if (subcb.checked)
		{
			subs[i].checked  = false;
			subs[i].disabled = true;
		} else {
			subs[i].disabled = false;
		}
	}
}



function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}


function showTrailer($inFilename){
	var s1   = new SWFObject("/flvplayer.swf","single","480","360","7");
	s1.addParam("allowfullscreen","false");
	s1.addVariable("file",'sample_clips/' + $inFilename);
	//s1.addVariable("image","fplayer/prev.jpg");
	s1.addVariable("width","480");
	s1.addVariable("height","360");
	s1.write('lbHoverNav');
}

// Ajax stuff

function usernameAvailability(){
	var url = '/usernameAvailability.php?u=' + document.getElementById('id_username').value;
	doAjax(url,'usernameAvailabilityRet',true);
}

function usernameAvailabilityRet(inRT){
	var userTxt = document.getElementById('txt_username');
	
	if (inRT == 'n') {
		userTxt.innerHTML = '<img src="/images/green_check.jpg" /> Your username is available';
		good['user']      = true;
	} else if (inRT == 'y') {
		userTxt.innerHTML = '<span class="asterik">*</span> Your username is in use';
	}
}

function applyCoupon(){
	var url = '/applyCoupon.php?c=' + document.getElementById('id_coupon').value;
	doAjax(url,'applyCouponRet',true);
}

function applyCouponRet(inRT){
	var couponTxt  = document.getElementById('id_coupon_txt');
	var returnData = inRT.split("-");
	if (returnData[0] == 0){
		couponTxt.innerHTML = '<input type="text" name="coupon" id="id_coupon" size="20" />  <a href="javascript: void(0);" onClick="applyCoupon();">Apply</a> <span class="asterik">*</span> ' + returnData[2];
	} else if (returnData[0] == 1){
		coupon_code = document.getElementById('id_coupon').value;
		discount  = returnData[1];
		couponTxt.innerHTML = returnData[2];
		updateFields();
	}
}

function processOrder(){
	
	var order         = new Array();
	order['sc']       = new Array();
	order['user']     = new Array();
	order['wb']       = new Array();
		
	order['core']   = document.getElementById('id_core').checked;
	
	document.getElementById('id_core').disabled = true;
	
	for(i in sat_course){
		if (document.getElementById('id_' + i)){
			document.getElementById('id_' + i).disabled = true;
			if (document.getElementById('id_' + i).checked){
				order['sc'].push(i);
			}
		}
	}
	
	wb = getElementsByClassName('cm', 'input');
	for (i in subs)
	{
		subs[i].disabled = true;
		if (subs[i].checked) order['wb'].push(subs[i].value);
	}
	
	// Gather user details
	
	order['user']['username']  = document.getElementById('id_username').value;
	order['user']['password']  = document.getElementById('id_password').value;
	if (coupon_code){
		order['coupon']          = coupon_code;
	}
	
	if (document.getElementById('id_ct').value){
		order['ct'] = document.getElementById('id_ct').value;
	}
	
	document.getElementById('id_submit').innerHTML = 'Processing...';
	
	var param = serialize(order);	
	var url   = '/processOrder.php?c=' + param;
	doAjax(url, 'processOrderRet', true);
}

function processOrderRet(inR){
	var info = inR.split('~~');
	
	document.getElementById('id_pp_amount').value         = info[0];
	document.getElementById('id_fee').innerHTML           = '$' + info[0];
	document.getElementById('id_pp_custom').value         = info[1];
	document.getElementById('id_pp_submit').style.display = '';
	document.getElementById('id_submit').style.display    = 'none';
}