/************************* JQUERY ONLOAD ACTIONS ****************************/
var $jQ = jQuery.noConflict();

/***************************** GLOBALS VARS *********************************/
var _steps = new Array("Signature","Confirm","Action","Login");
var _curStep = _steps[0];
var _recipientCount = 1;

/********** TEST CONDITIONS FOR INPUT ELEMENTS ON FORM BY SUB FORM **********/
var errorMsgSignature = new Array(
		new Array("f_n7a7m7e","required","First Name is a required field."),
		new Array("l_n7a7m7e","required","Last Name is a required field."),
		new Array("a7d7d7r7e7s7s","required","Address is a required field."),
		new Array("c7i7t7y","required","City is a required field."),
		new Array("s7t7a7t7e","required","State is a required field."),
		new Array("z7i7p","required","Zip is a required field."),
		new Array("e7m7a7i7l","required:email","Email is a required field.:Emails must match.")
	);

var errorMsgConfirm = new Array();

var errorMsgAction = new Array(
		new Array("t_e7m7a7i7l_1","required","You must enter at least one recipient email address."),
		new Array("t_f7i7r7s7t_1","required","You must enter at least one recipient first name."),
		new Array("t_l7a7s7t_1","required","You must enter at least one recipient last name."),
		new Array("e_f_n7a7m7e","required","First Name is a required field."),
		new Array("e_l_n7a7m7e","required","Last Name is a required field."),
		new Array("f_e7m7a7i7l","required","Your Email Address is a required field."),
		new Array("e_s7u7b7j7e7c7t","required","Subject field must not be blank."),
		new Array("e_m7e7s7s7a7g7e","required","Message must be at least 20 characters.")	
	);

var errorMsgLogin = new Array(
		new Array("l_u7s7e7r7n7a7e","required","User name must be at least 8 characters."),
		new Array("l_p7a7s7w","required:password","Password must be at lest 8 characters.")
	);
	
/**************************** ONLOAD EVENTS *********************************/	
jQuery(document).ready(function() {

	// CAMPAIGNS EVENT BINDINGS
	var bindPetitionBehaviors = function(scope) {
		$jQ('#formNextBtn').click(function(){
			validateForm();
		});

		$jQ('#formPreviousBtn').click(function(){
			getPreviousForm();
		});

		$jQ('#formTransactBtn').click(function(){
			validateForm();
		});

		$jQ('#formCancelBtn').click(function(){
			window.location.href="index.php";
		});
	}
	
	// CHECKBOX EVENT DEF
	$jQ(":checkbox").click(function(){
		if ($jQ(this).attr("checked")) {
			$jQ(this).val("yes");
		} else {
			$jQ(this).val("no");
		}
	});
	
	// Email Action Event Button
	$jQ("#addRecipientBtn").click(function(){
		_recipientCount++;
		_newRecipient = '<tr><td><input size="30" id="t_e7m7a7i7l_'+_recipientCount+'" /></td><td><input size="15" id="t_f7i7r7s7t_'+_recipientCount+'" /></td><td><input size="15" id="t_l7a7s7t_'+_recipientCount+'" /></td></tr>';
		$jQ(this).parent().parent().parent().append(_newRecipient);
		false;
	});
	
	// Now bind the Events
	bindPetitionBehaviors();
	getSignatureForm();
});


// FORM CONTROL
function getNextForm() {
	switch(_curStep) {
		case _steps[0]:
			_curStep = _steps[1];
			getConfirmForm();
			break;
		case _steps[1]:
			_curStep = _steps[2];
			getActionForm();
			break;
		case _steps[2]:
			_curStep = _steps[3];
			getLoginForm();
			break;
		default:
			$jQ.prompt("Please try again.");
	}
}

// FORM CONTROL
function getPreviousForm() {
	switch(_curStep) {
		case _steps[3]:
			_curStep = _steps[2];
			getActionForm();
			break;
		case _steps[2]:
			_curStep = _steps[1];
			getConfirmForm();
			break;
		case _steps[1]:
			_curStep = _steps[0];
			getSignatureForm();
			break;
		default:
			$jQ.prompt("Please try again.");
	}
}

