function userForm_OnSubmit(formObject) {
	setValidationRule_UserForm(formObject); 
	if(validateForm(formObject)){
		kidira_leaveMessage_Disable();
		return true;
	}
	else
		return false;
}

function userForm_ChildFormMany_OnSubmit(formObject) {
	// alert("userForm_ChildFormMany_OnSubmit1");
	setValidationRule_ChildForm(formObject); 
	// alert("userForm_ChildFormMany_OnSubmit2");

	if(validateForm(formObject)){
		// alert("userForm_ChildFormMany_OnSubmit3");
		kidira_leaveMessage_Disable();
		// alert("userForm_ChildFormMany_OnSubmit4");
		return true;
	}
	else
		return false;

}

function userForm_ChildFormOne_OnSubmit(formObject) {
	setValidationRule_ChildForm_One(formObject); 

	if(validateForm(formObject)){
		kidira_leaveMessage_Disable();
		return true;
	}
	else
		return false;
}



function setValidationRule_UserForm(form){
	if(form.firstName) {
		form.firstName.nicename='First Name';
		form.firstName.required=true;
	}
	
	if(form.lastName) {
		form.lastName.nicename='Last Name';
		form.lastName.required=true;
	}
	
	if(form.emailAddress) {
		form.emailAddress.nicename='E-mail Address';
		form.emailAddress.required=true;
		form.emailAddress.emailaddress=true;
		form.emailAddress.emailAddress1=true;
	}
	
	if(form.password) {
		form.password.nicename='Password';
		form.password.required=true;
		form.password.pwd=true;
		if(form.password2) {
			form.password2.nicename='Confirm Password';
			form.password2.required=true;
			form.password2.confirmpwd=true;
		}
	}

	if(form.emailAddress2) {
		form.emailAddress2.nicename='Confirm E-mail Address';
		form.emailAddress2.required=true;
		form.emailAddress2.emailaddress=true;
		form.emailAddress2.confirmemail=true;
	}


	if(form.showUserTypeHelperFlag) {
		// alert("in form.showUserTypeHelperFlag if");
		if(form.parentEmailAddress) {
			form.parentEmailAddress.nicename="Parent E-mail Address";
			form.parentEmailAddress.emailaddress=true;
			form.parentEmailAddress.required=false;
		}

		if(form.over18 && form.hasChildren) {
			// alert("in form.over18 && form.hasChildren if");

			form.over18.nicename='I am over 18 years of age';
			form.over18.required=true;
		
			form.hasChildren.nicename="I have children <18 years of age";

			if(form.over18.value=="Yes")
				form.hasChildren.required=true;
			else {
				form.hasChildren.required=false;

				if(form.studentAge) {
					form.studentAge.required=true;
					form.studentAge.nicename="My Age";

					if(form.parentEmailAddress && form.emailAddress) {
						form.parentEmailAddress.originalEmailAddress=true;
						form.parentEmailAddress.originalEmailAddressCSV=form.emailAddress.value;
						form.parentEmailAddress.originalEmailAddressMessage=" - Cannot be same as Child's e-mail address";
					}

					if(form.studentAge.value=="under13") {
						if(form.parentEmailAddress) {
							form.parentEmailAddress.required=true;
							form.parentEmailAddress.nicename="Parent E-mail Address (Required for students under 13 years of age)";

						}
					}
				}
			}

		}
	
	}

	if(form.terms_Agree) {
		form.terms_Agree.nicename='Terms And Conditions checkbox';
		form.terms_Agree.required=true;
	}
}

function setValidationRule_UserForm_CommForm(form){
	if(form.toID) {
		// alert("in setValidationRule_UserForm_CommForm IF");
		form.toID.nicename='To';
		form.toID.required=true;
	}

}

