/* Order Form - Step 1
============================================================*/
function orderFormUpdate(){
	if(!document.getElementById) return;
	if(!document.getElementById('order')) return;
	
	var inputs = document.getElementsByTagName('input');
	
	for(x=0;x<inputs.length;x++){
		// Find Input Fields that are User Inputed Quantities Only
		if(inputs[x].className.indexOf('readonly')==-1 && inputs[x].className.indexOf('submit')==-1){
			inputs[x].onkeyup = function(){
				// Update Qty's and Subtotal's
				if(isNaN(this.value)) this.value = "";
				if(this.id.indexOf('stu')!=-1){
					updateQty('stu');
				} else {
					updateQty('biz');
				}
			}
		}
	}
	
}
addLoadEvent(orderFormUpdate);

function updateQty(w){
	// Page Elements
	var stu1   = document.getElementById('stu1');
	var stu150 = document.getElementById('stu150');
	var stu300 = document.getElementById('stu300');
	var stu600 = document.getElementById('stu600');
	var stuTotalQty = document.getElementById('stuTotalQty');
	var stuSub = document.getElementById('stuSub');
	var biz50 = document.getElementById('biz50');
	var biz500 = document.getElementById('biz500');
	var bizTotalQty = document.getElementById('bizTotalQty');
	var bizSub = document.getElementById('bizSub');
	var subtotal = document.getElementById('subtotal');
	var total = document.getElementById('total');
	var totalint = document.getElementById('totalint');
	var q = 0; // qty
	var s = 0; // subtotal
	if(w=="stu"){
		if(eval('!isNaN(parseFloat('+w+'1.value))')){
			q += eval('parseFloat('+w+'1.value)');
			s += eval('parseFloat('+w+'1.value)') * stu1Price;
		} 
		if(eval('!isNaN(parseFloat('+w+'150.value))')){
			q += eval('parseFloat('+w+'150.value)') * 150;
			s += eval('parseFloat('+w+'150.value)') * stu150Price;
		} 	
		if(eval('!isNaN(parseFloat('+w+'300.value))')){
			q += eval('parseFloat('+w+'300.value)') * 300;
			s += eval('parseFloat('+w+'300.value)') * stu300Price;
		}
		if(eval('!isNaN(parseFloat('+w+'600.value))')){
			q += eval('parseFloat('+w+'600.value)') * 600;
			s += eval('parseFloat('+w+'600.value)') * stu600Price;
		}
		stuTotalQty.value = q;
		stuSub.value = '$' + s;
	} else {
		if(eval('!isNaN(parseFloat('+w+'50.value))')){
			q += eval('parseFloat('+w+'50.value)') * 50;
			s += eval('parseFloat('+w+'50.value)') * biz50Price;
		} 
		if(eval('!isNaN(parseFloat('+w+'500.value))')){
			q += eval('parseFloat('+w+'500.value)') * 500;
			s += eval('parseFloat('+w+'500.value)') * biz500Price;
		} 
		bizTotalQty.value = q;
		bizSub.value = '$' + s;
	}
	subtotal.value = total.value =  '$' + (parseFloat(stuSub.value.substring(1)) + parseFloat(bizSub.value.substring(1)));
	totalint.value = total.value.substring(1);
	
}

// Pricing
var stu1Price = 5;
var stu150Price = 675;
var stu300Price = 1200;
var stu600Price = 2100;
var biz50Price = 25;
var biz500Price = 200;


