//*****************************************
// Fees - Early Bird
//*****************************************
var pre
var member
var nonmember	
var partner1	
var partner2	

//*****************************************
//Cost variables
//*****************************************
var gst			= 12.00

//*****************************************
//Fee - AFTER EARLY BIRD April 1
//*****************************************
var tax_day
var today
var gst

early_bird_day = new Date("April 1, 2012");
today = new Date;

//IF early bird is greater than or equal to today.
if (today >= early_bird_day) {
 
	 member			= 590.00
	 nonmember		= 640.00
	 partner1		= 140.00	
	 partner2		= 30.00
	
} else {
  
	 member			= 550.00
	 nonmember		= 600.00
	 partner1		= 140.00
	 partner2		= 30.00
}


//****************************************************
// returns the amount in the .99 format
//****************************************************
function cent(amount) {
  amount -= 0;
  return (amount == Math.floor(amount)) ? amount + '.00' : (  (amount*10 == Math.floor(amount*10)) ? amount + '0' : amount);
}

//**********************************************************
// returns a number rounded to 2 decimal places
//**********************************************************
function round(number) {
  var X
  X = (!X ? 2 : X);
  return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}



function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + num + '.' + cents);
}


//****************************************************************************
// Calculates the total of all conference fees
// Then call the necessary functions to calculate the total cost!
//****************************************************************************
function calcConFees(theElement) {

	if (theElement == "GFOA Member")
	  {
		document.regForm.fee1.value = ""+ cent(member);
		document.regForm.c_fee.value = ""+ cent(member);
		document.regForm.fee2.value = "0.00";
	  }
		
		if (theElement == "Non-Member")
	  {
		document.regForm.fee2.value = ""+ cent(nonmember);
		document.regForm.c_fee.value = ""+ cent(nonmember);
		document.regForm.fee1.value = "0.00";  
	  }
	
		if (theElement == "Sponsor")
	  {
		document.regForm.fee1.value = "0.00";
		document.regForm.fee2.value = "0.00";  
		document.regForm.c_fee.value = "0.00";
	  }
	  
		if (theElement == "GFOA Board Member")
	  {
		document.regForm.fee1.value = "0.00";
		document.regForm.fee2.value = "0.00";  
		document.regForm.c_fee.value = "0.00";
	  }
	  
	TotalCost(); 
}

//****************************************************************************
// Calculates the total of all Partner conference fees
// Then call the necessary functions to calculate the total cost!
//****************************************************************************
function calcpartner() {
subTotalPartner = cent(0);
var subTotalPartner

  if (document.regForm.pprogram1.checked)
  {    
    document.regForm.pfee1.value = "" + cent(partner1);
  }
  else {
    document.regForm.pfee1.value = "0.00";
  }
  
  //if (document.regForm.pprogram2.checked)
  //{    
    //document.regForm.pfee2.value = ""+ cent(partner2);
  //}else {
    //document.regForm.pfee2.value = "0.00";
  //}
	//subTotalPartner = (document.regForm.pfee1.value - 0) + (document.regForm.pfee2.value - 0)
	subTotalPartner = (document.regForm.pfee1.value - 0);
	document.regForm.d_fee.value = cent(subTotalPartner);
	document.regForm.totald.value = cent(subTotalPartner);
	TotalCost();
	
}

//****************************************************************************
// Calculates the total of all tickets wanted
// 
//****************************************************************************
function banquetextra() {
 
  var totaltickets

  totaltickets = document.regForm.extra1.value * 80.00  
  document.regForm.extrafee1.value = "" + cent(totaltickets);

  extraFees();
}

//****************************************************************************
// Calculates the total of all tickets wanted
// 
//****************************************************************************
function recextra() {
 
  var totaltickets

  totaltickets = document.regForm.extra2.value * 40.00  
  document.regForm.extrafee2.value = "" + cent(totaltickets);

  extraFees();
}


//****************************************************************************
// Calculates the total extra ticket fees.
// Then call the necessary functions to calculate the total cost!
//****************************************************************************
function extraFees() {
 
var Extra

//Extra = (document.regForm.extrafee1.value - 0) + (document.regForm.extrafee2.value - 0);
Extra = (document.regForm.extrafee1.value - 0);

 document.regForm.e_fee.value = "" + cent(Extra);
 document.regForm.totale.value = "" + cent(Extra);
 
 //Recalculate the Total Price
 TotalCost();
}


//****************************************************************************
// Calculates the total of all conference fees
// Then call the necessary functions to calculate the total cost!
//****************************************************************************
function TotalCost() {
 
 var SubTotal
 var tax
 var Total

if (document.regForm.PDincentive.checked)
	{
	   document.regForm.totalc.value = "0.00";
	} else {
	   document.regForm.totalc.value = document.regForm.c_fee.value
	}
 SubTotal = (document.regForm.totalc.value - 0) + (document.regForm.totald.value - 0) + (document.regForm.totale.value - 0);
 document.regForm.subtotal.value = "" + cent(SubTotal);
 
 if (document.regForm.exempt.checked)
 {
      document.regForm.gst.value = "0.00";
      tax = ("0.00" - 0)
 } else {
 
      // figure out the tax
      tax = SubTotal / 100 * gst;
      tax = Math.floor(tax * 1000)/1000;
      document.regForm.gst.value = "" + cent(round(tax));
 }
  
 //now get the total
 Total = (cent(round(tax))-0) + SubTotal
 document.regForm.total.value = cent(Total);
}


