// JavaScript Document
function isValidDate(day,month,year)
{
	var dteDate;
	var curDate;
		
	//set up a Date object based on the day, month and year arguments
	//javascript months start at 0 (0-11 instead of 1-12)
	dteDate=new Date(year,month,day);
	curDate = new Date();
		
	if (day == 0)
	{
		day = curDate.getDay();
	}

	alert(dteDate.toString());
	alert(curDate.toString());
		
	/*
	Javascript Dates are a little too forgiving and will change the date to a reasonable guess if it's invalid. 
	We'll use this to our advantage by creating the date object and then comparing it to the details we put it. 
	If the Date object is different, then it must have been an invalid date to start with...
	*/

	return ((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getFullYear()) && (dteDate>curDate));
}

function checkEmail(emField)
{
	var fieldValue = emField.value;  // store field's value in variable, "fieldValue"

	if(fieldValue != "")
	{  //if field is not empty
		var atSymbol = 0;
			
		for(var a = 0; a < fieldValue.length; a++)
		{ //loop through field value string
			if(fieldValue.charAt(a) == "@")
			{ //look for @ symbol and for each @ found, increment atSymbol variable by 1
				atSymbol++;
			}
		}
	
		if(atSymbol > 1)
		{ // if more than 1 @ symbol exists
			return false;
		}
				
		if(atSymbol == 1 && fieldValue.charAt(0) != "@")
		{  // if @ symbol was found, and it is not the 1st character in string
			var period = fieldValue.indexOf(".",fieldValue.indexOf("@")+2); //look for period at 2nd character after @ symbol
			var twoPeriods = (fieldValue.charAt((period+1)) == ".") ? true : false; // "."  immediately following 1st "." ? 
						  
		//if period was not found OR 2 periods together OR field contains less than 5 characters OR period is in last position
			if(period == -1 || twoPeriods || fieldValue.length < period + 2 || fieldValue.charAt(fieldValue.length-1)==".")
			{
				return false;
			}
				  		  
		}
		else
		{  // no @ symbol exists or it is in position 0 (the first character of the field)
			return false; // then cancel
		}
	}
	else
	{  // if field is empty
		return false;  // then cancel
	}
			
	return true;
}

function toUnicode(elmnt,content){
	if (content.length==elmnt.maxLength){
		next=elmnt.tabIndex
		if (next<document.forms[0].elements.length){
			document.forms[0].elements[next].focus()
		}
	}
}

function startForm(){
	document.frmRentPayment.name.focus();
}