function setValidationRule_UserForm_ChildForm(form){
	// alert("in setValidationRule_UserForm_ChildForm0");
	if(form.firstName) {
		form.firstName.nicename='Child\'s First Name';
		form.firstName.required=true;
	}
	
	if(form.lastName) {
		form.lastName.nicename='Child\'s Last Name';
		form.lastName.required=true;
	}

	if(form.emailAddress) {	
		form.emailAddress.nicename='E-mail Address';
		// form.emailAddress.required=true;
		form.emailAddress.emailaddress=true;
	}

	if(form.password) {
		form.password.nicename='Password';
		form.password.required=true;
		form.password.pwd=true;
		if(form.password2) {
			form.password2.nicename='Confirm Password';
			form.password2.required=true;
			form.password2.confirmpwd=true;
		}
	}

	if(form.emailAddress2) {
		form.emailAddress2.nicename='Confirm E-mail Address';
		form.emailAddress2.required=true;
		form.emailAddress2.emailaddress=true;
		form.emailAddress2.confirmemail=true;
	}

}

function userForm_ShowHideEmail(form){
	// alert("in userForm_ShowHideEmail(form)");

	if(form.emailAddress.value!='') {
		ShowHideDiv('show','confirmEmailTitle');
		ShowHideDiv('show','confirmEmailField');
	}
	else {
		ShowHideDiv('hide','confirmEmailTitle');
		ShowHideDiv('hide','confirmEmailField');
	}
	// alert("END userForm_ShowHideEmail(form)");

}

function userForm_ShowHidePassword(form){
	// alert("in userForm_ShowHideEmail(form)");

	if(form.password.value!='') {
		ShowHideDiv('show','confirmPasswordTitle');
		ShowHideDiv('show','confirmPasswordField');
	}
	else {
		ShowHideDiv('hide','confirmPasswordTitle');
		ShowHideDiv('hide','confirmPasswordField');
	}
	// alert("END userForm_ShowHideEmail(form)");

}

function userTypeHelperFlag_over13_onChange(form) {
	if(form.studentAge) {
		if(form.studentAge.value=="13up")
			getDivById("parentEmail_Title").innerHTML="Parent's E-mail Address<br>(Optional)";
		else
			getDivById('parentEmail_Title').innerHTML="Parent's E-mail Address<br>(<font color='990000'>Required</font>)";
	}
}

function userTypeHelperFlag_over18_onChange(form) {
	// alert("in uthf_o18oc");
	if(form.over18.value=='Yes'){
		// alert('in yes if ' + getDivById("hasChildrenRow_Title"));
		getDivById('hasChildrenRow_Title').style.display='block';
		getDivById('hasChildrenFormField').style.display='block';

		ShowHideDiv('hide','studentAge_Title');
		ShowHideDiv('hide','studentAgeField');

		ShowHideDiv('hide','parentEmail_Title');
		ShowHideDiv('hide','parentEmailField');

	}
	else if(form.over18.value=='No'){
		getDivById('hasChildrenRow_Title').style.display='none';
		getDivById('hasChildrenFormField').style.display='none';

		ShowHideDiv('show','studentAge_Title');
		ShowHideDiv('show','studentAgeField');

		ShowHideDiv('show','parentEmail_Title');
		ShowHideDiv('show','parentEmailField');		

		userTypeHelperFlag_over13_onChange(form);
	}
	else {
		getDivById('hasChildrenRow_Title').style.display='none';
		getDivById('hasChildrenFormField').style.display='none';

		ShowHideDiv('hide','studentAge_Title');
		ShowHideDiv('hide','studentAgeField');

		ShowHideDiv('hide','parentEmail_Title');
		ShowHideDiv('hide','parentEmailField');	
	}
}

function setValidationRule_ChildForm_One(form){
	form.firstName.nicename='First Name';
	form.firstName.required=true;
	form.lastName.nicename='Last Name';
	form.lastName.required=true;
	form.emailAddress.nicename='E-mail Address';
	// form.emailAddress.required=true;
	form.emailAddress.emailaddress=true;
}

