// JavaScript Document
function here() {
alert("alter  from external script")
}

function noenter() {
  return !(window.event && window.event.keyCode == 13); 
  }

  
function areYouSure() {
yes = confirm("Are you sure you want to reset the form")
if (yes) {
initialize()
return true}
else{return false}
}
 
function chooseRepresentative(id,congressman) {
document.getElementById("voteLabel").innerHTML = congressman
document.getElementById("withDemsLabel").innerHTML = congressman
document.getElementById("congressmanVote").name = congressman+"_vote"
document.getElementById("congressmanExVote").name = congressman+"ExVote[]"
document.getElementById("congressmanAgreement").name = congressman+"_agreement"
document.getElementById("checkDisplay10").value = congressman+"_vote"
document.getElementById("checkDisplayLabel10").innerHTML = congressman
document.getElementById("checkDisplay11").value = congressman+"_agreement"
document.getElementById("checkDisplayLabel11").innerHTML = congressman
for (var i=1; i<=3; i++) {
document.getElementById("sortByVote"+i).value = congressman+"_vote"
document.getElementById("sortByVote"+i).text = congressman+ " vote"
document.getElementById("sortByAgreement"+i).value = congressman+"_agreement"
document.getElementById("sortByAgreement"+i).text = congressman+ " agreement with Democrats"
}//for
switch (congressman) { 
	case "McHugh":
		document.getElementById("congress109").disabled = false
		break
	default:
		document.getElementById("congress109").disabled = true
		break
}//switch
}

function pickCongressNumber(id,valuex){
numberOfOptions = document.getElementById("congressNumber").length
if (valuex == "ALL"){
	for (var i=106; i<=106+numberOfOptions-2; i++) {
	document.getElementById("congress"+i).selected = true
	}//for
	document.getElementById("congressALL").selected = false
}//if
}//function
 
function datefields(x)
{
var y=document.getElementById(x).value
if (y == "From - To") {
document.getElementById("toDate").style.visibility="visible";
document.getElementById("fromDate").style.visibility="visible";
document.getElementById("fromDate").focus();
document.getElementById("toText").innerHTML ="To:";
document.getElementById("fromText").innerHTML ="From:";}
else if (y == "ALL") {
document.getElementById("toDate").style.visibility="hidden";
document.getElementById("fromDate").style.visibility="hidden";
document.getElementById("toText").innerHTML ="";
document.getElementById("fromText").innerHTML ="";
document.getElementById("toDate").value = ""
document.getElementById("fromDate").value = ""
document.getElementById("toDateISO").value = ""
document.getElementById("fromDateISO").value = ""}
else {
document.getElementById("toDate").style.visibility="hidden";
document.getElementById("fromDate").style.visibility="visible";
document.getElementById("fromDate").focus();
document.getElementById("toText").innerHTML=" ";
document.getElementById("fromText").innerHTML=" ";
document.getElementById("toDate").value = ""
document.getElementById("toDateISO").value = ""}
}

function excludeDatefields(x)
{
var y=document.getElementById(x).value
if (y == "From - To") {
document.getElementById("toExDate").style.visibility="visible";
document.getElementById("fromExDate").style.visibility="visible";
document.getElementById("fromExDate").focus();
document.getElementById("toExDateText").innerHTML ="To:";
document.getElementById("fromExDateText").innerHTML ="From:";}
else if (y == "NONE") {
document.getElementById("toExDate").style.visibility="hidden";
document.getElementById("fromExDate").style.visibility="hidden";
document.getElementById("toExDateText").innerHTML ="";
document.getElementById("fromExDateText").innerHTML ="";
document.getElementById("toExDate").value = ""
document.getElementById("fromExDate").value = ""
document.getElementById("toExDateISO").value = ""
document.getElementById("fromExDateISO").value = ""}
else {
document.getElementById("toExDate").style.visibility="hidden";
document.getElementById("fromExDate").style.visibility="visible";
document.getElementById("fromExDate").focus();
document.getElementById("toExDateText").innerHTML=" ";
document.getElementById("fromExDateText").innerHTML=" ";
document.getElementById("toExDate").value = ""
document.getElementById("toExDateISO").value = ""}
}

