﻿	/**
	* Cavaliers Signup Page
	**/
	
function subdirChange() {
  
    var URLInput = document.getElementById('inputSubdir');
	var URLErrorMsg = document.getElementById('errorMsgURL');
  
	URLInput.value = URLInput.value.replace(/[^A-Za-z0-9-\._@]+/g, '');

	URLInput.value = URLInput.value.toLowerCase();

		if(URLInput.value.length < 4) {
			URLErrorMsg.innerHTML = 'Your URL must be at least 4 characters';
			URLErrorMsg.style.display = 'block';
		}
		else {
			URLErrorMsg.innerHTML = '';
			URLErrorMsg.style.display = 'none';
		}

}	
	
	doAwardPoints = function(userID) {
	
	var thePoints = document.getElementById('ptTotal').innerHTML;
	
	if(thePoints == '') {
	  thePoints = 0;
	}
	
	//give them 10 points for every forum post
	thePoints = thePoints * 10;
	

		var domain = "www.cavfanatic.com";
	
		var handlePointSuccess = function(o) {
			//alert(o.responseText);
			//alert('Points awarded!');
			
				document.getElementById('lun').value = document.getElementById('inputEmail').value;
				document.getElementById('lpw').value = document.getElementById('inputPassword').value;
				document.getElementById('lou').value = 'http://www.cavfanatic.com/go/welcome/done?email=' + document.getElementById('inputEmail').value;

				document.getElementById('cavSignupForm').style.display = 'none';
				document.getElementById('cavLoadscreen').style.display = 'block';
				
				document.oswLoginForm.submit();			
			

			return;

		}
		
		var handlePointFailure = function(o) {
			//alert('Whoops!');
			document.getElementById("oswAlertMessage").innerHTML = "Signup Error: An internal error occurred. Please try again later.";

			return;

		}		
	
		var callback =
		{
		  success: handlePointSuccess,
		  failure: handlePointFailure
		};

		var params = '';
		
		params += 'nodeId=200869&user_id=' + userID + '&numPoints=' + thePoints + '&requestType=service&responseFormat=json&action=awardPoints&handlerName=svcPoints&eventName=one_ugc_forum_post::POST_CREATED';
		//alert(params);
		var request = YAHOO.util.Connect.asyncRequest(
			'POST',
			'http://' + domain + '/resources/ajax/_router.one',
			callback,
			params
		);	
	
	
		return false;
	
	}
	
	
	doSignup = function() {


		//document.getElementById('signupButton').disabled = true;
		//document.getElementById('signupButton').value = 'Signing up...';
	
		var in_ids = [
			"inputSubdir","inputFirstName", "inputEmail", "inputPassword", 'inputLocation', 'inputDobMonth', 'inputDobYear', 'inputDobDay'
		];
		
		var domain = "www.cavfanatic.com";

		var required = [
			true, true, true, true, false, true, true, true
		];

		var params = '';

		params += '&nodeId=200869&accountStatus=good-standing&requestType=service&responseFormat=json&action=userSignup&handlerName=svcSignup&devkey=cavfan123';
		
		for (var i=0; i < in_ids.length; i++) {

			var theInput = document.getElementById(in_ids[i]);

			if (typeof(theInput) == "undefined" || theInput == null) {
				continue;
			}

			if (!theInput.name) {
				continue;
			}

			if (!theInput.value) {

				if (required[i]) {
					alert('You must enter your '+theInput.name.replace('_', ' ')+'.');
					return;
				}
				else {
					continue;
				}

			}

			if (i > 0) {
				params += "&";
			}

			//params += theInput.name + "=" + escape(theInput.value);

			var the_now = new Date();

			if (in_ids[i] == "inputSubdir") {
				params += "&subdirdom=" + escape(theInput.value);
			}
			if (in_ids[i] == "inputEmail") {
				params += "&username=" + escape(theInput.value);
				params += "&email=" + escape(theInput.value);
			}
			if (in_ids[i] == "inputDobMonth") {
				params += "&birthMonth=" + escape(theInput.value);
			}
			if (in_ids[i] == "inputDobDay") {
				params += "&birthDay=" + escape(theInput.value);
			}			
			if (in_ids[i] == "inputDobYear") {
				params += "&birthYear=" + escape(theInput.value);
			}
			if (in_ids[i] == "inputFirstName") {
				params += "&firstname=" + escape(theInput.value);
			}			
			
			if (in_ids[i] == "inputPassword") {
				if (theInput.value.length < 4) {
					alert('Your password\'s length must be at least 4 characters.');
						return;
				}
				else {
					params += "&password=" + escape(theInput.value);
				}
			}

			

		}

		//alert(params);
		
		var pass = document.getElementById("inputPassword");
		var pass2 = document.getElementById("inputPasswordTwo");

		if (!pass2.value) {
			alert('You must confirm your password.');
			return;
		}

		if (pass.value != pass2.value) {
			alert('Your passwords do not match.');
			return;
		}


		var handleSuccess = function(o) {

			var response;
			var success;
			var errorParams = new Array();
			
			//alert(o.responseText);

			if (o.responseText !== undefined) {

				response = eval( '(' + o.responseText + ')' );

				// Get the response code.
				if (typeof(response['1']) != "undefined" && response['1']) {
					if (typeof(response['1']['user_id']) != "undefined" && response['1']['user_id']) {
						success = response['1']['user_id'];
					}
				}

				if (typeof(response['errorParams']) != "undefined" && response['errorParams']) {
					for (var key in response['errorParams']) {
						errorParams.push(response['errorParams'][key]);
					}
				}

			}

			// Check for signup success code.
			if ((success && success > 0) || o.responseText === undefined) {
				//document.getElementById('lun').value = document.getElementById('inputEmail').value;
				//document.getElementById('lpw').value = document.getElementById('inputPassword').value;

				//var suc = document.getElementById('oswLoginForm');
				//alert('Account created!' + success);
				//alert('Awarding points...');
				doAwardPoints(success);
				//document.oswLoginForm.submit();
				return;
			}

			if (errorParams.length > 0) {
				var errMessage = "Signup Error: There was an error involving these fields: ";

				for (var j=0; j < errorParams.length; j++) {

					if (j > 0) {
						errMessage += ', ';
					}
					if (errorParams[j] == "subdirdom") {
						var thisErr = "URL already taken";
					}
					else if (errorParams[j] == "username" || errorParams[j] == "email") {
						var thisErr = "Email account already registered";
					}
					else {
						var thisErr = errorParams[j];
					}

					errMessage += thisErr;

				}
			}
			else {
				var errMessage = "Signup Error: An internal error occurred. Please check your information and try again.";
			}

			document.getElementById("oswAlertMessage").innerHTML = errMessage;
			document.getElementById("oswAlertMessage").style.display = 'block';

		}

		var handleFailure = function(o) {

			document.getElementById("oswAlertMessage").innerHTML = "Signup Error: An internal error occurred. Please try again later.";
			document.getElementById("oswAlertMessage").style.display = 'block';

			return;

		}

		var callback =
		{
		  success: handleSuccess,
		  failure: handleFailure
		};

		//alert(params);
		//return false;
		
		var request = YAHOO.util.Connect.asyncRequest(
			'POST',
			'http://' + domain + '/resources/ajax/_router.one',
			callback,
			params
		);

	}