function setValidationRule_ChildForm(form){

	var numRows=form.numberOfRows.value;
	var rowFirstNameObject,rowLastNameObject,rowEmailObject,rowFirstNameValue,rowLastNameValue,rowEmailValue,csvRowEmailObject
	var rowDesignationName
	var emailAddressCSV;

	// alert("numRows is " + numRows);
	// alert("form.originalEmailAddress.value is " + form.originalEmailAddress.value);
	
	for (var i=1; i<=numRows; i++) {	
		emailAddressCSV="," + form.originalEmailAddress.value + ","

		rowFirstNameObject=eval("form.FirstName" + i);
		rowLastNameObject=eval("form.LastName" + i);
		rowEmailObject=eval("form.EmailAddress" + i);

		rowFirstNameObject.required=false;
		rowLastNameObject.required=false;
		rowEmailObject.required=false;
		rowEmailObject.originalEmailAddress="";

		rowFirstNameValue=rowFirstNameObject.value;
		rowLastNameValue=rowLastNameObject.value;
		rowEmailValue=rowEmailObject.value;

		if(rowFirstNameValue!="" || rowEmailValue!="") {
			if(rowFirstNameValue!="")
				rowDesignationName=rowFirstNameValue + "\'s";
			else
				rowDesignationName="Child #" + i;				

			rowFirstNameObject.nicename=rowDesignationName + " First Name";
			rowFirstNameObject.required=true;
			rowLastNameObject.nicename=rowDesignationName + " Last Name";
			rowLastNameObject.required=true;
			
			// Trim field value
			rowEmailObject.value=rowEmailObject.value.replace(/^\s*/, "").replace(/\s*$/, "");
			
			rowEmailObject.nicename=rowDesignationName + " E-mail";
			// rowEmailObject.required=true;
			rowEmailObject.emailaddress=true;

			// rowEmailObject.differentEmailAddress=true;

			// Populate emailAdressCSV 
				for (var j=1; j<=numRows; j++) {
					if(j!=i) {
						csvRowEmailObject=eval("form.EmailAddress" + j);
						if(csvRowEmailObject && csvRowEmailObject.value!="")
							emailAddressCSV+=csvRowEmailObject.value + ",";
					}
				}	
				// alert("emailAddressCSV for is=" + i + " is " + emailAddressCSV);

			rowEmailObject.originalEmailAddress=form.originalEmailAddress.value;	
			rowEmailObject.originalEmailAddressCSV=emailAddressCSV;
			rowEmailObject.originalEmailAddressMessage=" - Must be a unique e-mail address";

		}
	}



}

function setValidationRule_BenefactorForm(form){
	// alert("in to of svrBf");
	var numRows=form.numberOfRows.value;
	var rowFirstNameObject,rowLastNameObject,rowEmailObject,rowFirstNameValue,rowLastNameValue,rowEmailValue;
	var rowDesignationName;
	
	// alert("numRows is " + numRows);
	
	for (var i=1; i<=numRows; i++) {	
		rowFirstNameObject=eval("form.FirstName" + i);
		rowEmailObject=eval("form.EmailAddress" + i);

		rowFirstNameValue=rowFirstNameObject.value;
		rowEmailValue=rowEmailObject.value;

		if(rowFirstNameValue!="" || rowEmailValue!="") {
			if(rowFirstNameValue!="")
				rowDesignationName=rowFirstNameValue + "\'s";
			else
				rowDesignationName="Supporter #" + i;
				
			rowFirstNameObject.nicename=rowDesignationName + " First Name";
			// rowFirstNameObject.required=true;
			// rowLastNameObject.nicename=rowDesignationName + " Last Name";
			// rowLastNameObject.required=true;
			rowEmailObject.nicename=rowDesignationName + " E-mail";
			rowEmailObject.required=true;
			rowEmailObject.emailaddress=true;
		}
	}



}

