// Detect Client Browser type
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
jsVersion = 1.1;
// JavaScript helper required to detect Flash Player PlugIn version information
function JSGetSwfVer(i){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
      		var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			descArray = flashDescription.split(" ");
			tempArrayMajor = descArray[2].split(".");
			versionMajor = tempArrayMajor[0];
			versionMinor = tempArrayMajor[1];
			if ( descArray[3] != "" ) {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
      		versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
            flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
      	} else {
			flashVer = -1;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	// Can't detect in all other cases
	else {
		
		flashVer = -1;
	}
	return flashVer;
} 
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) 
{
 	reqVer = parseFloat(reqMajorVer + "." + reqRevision);
   	// loop backwards through the versions until we find the newest version	
	for (i=25;i>0;i--) {	
		if (isIE && isWin && !isOpera) {
			versionStr = VBGetSwfVer(i);
		} else {
			versionStr = JSGetSwfVer(i);		
		}
		if (versionStr == -1 ) { 
			return false;
		} else if (versionStr != 0) {
			if(isIE && isWin && !isOpera) {
				tempArray         = versionStr.split(" ");
				tempString        = tempArray[1];
				versionArray      = tempString .split(",");				
			} else {
				versionArray      = versionStr.split(".");
			}
			versionMajor      = versionArray[0];
			versionMinor      = versionArray[1];
			versionRevision   = versionArray[2];
			
			versionString     = versionMajor + "." + versionRevision;   // 7.0r24 == 7.24
			versionNum        = parseFloat(versionString);
        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
			if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
				return true;
			} else {
				return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );	
			}
		}
	}	
}

function isFieldBlank(theField){
  if(theField.value.length == 0){
   alert("All fields must be completed. Please use zeros where applicable.")
   theField.focus()
   return true
  }
  else
   return false
}

function moneyFormat(input){
  var dollars = Math.floor(input)
  var cents  = "" + Math.round(input * 100)
  cents = cents.substring(cents.length-2, cents.length)
  if (cents == "0"){
    input = dollars + ".00"}
else {
    input = dollars + "." + cents
  }
  return input
}

function balanceFormat(input){
  var dollars = 0
  var cents = 0
  if (input < 0){
    dollars = Math.ceil(input)}
else {
   dollars = Math.floor(input)
 }
 cents  = "" + Math.round(input * 100)
 cents = cents.substring(cents.length-2, cents.length)
 if ((input < 0) && (input > -1) && (cents == "0")){
   input = "-" + dollars + ".00"
 }
 else if ((input < 0) && (input > -1) && (cents != "0")){
   input = "-" + dollars + "." + cents
 }
 else if ((input >=0) || (input < -1)){
   if (cents == "0"){
     input = dollars + ".00"}
else {
     input = dollars + "." + cents
   }
 }
 return input
}

function checkNumber(input, msg){
  msg = msg + " field has invalid data: " + input.value;
  var str = input.value;
  for (var i = 0; i < str.length; i++){
   var ch = str.substring(i, i + 1)
   if ((ch < "0" || "9" < ch) && ch != '.') {
     alert(msg);
     input.focus()
     return false;
   }
  }
  input.value = str;
  return true;
}

