var button = 0;

function setBut(val) {
	button = val;
}

function isValidChar(formField) {
	var result = true;
  var space = formField.value.search(" ");

  if (space != -1) {
		formField.style.backgroundColor = "#ffffc0";
		formField.focus();
		return false;
  }

	var validChars = "abcdefghijklmnopqrstuvwxyz0123456789_.";
	
 	for (var i=0; i < formField.value.length; i++) {
		var letter = formField.value.charAt(i).toLowerCase();
		if (validChars.indexOf(letter) != -1)
			continue; 
		result = false; 
		formField.style.backgroundColor = "#ffffc0";
		formField.focus();
		break;
	}

  // var alpha = formField.value.search(/[a-z]|[A-Z]/);
  // var numer = formField.value.search(/\d/);

  // if (alpha == -1) {
	//	formField.style.backgroundColor = "#ffffc0";
	//	formField.focus();
	//	return false;
  // }

  // if (numer == -1) {
	//	formField.style.backgroundColor = "#ffffc0";
	//	formField.focus();
	//	return false;
  // }
  return result;
}			
			
function validRequired(formField) {
	var result = true;

	if (formField.value == "") {
		formField.style.backgroundColor = "#ffffc0";
		formField.focus();
		result = false;
	}
	return result;
}

function inValidCharSet(formField, charset) {
	var result = true;

	for (var i = 0; i < formField.value.length; i++)
		if (charset.indexOf(formField.value.substr(i,1)) < 0) {
			formField.style.backgroundColor = "#ffffc0";
			formField.focus();
			result = false;
			break;
		}
	return result;
}

function allDigits(str) {
	var result = true;

	for (var i = 0; i < str.length; i++) {
		if ("0123456789".indexOf(str.substr(i,1)) < 0) {
			result = false;
			break;
		}
	}
	return result;
}

function LuhnCheck(str) {
	var result = true;
  var sum = 0;
  var mul = 1;
  var strLen = str.length;
  
	for (i = 0; i < strLen; i++) {
		var digit = str.substring(strLen-i-1, strLen-i);
    var tproduct = parseInt(digit ,10)*mul;

		if (tproduct >= 10)
      sum += (tproduct % 10) + 1
  	else
      sum += tproduct

    if (mul == 1)
      mul++
    else
      mul--
	}

  if ((sum % 10) != 0)
    result = false

  return result;
}

function validateCCNum(cardType, cardNum) {
	var result = false;
	var cardLen = cardNum.length;
	var firstdig = cardNum.substring(0,1);
	var seconddig = cardNum.substring(1,2);
	var first4digs = cardNum.substring(0,4);

	switch (cardType.toLowerCase()) {
		case "visa":
			result = ((cardLen == 16) || (cardLen == 13)) && (firstdig == "4")
			break
		case "amex":
			var validNums = "47"
			result = (cardLen == 15) && (firstdig == "3") && (validNums.indexOf(seconddig) >= 0)
			break
		case "mastercard":
			var validNums = "12345"
			result = (cardLen == 16) && (firstdig == "5") && (validNums.indexOf(seconddig) >= 0)
			break
		case "discover":
			result = (cardLen == 16) && (first4digs == "6011")
			break
		case "diners":
			var validNums = "068"
			result = (cardLen == 14) && (firstdig == "3") && (validNums.indexOf(seconddig) >= 0)
			break
	}
  return result;
}

function isValidCreditCardNumber(formField) {
	var result = true;
	var ccNum = formField.ccNumber.value;
	var ccType = formField.D4.value; 

	if (ccNum.length > 0) {
		if ((!allDigits(ccNum)) || (!LuhnCheck(ccNum)) || (!validateCCNum(ccType,ccNum))) {
			formField.ccNumber.style.backgroundColor = "#ffffc0";
			formField.ccNumber.focus();
			result = false;
		}
	}
	return result;
}

