/*******************************************************************************
* +--------------------------[ File Revision Info ]--------------------------+ *
* | $Revision::                                                           $: | *
* | $Date::                                                               $: | *
* | $Author::                                                             $: | *
* +--------------------------------------------------------------------------+ *
* | $Id::                                                                 $: | *
* +--------------------------------------------------------------------------+ *
*******************************************************************************/

/************************* 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');
			});
		}
}