var count = 0;

function popUp(URL, singleton, width, height)

{

	var winl = (screen.width - width) / 2;

	var wint = (screen.height - height) / 2;

	var ttl = "win";

		

	if(singleton==false)

	{

		ttl = new String(ttl + "" + count);

		count++;

	}

	

	window.open(URL, ttl,'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width='+width+',height='+height+',top='+wint+',left='+winl);

	return;

}



var win_count = 0;

function popImage(name, width, height)
{
	var imgWin=window.open('','image_window_'+win_count,'resizable=yes,scrollbars=no,width='+(width+10)+',height='+(height+10)+',left=50,top=50');
	win_count++;
	with(imgWin.document)
	{
		writeln('<html><head><title>AnaLarry.com</title><style>body{margin:0px;}</style></head>');
		writeln('<body bgcolor="#F5F5F5"leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">');
		writeln('<table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%" align="center" valign="center">');
		writeln('<tr><td width="100%" height="100%" align="center" valign="center">');
		writeln('<img src="'+name+'" width=\"'+width+'\" height=\"'+height+'\" border=\"0\">');
		writeln('</tr></td>');
		writeln('</body></html>');
		close();
	}
	return false;
}



function hideShowPageSection(who, image_base)
{
	var s = document.getElementById(who);
	var i = eval("document.getElementById('img_"+who+"');");

	if(s.style.display=='' || s.style.display=='inline')
	{
		s.style.display='none';
		i.src = image_base + "/plus_section.gif";
	}
	else
	{
		s.style.display='inline';
		i.src = image_base + "/minus_section.gif";
	}
	return false;
}



function MM_swapImgRestore()
{
 	var i,x,a=document.MM_sr;
	for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++)
		x.src=x.oSrc;
	return;
}



function MM_preloadImages()
{
	 var d=document;


	if(d.images)
	{

		if(!d.MM_p)

			d.MM_p=new Array();

   	var i,

	    	j=d.MM_p.length,

				a=MM_preloadImages.arguments;

		

		for(i=0;i<a.length; i++)

		{

   		if(a[i].indexOf("#")!=0)

			{

				d.MM_p[j]=new Image;

				d.MM_p[j++].src=a[i];

			}

		}

	}

	

	return;

}



function MM_findObj(n, d)

{

 	var p,i,x;



	if(!d)

		d=document;

		

	if((p=n.indexOf("?"))>0&&parent.frames.length)

	{

   	d=parent.frames[n.substring(p+1)].document;

		n=n.substring(0,p);

	}

  

	if(!(x=d[n])&&d.all)

		x=d.all[n];

	

	for(i=0;!x&&i<d.forms.length;i++)

		x=d.forms[i][n];

  

	for(i=0;!x&&d.layers&&i<d.layers.length;i++)

		x=MM_findObj(n,d.layers[i].document);

  

	if(!x && d.getElementById)

		x=d.getElementById(n);

	

	return x;

}



function MM_swapImage()

{

	var i,j=0,x,a=MM_swapImage.arguments;

	

	document.MM_sr=new Array;

	for(i=0;i<(a.length-2);i+=3)

	{

		if((x=MM_findObj(a[i]))!=null)

		{

			document.MM_sr[j++]=x;

			if(!x.oSrc)

				x.oSrc=x.src;

			x.src=a[i+2];

		}

	}



	return;

}



function hideShowPageSection(who, image_base)

{

	var s = document.getElementById(who);

	var i = eval("document.getElementById('img_"+who+"');");

		

	if(s.style.display=='' || s.style.display=='inline')

	{

		s.style.display='none';

		i.src = image_base + "/plus_section.gif"; 

	}	

	else

	{

		s.style.display='inline';

		i.src = image_base + "/minus_section.gif"; 

	}	

	return false;

}



function placeFocus()

{

	for(o=0;o<document.forms.length;o++)

	{

		var field = document.forms[o];

		for(i=0;i<field.length;i++)

		{

			if(field.elements[i].type=="text" || field.elements[i].type=="textarea")

			{

				document.forms[o].elements[i].focus();

				return;

			}

		}

	}

}