// FORM VALIDATION
function validateForm() {
	switch(_curStep) {
		case _steps[0]:
			if (validateFormData(errorMsgSignature)) 
			{
				$jQ.prompt("Please fill in the required fields.");
			} else {
				updateConfirmInfo();
			}
			break;
		case _steps[1]:
			if (validateFormData(errorMsgConfirm))
			{
				$jQ.prompt("Please fill in the required fields.");
			} else {
				updateEmailInfo();
				submitSignature();
			}			
			break;
		case _steps[2]:
			if (validateFormData(errorMsgAction))
			{
				$jQ.prompt("Please fill in the required fields.");
			} else {
				updateLoginInfo();
				submitEmailAction();
			}
			break;
		case _steps[3]:
			if(validateFormData(errorMsgLogin))
			{
				$jQ.prompt("Please fill in the required fields.");
			} else {
				submitLogin();
			}
			break;
		default:
			$jQ.prompt("Please try again.");
	}
}

/********************** SUB FORM CONTROL FUNCTIONS ***********************/
function getSignatureForm() {
	$jQ("#formNextBtn").removeClass("hide");

	// SHOW CONTRIBUTION FORM, HIDING OTHERS
	$jQ(".inputContactField").attr("readonly",false);
	$jQ(".signatureStep").addClass("hide");
	$jQ("#signatureSection").removeClass("hide");

	// MAKE THIS TAB ACTIVE
	$jQ('#signatureHeader').removeClass("stepPast").addClass("stepActive");
	$jQ('#contactHeader').removeClass("stepActive").removeClass("stepPast");
	$jQ('#confirmHeader').removeClass("stepPast").removeClass("stepActive");
	
	// MAKE SURE PREVIOUS AND SUBMIT BUTTONS HIDDEN
	$jQ('#formPreviousBtn').addClass("hide");
	$jQ('#formTransactBtn').addClass("hide");
}

function getConfirmForm() {
	$jQ("#formNextBtn").addClass("hide");

	$jQ(".inputConfirmField").attr("readonly",false);
	$jQ(".signatureStep").addClass("hide");
	$jQ("#confirmSection").removeClass("hide");
	
	$jQ('#signatureHeader').addClass("stepPast");
	$jQ('#confirmHeader').removeClass("stepPast").addClass("stepActive");
	$jQ('#actionHeader').removeClass("stepActive").removeClass("stepPast");
	
	//$jQ('#formNextBtn').addClass("hide");
	$jQ('#formPreviousBtn').removeClass("hide");
	$jQ('#formTransactBtn').removeClass("hide");
}

function getActionForm() {
	$jQ("#formPreviousBtn").addClass("hide");

	$jQ(".inputActionField").attr("readonly",false);
	$jQ(".signatureStep").addClass("hide");
	$jQ("#actionSection").removeClass("hide");

	$jQ('#confirmHeader').addClass("stepPast");
	$jQ('#actionHeader').addClass("stepActive");

	$jQ('#form:NextBtn').addClass("hide");	
	//$jQ('#formPreviousBtn').addClass("hide");
	$jQ('#formTransactBtn').removeClass("hide");
}

function getLoginForm() {
	$jQ(".inputActionField").attr("readonly",false);
	$jQ(".signatureStep").addClass("hide");
	$jQ("#loginSection").removeClass("hide");

	$jQ('#actionHeader').addClass("stepPast");
	$jQ('#loginHeader').addClass("stepActive");

	//$jQ('#form:NextBtn').addClass("hide");	
	$jQ('#formPreviousBtn').addClass("hide");
	$jQ('#formTransactBtn').removeClass("hide");
}

/********************** FORM DATA UPDATE FUNCTIONS ***********************/
// PASSES PERSONAL INFORMATION TO PAYMENT FORM IF BILLING SAME AS ORIGINAL ADDRESS