function checkFromNumeric(id, value) {
var numericOnly =/(\d+$)/
var blankSpace =/^\s/
var testx = Boolean(value.length)
switch (true) {
case Boolean(!value.length):
	alert("Nothing entered.")
	document.getElementById("whatRollCall").value = "ALL"
	document.getElementById("fromRC").value = ""
	document.getElementById("fromRC").style.visibility = "hidden"
	document.getElementById("toRC").style.visibility = "hidden"
	document.getElementById("toRCText").innerHTML ="";
	document.getElementById("fromRCText").innerHTML =""
	break
case blankSpace.test(value):
	alert("Entry starts with blank. Not allowed.")
	document.getElementById("whatRollCall").value = "ALL"
	document.getElementById("fromRC").value = ""
	document.getElementById("fromRC").style.visibility = "hidden"
	document.getElementById("toRC").style.visibility = "hidden"
	document.getElementById("toRCText").innerHTML ="";
	document.getElementById("fromRCText").innerHTML =""
	break
case !numericOnly.test(value):
	alert("Your entered: "+value+"\nRoll Call numbers must all be numeric.")
	document.getElementById("whatRollCall").value = "ALL"
	document.getElementById("fromRC").value = ""
	document.getElementById("fromRC").style.visibility = "hidden"
	document.getElementById("toRC").style.visibility = "hidden"
	document.getElementById("toRCText").innerHTML ="";
	document.getElementById("fromRCText").innerHTML =""
	break
}
}//function

function checkToNumeric(id, value) {
var numericOnly =/(\d+$)/
var blankSpace =/^\s/
var testx = Boolean(value.length)
switch (true) {
case Boolean(!value.length):
	alert("Nothing entered.")
	//document.getEle mentById("whatRollCall").value = "ALL"
	document.getElementById("toRC").value = ""
	//document.getElementById("fromRC").style.visibility = "hidden"
	break
case blankSpace.test(value):
	alert("Entry starts with blank. Not allowed.")
	//document.getElementById("whatRollCall").value = "ALL"
	document.getElementById("toRC").value = ""
	//document.getElementById("fromRC").style.visibility = "hidden"
	break
case !numericOnly.test(value):
	alert("Your entered: "+value+"\nRoll Call numbers must all be numeric.")
	//document.getElementById("whatRollCall").value = "ALL"
	document.getElementById("toRC").value = ""
	//document.getElementById("fromRC").style.visibility = "hidden"
	break
}
}//function

function verifyDate(datetext,id){
//var dateformat = /(((0[13578]|1[02])[- \/.](0[1-9]|[12][0-9]|3[01]))|((0[469]|1[0])[- \/.](0[1-9]|[12][0-9]|3[0]))|((0[469]|1[1])[- \/.](0[1-9]|[12][0-9]|3[0]))|((0[2])[- \/.](0[1-9]|[12][0-9])))[- \/.](19|20)\d\d/ //checks American date format

var dateformat = /(((0[13578]|1[02])[- \/.](0[1-9]|[12][0-9]|3[01]))|((0[469]|1[1])[- \/.](0[1-9]|[12][0-9]|3[0]))|((0[2])[- \/.](0[1-9]|[12][0-9])))[- \/.](19|20)\d\d/ //checks American date format
var dateFormatOK = dateformat.test(datetext)  //.test method returns T/F if match
//test code
if (dateFormatOK) 
	{
	var datePattern = /(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]((19|20)\d\d)/ // proper date format if passes above test
	datePattern.test(datetext)
	if (RegExp.$1 == "02" && RegExp.$2 == "29") 
		{
		dateFormatOK = leapYear(RegExp.$3)
		}
	}
//end test code
if (dateFormatOK) 
	{
	if (id == "toDate" | id == "toExDate") 
		{
		dateOK = verifyDateDiff(datetext,id)
			if (dateOK) 
				{
				var datePattern = /(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]((19|20)\d\d)/ // proper date format if passes above test
				document.getElementById(id+"ISO").value = datetext.replace(datePattern, "$3-$1-$2") //rearranges remembered matches in (  ) it ISO convention.  
				}
			else{
				document.getElementById(id+"ISO").value = ""
				return 
				}
		}
	else 
		{
		var datePattern = /(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]((19|20)\d\d)/ // proper date format if passes above test
		document.getElementById(id+"ISO").value = datetext.replace(datePattern, "$3-$1-$2") //rearranges remembered matches in (  ) it ISO convention.  
		}
	}
else
	{
var datePattern = /(0[1-9]|1[012])[- \/.](0[1-9]|[1-9][0-9])[- \/.]((19|20)\d\d)/ // proper date format if passes above test
	if (datePattern.test(datetext)) 
		{  
			switch (true) 
			{
			case (RegExp.$2 > 31):
				alert("No month has more than 31 days")
				break
			case (RegExp.$2 >30 && (RegExp.$1 == "04" || RegExp.$1 == "06" || RegExp.$1 == "09" || RegExp.$1 == "11")):
				alert(RegExp.$1 + " only has 30 days")
				break
			case (RegExp.$2 > 29 && RegExp.$1 == "02"):
				alert("February can only have a maximum of 29 days")
				break
			}
		document.getElementById(id+"ISO").value = ""
		document.getElementById(id).focus() 
		}
	else
		{
		alert(datetext + " is not formated properly. Should be mm/dd/yyyy")
		document.getElementById(id+"ISO").value = ""
		document.getElementById(id).focus() 
		}
	}
 }