function validateEmail(emailStr)

{

	/* The following variable tells the rest of the function whether or not

	 * to verify that the address ends in a two-letter country or well-known

	 * TLD.  1 means check it, 0 means don't.

	 */

	var checkTLD=1;



	/* The following is the list of known TLDs that an e-mail address must end with. */

	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;



	/* The following pattern is used to check if the entered e-mail address

	 * fits the user@domain format.  It also is used to separate the username

	 * from the domain.

	 */

	var emailPat=/^(.+)@(.+)$/;



	/* The following string represents the pattern for matching all special

	 * characters.  We don't want to allow special characters in the address. 

	 * These characters include ( ) < > @ , ; : \ " . [ ]

	 */

	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";



	/* The following string represents the range of characters allowed in a 

	 * username or domainname.  It really states which chars aren't allowed.

	 */

	var validChars="\[^\\s" + specialChars + "\]";



	/* The following pattern applies if the "user" is a quoted string (in

	 * which case, there are no rules about which characters are allowed

	 * and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com

	 * is a legal e-mail address.

	 */

	var quotedUser="(\"[^\"]*\")";



	/* The following pattern applies for domains that are IP addresses,

	 * rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal

	 * e-mail address. NOTE: The square brackets are required.

	 */

	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;



	/* The following string represents an atom (basically a series of non-special characters.) */

	var atom=validChars + '+';



	/* The following string represents one word in the typical username.

	 * For example, in john.doe@somewhere.com, john and doe are words.

	 * Basically, a word is either an atom or quoted string.

	 */

	var word="(" + atom + "|" + quotedUser + ")";



	/* The following pattern describes the structure of the user */

	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");



	/* The following pattern describes the structure of a normal symbolic

	 * domain, as opposed to ipDomainPat, shown above.

	 */

	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");



	/* Finally, let's start trying to figure out if the supplied address is valid. */



	/* Begin with the coarse pattern to simply break up user@domain into

	 * different pieces that are easy to analyze.

	 */

	var matchArray=emailStr.match(emailPat);

	if (matchArray==null)

		return false;

	var user=matchArray[1];

	var domain=matchArray[2];



	// Start by checking that only basic ASCII characters are in the strings (0-127).

	for(i=0; i<user.length; i++)

	{

		if(user.charCodeAt(i)>127)

			return false;

	}

	for(i=0; i<domain.length; i++)

	{

		if (domain.charCodeAt(i)>127)

			return false;

	}



	// See if "user" is valid 

	if(user.match(userPat)==null)

		return false;



	/* if the e-mail address is at an IP address (as opposed to a symbolic

	 * host name) make sure the IP address is valid.

	 */

	var IPArray=domain.match(ipDomainPat);

	if(IPArray!=null)

	{

		for (var i=1;i<=4;i++)

		{

			if (IPArray[i]>255)

				return false;

		}

		return true;

	}



	// Domain is symbolic name.  Check if it's valid.

	var atomPat=new RegExp("^" + atom + "$");

	var domArr=domain.split(".");

	var len=domArr.length;

	for(i=0;i<len;i++)

	{

		if(domArr[i].search(atomPat)==-1)

			return false;

	}



	/* domain name seems valid, but now make sure that it ends in a

	known top-level domain (like com, edu, gov) or a two-letter word,

	representing country (uk, nl), and that there's a hostname preceding 

	the domain or country. */

	if(checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1)

		return false;

	

	// Make sure there's a host name preceding the domain.

	if(len<2)

		return false;

	

	// If we've gotten this far, everything's valid!

	return true;

}



function setMessage(newMessage)

{

	m = document.getElementById('message');

	if(m!=null)

		m.innerHTML = newMessage;

}



function clearMessage()

{

	m = document.getElementById('message');

	if(m!=null)

		m.innerHTML = '<span class="ok">&nbsp;</span>';

}




