/* NPO JavaScript */

	// Load Org Data
		function LoadOrgData(LoaderID) {
			var LoaderObj = document.getElementById(LoaderID);
			LoaderObj.style.display='block';   
		} 
		
	// Display "Quick Search" Loader
		function DisplayQuickSearchLoader() {
			// Disable Search Button
				var SearchBtnObj=document.getElementById('SearchBtn');
				SearchBtnObj.disabled=true;
			// Hide Advanced Search Link
				var AdvancedSearchLinkObj=document.getElementById('AdvancedSearchLink');
				AdvancedSearchLinkObj.style.display='none'; 
			// Create Search Msg
				var OrganizationObj = document.getElementById('OrganizationName');
				var OrganizationValue = OrganizationObj.value;
				var SearchMsg = 'Searching for "' + OrganizationValue + '"';
			// Update QuickSearchLoader div
				var QuickSearchLoaderObj=document.getElementById('QuickSearchLoader');
				QuickSearchLoaderObj.innerHTML=SearchMsg;
			// Display QuickSearchLoader
				QuickSearchLoaderObj.style.display='inline';
		} 
		
	// Display "Advanced Search" Loader
		function DisplayAdvancedSearchLoader() {
			// Disable Search Button
				var SearchBtnObj=document.getElementById('SearchBtn_Advanced');
				SearchBtnObj.disabled=true;
			// Create Search Msg
				var SearchMsg = 'Searching...';
			// Update QuickSearchLoader div
				var AdvancedSearchLoaderObj=document.getElementById('AdvancedSearchLoader');
				AdvancedSearchLoaderObj.innerHTML=SearchMsg;
			// Display QuickSearchLoader
				AdvancedSearchLoaderObj.style.display='inline';
		} 
		
	// Submit Search Form
		function SubmitSearchForm(FormName,SearchType,ErrMsgElemID,Syndicate,ProxyURL,UpdateURL) {
			// Set Error Msg Object
				var ErrMsgObj = document.getElementById(ErrMsgElemID);
			// Clear Error Msg	
				ErrMsgObj.style.display='none';
				ErrMsgObj.innerHTML = '';
			// Error Count
				var ErrorCnt = 0;
				var ErrorMsg = '';
			// Set Form Info
				var FormObj = eval('document.' + FormName);
			// Get Form Input Values
				var OrganizationObj = document.getElementById('OrganizationName');
				var OrganizationValue = OrganizationObj.value;
				OrganizationObj.style.borderColor='#ababab';
			// Determine Search Type
				if(SearchType=='Quick'){
					// QUICK - Require Org Name
						// Determine if organization was submitted
							if (OrganizationValue.length == 0) {
								// NOT SUBMITTED
									// Set & Display Error
										ErrorCnt = ErrorCnt + 1;
										ErrorMsg = ErrorMsg + '<li>You must enter an organization name.</li>';
										OrganizationObj.style.borderColor='red';
							}
							else {
								// SUBMITTED
									if (OrganizationValue.length < 3) {
										ErrorCnt = ErrorCnt + 1;
										ErrorMsg = ErrorMsg + '<li>You must provide at least 3 characters of the organization name.</li>';
										OrganizationObj.style.borderColor='red';
									}
							}
				}
				else{
					// ADVANCED - Require either Org Name or EIN
						var EIN = document.getElementById("EIN");
						var EINValue = EIN.value;
						// Determine if EIN was submitted
							if (EINValue.length == 0) {
								// EIN NOT SUBMITTED - Require Org Name
									// Determine if organization was submitted
										if (OrganizationValue.length == 0) {
											// NOT SUBMITTED
												// Set & Display Error
													ErrorCnt = ErrorCnt + 1;
													ErrorMsg = ErrorMsg + '<li>You must enter an organization name.</li>';
													OrganizationObj.style.borderColor='red';
										}
										else {
											// SUBMITTED
												if (OrganizationValue.length < 3) {
													ErrorCnt = ErrorCnt + 1;
													ErrorMsg = ErrorMsg + '<li>You must provide at least 3 characters of the organization name.</li>';
													OrganizationObj.style.borderColor='red';
												}
										}	
							}
							else {
								// EIN SUBMITTED	
							}		
				}
			
			

			// Check for Errors
				if (ErrorCnt > 0) {
					// ERRORS
						ErrMsgObj.innerHTML = 'Please correct the following errors before resubmitting your search request.<ul>' + ErrorMsg + '</ul>';
						ErrMsgObj.style.display='block';
				}
				else {
					// NO ERRORS
						// Determine Search Type
							if(SearchType=='Quick'){
								// QUICK
									DisplayQuickSearchLoader();
							}
							else{
								// ADVANCED
									DisplayAdvancedSearchLoader();
							}
						
						// Submit Form   
							if((Syndicate!='Yes') && (Syndicate!='yes')){
								FormObj.submit();
							}
							else{
								// Determine Search Type
									if(SearchType=='Quick'){
										// QUICK
											var Parameters = '&OrganizationName=' + OrganizationValue;
											ProxyURL = ProxyURL + Parameters;
									}
									else{
										// ADVANCED
											var OrgNameSearchMethod = document.forms['NPOLookup'].elements['OrgNameSearchMethod'];
											var OrgNameSearchMethodValue = getCheckedValue(OrgNameSearchMethod);
											var City = document.getElementById("City");
											var CityValue = City.value;
											var StateValue = getSelectedValue('State','Value');
											var StateLabel = getSelectedValue('State','Label');
											var Zip = document.getElementById("Zip");
											var ZipValue = Zip.value;
											var ActivityGroupCodeValue = getSelectedValue('ActivityGroupCode','Value');
											var ActivityGroupCodeLabel = getSelectedValue('ActivityGroupCode','Label');
											var FoundationCodeValue = getSelectedValue('FoundationCode','Value');
											var FoundationCodeLabel = getSelectedValue('FoundationCode','Label');
											var NTEEValue = getSelectedValue('NTEE','Value');
											var NTEELabel = getSelectedValue('NTEE','Label');
											var EIN = document.getElementById("EIN");
											var EINValue = EIN.value;
											var Parameters = '&SearchType=' + SearchType + '&OrganizationName=' + OrganizationValue + '&OrgNameSearchMethod=' + OrgNameSearchMethodValue + '&City=' + CityValue + '&State=' + StateValue + '&Zip=' + ZipValue + '&ActivityGroupCode=' + ActivityGroupCodeValue + '&FoundationCode=' + FoundationCodeValue + '&NTEE=' + NTEEValue + '&EIN=' + EINValue;
											ProxyURL = ProxyURL + Parameters;
											UpdateURL = UpdateURL + Parameters;
											DHTMLHistory_AddUpdateLocation("Location:AdvancedSearch",UpdateURL);
									}
								
								
								DHTMLHistory_ChangeLocation('Location:SearchResults',ProxyURL,'Search Results','Yes');
								//getDataFromServer('OnDemandJS',ProxyURL,'','','UpdatePage();');
							}
				}
		}	
	
	 
		//	getSelectedValue('SelectID','Value|Label|Index')
		// 	returns the value, label, or index of the selected option from a drop-down menu
		// 	NOTE: Assumes select element name and ID are the same
			function getSelectedValue(SelectID,RetunValue) {
				// Set Select Obj
					var SelectObj = document.getElementById(SelectID);
					var SelectIndex = SelectObj.selectedIndex;
					var SelectValue = SelectObj[SelectIndex].value;
					var SelectLabel = SelectObj.options[SelectIndex].text;
				// Determine Return Value
					if (RetunValue == 'Value'){
						// VALUE
							return SelectValue;
					}
					else if (RetunValue == 'Label'){
						// LABEL
							return SelectLabel
					}
					else if (RetunValue == 'Index'){
						// INDEX
							return SelectIndex;
					}
					else {
						// VALUE
							return SelectValue;
					}
			} 
		
	// return the value of the radio button that is checked
		// getCheckedValue(document.forms['FormName'].elements['RadioName']));
		// return an empty string if none are checked, or
		// there are no radio buttons
			function getCheckedValue(radioObj) {
				if(!radioObj)
					return "";
				var radioLength = radioObj.length;
				if(radioLength == undefined)
					if(radioObj.checked)
						return radioObj.value;
					else
						return "";
				for(var i = 0; i < radioLength; i++) {
					if(radioObj[i].checked) {
						return radioObj[i].value;
					}
				}
				return "";
			}
			

