function emailCheck (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) 
	{	
		/* Too many/few @'s or something; basically, this address doesn't
		even fit the general mould of a valid e-mail address. */		
		alert("Email address seems incorrect (check @ and .'s)");
		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) 
		{
			alert("Ths username contains invalid characters.");
			return false;
		}
	}
	for (i=0; i<domain.length; i++) 
	{
		if (domain.charCodeAt(i)>127) 
		{
			alert("Ths domain name contains invalid characters.");
			return false;
	   }
	}

	// See if "user" is valid
	if (user.match(userPat)==null) 
	{	
		// user is not valid	
		alert("The username doesn't seem to be valid.");
		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) 
	{	
		// 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;
	}

	// 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) 
		{
			alert("The domain name does not seem to be valid.");
			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) 
	{
		alert("The address must end in a well-known domain or two letter " + "country.");
		return false;
	}

	// Make sure there's a host name preceding the domain.
	if (len<2) 
	{
		alert("This address is missing a hostname!");
		return false;
	}

	// If we've gotten this far, everything's valid!
	return true;
}

function alert_error(error)
{
	if(error != '')
	{
		alert(error);
	}
}

function ValidateForm() // jquery library needed
{
	var form1 = $('#aweber_form1');
	if ($('#fields_fname').val() == "")
  	{
    	alert("Please enter your name");
    	$('#fields_fname').focus();
    	return (false);
  	}

	if ($('#fields_email').val() == "")
  	{
    	alert("Please enter your email address");
    	$('#fields_email').focus();
    	return (false);
  	}
  
   	if (!emailCheck($('#fields_email').val()))
  	{
    	alert("Please enter a complete email address in the form: yourname@yourdomain.com");
    	$('#fields_email').focus();
    	return (false);
  	}
   
  	if ($('#fields_email').val().length < 3)
  	{
    	alert("Please enter at least 3 characters in the Email field.");
    	$('#fields_email').focus();
    	return (false);
  	}
	
	return true;
}

/***** Exit Pop ******/
var PreventExitPop 	= false;
var exPop 			= false;
function ExitPop() 
{
	if(PreventExitPop == false)	
	{
		PreventExitPop=true;				 
		document.getElementById("exitDiv1").style.display="block";
		document.getElementById("mainBody").style.display='none';
		scroll(0, 0);		
		return '\n\n************************************\n\nWARNING!\n\nClick the "STAY ON THIS PAGE" button below now...\n\n...and you\'ll be given a FREE video that reveals how REAL MONEY is made online.\n\n************************************\n\n'
	} 
	else
	{
		if(exPop == false)
		{
			exPop = true;
			document.getElementById("exitDiv2").style.display="block";
			document.getElementById("mainBody").style.display='none'; 
			document.getElementById("ex1").style.display='none'; 
			document.getElementById("exitDiv1").style.display='none';			
			scroll(0, 0);		
			return '\n\n************************************\n\nSTOP!\n\nClick the "STAY ON THIS PAGE" button below now...\n\n...and you\'ll be given a $180.00 DISCOUNT!\n\nThat\'s 92% OFF the original price!\n\n************************************\n\n'
		}
	}
}

function enter_page_1()
{
	document.getElementById('exitDiv1').style.display='none'; 
	document.getElementById('ex1').style.display='block';
}

function enter_page_2()
{
	document.getElementById('exitDiv2').style.display='none'; 
	document.getElementById('ex2').style.display='block';
}
window.onbeforeunload = ExitPop;
/***** Exit Pop ******/

/***** current date ******/
today	= new Date(); // Initialize Date in raw form
date	= today.getDate(); // Get the numerical date
year	= today.getYear(); // Get the year
day 	= today.getDay(); // Get the day in number form (0,1,2,3,etc.)
month	= today.getMonth()+1; // Get the month
// Make day number value correspond to actual day name
var dayName=new Array(7)
dayName[0]="Sunday";
dayName[1]="Monday";
dayName[2]="Tuesday";
dayName[3]="Wednesday";
dayName[4]="Thursday";
dayName[5]="Friday";
dayName[6]="Saturday";
// Add suffix to date (1st, 2nd, 4th, etc.)
if (date==1) suffix=("st");
else if (date==2) suffix=("nd");
else if (date==3) suffix=("rd");
else if (date==21) suffix=("st");
else if (date==22) suffix=("nd");
else if (date==23) suffix=("rd");
else if (date==31) suffix=("st");
else suffix=("th");
// Make month number correspond to month name
if (month==1) monthName=("January");
else if (month==2) monthName=("February");
else if (month==3) monthName=("March");
else if (month==4) monthName=("April");
else if (month==5) monthName=("May");
else if (month==6) monthName=("June");
else if (month==7) monthName=("July");
else if (month==8) monthName=("August");
else if (month==9) monthName=("September");
else if (month==10) monthName=("October");
else if (month==11) monthName=("November");
else monthName=("December");
var dteNow = new Date();
var intYear = dteNow.getFullYear();
/***** current date ******/

/***** player ******/
var currentPosition = 0;
var currentVolume = 60;
var player = null;
	
function playerReady(player1) {
	player = window.document[player1.id];
	addListeners();
}

function addListeners() {
	if (player) {
		player.addModelListener("TIME", "positionListener");
	} else {
		setTimeout("addListeners()",100);
		var tmp = document.getElementById("possit");
		//if (tmp) { tmp.innerHTML = " NO PLAYER "}
	}
}

function positionListener(obj) {
	currentPosition = obj.position;
	tempo = obj.duration;
	var tmp = document.getElementById("possit");
	if (tmp) { tmp.innerHTML = "position: " + currentPosition + " tempo: " + tempo; }
	if(currentPosition >= 543)
		$('#divtoshow').fadeIn(2000);

}

(function($) {
    $.fn.extend({
        smartpreload: function(options) {
            var settings = $.extend({
                images: null,
                oneachimageload: null,
                onloadall: null
            }, options);
            return this.each(function() {
                var loadcounter = 0;
                for (var i = 0; i < settings.images.length; i++) {
                    var img = $('<img/>').addClass('preloading').css('display', 'none').attr('src', settings.images[i]).load(function() {
                        loadcounter++;
                        if (settings.oneachimageload != null) settings.oneachimageload($(this).attr('src'));
                        if (loadcounter == settings.images.length) {
                            if (settings.onloadall != null) settings.onloadall();
                        }
                    });
                }              
            });
        }
    });
})(jQuery);
/***** player ******/
