var request;
var queryString;
var paramDrug;
var paramLocation;
var paramHealthPlan;
var paramType;

paramDrug = "drug"
paramLocation = "location"
paramType = "type"
paramHealthPlan = "plan"


function httpRequest(reqType, url, asynch)
{
	//Mozilla base browsers
	if(window.XMLHttpRequest){
		request = new XMLHttpRequest();
	// IE browsers
	}else if ( window.ActiveXObject ){
		request = new ActiveXObject("Msxml2.XMLHTTP");
		if( !request) {
			request = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}

	if( request ){
		initReq(reqType,url,asynch);
	}else{
		alert("Your browser does not permit the use of all of this application's features");
	}
}

function initReq(reqType,url,isAsynch)
{
	request.onreadystatechange = handleResponse;
	request.open(reqType,url,isAsynch);
	request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
	request.send(queryString);
}

function setQueryString()
{
	queryString = "";
	var form = document.forms[0];
	var numberElements = form.elements.length;
	var sepString = "";

	
//TODO :: ENSURE DRUG IS SELECTED

	for (var i=0; i < numberElements; i++){
		if( form.elements[i].name != "__VIEWSTATE")
		{
			ele = form.elements[i];			
			
			if( ( ele.type == "radio" || ele.type == "checkbox") && ele.checked == true ){
				queryString += sepString + form.elements[i].name+"="+encodeURIComponent(form.elements[i].value);
				sepString = "&";
			}			
			
			if( ele.type.indexOf("select") == 0 ){
				queryString += sepString + form.elements[i].name+"="+encodeURIComponent(form.elements[i].value);
				sepString = "&";
			}			
			
		}
	}
	 
}


function sendData(url)
{
	// hides popup definition window, from formlary_popup.js
	hideFormularyDef();
	
	setQueryString();	
	
	httpRequest("POST", url, true);
	
	var divID;
	divID = determineProgress();
	
	setInnerHTML(divID+"Data", "<span class='loadStyle'>Loading data...</span>")
	
	
}

function handleResponse()
{
	if(request.readyState == 4){
		if(request.status == 200){			
			displayData();
		}else{			
			alert("A problem occured when attempting to communicate with the server. Error code: " + request.status);			
			var divID;
			divID = determineProgress();
			setInnerHTML(divID+"Data", "")
		}
	}
}


function displayData()
{
	var divID;
	divID = determineProgress();
	showDiv(divID);
	setInnerHTML(divID+"Data", request.responseText);
 
	if(divID == "step4") {

		// If we are on the last step, populate the printable version divs		
		var elemPrintTier1 = document.getElementById("tier1PrintDiv");
		var elemPrintTier2 = document.getElementById("tier2PrintDiv");
		var elemPrintTier3 = document.getElementById("tier3PrintDiv");
		var elemPrintTier4 = document.getElementById("tier4PrintDiv");
		var elemPrintTier5 = document.getElementById("tier5PrintDiv");
		var elemPrintTier6 = document.getElementById("tier6PrintDiv");
		
		elemPrintTier1.innerHTML = ""
		elemPrintTier2.innerHTML = ""
		elemPrintTier3.innerHTML = ""
		elemPrintTier4.innerHTML = ""
		elemPrintTier5.innerHTML = ""
		elemPrintTier6.innerHTML = ""
		
		var elemTier1 = document.getElementById("tier1Div");		
		elemPrintTier1.innerHTML = elemTier1.innerHTML;	 
		
		var elemTier2 = document.getElementById("tier2Div");
		if (elemTier2 != undefined) {			
			elemPrintTier2.innerHTML = elemTier2.innerHTML;
		}

		var elemTier3 = document.getElementById("tier3Div");
		if (elemTier3 != undefined) {			
			elemPrintTier3.innerHTML = elemTier3.innerHTML;
		}
		var elemTier4 = document.getElementById("tier4Div");
		if (elemTier4 != undefined) {			
			elemPrintTier4.innerHTML = elemTier4.innerHTML;
		}
		var elemTier5 = document.getElementById("tier5Div");
		if (elemTier5 != undefined) {			
			elemPrintTier5.innerHTML = elemTier5.innerHTML;
		}
		var elemTier6 = document.getElementById("tier6Div");
		if (elemTier6 != undefined) {			
			elemPrintTier6.innerHTML = elemTier6.innerHTML;
		}
		
		// Start the function to allow the popup definitions
		startFormularyDefs();
	}
}

function showDiv(divID)
{
	if( document.getElementById ){
		ele = document.getElementById(divID);
		ele.style.display = "block";
	}
}

function hideDiv(divID)
{
	if( document.getElementById ){
		ele = document.getElementById(divID);
		ele.style.display = "none";
	}
}

function setInnerHTML(divID, value)
{
	
	if( document.getElementById ){
		ele = document.getElementById(divID);
		ele.innerHTML = value;
	}
}

function determineProgress()
{
	if( (queryString.indexOf(paramLocation) >= 0) && (queryString.indexOf(paramType) >= 0) && (queryString.indexOf(paramHealthPlan) >=0) ){
		return "step4"
	}else if( (queryString.indexOf(paramType) >= 0) && (queryString.indexOf(paramLocation) >= 0)){
		
		return "step3";
	//}else if( queryString.indexOf(paramLocation) >= 0 ){
	//	return "step3";
	}else{
		return "step2";
	}
}


function selectDropDown()
{		
	setInnerHTML("step2Data", "");
	setInnerHTML("step3Data", "");
	setInnerHTML("step4Data", "");
	sendData("fetchHealthPlans.aspx");
}

function selectTypeRadio(myID)
{
	setInnerHTML("step3Data", "");
	setInnerHTML("step4Data", "");
	sendData("fetchHealthPlans.aspx")
}

function selectRadio(myID)
{		
	setInnerHTML("step3Data", "");
	setInnerHTML("step4Data", "");
	document.getElementById("healthplanradio").style.visibility="visible"
		
	// reset the radio buttons if they change the state halfway through filling out the tool JMP
	document.getElementById("t0").checked=false;
	document.getElementById("t1").checked=false;
}

function selectCheckBox(myID) 
{	

	var form = document.forms[0];
	var numberElements = form.elements.length;
	var selectedCount = 0;
	
	for (var i=0; i < numberElements; i++){
		if( form.elements[i].name != "__VIEWSTATE")
		{
			ele = form.elements[i];			
			 
			if( ( ele.type == "checkbox") && ele.checked == true ){				
				var elemCurrent = ele;
				selectedCount += 1			
			}			
		
		}
	}
	
	if (selectedCount <= 6) {
		setInnerHTML("step4Data", "");
		if (selectedCount >= 1) {
			sendData("fetchHealthPlans.aspx")
		}
		//gets rid of extra boxes when less the 6 items are selected JMP5/15/07
		if(selectedCount == 1){
			document.getElementById('box2').style.visibility='hidden';
			document.getElementById('box3').style.visibility='hidden';
			document.getElementById('box4').style.visibility='hidden';
			document.getElementById('box5').style.visibility='hidden';
			document.getElementById('box6').style.visibility='hidden';
		}
		if(selectedCount == 2){
			document.getElementById('box2').style.visibility='visible';
			document.getElementById('box3').style.visibility='hidden';
			document.getElementById('box4').style.visibility='hidden';
			document.getElementById('box5').style.visibility='hidden';
			document.getElementById('box6').style.visibility='hidden';
		}
		if(selectedCount == 3){
			document.getElementById('box2').style.visibility='visible';
			document.getElementById('box3').style.visibility='visible';
			document.getElementById('box4').style.visibility='hidden';
			document.getElementById('box5').style.visibility='hidden';
			document.getElementById('box6').style.visibility='hidden';
		}	
		if(selectedCount == 4){
			document.getElementById('box2').style.visibility='visible';
			document.getElementById('box3').style.visibility='visible';
			document.getElementById('box4').style.visibility='visible';
			document.getElementById('box5').style.visibility='hidden';
			document.getElementById('box6').style.visibility='hidden';
		}	
		if(selectedCount == 5){
			document.getElementById('box2').style.visibility='visible';
			document.getElementById('box3').style.visibility='visible';
			document.getElementById('box4').style.visibility='visible';
			document.getElementById('box5').style.visibility='visible';
			document.getElementById('box6').style.visibility='hidden';
		}	
		if(selectedCount == 6){
			document.getElementById('box2').style.visibility='visible';
			document.getElementById('box3').style.visibility='visible';
			document.getElementById('box4').style.visibility='visible';
			document.getElementById('box5').style.visibility='visible';
			document.getElementById('box6').style.visibility='visible';
		}	
		 
	} else {
		
		alert("Please select no more than six (6) health plans.");		
		document.getElementById(myID.id).checked = false;
		
		 
	}
}

function resetFormularyForm() 
{	
	hideFormularyDef();
	setInnerHTML("step3Data", "");
	setInnerHTML("step4Data", "");
	setInnerHTML("step4Data", "");
	resetForm();
}

function openPrint() 
{
	hideFormularyDef();
	var elem = document.getElementById("step4Data");
	if (elem.innerHTML != "") {
		print();
	} else {
		alert("There are no results to print. \nPlease fill out the form to choose which tier(s) you would like information about.");
	}
}

 
// Fix arrow graphic positions for safari 
var strUserAgent = navigator.userAgent;			
if (strUserAgent.indexOf("Safari") != -1) {		
	var strArrowTop = "137px";			
	var elemFrmArrow1 = document.getElementById("frmArrow1");
	elemFrmArrow1.style.top = strArrowTop;			
	var elemFrmArrow2 = document.getElementById("frmArrow2");
	elemFrmArrow2.style.top = strArrowTop;
}