function verifyDateDiff(toDate,id) {
xBase = id.replace(/^(to)/,"")
fromDate = document.getElementById("from"+xBase).value
fromDate1 = new Date(fromDate)
toDate1 = new Date(toDate)
diff = toDate1 - fromDate1
switch (true) {
case (diff == 0):
	alert("This is the same date as the first. Use DATE IS.")
	return false
	break
case (diff < 0):
	alert("Second date must be greater than the first date")
	return false
	break
default:
	return true
}
}

function leapYear(year) {
		if ((year%4 != 0)) {
				alert(year + " was not a leap year")
				return false
				}
		else {return true}
}

function rollCallfields(x)
{
var y=document.getElementById(x).value
if (y == "From - To") {
document.getElementById("toRC").style.visibility="visible";
document.getElementById("fromRC").style.visibility="visible";
document.getElementById("toRCText").innerHTML ="To:";
document.getElementById("fromRCText").innerHTML ="From:";
document.getElementById("fromRC").focus();
}
else if (y == "ALL") {
document.getElementById("toRC").style.visibility="hidden";
document.getElementById("fromRC").style.visibility="hidden";
document.getElementById("toRCText").innerHTML ="";
document.getElementById("fromRCText").innerHTML ="";}
else {
document.getElementById("toRC").style.visibility="hidden";
document.getElementById("fromRC").style.visibility="visible";
document.getElementById("toRCText").innerHTML=" ";
document.getElementById("fromRCText").innerHTML=" ";
document.getElementById("fromRC").focus();
}
}

function billNumberfields(x)
//fills in billNumberResponse box for user feedback
{
var y=document.getElementById(x).value
if (document.getElementById("billNumber").value == "ALL"){
	document.getElementById("billNumberText").innerHTML = "";
switch (y) {
case "ALL":
	document.getElementById("billNumberResponse").value = "ALL"
	document.getElementById("enterBillNumber").value = "";
	break
case "H R":
	document.getElementById("billNumberResponse").value = "All Bills"
	break
case "H RES":
	document.getElementById("billNumberResponse").value = "All Resolutions"
	break
case "H CON RES":
	document.getElementById("billNumberResponse").value = "All Concurrent Resolutions"
	break   }   
	}
	else {
switch (y) {
case "ALL":
	document.getElementById("billNumberResponse").value = "ALL"
	document.getElementById("enterBillNumber").value = ""
	document.getElementById("enterBillNumber").disabled = true
	document.getElementById("billNumber").value = "ALL";
	document.getElementById("billNumberText").innerHTML = ""
	break
default:
	document.getElementById("billNumberResponse").value =  document.getElementById("whatBill").value + " " + document.getElementById("enterBillNumber").value
	document.getElementById("billNumberText").innerHTML = document.getElementById("whatBill").value + "  "
 }     }
	
if (y != "ALL") {
document.getElementById("billNumber").disabled = false;
}
else {document.getElementById("billNumber").disabled = true;

}
}

