function MM_preloadImages()
{ //v3.0
    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];}}
}

function MM_swapImgRestore()
{ //v3.0
    var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d)
{ //v4.01
    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() 
{ //v3.0
    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];}
}

function toggleDisabled()
{
    document.getElementById("frmSubmit").disabled = !document.getElementById("chk_i_accept").checked;
}

function validateNewUserLogin()
{
    // regex for email address
//    var email_regex = /^[_A-z0-9-]+(\.[_A-z0-9-]+)*@[A-z0-9-]+(\.[A-z0-9-]+)*$/;
    var email_regex = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    var messages = "";

    if( !document.getElementById("chk_i_accept").checked )
    {
        messages += "\nYou must agree to the terms in order to proceed.";
    }

    // test for valid email address
    if( email_regex.test(document.getElementById("user_id").value) == false )
    {
        messages += "\nPlease enter a valid email address.";
    }

    if( document.getElementById("password").value == "" )
    {
        messages += "\nYour password cannot be empty.";
    }
    
    if( document.getElementById("user_id").value != document.getElementById("user_id2").value )
	{
		messages += "\nYour emails do not match.";
	}
	
	if( document.getElementById("password").value != document.getElementById("password2").value )
    {
        messages += "\nYour passwords do not match.";
    }
	
    if( messages != "" )
    {
        alert("The following errors have occured:\n" + messages);
        return false;
    }
    else
    {
        return true;
    }
}

function validateLogin()
{
    // regex for email address
//    var email_regex = /^[_A-z0-9-]+(\.[_A-z0-9-]+)*@[A-z0-9-]+(\.[A-z0-9-]+)*$/;
    var email_regex = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    var messages = "";

    if( !document.getElementById("chk_i_accept").checked )
    {
        messages += "\nYou must agree to the terms in order to proceed.";
    }

    // test for valid email address
    if( email_regex.test(document.getElementById("user_id").value) == false )
    {
        messages += "\nPlease enter a valid email address.";
    }

    if( document.getElementById("password").value == "" )
    {
        messages += "\nYour password cannot be empty.";
    }

    if( messages != "" )
    {
        alert("The following errors have occured:\n" + messages);
        return false;
    }
    else
    {
        return true;
    }
}

function goToGame()
{
    if(document.getElementById("game_list"))
    {
    	document.getElementById("game_form").action = document.getElementById("game_list").options[document.getElementById("game_list").selectedIndex].value;
	}
	else
	{
		document.getElementById("game_form").action = document.getElementById("game_text").value;
	}
}

// ------------------------
// Trims any trailing and leading whitespace
// ------------------------
String.prototype.trim = function() 
{ 
    return this.replace(/^\s+|\s+$/, ''); 
};

function validateUpdateRegistration()
{
    // regex for email address
//    var email_regex = /^[_A-z0-9-]+(\.[_A-z0-9-]+)*@[A-z0-9-]+(\.[A-z0-9-]+)*$/;
    var email_regex = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;

    // regex for phone number
    var phone_regex = /\+|(\({0,1}[0-9]{3}\){0,1}[- .]{0,1} {0,1}){0,1}[0-9]{3}[- .]{0,1}[0-9]{4}/;

    // regex for acceptable date formats
    var date_regex = /^\d{1,2}[\-\/]\d{1,2}[\-\/]\d{2,4}$/;
//    var date_regex = /^\d{1,2}[\-\/\.]\d{1,2}[\-\/\.]\d{2,4}$/;
    
    var messages = new Array();

    // test for valid email address
    if (document.getElementById("user_email") && email_regex.test(document.getElementById("user_email").value) == false)
    {
        messages[messages.length] = "Please enter a valid email address.";
    }

    // test for valid phone number 
    if (document.getElementById("user_phone") && 
        document.getElementById("user_phone").value != "" &&
        phone_regex.test(document.getElementById("user_phone").value) == false)
    {
        messages[messages.length] = "Please enter a valid phone number";
    }

    // test for valid birthday date 
    if (document.getElementById("user_birthday") && 
        document.getElementById("user_birthday").value != "" &&
        date_regex.test(document.getElementById("user_birthday").value) == false)
    {
        messages[messages.length] = "Please enter a valid date for Birthday." + document.getElementById("user_birthday").value;
    }

    // test for valid wedding anniversary date 
    if (document.getElementById("user_wedding_anniversary") && 
        document.getElementById("user_wedding_anniversary").value != "" &&
        date_regex.test(document.getElementById("user_wedding_anniversary").value) == false)
    {
        messages[messages.length] = "Please enter a valid date for Wedding Anniversary.";
    }

    // check for entry in email address
    if (document.getElementById("user_email") && document.getElementById("user_email").value == "")
    {
        messages[messages.length] = "Please enter a valid email address.";
    }

    // check if they are trying to change their password
    if (document.getElementById("user_oldpassword") &&
        (document.getElementById("user_oldpassword").value != "" || 
         document.getElementById("user_newpassword").value != "" || 
         document.getElementById("user_confirmpassword").value != ""))
    {
        if (document.getElementById("user_newpassword").value != document.getElementById("user_confirmpassword").value)
        {
            messages[messages.length] = "New Password and Confirmation of New Password do not match.";
        }
    }

    // check for required first name
    if (document.getElementById("user_firstname") && document.getElementById("user_firstname").value.trim() == "")
    {
        messages[messages.length] = "First Name is required.  Please specify a First Name.";
    }

    // check for required last name
    if (document.getElementById("user_lastname") && document.getElementById("user_lastname").value.trim() == "")
    {
        messages[messages.length] = "Last Name is required.  Please specify a Last Name.";
    }

    // check for required address name
    if (document.getElementById("user_address") && document.getElementById("user_address").value.trim() == "")
    {
        messages[messages.length] = "Address is required.  Please specify an Address.";
    }

    // check for required city
    if (document.getElementById("user_city") && document.getElementById("user_city").value.trim() == "")
    {
        messages[messages.length] = "City is required.  Please specify a City.";
    }

    // check for required State / Province
    if (document.getElementById("user_state") && document.getElementById("user_state").value.trim() == "")
    {
        messages[messages.length] = "State / Province is required.  Please specify a State / Province.";
    }

    // check for required zip
    if (document.getElementById("user_zip") && document.getElementById("user_zip").value.trim() == "")
    {
        messages[messages.length] = "Zip / Postal Code is required.  Please specify a Zip / Postal Code.";
    }

    // check for required country
    if (document.getElementById("user_country") && document.getElementById("user_country").value == "")
    {
        messages[messages.length] = "Country is required.  Please specify a Country.";
    }

    // check for required phone
//    if (document.getElementById("user_phone") && document.getElementById("user_phone").value.trim() == "")
//    {
//        messages[messages.length] = "Phone Number is required.  Please specify a Phone Number.";
//    }

    // check for required birthday
    if (document.getElementById("user_birthday") && document.getElementById("user_birthday").value.trim() == "")
    {
        messages[messages.length] = "Birthday is required.  Please specify a Birthday.";
    }

    if (messages.length > 0)
    {
        error_message = "The following errors occured when updating your registration\n";

        for(var i = 0; i < messages.length; i++)
            error_message += messages[i] + "\n";
        
        alert(error_message);
        return false;
    }
    else
        return true;
}

function saveDiv(textFieldName, html)
{  
    var textField = document.getElementById(textFieldName);
    if (textField != null) {
	textField.value = html;
    }
}