function validDate(formField, required) {
	var result = true;

	if (required && !validRequired(formField))
		result = false;

 	if (result && (formField.value.length > 0)) {
 		var elems = formField.value.split("/");
 		
 		result = (elems.length == 3); // should be three components
 		
 		if (result) {
 			var month = parseInt(elems[0],10);
  		var day = parseInt(elems[1],10);
 			var year = parseInt(elems[2],10);
			result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
					 allDigits(elems[1]) && (day > 0) && (day < 32) &&
					 allDigits(elems[2]) && ((elems[2].length == 2) || (elems[2].length == 4));
 		}

		if (!result) {
			formField.style.backgroundColor = "#ffffc0";
			formField.focus();
		}
	}
	return result;
}

function isEmailAddr(email) {
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");

  if (index > 0) {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
			result = true;
  }
  return result;
}

function validEmail(formField, required) {
	var result = true;
	
	if (required == true) {
		if (validRequired(formField) == false) {
			result = false;
		} else {
			if ((formField.value.length < 3) || !isEmailAddr(formField.value)) {
				formField.style.backgroundColor = "#ffffc0";
				formField.focus();
				result = false;
			}
		}
	} else {
		if (formField.value.length == 0) {
			result = true;
		} else {
			if ((formField.value.length < 3) || !isEmailAddr(formField.value)) {
				formField.style.backgroundColor = "#ffffc0";
				formField.focus();
				result = false;
			}
		}
	}
  return result;
}

function validNum(formField, required) {
	var result = true;

	if (required && !validRequired(formField))
		result = false;
  
 	if (result) {
 		if (!allDigits(formField.value)) {
			formField.style.backgroundColor = "#ffffc0";
			formField.focus();
			result = false;
		}
	} 
	return result;
}

function validInt(formField, required) {
	var result = true;

	if (required && !validRequired(formField))
		result = false;
  
 	if (result) {
 		var num = parseInt(formField.value, 10);
 		if (isNaN(num)) {
			formField.style.backgroundColor = "#ffffc0";
			formField.focus();
			result = false;
		}
	}
	return result;
}

function validateSearch(theForm) {
	if (button == '1') {
		if (!validRequired(theForm.blogSearch))
			return false;
	}
	return true;
}

function validatePostBlog(theForm) {
	if (button == '1') {
		if (!validRequired(theForm.blogText))
			return false;
	}
	return true;
}

function viewProfile(theForm) {
	if (button == '1') {
		if (!validRequired(theForm.firstName))
			return false;

		if (!validRequired(theForm.lastName))
			return false;

		if (!validEmail(theForm.emailAddr, true))
			return false;

		if (!validRequired(theForm.addr1))
			return false;

		if (!validRequired(theForm.city))
			return false;

		if (!validRequired(theForm.state))
			return false;

		if (!validRequired(theForm.zip))
			return false;
	}
	return true;
}

function validateMediaUpload(theForm) {
	if (button == '1') {
		if (!validRequired(theForm.title))
			return false;

		if (!validRequired(theForm.description))
			return false;
	}
	return true;
}

function validateForgot(theForm) {
	if (button == '1') {
		if (!validEmail(theForm.emailAddr, true))
			return false;
	}
	return true;
}

function validateForgot3(theForm) {
	if (!validRequired(theForm.firstName))
		return false;
			
	if (!validRequired(theForm.lastName))
		return false;

	if (!validEmail(theForm.emailAddr, true))
		return false;
			
	return true;
}

function validateForgot4(theForm) {
	if (!validRequired(theForm.password))
		return false;
			
	if (!validRequired(theForm.confirmPassword))
		return false;

	return true;
}

function validateNetwork(theForm) {
	if (button == '1') {
		if (!validRequired(theForm.groupName))
			return false;

		if (!validRequired(theForm.description))
			return false;
	}
	return true;
}

function validateSpam(theForm) {
	if (button == '1') {
		if (!validEmail(theForm.toAddr, true))
			return false;
	
		if (!validEmail(theForm.ccAddr, false))
			return false;
	
		if (!validEmail(theForm.bccAddr, false))
			return false;
	}
	return true;
}