// PASSES CONFIRMED INPUT DATA TO POST INPUTS
function updateConfirmInfo() {
	
	$jQ("#FirstName").attr("innerHTML",$jQ("#f_n7a7m7e").attr("value"));
	$jQ("#LastName").attr("innerHTML",$jQ("#l_n7a7m7e").attr("value"));
	$jQ("#Address").attr("innerHTML",$jQ("#a7d7d7r7e7s7s").attr("value"));
	$jQ("#Address2").attr("innerHTML",$jQ("#a7d7d7r7e7s7s_2").attr("value"));
	$jQ("#City").attr("innerHTML",$jQ("#c7i7t7y").attr("value"));
	$jQ("#State").attr("innerHTML",$jQ("#s7t7a7t7e").attr("value"));
	$jQ("#Zip").attr("innerHTML",$jQ("#z7i7p").attr("value"));
	$jQ("#Zip4").attr("innerHTML",$jQ("#z7i7p_4").attr("value"));
	$jQ("#Email").attr("innerHTML",$jQ("#e7m7a7i7l").attr("value"));
	$jQ("#EmailAgain").attr("innerHTML",$jQ("#e7m7a7i7l7again").attr("value"));
	$jQ("#Phone").attr("innerHTML",$jQ("#p7h7o7n7e").attr("value"));
	$jQ("#Comments").attr("innerHTML",$jQ("#c7o7m7m7e7n7t7s").attr("value"));
	
	/* UPDATE HIDDEN FIELDS TO BE SUBMITTED */	
	$jQ("#FIRST_NAME").val($jQ("#f_n7a7m7e").attr("value"));
	$jQ("#LAST_NAME").val($jQ("#l_n7a7m7e").attr("value"));
	$jQ("#ADDRESS1").val($jQ("#a7d7d7r7e7s7s").attr("value"));
	$jQ("#ADDRESS2").val($jQ("#a7d7d7r7e7s7s_2").attr("value"));
	$jQ("#CITY").val($jQ("#c7i7t7y").attr("value"));
	$jQ("#STATE").val($jQ("#s7t7a7t7e").attr("value"));
	$jQ("#ZIP").val($jQ("#z7i7p").attr("value"));
	$jQ("#ZIP4").val($jQ("#z7i7p_4").attr("value"));
	$jQ("#PHONE").val($jQ("#p7h7o7n7e").attr("value"));
	$jQ("#EMAIL").val($jQ("#e7m7a7i7l").attr("value"));
	$jQ("#EMAIL_AGAIN").val($jQ("#e7m7a7i7l7again").attr("value"));
	$jQ("#COMMENTS").val($jQ("#c7o7m7m7e7n7t7s").attr("value"));
	$jQ("#ANONYMOUS").val($jQ("#anonymous").attr("value"));
	$jQ("#UPDATES").val($jQ("#updates").attr("value"));
	$jQ("#SUBSCRIBE_NEWS").val($jQ("#l_subscr_news").attr("value"));
	$jQ("#SUBSCRIBE_ALERTS").val($jQ("#l_subscr_alerts").attr("value"));
	$jQ("#SUBSCRIBE_CAMPAIGNS").val($jQ("#l_subscr_campaigns").attr("value"));
	$jQ("#SUBSCRIBE_NATIONAL").val($jQ("#l_subscr_national").attr("value"));
	
	getNextForm();
}

function updateEmailInfo() {
	$jQ("#e_f_n7a7m7e").val($jQ("#f_n7a7m7e").attr("value"));
	$jQ("#e_l_n7a7m7e").val($jQ("#l_n7a7m7e").attr("value"));
	$jQ("#f_e7m7a7i7l").val($jQ("#e7m7a7i7l").attr("value"));
}

function updateLoginInfo() {
	$jQ("#l_u7s7e7r7n7a7e").val($jQ("#f_n7a7m7e").attr("value").toLowerCase()+'_'+$jQ("#l_n7a7m7e").attr("value").toLowerCase());
	
	/* UPDATE HIDDEN FIELDS TO BE SUBMITTED */
	var _toEmail = '';
	var _toFirst = '';
	var _toLast = '';
	var _listJoin = '';
	
	for (_i=1; _i<=_recipientCount; _i++) {
		if (_i != 1) _listJoin = ':';
		
		if ($jQ("#t_e7m7a7i7l_"+_i).attr("value") && ($jQ("#t_e7m7a7i7l_"+_i).attr("value") != '')) {
			_toEmail += _listJoin + $jQ("#t_e7m7a7i7l_"+_i).attr("value");
			_toFirst += _listJoin + $jQ("#t_f7i7r7s7t_"+_i).attr("value");
			_toLast  += _listJoin + $jQ("#t_l7a7s7t_"+_i).attr("value");
		}
	}
		
	$jQ("#TO_EMAIL").val(_toEmail);
	$jQ("#TO_FIRST_NAME").val(_toFirst);
	$jQ("#TO_LAST_NAME").val(_toLast);
	
	$jQ("#FROM_EMAIL").val($jQ("#f_e7m7a7i7l").attr("value"));
	$jQ("#FROM_FIRST_NAME").val($jQ("#e_f_n7a7m7e").attr("value"));
	$jQ("#FROM_LAST_NAME").val($jQ("#e_l_n7a7m7e").attr("value"));

	$jQ("#E_SUBJECT").val($jQ("#e_s7u7b7j7e7c7t").attr("value"));
	$jQ("#E_MESSAGE").val($jQ("#e_m7e7s7s7a7g7e").attr("value"));
}