function modifyBillNumberResponse(x)
{
var y=document.getElementById(x).value;
var billOption=document.getElementById("whatBill").value;
	document.getElementById("billNumberResponse").value = billOption + " " + y;  
}

function billfields(x)
{
var y=document.getElementById(x).value;
var billOption=document.getElementById("whatBill").value;
  if (y == "=") {
  	document.getElementById("billNumberResponse").value = billOption;
  	document.getElementById("enterBillNumber").disabled = false;	
	  switch (billOption) {
case "ALL":
	document.getElementById("billNumberText").innerHTML = ""
	break
case "H R":
	document.getElementById("billNumberText").innerHTML = "H R "
	break
case "H RES":
	document.getElementById("billNumberText").innerHTML = "H RES "
	break
case "H CON RES":
	document.getElementById("billNumberText").innerHTML = "H CON RES "
	break   } 
  	document.getElementById("enterBillNumber").focus();
	}
  else {
  document.getElementById("enterBillNumber").value = "";
  switch (billOption) {
case "ALL":
	document.getElementById("billNumberResponse").value = "ALL"
	break
case "H R":
	document.getElementById("billNumberResponse").value = "All Bills"
	break
case "H RES":
	document.getElementById("billNumberResponse").value = "All Resolutions"
	break
case "H CON RES":
	document.getElementById("billNumberResponse").value = "All Concurrent Resolutions"
	break   } 
  document.getElementById("enterBillNumber").disabled = true;
  document.getElementById("billNumberText").innerHTML = "";
  document.getElementById("dummy").focus();
  }
}

function typelegislationFields(id,theValue){
y = document.getElementById(id)
var txtSelectedValuesObj = document.getElementById('typeLegislationResponse');
  var selectedArray = new Array();
  var selObj = document.getElementById(id);
  var i;
  var count = 0;
  for (i=0; i<selObj.options.length; i++) {
    if (selObj.options[i].selected) {
      selectedArray[count] = selObj.options[i].value;
      count++;
    }
  }
  txtSelectedValuesObj.value = selectedArray.join("\n")
	//txtSelectedValuesObj.value = String(y).replace(/,/g , "     OR\n")

}


function sortByX(id, value) 
{
x = id.slice(-1) //stip off digit from field to use later in loops 
var setFlag = false
sort1=document.getElementById("sortBy1").value
sort2=document.getElementById("sortBy2").value
sort3=document.getElementById("sortBy3").value
if(value != "none") //value of select function
	{
		if (sort2 != "none" || sort3 != "none") //ignore intial conditions where everything is set to none
			{
		var i = 0
		for (i=2;i<=3;i++) // checks for duplicates and warns if there are. 
			{
			if (   (document.getElementById("sortBy"+ 1).value == document.getElementById("sortBy"+ i).value) || (document.getElementById("sortBy2").value == document.getElementById("sortBy3").value)   ) {
			setFlag = true
			}//if
			}//for
			if(setFlag) {
			alert("There are identical sort critera chosen.  Choose again or start over.")
			document.getElementById("sortBy"+x).value = "none"
			}
		}//if
	document.getElementById("thenByFooter"+x).style.visibility="visible"
	document.getElementById("sortOrderGroup"+x).style.visibility="visible"
	}//if
else 
	{	document.getElementById("thenByFooter"+x).style.visibility="hidden"
		document.getElementById("thenBy"+x).checked = false
		document.getElementById("sortOrderGroup"+x).style.visibility="hidden"
		document.getElementById("sortOrderASC"+x).checked = "checked" // unclear if this should be check or set to someother value
		var i = 0
		for (i=Number(x)+1;i<=3;i++){
		document.getElementById("sortBy"+i).style.visibility = "hidden"
		document.getElementById("sortBy"+i).value = "none"
		document.getElementById("thenByFooter"+i).style.visibility="hidden"
		document.getElementById("thenBy"+i).checked = false
		document.getElementById("sortOrderGroup"+i).style.visibility="hidden"
		document.getElementById("sortOrderASC"+i).checked = true // unclear if this should be check or set to someother value
		}//for
	}//else

}//function


