

(function() {
	var ntenUrl = "https://www.nten.org";
	
	var mainRequest = new XMLHttpRequest();
	mainRequest.open("GET", "https://www.nten.org/wp-json/utils/v1/menu");
	mainRequest.send();
	mainRequest.onreadystatechange = function () {
		if (mainRequest.readyState === 4) {
			var nav = document.querySelector(".rest-nav");  
			nav.innerHTML = mainRequest.responseText;
			console.log("Menu loaded from NTEN.org.");
			fixMenuLinks(nav);
		}  
	};    

	var bannerRequest = new XMLHttpRequest();
	bannerRequest.open("GET", "https://www.nten.org/wp-json/utils/v1/blue-banner");
	bannerRequest.send();
	bannerRequest.onreadystatechange = function () {  
		if (bannerRequest.readyState === 4) {
			var banner = document.querySelector(".blue-banner");
			var bannerHtml = banner.innerHTML;
			banner.innerHTML = bannerRequest.responseText + bannerHtml;
			console.log("Event banner loaded from NTEN.org.");
		}
	};
	
	var fixMenuLinks = function(nav) {
		if (!window.jQuery) {
			console.log("No jQuery.");
			return;
		}
		$(nav).find("a").each(function(i, v) {
			var a=$(v), href=a.attr("href")+"", 
				lhref=href.toLowerCase();
			if (href=="#" || lhref.indexOf("https:")===0 || lhref.indexOf("http:")===0) {
				return;
			} else {
				var d = (lhref.indexOf("/")===0)?"":"/";
				a.attr("href", ntenUrl+d+href);
			}
		});
	};
})();

function communityHubLogout() {
	var s=location.href.toLowerCase().split('/communityhub/'),
		a='/secur/logout.jsp';
	if (window.BaseCommnityHubURL) {
		document.location.href=window.BaseCommnityHubURL+a;
	} else if(s.length==1){
		document.location.href=location.protocol+'//'+location.host+a;
	}else{
		document.location.href=s[0]+'/communityhub'+a;
	}
}


/* CUSTOM SCRIPT FOR THE /mydemographics PAGE */
function setupMyDemographicsPage() {
	//setTimeout(function() { $(".gsdemographicscard").show(); }, 10000);
	
	//get the cards
	var cards = $(".gsdemographicscard");
	
	//fix for help text being cutoff -JDW 20191002
	cards.find("input.default").css("width", "95%");
	
	//set up the professional card
	var cProfessional = cards.parent().find(".gsdcDemographicsProfessional");
	cProfessional.show();
	
	//set up the gender card
	var cGender = cards.parent().find(".gsdcDemographicsGender");

	var cGenderSelectValues = cGender.find("input[name$=':HdnPicklistValues']");
	var cGenderSelectList = cGender.find("select[name$=':MultiPicklist']");
	var cGenderInput = cGender.find("div > input[type='text']");
	var cGenderInputLbl = cGenderInput.closest("div.form-group").find("label");
	cGenderSelectList.on("click change blur keyup", function() {
		setupMyDemographicsPageEvalGender(cGenderSelectValues, cGenderInput, cGenderInputLbl);
	});
	setupMyDemographicsPageEvalGender(cGenderSelectValues, cGenderInput, cGenderInputLbl);
	cGender.show();

	//set up the race card
	var cRace = cards.parent().find(".gsdcDemographicsRace");
	var cRaceSelectValues = cRace.find("input[name$=':HdnPicklistValues']");
	var cRaceSelectList = cRace.find("select[name$=':MultiPicklist']");
	var cRaceInput = cRace.find("div > input[type='text']");
	var cRaceInputLbl = cRaceInput.closest("div.form-group").find("label");
	cRaceSelectList.on("click change blur keyup", function() {
		setupMyDemographicsPageEvalRace(cRaceSelectValues, cRaceInput, cRaceInputLbl);
	});
	setupMyDemographicsPageEvalRace(cRaceSelectValues, cRaceInput, cRaceInputLbl);
	cRace.show();
	
	//set up the sexuality card
	var cSexuality = cards.parent().find(".gsdcDemographicsSexuality");
	var cSexualitySelectValues = cSexuality.find("input[name$=':HdnPicklistValues']");
	var cSexualitySelectList = cSexuality.find("select[name$=':MultiPicklist']");
	var cSexualityInput = cSexuality.find("div > input[type='text']");
	var cSexualityInputLbl = cSexualityInput.closest("div.form-group").find("label");
	cSexualitySelectList.on("click change blur keyup", function() {
		setupMyDemographicsPageEvalSexuality(cSexualitySelectValues, cSexualityInput, cSexualityInputLbl);
	});
	setupMyDemographicsPageEvalSexuality(cSexualitySelectValues, cSexualityInput, cSexualityInputLbl);
	cSexuality.show();

	//set up the personal card
	var cPersonal = cards.parent().find(".gsdcDemographicsPersonal");
	// var cPersonalInput = cPersonal.find("input[type='text']");
	// cPersonalInput.val(cPersonalInput.val().replace(",", ""));
	cPersonal.show();
	
	// //set up birth year validation
	// var mainform = cPersonal.closest("form");
	// setupMyDemographicsPageValidateBirthYear(mainform, cPersonalInput);
}