// SUBMITS AN AJAX POST TO CONTRIBUTION VALIDATION AND SUBMISSION SERVER SCRIPT
function submitSignature() {
	var _postString = "";
	var _count = 0;
	$jQ("input").each(function() {
		if ($jQ(this).attr("type")=="hidden") {
			if (_count!=0) {
				_postString += "&";
			}
			_postString += $jQ(this).attr("id")+'='+$jQ(this).val();
			_count++;
		}
	});
	
	$jQ.ajax({
		type: "POST",
		url:  "../includes/ajax/petition-signature-add.php",
		data: _postString,
   		success: function(data){
   			retVal = String(data);
			if (retVal.match('Sorry.') || retVal.match('Error.')) {
				$jQ.prompt(data);
			} else {
				$jQ.prompt(data);

				if (parseInt($jQ("#USER_ID").attr("value"))==1) {
					window.location.href="../user-home/";
				} else {
					getNextForm();
				}
			}
		},
	 	error:function(){
	 		$jQ.prompt('Please Begin again.');
	 	}
	});	
}

function submitEmailAction() {
	var _postString = "";
	var _count = 0;
	$jQ(".inputActionField").each(function() {
		if (_count!=0) {
			_postString += "&";
		}
		_postString += $jQ(this).attr("id")+'='+$jQ(this).val();
		_count++;
	});	
	
	$jQ.ajax({
		type: "POST",
		url:  "../includes/ajax/email-friends.php",
		data: _postString,
   		success: function(data){
   			retVal = String(data);
			if (retVal.match('Sorry.') || retVal.match('Error.')) {
				$jQ.prompt(retVal);
			}
			else
			{
				$jQ.prompt(retVal);
				if (parseInt($jQ("#USER_ID").attr("value"))!=0) {
					window.location.href="../user-home/";
				} else {
					window.location.href="index.php?";
				} 
			}
		},
	 	error:function(){
	 		$jQ.prompt('<div>Sorry, your emails could not be sent.</div><br/><div>You can invite more from your SNAPAP page.</div>');
	 	}
	});
}

function getPetitionParticipantDetail(_campaignID, _participantID) {
	$jQ.post("../includes/ajax/campaign-participant-detail.php",{
		userID: _participantID,
		campaignID: _campaignID
	},function(data){
		$jQ("div#participantDetailContent").html(data);
		$jQ('div#campaignParticipantDetail').fadeIn('fast');
	});
}

/********************** UPDATE USER DATA FUNCTIONS ***********************/
// ADDS A CAMPAIGN TO USER CAMPAIGNS
function addMyPetition() {
		_userID = getCurrentUser();
		_campaignID = $jQ('#new_campaign_id').attr("innerHTML");
		_myGoalAmount = $jQ('#my_goal_amount').attr("value");
		
		if (_myGoalAmount == "") {
			$jQ.prompt('You must enter a goal amount');
		} else if (_myGoalAmount.indexOf('$') !=-1) {
			$jQ.prompt('Goal amount should not include a $.');
		} else if (_myGoalAmount.indexOf('.') !=-1) {
			$jQ.prompt('Goal amount must be an integer.');
		} else {
			$jQ.post("../includes/ajax/campaigns-add.php",{
				  userID: _userID,
				  campaignID: _campaignID,
				  goalAmount: _myGoalAmount
				},function(data){
				 //getMyPetitions();
				 $jQ("div#campaignGoal").fadeOut('fast');
				 $jQ("div#searchPetitions").fadeOut('fast');

				 refreshUserData("div#campaigns");

				 $jQ("div#resourceUploadSuccess").fadeIn("fast");
			});
		}
}