function orderFormUpdates(){
	if(!document.getElementById) return;
	if(!document.getElementById('stuGuide')) return;
	if(!document.getElementById('bizGuide')) return;
	
	// Student Qty Field Update
	document.getElementById('stuQty').onkeyup = function(){
		var prod = document.getElementById('stuGuide');
		var subtotal = document.getElementById('stuProdTotal');
		//var label = document.getElementById('stuProdTotalLabel');
		var error = document.getElementById('stuError');
		if(this.value=="" || this.value==0 || isNaN(this.value)){
			//label.style.display = "none";
			subtotal.value = "";
			error.style.display = "none";
			updateTotal();
		} else if(prod.options[prod.selectedIndex].value == "") {
			error.style.display = "block";
			error.innerHTML = "Please choose a product from the<br>drop down menu first.";
			subtotal.style.display = "none";
			updateTotal();
		} else {
			error.style.display = "none";
			//label.style.display = "block";
			subtotal.style.display = "block";
			subtotal.value = "$" + (this.value * prod.options[prod.selectedIndex].value);
			updateTotal();
		}
	}
	// Student DropDown Update
	document.getElementById('stuGuide').onchange = function(){
		var qty = document.getElementById('stuQty');
		var subtotal = document.getElementById('stuProdTotal');
		//var label = document.getElementById('stuProdTotalLabel');
		var error = document.getElementById('stuError');
		if(this.options[this.selectedIndex].value == "" && qty.value=="" || qty.value==0 || isNaN(this.value)){
			//label.style.display = "none";
			subtotal.value = "";
			error.style.display = "none";
			updateTotal();
		} else if(this.options[this.selectedIndex].value == "" && qty.value!=""){
			error.style.display = "block";
			error.innerHTML = "Please choose a product from the<br>drop down menu first.";
			//label.style.display = "none";
			subtotal.style.display = "none";
			subtotal.value = "";
			updateTotal();
		} else if(qty.value=="" || qty.value==0 || isNaN(this.value)){
			//label.style.display = "none";
			subtotal.value = "";
			error.style.display = "none";
			updateTotal();
		} else {
			error.style.display = "none";
			//label.style.display = "block";
			subtotal.style.display = "block";
			subtotal.value = "$" + (qty.value * this.options[this.selectedIndex].value);
			updateTotal();
		}
	}
	// Cleanup page if user refreshes
	/*if(document.getElementById('stuProdTotal').value!=""){
		document.getElementById('stuProdTotalLabel').style.display = "block";
	}*/
	// Business Qty Field Update
	document.getElementById('bizQty').onkeyup = function(){
		var prod = document.getElementById('bizGuide');
		var subtotal = document.getElementById('bizProdTotal');
		//var label = document.getElementById('bizProdTotalLabel');
		var error = document.getElementById('bizError');
		if(this.value=="" || this.value==0 || isNaN(this.value)){
			//label.style.display = "none";
			subtotal.value = "";
			error.style.display = "none";
			updateTotal();
		} else if(prod.options[prod.selectedIndex].value == "") {
			error.style.display = "block";
			error.innerHTML = "Please choose a product from the<br>drop down menu first.";
			subtotal.style.display = "none";
			updateTotal();
		} else {
			error.style.display = "none";
			//label.style.display = "block";
			subtotal.style.display = "block";
			subtotal.value = "$" + (this.value * prod.options[prod.selectedIndex].value);
			updateTotal();
		}
	}
	// Business DropDown Update
	document.getElementById('bizGuide').onchange = function(){
		var qty = document.getElementById('bizQty');
		var subtotal = document.getElementById('bizProdTotal');
		//var label = document.getElementById('bizProdTotalLabel');
		var error = document.getElementById('bizError');
		if(this.options[this.selectedIndex].value == "" && qty.value=="" || qty.value==0 || isNaN(this.value)){
			//label.style.display = "none";
			subtotal.value = "";
			error.style.display = "none";
			updateTotal();
		} else if(this.options[this.selectedIndex].value == "" && qty.value!=""){
			error.style.display = "block";
			error.innerHTML = "Please choose a product from the<br>drop down menu first.";
			subtotal.style.display = "none";
			//label.style.display = "none";
			subtotal.value = "";
			updateTotal();
		} else if(qty.value=="" || qty.value==0 || isNaN(this.value)){
			//label.style.display = "none";
			subtotal.value = "";
			error.style.display = "none";
			updateTotal();
		} else {
			error.style.display = "none";
			//label.style.display = "block";
			subtotal.style.display = "block";
			subtotal.value = "$" + (qty.value * this.options[this.selectedIndex].value);
			updateTotal();
		}
	}
	// Cleanup page if user refreshes
	/*if(document.getElementById('bizProdTotal').value!=""){
		document.getElementById('bizProdTotalLabel').style.display = "block";
	}*/
}
//addLoadEvent(orderFormUpdates);

// Update Grand Total Field
function updateTotal(v){
	var total = document.getElementById('total');
	var stu = document.getElementById('stuProdTotal');
	var biz = document.getElementById('bizProdTotal');
	
	var stuValue = 0; var bizValue = 0
	if(stu.value!=""){stuValue = parseFloat(stu.value.substring(1));}
	if(biz.value!=""){bizValue = parseFloat(biz.value.substring(1));}
	t = stuValue + bizValue;
	if(t==0){
		total.value = "$0";
	} else {
		total.value = "$" + t;
	}
	
}






