//    Filename:	data_validation.js
//      Module:	n/a
//  Created on:	07/26/99
//  Created by:	bdk
// Description:	data validation functions
//
//
//Revision History:
//Date		Name		Description
//



// Show error message
function showError(messageStr) {
	alert(messageStr);
}
// Confirm form submission cancellation
function cancelSubmission(relativeURL_str)	{
	if (confirm('Are you sure you want to cancel?'))	{
		HasBeenSubmit = 1;
		window.location.href = relativeURL_str;
	}
}

// Function to validate urls
function validateurl(formObject) {
	var passfail = false;
	var tempvalue = formObject.value;
	if(tempvalue.length != 0) {
	
		// Check for 'http://' 
		var prefixcheck = tempvalue.substring(0,7);
		if (prefixcheck == 'http://')	{
			var passfail = true;}
	
		// Check for 'nntp://' 
		if (prefixcheck == 'nntp://')	{
			var passfail = true;}	
		
		// Check for 'https://'	
		var prefixcheck = tempvalue.substring(0,8);
		if (prefixcheck == 'https://')	{
			var passfail = true;}
			
		// Check for 'ftp://'
		var prefixcheck = tempvalue.substring(0,6);
		if (prefixcheck == 'ftp://')	{
			var passfail = true;}
			
	} else {passfail = true;}
		
	return(passfail);
	
}

// Function to require fields
function isRequired(formObject, fieldDescription) {
	var tempFormValue = formObject.value;
	deleteLoop = tempFormValue.length;
	
	for (var i = 0; i < deleteLoop; i++) 
 		{tempFormValue = tempFormValue.replace(/ / , "");}	
	
	if (tempFormValue.length == 0)
		{	
			showError(fieldDescription + ' is required');
			formObject.focus();
			return(false);
		}
	else
		return(true);
}

// Function to determine if select list is selected
function isSelected(selectObject, fieldDescription) {
	if (selectObject.selectedIndex == 0) {
		showError(fieldDescription + ' is required');
		selectObject.focus();
		return(false);
	} else
		return(true);
}


// Function to validate HexColor Codes
function isHexCode(fieldname) {

// Define numeric RBG Values
var red=0;
var green=0;
var blue=0;

// Check the Length of the ColorCode
if (fieldname.value.length != 6)
	return (false);
else {

		// Convert HEX Pairs to Numeric Values
		fieldname.value=fieldname.value.toUpperCase();
		redx=fieldname.value.substring(1,3);
		greenx=fieldname.value.substring(3,5);
		bluex=fieldname.value.substring(5,7);
	
		hred=eval(parseInt(redx,16));
		hgreen=eval(parseInt(greenx,16));
		hblue=eval(parseInt(bluex,16));
	
		// Check to see that Numeric Values are Between 0-256	
		if (hred>=0 && hred<256 && hgreen>=0 && hgreen<256 && hblue>=0 && hblue<256)
			return (true);
	   else
	   		return (false);
	}
}

// Credit Card Length Validation based on credit card type
function verifyCC(ccSelectObject, ccNumberObject)
{
  // Get Card Number (with no spaces)
  var ccNumber = ccNumberObject.value.replace(/ /g, '');

  // Get Card Type
  var ccType   = ccSelectObject.options[ccSelectObject.selectedIndex].value;
  // Determine if cardnumber length for Mastercard is valid  
  if (ccType == "MCRD")
  {
    if (ccNumber.length!=16)
    {
      showError('Your Mastercard must have 16 digits');
	  ccNumberObject.focus();
      return(false);
    }
  }

  // Determine if cardnumber for Visa is valid  
  if (ccType == "VISA")
  {
    if ((ccNumber.length!=16) && (ccNumber.length!=13))
    {
      showError('Your Visa card number must have either 13 or 16 digits');
  	  ccNumberObject.focus();
      return(false);
    }
  }
  
  // Determine if cardnumber for Amex is valid  
  if (ccType == "AMEX")
  {
    if (ccNumber.length!=15)
    {
      showError('Your American Express card number must have 15 digits');
	  ccNumberObject.focus();
      return(false);
    }
  }
  return(true);
}

// This function verifies a web-friendly image extension
//  Returns TRUE if
//  1. File extension is [gif | jpg | jpeg]
//  2. Nothing has been selected in File Object
//  Returns FALSE if
//  1. Invalid Extension
//  2. No Extension
function checkFileExt(fileUploadObject)	{
	// Extract Extension by looking at everything
	// to the right of the last period in the filename
	var strValue = fileUploadObject.value;
	var strLength = fileUploadObject.value.length;
	var strLastPeriod = strValue.lastIndexOf('.');
	var strExtension = strValue.substring(strLastPeriod + 1, strLength);

	// If nothing is selected
	if (strLength == 0)	
		return(true);
	else if (strExtension == 'gif' || strExtension == 'jpg' || strExtension == 'jpeg')
		return(true);
	else {
		fileUploadObject.focus();
		fileUploadObject.select();
		return(false);
	}

}