function profileMsg(theForm) {
	if (button == '1') {
		if (!validEmail(theForm.toAddr, true))
			return false;

		if (!validRequired(theForm.subject))
			return false;

		if (!validRequired(theForm.message))
			return false;
	}
	return true;
}

function sendMsg(theForm) {
	if (button == '1') {
		if (!validRequired(theForm.subject))
			return false;

		if (!validRequired(theForm.message))
			return false;
	}
	return true;
}

function addEvent(theForm) {
	if (button == '1') {
		if (!validRequired(theForm.activityType))
			return false;

		if (!validRequired(theForm.title))
			return false;

		if (!validRequired(theForm.desc))
			return false;

		if (!validRequired(theForm.max))
			return false;

		if (!inValidCharSet(theForm.max, "0123456789"))
			return false;

		if (!validDate(theForm.startDate, true))
			return false;

		if (!validDate(theForm.endDate, true))
			return false;

		var date1 = new Date(theForm.startDate.value);
		var date2 = new Date(theForm.endDate.value);
		var date1Comp = date1.getTime();
		var date2Comp = date2.getTime();

		if (date1Comp > date2Comp) {
			theForm.endDate.style.backgroundColor = "#ffffc0";
			theForm.endDate.focus();
			return false;
		}

		if (!validRequired(theForm.place))
			return false;

		if (!validRequired(theForm.city))
			return false;

		if (!validRequired(theForm.state))
			return false;
	}
	return true;
}

function validateAlbum(theForm) {
	if (button == '1') {
		if (!validRequired(theForm.title))
			return false;
	}
	return true;
}

function validateInvtEvent(theForm) {
	if (button == '1') {
		if (!validEmail(theForm.yourEmail, true))
			return false;

		if (!validEmail(theForm.emailAddr, true))
			return false;

		if (!validRequired(theForm.invtSubject))
			return false;

		if (!validRequired(theForm.invtMsg))
			return false;
	}
	return true;
}

function privateEvent(theForm) {
	if (button == '1') {
		if (!validEmail(theForm.emailAddr, true))
			return false;

		if (!validRequired(theForm.hostedBy))
			return false;

		if (!validRequired(theForm.eventName))
			return false;

		if (!validDate(theForm.startDate, true))
			return false;

		if (!validDate(theForm.endDate, true))
			return false;

		var date3 = new Date(theForm.startDate.value);
		var date4 = new Date(theForm.endDate.value);
		var date3Comp = date3.getTime();
		var date4Comp = date4.getTime();

		if (date3Comp > date4Comp) {
			theForm.endDate.style.backgroundColor = "#ffffc0";
			theForm.endDate.focus();
			return false;
		}

		if (!validRequired(theForm.place))
			return false;

		if (!validRequired(theForm.message))
			return false;
			
		if (!validEmail(theForm.guestList, true))
			return false;
	}
	return true;
}

function validateSendMsg(theForm) {
	if (button == '1') {
		if (!validRequired(theForm.subject))
			return false;

		if (!validRequired(theForm.msg))
			return false;
	}
	return true;
}

function validateAddComment(theForm) {
	if (button == '1') {
		if (!validRequired(theForm.total))
			return false;
	
		if (!inValidCharSet(theForm.total, "0123456789"))
			return false;
	}
	return true;
}

function validateRetv(theForm) {
		if (!validEmail(theForm.emailAddr, true))
			return false;
		
		if (!validRequired(theForm.firstLastName))
			return false;
	return true;
}

function postPicComment(theForm) {
	if (button == '1') {
		if (!validRequired(theForm.comment))
			return false;
	}
	return true;
}

function validateReview(theForm) {
	if (button == '1') {
		if (!validRequired(theForm.review))
			return false;
	}
	return true;
}

function validateSecEmail(theForm) {
	if (button == '1') {
		if (!validRequired(theForm.respmsg))
			return false;
	}
	return true;
}
