// Checks each friend email with emailQuickCheck
// returns 1: if everything is o.k
//		   0: wrong email addresses
//        -1: if no emails specified
//         2: name wasn't entered 
function CheckRecipients(rec1,rec2,rec3,rec4)
{
	rec4 = TrimSpaces(rec4);
	if (rec4 == '')
		return 2;
    if  (rec1 == '' && rec2 == '' && rec3 == '')
   		return -1;
  	if (emailQuickCheck(rec1) || rec1 == '')
		if (emailQuickCheck(rec2) || rec2 == '')
			if (emailQuickCheck(rec3) || rec3 == '')
				return 1;
	return 0;
}

function emailQuickCheck (emailStr) 
{
	if(emailStr.toUpperCase().indexOf("KIDDONET.COM") != -1)
	{
		alert("The correct email of KiddoNet users is kiddomail.com");
		return false;		
	}
    var emailPat=/^[\w-_\&.]+\@[\w-_]+\.+[\w-_.]+$/
	var matchArray=emailStr.match(emailPat)
	if ( (matchArray==null) || (emailStr.indexOf('..') != -1) )
	{
		//alert("Email address seems incorrect ( should be a@b.c )")
		return false;
	}
	else
	{
		return true;
	}
}

function emailCheck (emailStr) {
var emailPat=/^(.+)@(.+)$/

var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
var validChars="\[^\\s" + specialChars + "\]"
var quotedUser="(\"[^\"]*\")"
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
var atom=validChars + '+'
var word="(" + atom + "|" + quotedUser + ")"
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
var matchArray=emailStr.match(emailPat)
if (matchArray==null)
{
	//alert("Email address seems incorrect (check @ and .'s)")
	return false
}
var user=matchArray[1]
var domain=matchArray[2]

if (user.match(userPat)==null)
{
    //alert("The username doesn't seem to be valid.")
    return false
}

var IPArray=domain.match(ipDomainPat)
if (IPArray!=null)
{
    // this is an IP address
	  for (var i=1;i<=4;i++)
	  {
	    if (IPArray[i]>255)
		{
	    	//alert("Destination IP address is invalid!")
			return false
	    }
      }
      return true
}

var domainArray=domain.match(domainPat)
if (domainArray==null)
{
	//alert("The domain name doesn't seem to be valid.")
    return false
}

var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3)
{
   //alert("The address must end in a three-letter domain, or two letter country.")
   return false
}

if (len<2)
{
   var errStr="This address is missing a hostname!"
   //alert(errStr)
   return false
}

// If we've gotten this far, everything's valid!
return true;
}



function TrimSpaces(origStr)
{
	cleanStr = origStr;
	cleanStr = cleanStr.replace(/^\s+/g, '').replace(/\s+$/g, '');

	return cleanStr;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function PopulateImportedRecipients(recipientsStr, emailsObj, namesObj, flashObjName )
{
	if(recipientsStr == null || recipientsStr == '' || emailsObj == null || emailsObj == '')
	{
		return -1;
	}
	if(namesObj == null)
	{
		namesObj = '';
	}
	
	
	if(recipientsStr.indexOf('@')==-1)
	{
		recipientsStr = document.getElementById(recipientsStr).value
	}
	var recipients_array=recipientsStr.split(",");
	var emailsObj_array=emailsObj.split(",");
	var namesObj_array=namesObj.split(",");

	var recipients_emails_array = new Array();
	var recipients_names_array = new Array();
	var recipients_emails='';
	var recipients_names='';

	for(i=0; i<recipients_array.length; i++)
	{	
		recipient = recipients_array[i];
		spacer = (recipients_emails == '' ? '' : ', ');

		if(recipient != '')
		{
			//alert(recipient);
			if(recipient.indexOf(' <') != -1)
			{
				var details_array=recipient.split(" <");
				recipient_email = details_array[1];				 
				recipient_email = recipient_email.replace(/>/gi, "");
				recipient_name = details_array[0];
				recipient_name = recipient_name.replace(/"/gi, "");
				//alert(recipient_name + "=" + recipient_email);
				
				recipients_emails_array[i] = recipient_email;
				recipients_emails += (spacer + recipient_email);
				recipients_names_array[i] = recipient_name;
				recipients_names += (spacer + recipient_name);
			}
			else
			{
				recipients_emails_array[i] = recipients_emails;	
				recipients_emails += (recipient  + spacer);
				recipients_names_array[i] = '';
				recipients_names += '';				
			}
		}
	}	
	//alert('Importing ' +  recipients_emails + ' ' + flashObjName);

	if(flashObjName!=null && flashObjName!='')
	{
		PopulateImportedRecipientsInSWF(flashObjName, recipients_emails);
	}	

	if(emailsObj_array.length==1)
	{
		try
		{
			document.getElementById(emailsObj).value = recipients_emails;
			if(namesObj != '')
			{
				if(recipients_names.indexOf(',') != -1 )
					document.getElementById(namesObj).value = 'friends';
				else
					document.getElementById(namesObj).value = recipients_names;
			}
		}
		catch(e){
			//alert('Failed to PopulateImportedRecipientsInForm !');
		};		
	}
	else
	{
		for(i=0; i<recipients_emails_array.length; i++)
		{
			try{
				document.getElementById(emailsObj_array[i]).value = recipients_emails_array[i];
				
				if(namesObj_array.length==1)
				{
					if(recipients_names.indexOf(',') != -1 )
						document.getElementById(namesObj).value = 'friends';
					else
						document.getElementById(namesObj).value = recipients_names;
				}	
				else
				{
					document.getElementById(namesObj_array[i]).value = recipients_names_array[i]
				}	
			}
			catch(e){
				//alert('Failed to PopulateImportedRecipientsInForm !! ');
			};
		}
  	}
	return recipients_array.length;
}

function PopulateImportedRecipientsInSWF(flashObjName, recipients_emails)
{
	//alert('Importing ' +  recipients_emails +  ' into ' + flashObjName);
	if(flashObjName == null || flashObjName == '')
		return;
	if(recipients_emails == null || recipients_emails == '')
		return;

	try
	{
		var flashObj = getFlashMovieObjectByName(flashObjName);	
		if(flashObj == null)
		{
			alert(flashObjName + ' was not found!')
			return;
		}
		//flashObj.width = 400;
		//flashObj.height = 400;		
		flashObj.PopulateImportedRecipientsInSWF(recipients_emails);	
	}
	catch(e)
	{
		alert('Failed to populate ' + recipients_emails + ' in ' + flashObjName);
		alert(e.name + ": " + e.message);
		//alert(e.description);
		//alert(e)
	}
}

function getFlashMovieObjectByName(movieName)
{
	if (navigator.appName.indexOf('Microsoft') != -1) {
		//alert('IE');
		return window.document[movieName];
	}
        else
        {
		if(document[movieName].length != undefined)
                {
			//alert('FF');
			return document[movieName][1];
		}
                else{
                        //alert('dun know');
                        return document[movieName];
                }
        }
	return null;
}

