
	// make signups scroll
	$(function(){
		var containerElm = $('div.signupList').get();
		var containerHeight = $('div.signupList').height();
		var contentHeight = $('div.signupList table').height();
		var scrollSpeed = (contentHeight - containerHeight) * 100;

		function up(){
			var offset = 0;
			$('div.signupList').animate({scrollTop: offset}, scrollSpeed, 'linear', function(){
				down(); // private method
			});			
		}
		function down(){
			var offset = contentHeight - containerHeight;
			$('div.signupList').animate({scrollTop: offset}, scrollSpeed, 'linear', function(){
				up(); // private method
			});			
		}

		down();
	});

function displayMsg(messageList, okay){
	if($('#systemMsg').is('div')) return false;
	if(typeof messageList == 'object'){
		var message = messageList.join('<br />\n');
	}
	else{
		var message = messageList.replace(/\n/g, '<br />');
	}
	var button = '';	
	if(typeof okay == 'undefined' || okay == true){
		var button = '<button type="button" onClick="$(\'#systemMsg\').dialog(\'close\');" style="margin-top:0.5em;">OK</button>';
	}
	
	$('body').append('<div id="systemMsg" style="display: none; text-align: center;">' + message  + '<br /> ' + button + '</div>');
	$('#systemMsg').dialog({ autoOpen: false, position: ['center',100], width: 600, height: 'auto', modal: true, resizable: false, close: function(event, ui) { $(ui).dialog('destroy'); $('#systemMsg').remove(); } } );
	$('.ui-dialog-titlebar', $('#systemMsg').parent()).remove();
	$('#systemMsg button').button();
	//document.body.scrollTop = 0;
	$('#systemMsg').dialog('open');
}

function checkSignupForm(obj){
	var isError = false;
	var errorMsg = new Array();

	try{
		// make sure the form is complete
		
		var re = new RegExp(/^[^\s]+[\s]+[^\s]+/);

		if(!re.test(trim(obj.fullName.value))){
			isError = true;
			errorMsg += "\You must include your full name. (first and last)";
		}
		
		if(obj.phone.value == ''){
			isError = true;
			errorMsg += "\nYour phone number must be included.";
		}
		else{
			obj.phone.value = cleanupPhoneNumber(obj.phone.value);
		}
		if(obj.email.value == ''){
			isError = true;
			errorMsg += "\nAn email address must be included.";
		}
		else if(isEmail(obj.email.value) == false){
			isError = true;
			errorMsg += "\nYour email address is invalid.";
		}

		if(obj.country.value == ''){
			isError = true;
			errorMsg += "\nYour country must be included.";
		}

		// display error message if needed
		if(isError == true){
			displayMsg(errorMsg);
			return false;
		}
		else{
			displayMsg(new Array('processing...'), false);
			return true;
		}
	}
	catch(e){
		if(e instanceof TypeError){
			alert("You must fill out the form completely and correctly!");
			alert("An exception occurred in the script. Error name: " + e.name + ". Error message: " + e.message);
			return false;
		}
		else if(e instanceof SyntaxError){
			alert("There is an error in the JavaScript code. Please inform the webmaster of this site.");
			return false;
		}
		else if(e instanceof RangeError){
			alert("You must fill out the form completely and correctly!");
			return false;
		}
		else if(e instanceof ReferenceError){
			alert("There is an error in the site code. Please inform the webmaster of this site.");
			return false;
		}
		else{
			alert("An exception occurred in the script. Error name: " + e.name + ". Error message: " + e.message);
			return false;
		}
		
	}
	finally{
		//alert("finally");
	}
}


function isEmail(str) {
	var re = new RegExp(/^[\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/);
	return re.test(str);
}

function isRealPhoneNumber(str){
	var prefix = str.substring(0,3);
	if(prefix!='111'&&prefix!='222'&&prefix!='333'&&prefix!='444'&&prefix!='555'&&prefix!='666'&&prefix!='777'&&prefix!='999'){
		var myRegxp = /^([2-9]{1}[0-8]{1}[0-9]{1}[-][2-9]{1}[0-9]{1}[0-9]{1}[-][0-9]{1}[0-9]{1}[0-9]{1}[0-9]{1})$/;
		return myRegxp.test(str);
	}
	else{
		return false;
	}
}

function trim(str){
   return str.replace(/^\s*|\s*$/g,"");
}


function cleanupPhoneNumber(phoneNumber){
	var reg = new RegExp("^(1[ .-]*)?[ (]*([2-9][0-9]{2})[) .-]*([0-9]{3})[ .-]*([0-9]{4})$", "i");
	var m = reg.exec(phoneNumber);
	if (m != null) {
		return m[2]+'-'+m[3]+'-'+m[4];
	}
	return phoneNumber;
}