function thenByX(id, checked) 
{
x = id.slice(-1)
switch (true)
{
case (checked && document.getElementById("sortBy1").value == "none"): 
	alert("No sort variable has been chosen")
	document.getElementById(id).checked = false
			var i = 0
		for (i=Number(x)+1;i<=3;i++){
			document.getElementById("sortBy"+i).style.visibility = "hidden"
			document.getElementById("sortBy"+i).value = "none"
			}
	break
case (checked):
	document.getElementById("sortBy"+(Number(x)+1)).style.visibility = "visible"
	document.getElementById("thenByFooter"+(Number(x)+1)).style.visibility="hidden"
	document.getElementById("sortOrderGroup"+(Number(x)+1)).style.visibility="hidden"
	break
case (!checked):
			var i = 0
			document.getElementById(id).checked = false
			for (i=Number(x)+1;i<=3;i++){
			document.getElementById("sortBy"+i).style.visibility = "hidden"
			document.getElementById("sortBy"+i).value = "none"
			document.getElementById("thenByFooter"+i).style.visibility="hidden"
			document.getElementById("thenBy"+i).checked = false
			document.getElementById("sortOrderGroup"+i).style.visibility="hidden"
			document.getElementById("sortOrderASC"+i).checked = true // unclear if this should be check or set to someother value
			}
	break
}
}

function displayAllFields(id) {
y = document.getElementById(id).checked
var numberOfCheckBoxes = 11
if (y) {
 	for (var i=1; i<=numberOfCheckBoxes; i++) {
 	document.getElementById("checkDisplay"+i).checked = true}//for
}//if
else{
	for (var i=1; i<=numberOfCheckBoxes; i++) {
 	document.getElementById("checkDisplay"+i).checked = false}//for
}//else
}//function

function initialize()
{
document.getElementById("congressman").value = "McHugh"
chooseRepresentative("dummmy",document.getElementById("congressman").value)
document.getElementById("voteLabel").innerHTML = "McHugh"
document.getElementById("withDemsLabel").innerHTML = "McHugh"
//document.getElementById("typeLegislationResponse").disabled = true;
document.getElementById("typeLegislationResponse").value ="ALL"
document.getElementById("typeLegislationResponse").disabled = true;
document.getElementById("billNumberResponse").value = "ALL";
document.getElementById("billNumberResponse").readOnly = true;
document.getElementById("billNumber").disabled = true;
document.getElementById("enterBillNumber").disabled = true;
document.getElementById("billNumberText").innerHTML = ""
document.getElementById("toDate").style.visibility="hidden";
document.getElementById("fromDate").style.visibility="hidden";
document.getElementById("toText").innerHTML ="";
document.getElementById("fromText").innerHTML ="";
document.getElementById("toExDate").style.visibility="hidden";
document.getElementById("fromExDate").style.visibility="hidden";
document.getElementById("toExDateText").innerHTML ="";
document.getElementById("fromExDateText").innerHTML ="";
document.getElementById("fromDate").value="";
document.getElementById("toDate").value="";
document.getElementById("fromExDate").value="";
document.getElementById("toExDate").value="";
document.getElementById("toRC").style.visibility="hidden";
document.getElementById("fromRC").style.visibility="hidden";
document.getElementById("toRCText").innerHTML ="";
document.getElementById("fromRCText").innerHTML ="";
document.getElementById("sortBy2").style.visibility="hidden";
document.getElementById("sortBy3").style.visibility="hidden";
document.getElementById("sortBy1").value="none";
document.getElementById("sortBy2").value="none";
document.getElementById("sortBy3").value="none";
document.getElementById("thenByFooter1").style.visibility="hidden"
document.getElementById("thenByFooter2").style.visibility="hidden"
document.getElementById("sortOrderGroup1").style.visibility="hidden"
document.getElementById("sortOrderGroup2").style.visibility="hidden"
document.getElementById("sortOrderGroup3").style.visibility="hidden"
document.getElementById("sortOrderASC1").checked = true // unclear if this should be check or set to someother value
document.getElementById("sortOrderASC2").checked = true // unclear if this should be check or set to someother value
document.getElementById("sortOrderASC3").checked = true // unclear if this should be check or set to someother value
}