/* Validates the document. Returns true if valid                  */
/* else Opens a window with an error message(s) and returns false */
function isValidDocument_GFOA() {

  //alert("got here");

	var errorMessages = "";
	var valid = true;
  var phone = trim(document.regForm.phone1.value) +"-"+ trim(document.regForm.phone2.value) +"-"+ trim(document.regForm.phone3.value)

	/* find data entry errors */
	/* If an error occured, data input element is highlighted */
	with (document.regForm) {

		/* FIELD NAME = firstname -- Required */
		firstname.value = trim(firstname.value);
		if (isBlank(firstname.value) || firstname.value == "") {
			errorMessages += "Please Enter the First Name.\n";
			valid = false;
			firstname.className  = "DisplayFieldError";
		} else {
			firstname.className  = "DisplayFieldData";
		}

		/* FIELD NAME = lastname -- Required */
		lastname.value = trim(lastname.value);
		if (isBlank(lastname.value) || lastname.value == "") {
			errorMessages += "Please Enter the Last Name.\n";
			valid = false;
			lastname.className  = "DisplayFieldError";
		} else {
			lastname.className  = "DisplayFieldData";
		}
		
		/* FIELD NAME = address -- Required */
		address.value = trim(address.value);
		if (isBlank(address.value) || address.value == "") {
			errorMessages += "Please Enter the Address.\n";
			valid = false;
			address.className  = "DisplayFieldError";
		} else {
			address.className  = "DisplayFieldData";
		}
		
		/* FIELD NAME = city -- Required */
		city.value = trim(city.value);
		if (isBlank(city.value) || city.value == "") {
			errorMessages += "Please Enter the City.\n";
			valid = false;
			city.className  = "DisplayFieldError";
		} else {
			city.className  = "DisplayFieldData";
		}
		
		/* FIELD NAME = pcode  -- Required */
		pcode.value = trim(pcode.value);
		if (isBlank(pcode.value) || pcode.value == "") {
			errorMessages += "Please Enter the Postal Code.\n";
			valid = false;
			pcode.className  = "DisplayFieldError";
		} else {

			pcode.className  = "DisplayFieldData";
		}

		/* FIELD NAME = phone  -- Required */
		if (isBlank(phone1.value) || isBlank(phone2.value) || isBlank(phone3.value) ) {
			errorMessages += "Please Enter the Phone Number.\n";
			valid = false;
			phone1.className  = "DisplayFieldError";
			phone2.className  = "DisplayFieldError";
			phone3.className  = "DisplayFieldError";
		} else {
			phone1.className  = "DisplayFieldData";
			phone2.className  = "DisplayFieldData";
			phone3.className  = "DisplayFieldData";
		}
		
		/* FIELD NAME = email  -- Required */
		email.value = trim(email.value);
		if (isBlank(email.value) || email.value == "") {
			errorMessages += "Please Enter the Email.\n";
			valid = false;
			email.className  = "DisplayFieldError";
		} else {
			email.className  = "DisplayFieldData";
		}
	
		//***********************************************************************
		//Used to confirm that they have selected a whether they are attending preconference, conference or both
		//***********************************************************************
		
		if (document.regForm.fees[0].checked || document.regForm.fees[1].checked || document.regForm.fees[2].checked || document.regForm.fees[3].checked)
		{
		  SelectDel =  true;
		}else {
		  alert("You have not Selected your Conference Fees.  This must be selected in order to register.")
		  document.regForm.fees[0].focus();
		  return false;
		}

		//***********************************************************************
		//used to confirm that their partner is attending
		//***********************************************************************
		if (document.regForm.pprogram1.checked)
		{
		
		  if (document.regForm.partner.value == "")
		  {
			alert("You have selected the Partner Program, yet not entered your partners name.  Please do so in order to register.")
			
			partner.className  = "DisplayFieldError";
			document.regForm.partner.focus();
			return false;
		  } else {
		
			SelectDel =  true;
			partner.className  = "DisplayFieldData";
		  }
		
		} else {
		
		  if (document.regForm.partner.value != "")
		  {
			alert("You have entered your partners name, yet not selected the Partners Meal Program.  If you do wish your partner to attend the partner program please check the Partners Meal program checkbox, else remove your partners name.")
			document.regForm.partner.focus();
			return false;
		
		  } else {
		
			SelectDel =  true;
		  }
		}
	
	}

	if (valid) {
		return true;
	} else {
    alert("" + errorMessages);
		return false;
	}
}