function validate1(){ 

  if (document.forms[0].name.value.length==0){
    alert("You must enter your name.")
	document.forms[0].name.focus();
    return false;
  }

	if (document.forms[0].email.value == '')
	{
		alert('You must enter your email address.');
		document.forms[0].email.focus();
		return false;
	}
	else
	{
		if (!checkEmail(document.forms[0].email))
		{
			alert('You must provide a valid email address.');
			document.forms[0].email.select();
			return false;
		}
	}

	if ((document.forms[0].phone1.value != '') || (document.forms[0].phone2.value != '') || (document.forms[0].phone3.value != ''))
	{
		if ((isNaN(document.forms[0].phone1.value)) || (document.forms[0].phone1.value.length < 3))
		{
			alert('You must enter a valid phone number.');
			document.forms[0].phone1.select();
			return false;
		}
		
		if ((isNaN(document.forms[0].phone2.value)) || (document.forms[0].phone2.value.length < 3))
		{
			alert('You must enter a valid phone number.');
			document.forms[0].phone2.select();
			return false;
		}

		if ((isNaN(document.forms[0].phone3.value)) || (document.forms[0].phone3.value.length < 4))
		{
			alert('You must enter a valid phone number.');
			document.forms[0].phone3.select();
			return false;
		}
	}
		
  var choice=false;
  for (i=0; i<document.forms[0].apt.length; i++){
    if (document.forms[0].apt[i].checked)
      choice = true; 
    }
    if (!choice){
      alert("You must choose an apartment.")
      return false;
    }

      if (document.forms[0].aptn.value.length==0){
		alert("You must enter your apartment number.")
		document.forms[0].aptn.focus();
		return false
		}

  var choice=false;
  for (i=0; i<document.forms[0].cardtype.length; i++){
    if (document.forms[0].cardtype[i].checked)
      choice = true; 
    }
    if (!choice){
      alert("You must select your credit card type.")
      return false;
    }
 
	if (document.forms[0].acctnumber.value == '')
	{
		alert('You must enter a valid credit card number.');
		document.forms[0].acctnumber.select();
		return false;
	}

	if (document.forms[0].exp1.value == '')
	{
		alert('You must provide your credit card expiration month.');
		document.forms[0].exp1.focus();
		return false;
	}
	else
	{
		if ((isNaN(document.forms[0].exp1.value)) || (document.forms[0].exp1.value.length < 2))
		{
			alert('You must enter a valid number for your credit card expiration month (01 - 12).');
			document.forms[0].exp1.select();
			return false;
		}
		else
		{
			if ((document.forms[0].exp1.value < 1) || (document.forms[0].exp1.value > 12))
			{
				alert('You must enter a valid number for your credit card expiration month (01 - 12).');
				document.forms[0].exp1.select();
				return false;
			}
		}
	}

	if (document.forms[0].exp2.value == '')
	{
		alert('You must enter a valid number for your credit card expiration year.');
		document.forms[0].exp2.focus();
		return false;
	}
	else
	{
		if ((isNaN(document.forms[0].exp2.value)) || (document.forms[0].exp2.value.length < 2))
		{
			alert('You must enter a valid number for your credit card expiration year.');
			document.forms[0].exp2.select();
			return false;
		}
	}

	if (document.forms[0].cvv2.value == '')
	{
		alert('You must enter a valid CVV2 number.');
		document.forms[0].cvv2.select();
		return false;
	}
	else
	{
		if (isNaN(document.forms[0].cvv2.value))
		{
			alert('You must enter a valid CVV2 number.');
			document.forms[0].cvv2.select();
			return false;
		}
	}

	if (document.forms[0].cardname.value == '')
	{
		alert('You must provide your name.');
		document.forms[0].cardname.focus();
		return false;
	}

	if (document.forms[0].cardaddress.value == '')
	{
		alert('You must enter your present street address.');
		document.forms[0].cardaddress.focus();
		return false;
	}

	if (document.forms[0].cardcity.value == '')
	{
		alert('You must enter your present city.');
		document.forms[0].cardcity.focus();
		return false;
	}

	if (document.forms[0].cardstate.value == '')
	{
		alert('You must select your present state/province.');
		document.forms[0].cardstate.focus();
		return false;
	}
		
	if ((document.forms[0].cardzip.value == '') || (document.forms[0].cardzip.value.length < 5))
	{
		alert('You must enter a valid zip code.');
		document.forms[0].cardzip.select();
		return false;
	}
	/*
	else
	{
		if (isNaN(document.forms[0].cardzip.value))
		{
			alert('You must enter a valid zip code.');
			document.forms[0].cardzip.select();
			return false;
		}
	}
	*/
	if (document.forms[0].amt.value == '')
	{
		alert('You must enter an amount.');
		document.forms[0].amt.select();
		return false;
	}
	else
	{
		if (isNaN(document.forms[0].amt.value))
		{
			alert('You must enter an amount (do NOT include a dollar sign ($) or any commas).');
			document.forms[0].amt.select();
			return false;
		}
	}

  return true;
}

function submitForm()
{
	if (validate1())
	{
		document.frmRentPayment.btnSubmit.value = "Confirming payment...";
		document.frmRentPayment.btnSubmit.disabled = true;
		document.frmRentPayment.btnReset.disabled = true;
			
		return true;
	}
	else
		return false;
}