function setValidationRule_SpreadForm(form){
	var numRows=form.numberOfRows.value;
	var rowFirstNameObject,rowLastNameObject,rowEmailObject,rowFirstNameValue,rowLastNameValue,rowEmailValue;
	var rowDesignationName;
	
	// alert("numRows is " + numRows);
	
	for (var i=1; i<=numRows; i++) {	
		rowFirstNameObject=eval("form.FirstName" + i);
		rowEmailObject=eval("form.EmailAddress" + i);
		rowChildFlagObject=eval("form.childCheckbox" + i);
		rowUserTypeObject=eval("form.UserType" + i);

		rowFirstNameValue=rowFirstNameObject.value;
// alert("rowFirstNameValue is " + rowFirstNameValue);
		rowEmailValue=rowEmailObject.value;
		rowUserTypeValue=rowUserTypeObject.value;
		if(rowChildFlagObject)
			rowChildFlagObjectValue=rowChildFlagObject.checked;
		else
			rowChildFlagObjectValue=false;

		// alert("rowChildFlagObjectValue is " + rowChildFlagObjectValue);

		//  || rowUserTypeValue!=""
		if(rowFirstNameValue!="" || rowEmailValue!="") {
			if(rowFirstNameValue!="")
				rowDesignationName=rowFirstNameValue + "\'s";
			else
				rowDesignationName="Supporter #" + i;
				
			rowFirstNameObject.nicename=rowDesignationName + " First Name";
			// rowFirstNameObject.required=true;
			// rowLastNameObject.nicename=rowDesignationName + " Last Name";
			// rowLastNameObject.required=true;
			rowEmailObject.nicename=rowDesignationName + " E-mail";
			if(rowChildFlagObjectValue)
				rowEmailObject.required=false;
			else
				rowEmailObject.required=true;
			
			
			rowEmailObject.emailaddress=true;
			rowUserTypeObject.nicename=rowDesignationName + " User Type";
			rowUserTypeObject.required=true;
		}
		else {
			rowEmailObject.required=false;
			rowDesignationName="";
		}
	}
}

function setValidationRule_AllocateForm(form){
	var numRows=form.numberOfRows.value;
	var rowFirstNameObject,rowLastNameObject,rowEmailObject,rowFirstNameValue,rowLastNameValue,rowEmailValue;
	var rowDesignationName;
	
	// alert("numRows is " + numRows);
	
	for (var i=1; i<=numRows; i++) {	
		rowEmailObject=eval("form.Student" + i);
		rowAllocateObject=eval("form.Allocation" + i);
		
		if(rowEmailObject && rowAllocateObject) {
			rowEmailObject.required=false;
			rowAllocateObject.required=false;

			if(rowEmailObject.value!="" && rowEmailObject.type=="text") {
				rowEmailObject.required=true;
				rowEmailObject.emailaddress=true;			
			}
			
			if(rowAllocateObject.value!="") {
				rowAllocateObject.required=true;
				rowAllocateObject.numeric=true;
			}
		}
	}
}

function setValidationRule_BankAccountForm(form){
	// alert("in setValidationRule_BankAccountForm");
	var numRows;
	if(form.rowTotal)
		numRows=form.rowTotal.value;
		
	var rowObject_aba1,rowObject_aba2,rowObject_acct1,rowObject_acct2
	var rowObject_address1,rowObject_address2,rowObject_city,rowObject_state,rowObject_zip
	var rowDesignationName;
	
	
	for (var i=1; i<=numRows; i++) {
	
		
		rowObject_displayName=eval("form.nameToDisplay" + i);
		if(rowObject_displayName)
			rowDesignationName=rowObject_displayName.value;
			
		rowObject_aba1=eval("form.bankAccount_Aba" + i);
		rowObject_aba2=eval("form.bankAccount_ConfirmAba" + i);
		rowObject_acct1=eval("form.bankAccount_Account" + i);
		rowObject_acct2=eval("form.bankAccount_ConfirmAccount" + i);
		
		rowObject_address1=eval("form.address1" + i);
		rowObject_address2=eval("form.address2" + i);
		rowObject_city=eval("form.city" + i);
		rowObject_state=eval("form.state" + i);
		rowObject_zip=eval("form.zip" + i);

		rowObject_aba1.required=false;
		rowObject_aba2.required=false;
		rowObject_acct1.required=false;
		rowObject_acct2.required=false;

		rowObject_address1.required=false;
		rowObject_address2.required=false;
		rowObject_city.required=false;
		rowObject_state.required=false;
		rowObject_zip.required=false;

		if((rowObject_aba1 && rowObject_aba1.value!="") || (rowObject_acct1 && rowObject_acct1.value!="") ) {
			// Validate Bank Info
			rowObject_aba1.nicename=rowDesignationName + ": " + "Aba Routing #";
			rowObject_aba2.nicename=rowDesignationName + ": " + "Confirm Aba Routing #";
			rowObject_acct1.nicename=rowDesignationName + ": " + "Account #";
			rowObject_acct2.nicename=rowDesignationName + ": " + "Confirm Account #";

			rowObject_aba1.required=true;
			rowObject_aba2.required=true;
			rowObject_acct1.required=true;
			rowObject_acct2.required=true;

			rowObject_aba1.numeric=true;
			rowObject_aba2.numeric=true;
			rowObject_acct1.numeric=true;
			rowObject_acct2.numeric=true;
			
			rowObject_aba1.match_original=true;
			rowObject_aba2.matchValues=true;
			
		}

		if(rowObject_address1 && rowObject_address1.value!="") {
			// Validate Address

			rowObject_address1.nicename=rowDesignationName + ": " + "Address1"
			rowObject_address2.nicename=rowDesignationName + ": " + "Address2"
			rowObject_city.nicename=rowDesignationName + ": " + "City"
			rowObject_state.nicename=rowDesignationName + ": " + "State"
			rowObject_zip.nicename=rowDesignationName + ": " + "ZIP"

			rowObject_address1.required=true;
			// rowObject_address2.required=true;
			rowObject_city.required=true;
			rowObject_state.required=true;
			rowObject_zip.required=true;

		}
	}
}

