//Higher Level For Tell-a-Friend
function valid_TellFriends(aForm) {

	if (isEmpty(aForm.SenderName.value)) {
		alert ("Please insert your Name.");
		aForm.SenderName.focus();
		return (false);
	}
	
	if (isEmpty(aForm.SenderEmail.value)) {
		alert ("Please insert your Email.");
		aForm.SenderEmail.focus();
		return (false);
		}		
	else if (! IsEmailValid(aForm.SenderEmail)) {
		return (false);
 	} 		


	var atLeastOnFriend;
	atLeastOnFriend = false;

 	for (i=0; i<aForm.addressto.length; i+=1) {
 		if (! isEmpty(aForm.addressto[i].value))
			atLeastOnFriend = true;				
 	}	
	if (! atLeastOnFriend) {
		alert ("Please insert at least one of your friend's Email.");		
		aForm.addressto[0].focus();
		return (false);
	}  	 	

 	for (i=0; i<aForm.addressto.length; i+=1) {
 		if (! isEmpty(aForm.addressto[i].value) && ! IsEmailValid(aForm.addressto[i])) 
 			return (false);
		
 	}

 	return (true); 	
 	//return (false); 	
}


//Higher Level For Subscription Form
function Valid_Form_Email(aForm) {
	if (isEmpty(aForm.SubscriberEMail.value)) {
		alert ("Please insert your E-mail address!");
		aForm.SubscriberEMail.focus();
		return (false);
	}
	else if (! IsEmailValid(aForm.SubscriberEMail)) {
		aForm.SubscriberEMail.focus();		
		return (false);
	}
	else {		
		return (true);
		}		
	}


//------------Primitive Function-----------------------------------------
function IsEmailValid(objMail)
{
var EmailOk  = true;
var Temp     = objMail;
var AtSym    = Temp.value.indexOf('@');
var Period   = Temp.value.lastIndexOf('.');
var Space    = Temp.value.indexOf(' ');
var Length   = Temp.value.length - 1;   // Array is from 0 to length-1

if (!isEmail(Temp.value)) {
      EmailOk = false;
      alert('Please input a valid e-mail address!');
      Temp.focus();
	  return EmailOk; 
}

if ((AtSym < 1) ||                     // '@' cannot be in first position
    (Period <= AtSym+1) ||             // Must be atleast one valid char btwn '@' and '.'
    (Period == Length ) ||             // Must be atleast one valid char after '.'
    (Space  != -1))                    // No empty spaces permitted
   {  
      EmailOk = false;
      alert('Please enter a valid e-mail address!');
      Temp.focus();
   }
   
return EmailOk;
}

// ---------------------------------------------------------------------

function isHttpUrl (urltext) {
	if ((urltext == "") || (urltext.indexOf ('http://', 0) == -1)) {
	  return (true);
	} else {
		return (false);
	}
}

// ---------------------------------------------------------------------

function isEmpty (myText) {
  if (myText == "" ) {
    return (true);
  } else {
			return (false);
  }
}


// ---------------------------------------------------------------------

function isEmail(str) {
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}

