﻿Event.observe(window, 'load', function(){   

    ionMxCustom = {};
    ionMxCustom.USGA = {};
    /**REMOVE AFTER TESTING**/
    /*
    $('TextBoxFirstName').value = 'ainsworth';
    $('TextBoxLastName').value = 'grant';
    $('TextBoxEmailAddress').value = 'algrant2@otolabs.com';
    */
    
    ionMxCustom.USGA.Signup = function() {
	    return {
		    wireUpEventHandlers:function(){
		        Event.observe('ButtonSubmit', 'click',  function(){ionMxCustom.USGA.Signup.tryToSubmit(ionMxCustom.USGA.Signup.signupCallBack);});
	        },
	        tryToSubmit:function(callback) {
	               if (ionMxCustom.USGA.Signup.ValidateForm())
	               {
	                    var form = $('form1').serialize(true);
                        form.request = 'signup';
    	        
	                    new Ajax.Request('ajax/signup.ashx', {
                            method:'get',
                            parameters:form,
                            onSuccess:function(r){
                                if(r.responseText.startsWith('error'))
                                {
                                    alert(r.responseText);
                                }
                                else if (r.responseText.startsWith('success'))
                                {
                                    //ids:Object.toJSON(networkPlacement)
                                   window.location.href='signupty.htm';
                                   /*
                                   if (callback)
                                   {
                                      callback(r.responseText);
                                   }
                                   */
                                }
                            },
                            onFailure:function(r){
                                alert(r.responseText);
                            },
                            onComplete:function(r){                                                        
                            }
                        });
                  }
            },
            signupCallBack:function(text) {alert(text); },
            IsFilled:function(str)
            { 
              return str.replace(/^\s*|\s*$/g, '').length != 0; 
            },
            IsEmailAddress:function(obj)
            {
                var regex = /\w+@[a-zA-Z0-9_-]+\.([a-zA-Z0-9_-]{2,3})|\w+@[a-zA-Z0-9_-]+\.([a-zA-Z0-9_-]{2,3}\.[a-zA-Z0-9_-]{2,3})/;
                return (obj.value.search(regex) != -1);
            },
            ValidateForm:function()
            {
                var Invalid = false;
                var error = '';
                var field;
                
                
                if(!ionMxCustom.USGA.Signup.IsFilled($F('TextBoxFirstName')))
                {
                    error = 'First Name is required.\n' ;
                    field = ! field ? 'TextBoxFirstName': field;
                    Invalid = true;
                }
                if(!ionMxCustom.USGA.Signup.IsFilled($F('TextBoxLastName')))
                {
                    error += 'Last Name is required.\n' ;
                    field = ! field ? 'TextBoxLastName': field;
                    Invalid = true;
                }
                
                if(!ionMxCustom.USGA.Signup.IsFilled($F('TextBoxEmailAddress')))
                {
                    error += 'Email address is required.\n' ;
                    field = ! field ? 'TextBoxEmailAddress': field;
                    Invalid = true;
                }
                else if(!ionMxCustom.USGA.Signup.IsEmailAddress($('TextBoxEmailAddress')))
                {
                    error += 'Enter valid email address.\n' ;
                    field = ! field ? 'TextBoxEmailAddress': field;
                    Invalid = true;
                }
                
                if(!ionMxCustom.USGA.Signup.IsFilled($F('TextBoxZipCode')))
                {
                    error += 'Zip code is required.\n' ;
                    field = ! field ? 'TextBoxZipCode': field;
                    Invalid = true;
                }
                /*
                else
                {
                    var re = new RegExp(/^\d{5}([\-]\d{4})?$/); 
                    if (! re.match($F('TextBoxZipCode').strip()) )
                    {
                        Invalid = true;
                        field = ! field ? 'TextBoxZipCode': field;
                        error += 'Enter zip code in 5 digit or ZIP + 4 format.';
                    }
                }
                */
                
                
                if(Invalid)
                {
                    alert(error);
                    $(field).focus();
                    return false;
                }
                return true;
           }
         }	    
	}();       
    ionMxCustom.USGA.Signup.wireUpEventHandlers();
});