function handleNewUserDiv(fieldObject) {
	// alert("showHideFlag is " + showHideFlag);
	// alert("fieldObject.value is " + fieldObject.value);
	var flag_redirectToInviter=false;
	
	if(fieldObject) {
		if(fieldObject.form) {
			formObject=fieldObject.form
//			alert("formObject.name is " + formObject.name);
			if(formObject.name) {
				if(formObject.name=="commForm" && fieldObject.value=="new")
					flag_redirectToInviter=true;
			}
		}
	
		if(flag_redirectToInviter) {
			var urlToRedirect="/user/inviter.asp?recommend=1"
			
			//  Add Recommended values
			var recommendCount=5;
			
			if(formObject.showRecommendedLinksCount){
				if(formObject.showRecommendedLinksCount.value!="")
					recommendCount=formObject.showRecommendedLinksCount.value;
			}
			
			var thisRecommendedFieldname;
			var thisRecommendedIDFieldname;

			var thisRecommendedFieldObject;
			var thisRecommendedIDFieldObject;			

			for(r=1;r<=recommendCount;r++) {
				thisRecommendedFieldname="recommend" + r;
				thisRecommendedIDFieldname=thisRecommendedFieldname + "_ID";

				thisRecommendedIDFieldObject=eval("formObject." + thisRecommendedIDFieldname);
				if(thisRecommendedIDFieldObject) {
					urlToRedirect+="&" + thisRecommendedIDFieldname + "=" + thisRecommendedIDFieldObject.value;
				}
				
				thisRecommendedFieldObject=eval("formObject." + thisRecommendedFieldname);
				if(thisRecommendedFieldObject) {
					urlToRedirect+="&" + thisRecommendedFieldname + "=" + thisRecommendedFieldObject.value;
				}			
			}
//alert("urlToRedirect is " + urlToRedirect);
			document.location.href=urlToRedirect;
		}
		else {
		
			if(fieldObject.value=="new"){
				ShowHideDiv('show','newUser');
			}
			else{
				ShowHideDiv('hide','newUser');
			}
		}
	}
}

function loginStatus()
{
    FB.getLoginStatus(function(response)
    {
        alert('loginStatus: ' + JSON.stringify(response));
    });
}

function fbInit()
{
    FB.Event.subscribe('auth.statusChange', function(response)
    {
        alert('statusChange: ' + JSON.stringify(response));
    });

    FB.Event.subscribe('auth.sessionChange', function(response)
    {
        alert('sessionChange: ' + JSON.stringify(response));
    });
}