/* Order Form - Step 2 (Validation)
============================================================*/
function sameAsBill(){
	if(!document.getElementById('sameAs')) return;
	var elem = document.getElementById('sameAs');
	elem.onclick = function(){
		if(this.checked){
			document.getElementById("shipping_fname").value = document.getElementById("billing_fname").value;
			document.getElementById("shipping_lname").value = document.getElementById("billing_lname").value;
			document.getElementById("shipping_company").value = document.getElementById("billing_company").value;
			document.getElementById("shipping_addy1").value = document.getElementById("billing_addy1").value;
			document.getElementById("shipping_addy2").value = document.getElementById("billing_addy2").value;
			document.getElementById("shipping_city").value = document.getElementById("billing_city").value;
			document.getElementById("shipping_zip").value = document.getElementById("billing_zip").value;
			document.getElementById("shipping_state").selectedIndex = document.getElementById("billing_state").selectedIndex;
		}
	}
}
addLoadEvent(sameAsBill);


function validateForm(whichform) {
   for (var i=0; i<whichform.elements.length; i++) {
    var element = whichform.elements[i];
    if (element.className.indexOf("select") != -1){
		if(element.className.indexOf("req") != -1){
			if(!isSelected(element)){
				alert("Please select and option for the "+element.title+" field.");
			}
		} else {
			continue;
		}
	}
	if (element.className.indexOf("req") != -1) {
      if (!isFilled(element)) {
        alert("Please fill in your "+element.title+".");
        return false;
      }
    }
	if (element.className.indexOf("num") != -1) {
      if (!isNumber(element)) {
        alert("The "+element.title+" must be a number.");
        return false;
      }
    }
	if (element.className.indexOf("ccnum") != -1) {
      if (!isCCNum(element)) {
        alert("The "+element.title+" must be a valid number.");
        return false;
      }
    }
    if (element.className.indexOf("email") != -1) {
      if (!isEmail(element)) {
        alert("The "+element.title+" field must be a valid email address.");
        return false;
      }
    }
  }
  return true;
}

function isSelected(field) {
  if (field.options[field.selectedIndex].value == field.options[field.selectedIndex].defaultSelected) {
    return false;
  } else {
    return true;
  }
}
function isFilled(field) {
  if (field.value.length < 1 || field.value == field.defaultValue) {
    return false;
  } else {
    return true;
  }
}
function isNumber(field) {
  if (isNaN(field.value)==true) {
    return false;
  } else {
    return true;
  }
}
function isCCNum(field) {
  if (field.value.length < 13 || field.value.length > 19 ) {
    return false;
  } else {
    return true;
  }
}
function isEmail(field) {
  if (!checkRegex(f.Email.value, /^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$/))
  /*if (field.value.indexOf("@") == -1 || field.value.indexOf(".") == -1)*/ {
    return false;
  } else {
    return true;
  }
}
function checkRegex(object_value, regex) {return regex.test(object_value);}


function prepareForms() {
  for (var i=0; i<document.forms.length; i++) {
    var thisform = document.forms[i];
    thisform.onsubmit = function() {
      return validateForm(this);
    }
  }
}
addLoadEvent(prepareForms);





/* Resources Tabs
============================================================*/
totalRes = 7; // total resources
function resources(){
	if(!document.getElementById) return;
	if(!document.getElementById('resourceList')) return;
	//document.getElementById('resourceTitle1').className = "resourceTitleOn";
	//document.getElementById('resource1').style.display  = "block";
	for(i=1;i<totalRes+1;i++){
		var resTitle = "resourceTitle" + i;
		var res = "resource" + i;
		var aTag = document.getElementById(resTitle).childNodes[0];
		aTag.onclick = function(){
			// Set all titles to Off
			for(x=1;x<totalRes+1;x++){
				document.getElementById("resourceTitle"+x).className = "resourceTitle";
			}
			// Turn active title to On
			this.parentNode.className = "resourceTitleOn";
			// Set all resources to Off
			for(x=1;x<totalRes+1;x++){
				document.getElementById("resource"+x).style.display = "none";
			}
			// Set active resources to On
			num = this.parentNode.id.substring(13);
			document.getElementById("resource"+num).style.display = "block";
		}
	}
}
addLoadEvent(resources);

function showDisclaimer(){
	if(!document.getElementById) return;
	if(!document.getElementById('showDisclaimer')) return;
	document.getElementById('showDisclaimer').onclick = function(){
		var d = document.getElementById('disclaimer');
		if(!d) return;
		d.style.display = "block";
	}
}
addLoadEvent(showDisclaimer);

// For adding multiple functions to onload event
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