function processCalc(form){
// Validate Input
 if ((isFieldBlank(form.tuition) == true) || (isFieldBlank(form.books) == true) ||
 (isFieldBlank(form.room) == true) || (isFieldBlank(form.food) == true) ||
 (isFieldBlank(form.clothing) == true) || (isFieldBlank(form.travel) == true) ||
 (isFieldBlank(form.car) == true) || (isFieldBlank(form.insurance) == true) ||
 (isFieldBlank(form.phone) == true) || (isFieldBlank(form.creditcards) == true) ||
 (isFieldBlank(form.entertain) == true) ||  (isFieldBlank(form.misc) == true) ||(isFieldBlank(form.job) == true) ||
 (isFieldBlank(form.scholarships) == true) || (isFieldBlank(form.grants) == true) ||
 (isFieldBlank(form.parents) == true) || (isFieldBlank(form.savings) == true))
 return false

 if ((!checkNumber(form.tuition, "Tuition")) || (!checkNumber(form.books, "books")) ||
 (!checkNumber(form.room, "Room &amp; Board")) || (!checkNumber(form.food, "Food")) ||
 (!checkNumber(form.clothing, "Clothing")) || (!checkNumber(form.travel, "Travel")) ||
 (!checkNumber(form.car, "Car Payment")) || (!checkNumber(form.insurance, "Insurance")) ||
 (!checkNumber(form.phone, "Utilities / Phone")) || (!checkNumber(form.misc, "Miscealaneous")) ||
 (!checkNumber(form.creditcards, "Credit Cards")) ||
 (!checkNumber(form.entertain, "Other Expenses")) || (!checkNumber(form.job, "Job")) ||
 (!checkNumber(form.scholarships, "scholarships")) || (!checkNumber(form.grants, "Grants")) ||
 (!checkNumber(form.parents, "Parents")) || (!checkNumber(form.savings, "Savings")))
 return false

// Get Input values expences
 gtuition = parseFloat(form.tuition.value)
 gbooks = parseFloat(form.books.value)
 groom = parseFloat(form.room.value)
 gfood = parseFloat(form.food.value)
 gclothing = parseFloat(form.clothing.value)
 gtravel = parseFloat(form.travel.value)
 gcar = parseFloat(form.car.value)
 ginsurance = parseFloat(form.insurance.value)
 gentertain = parseFloat(form.entertain.value)
 gmisc = parseFloat(form.misc.value)
 //income
 gjob = parseFloat(form.job.value)
 gscholarships = parseFloat(form.scholarships.value)
 ggrants = parseFloat(form.grants.value)
 gparents = parseFloat(form.parents.value)
 gphone = parseFloat(form.phone.value)
 gcreditcards = parseFloat(form.creditcards.value)
 gsavings = parseFloat(form.savings.value)
//add up column one
 dtotexp  = gtuition + gbooks + groom + gfood + gclothing + gtravel + gcar
 + ginsurance + gphone + gcreditcards + gentertain + gmisc
 //dtotexp2 = gtuition + gbooks + groom + gfood + gclothing + gtravel + gcar
 //+ ginsurance + gphone + gcreditcards + gentertain + gmisc
//add up column two
 dtotinc =  gjob + gscholarships + ggrants + gparents + gsavings
 //dtotinc2 =  gjob + gscholarships + ggrants + gparents + gsavings

 gtuition = moneyFormat(gtuition)
 gbooks = moneyFormat(gbooks)
 groom = moneyFormat(groom)
 gfood = moneyFormat(gfood)
 gclothing = moneyFormat(gclothing)
 gtravel = moneyFormat(gtravel)
 gcar = moneyFormat(gcar)
 ginsurance = moneyFormat(ginsurance)
 gphone = moneyFormat(gphone)
 gcreditcards = moneyFormat(gcreditcards)
 gentertain = moneyFormat(gentertain)
 gmisc = moneyFormat(gmisc)
 gjob = moneyFormat(gjob)
 gscholarships = moneyFormat(gscholarships)
 ggrants = moneyFormat(ggrants)
 gparents = moneyFormat(gparents)
 gsavings = moneyFormat(gsavings)
//totals
 dtotexp = moneyFormat(dtotexp)
 //dtotexp2 = moneyFormat(dtotexp2)
 dtotinc = moneyFormat(dtotinc)
 //dtotinc2 = moneyFormat(dtotinc2)
 dbalance = dtotinc - dtotexp
 dbalance = balanceFormat(dbalance)

 form.totinc.value = dtotinc
// form.totinc2.value = dtotinc2
 form.totexp.value = dtotexp
// form.totexp2.value = dtotexp2
 form.tuition.value = gtuition
 form.books.value = gbooks
 form.room.value = groom
 form.food.value = gfood
 form.clothing.value = gclothing
 form.travel.value = gtravel
 form.car.value = gcar
 form.insurance.value = ginsurance
 form.phone.value = gphone
 form.creditcards.value = gcreditcards
 form.entertain.value = gentertain
 form.misc.value = gmisc
 form.job.value = gjob
 form.scholarships.value = gscholarships
 form.grants.value = ggrants
 form.parents.value = gparents
 form.savings.value = gsavings
//totals
 form.balance.value = dbalance
 form.balance.focus()
 return true
}

function clearForm(form){
 form.totinc.value = ""
 //form.totinc2.value = ""
 form.totexp.value = ""
 //form.totexp2.value = ""
 form.tuition.value = "0.00"
 form.books.value = "0.00"
 form.room.value = "0.00"
 form.food.value = "0.00"
 form.clothing.value = "0.00"
 form.travel.value = "0.00"
 form.car.value = "0.00"
 form.insurance.value = "0.00"
 form.phone.value = "0.00"
 form.creditcards.value = "0.00"
 form.entertain.value = "0.00"
  form.misc.value = "0.00"
 form.job.value = "0.00"
 form.scholarships.value = "0.00"
 form.grants.value = "0.00"
 form.parents.value = "0.00"
 form.savings.value = "0.00"
 form.balance.value = ""
}
function educfocus()
{
  document.budget.education.focus()
}

function emulate()
{
}