function setupMyDemographicsPageEvalGender(cGenderSelectValues, cGenderInput, cGenderInputLbl) {
	//Rules: 
	//	Hide the "Gender Other" field and label
	//	Only show the "Gender Other" field if the Gender select equals "Personally defined:"
	var keyValue = "Personally defined:";
	var keyValueSelected = (cGenderSelectValues.val().indexOf(keyValue) >= 0);
	
	if (keyValueSelected === true) {
		cGenderInput.show();
		cGenderInputLbl.show();
	} else {
		cGenderInput.hide();
		cGenderInput.val("");
		cGenderInputLbl.hide();

	}
}

function setupMyDemographicsPageEvalRace(cRaceSelectValues, cRaceInput, cRaceInputLbl) {
	//Rules: 
	//	Hide the "Other Ethnicity" field and label
	//	Only show the "Other Ethnicity" field if the Ethnicity select contains "Another race:"
	var keyValue = "Another race:";
	var keyValueSelected = (cRaceSelectValues.val().indexOf(keyValue) >= 0);
	
	if (keyValueSelected === true) {
		cRaceInput.show();
		cRaceInputLbl.show();
	} else {
		cRaceInput.hide();
		cRaceInput.val("");
		cRaceInputLbl.hide();
	}
}

function setupMyDemographicsPageEvalSexuality(cSexualitySelectValues, cSexualityInput, cSexualityInputLbl) {
	//Rules: 
	//	Hide the "Other Sexuality" field and label
	//	Only show the "Other Sexuality" field if the Sexuality select contains "Personally defined:"
	var keyValue = "Personally defined:";
	var keyValueSelected = (cSexualitySelectValues.val().indexOf(keyValue) >= 0);
	
	if (keyValueSelected === true) {
		cSexualityInput.show();
		cSexualityInputLbl.show();
	} else {
		cSexualityInput.hide();
		cSexualityInput.val("");
		cSexualityInputLbl.hide();
	}
}

/* CUSTOM SCRIPT FOR THE /edit-my-profile PAGE */
function setupEditMyProfilePage() {
	//setTimeout(function() { $(".gsdemographicscard").show(); }, 10000);
	
	//get the cards
	var cards = $(".gsdemographicscard");

	//set up the pronouns card
	var cPronouns = cards.parent().find(".gsdcDemographicsPronouns");
	var cPronounsInput = cPronouns.find("input[type='text']");
	var cPronounsInputLbl = cPronounsInput.closest("div.form-group").find("label");
	var cPronounsCb = cPronouns.find("input[type='checkbox']");
	var cPronounsCbLbl = cPronounsCb.closest("div.form-group").find("label");
	cPronounsCbLbl.find("span").text("I do not use pronouns. Please use only my name.");
	cPronounsInput.on("keyup click blur", function() {
		setupMyDemographicsPageEvalPronouns(cPronounsInput, cPronounsInputLbl, cPronounsCb, cPronounsCbLbl);
	});
	cPronounsCb.on("keyup click blur", function() {
		setupMyDemographicsPageEvalPronouns(cPronounsInput, cPronounsInputLbl, cPronounsCb, cPronounsCbLbl);
	});
	setupMyDemographicsPageEvalPronouns(cPronounsInput, cPronounsInputLbl, cPronounsCb, cPronounsCbLbl);
	cPronouns.show();
}
	

function setupMyDemographicsPageEvalPronouns(cPronounsInput, cPronounsInputLbl, cPronounsCb, cPronounsCbLbl) {
	//Rules:
	//	If "use name" checkbox is checked 
	//		Hide pronoun text 
	//		Clear pronoun text fld
	//	else
	//		If text field is empty value
	//			show checkbox
	//		else
	//			hide checkbox 
    if (cPronounsCb.is(':checked')) {
      cPronounsInputLbl.hide();
      cPronounsInput.hide();
	  cPronounsInput.val("");
    }
    else if (!cPronounsCb.is(':checked')) {
      cPronounsInputLbl.show();
      cPronounsInput.show();
      if ((cPronounsInput.val()+'')=='') {
        cPronounsCbLbl.show();
        cPronounsCb.show();
      }
      else if ((cPronounsInput.val()+'')!='') {
        cPronounsCbLbl.hide();
        cPronounsCb.hide();
      }
    }
}

function setupMyDemographicsPageValidateBirthYear(form, birthYearInput) {
	var submitBtn = form.find("input[type='submit']");
	submitBtn.on("click", function(e) {
		var val = birthYearInput.val();
		if ((val + "").length > 0) {
			var regex = /^\d{4}$/g;
			if (val.match(regex) == null) {
				var existingErroMsg = birthYearInput.parent().find("div.errorMsg");
				if (existingErroMsg.length > 0) {
					existingErroMsg.fadeIn();
				} else {
					birthYearInput.parent()
						.append("<div class='errorMsg'><strong>Error:</strong> Invalid birth year</div>");
				}    
				$([document.documentElement, document.body]).animate({
					scrollTop: birthYearInput.offset().top - 50
				}, 500);
				e.preventDefault(e);
				return false;
			}
		}
		submitBtn[0].submit();
	});
}

/***********************************************/