function user_preference_onSubmit(formObject) {
	var flag_preferenceFacebookChecked=false;
	var flag_connectFacebook=true;
	var connectFacebookPerms="";
	// alert("in user_preference_onSubmit1");

	// Check if we need to update Facebook Permissions
	if(formObject.Preference13) {
		// alert("formObject.Preference13.checked is " + formObject.Preference13.checked);
		if(formObject.Preference13.checked)
			flag_preferenceFacebookChecked=true;
	}
	// alert("in user_preference_onSubmit200");
	if(formObject.Preference14) {
		// alert("formObject.Preference14.checked is " + formObject.Preference14.checked);
		if(formObject.Preference14.checked)
			flag_preferenceFacebookChecked=true;
	}
	// alert("flag_preferenceFacebookChecked is " + flag_preferenceFacebookChecked);

      // initialize the library with the API key
	// FB.init({appId: '131544588681', status: true, cookie: true, xfbml: true});

	// alert("in user_preference_onSubmit300");
	// Check if Facebook perms are sufficient
	if(flag_connectFacebook && flag_preferenceFacebookChecked) {
		var permString="publish_stream,offline_access,share_item";
		// alert("permString is " + permString);
		ki_fb_login_checkPerms(permString,formObject);

	}
	else {
		flag_connectFacebook=false
	}

}

function ki_fb_login_checkPerms(permString,formObject) {
	// alert("now check if user is properly authorized");
	// returnValue=5;
	FB.login(function(response) {
	  if (response.session) {
	    if (response.perms) {
	      // user is logged in and granted some permissions.
		// alert("user is logged in and granted some permissions.");
	      // perms is a comma separated list of granted permissions
	      // return 1;
	    } else {
	      // user is logged in, but did not grant any permissions
		// alert("user is logged in, but did not grant any permissions");
		// return 0;
	    }
	  } else {
	    // user is not logged in
		// return -1
		// alert("user is not logged in");
	  }
	  if(formObject) {
		// alert("formObject is present");
		//alert("formObject is present, profile_selector_ids is " + response.profile_selector_ids);
		//alert("formObject is present, response.session is " + response.session);

		formObject.submit();
	  }
	  else{
	  	alert("Your KidIRA and Facebook accounts have been connected.");
		// alert("no form");
	  }
	}, {perms: permString});
}

function ki_fb_testsession() {

// alert("FB.getLoginStatus() no hsr " + FB.getLoginStatus(););

      // fetch the status on load
/**
       FB.getLoginStatus();
alert("after fb gls blank");
       FB.getLoginStatus();
alert("after fb gls response");
**/
fbgsuid=FB.getSession().uid;
alert("fbgsuid fb gls response is " + fbgsuid);

fbgsuid=FB.getSession().terms;
alert("fbgsuid fb terms response is " + fbgsuid);

/**
alert("in handleSessionResponse, FB.getSession().uid is " + FB.getSession().uid);

       FB.getLoginStatus(handleSessionResponse);
alert("in3");
**/
/**
      dojo.connect(dojo.byId('login'), 'click', function() {
        FB.login(handleSessionResponse);
      });

      dojo.connect(dojo.byId('logout'), 'click', function() {
        FB.logout(handleSessionResponse);
      });

      dojo.connect(dojo.byId('disconnect'), 'click', function() {
        FB.api({ method: 'Auth.revokeAuthorization' }, function(response) {
          clearDisplay();
        });
      });
**/

/**
FB.api('/me', function(response) {
  alert("name is " + response.name);
  alert("perms are " + response.perms);
});
**/

      // no user, clear display
      function clearDisplay() {
        document.getElementById('user-info').innerHTML = '';
      }

      // handle a session response from any of the auth related calls
      function handleSessionResponse(response) {
	// alert("in handleSessionResponse, FB.getSession().uid is " + FB.getSession().uid);
        // if we dont have a session, just hide the user info
        if (!response.session) {
//          clearDisplay();
		// alert("in handleSessionResponse, no response.session");
          return;
        }
        else {
		// alert("in handleSessionResponse, session exists!");
        
        }

        // if we have a session, query for the user's profile picture and name
        FB.api(
          {
            method: 'fql.query',
            query: 'SELECT name, pic FROM profile WHERE id=' + FB.getSession().uid
          },
          function(response) {
            var user = response[0];
            var userInfo = document.getElementById('user-info');
alert("in user response");
//            userInfo.innerHTML = '<img src="' + user.pic + '">' + user.name;
          }
        );
      }

}