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
	
	// added check for elems to avoid "obj is null" error AJK 3/11/09
	
	if (document.getElementById("mstrDrill_MainContent_t0")) {
		document.getElementById("mstrDrill_MainContent_t0").checked=false;
	}
	if (document.getElementById("mstrDrill_MainContent_t1")) {
		document.getElementById("mstrDrill_MainContent_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;
}

function resetForm() {
	
	document.forms[0].reset();
	
	for (var i=0; i < document.forms[0].elements.length; i++) {
					
		if(document.forms[0].elements[i].type == "select-one") {
			document.forms[0].elements[i].selectedIndex = 0;
		}
		if(document.forms[0].elements[i].type == "text") { 
			document.forms[0].elements[i].value = "";
		}
		if(document.forms[0].elements[i].type == "checkbox") { 
			document.forms[0].elements[i].checked = false;
		}
		if(document.forms[0].elements[i].type == "radio") { 
			document.forms[0].elements[i].checked = false;
		}
		
	}
	
}

function FollowURL(iLanguage, sURL, bReturn, sWndName, sOptions)
{
	var sPrompt;
	
	switch (iLanguage)
	{
		case 1: // iGlobalEng
			sPrompt = "This link will take you to a global section of this site maintained by AstraZeneca.\nIt may contain information that does not fall within the indications and guidelines of United States regulatory agencies.\n\nClick Cancel to return or OK to continue."
			break;
		case 2: // iThirdPartyEng
			sPrompt = "This link will take you to a site maintained by a third party who is solely responsible for its contents.\n\nAstraZeneca provides this link as a service to web site visitors. AstraZeneca is not responsible for the Privacy Policy of any third party web sites. We encourage you to read the privacy policy of every web site you visit.\n\nClick Cancel to return or OK to continue."
			break;
		case 3: // iGlobalSpan
			sPrompt = "Este enlace lo llevará a una sección mundial de este sitio mantenida por AstraZeneca.\nEste sitio puede contener información que no entra dentro de las indicaciones y guías de las agencias reglamentarias de Estados Unidos.\n\nHaga clic en Cancelar para regresar o en OK para continuar."
			break;
		case 4: //iThirdPartySpan
			sPrompt = "Este enlace lo llevará a un sitio que es mantenido por terceros, que son los únicos responsables de su contenido.\n\nAstraZeneca proporciona este enlace como un servicio a los visitantes a su sitio web. AstraZeneca no es responsable de la Política de Privacidad de sitios web de terceros. Por favor, lea la política de privacidad de cada sitio web que visite.\n\nHaga clic en Cancelar para regresar o en OK para continuar."
			break;
	}
	
	if (sWndName == null) sWndName = "opener";
	if (sOptions == null) sOptions = "";

	if(! confirm(sPrompt))
		if (bReturn) return false;
		else return;

	var externalWin = window.open(sURL, null, sOptions);
	if (externalWin.opener == null)
		externalWin.opener = window;
	externalWin.opener.name = sWndName;
	if (bReturn) return true;
/*
	if (confirm(sPrompt))
  	{
		if (sURL != null) window.open(sURL, sWndName, sOptions);
		if (bReturn) return true;
	}
	else	
	{
		if (bReturn) return false;
	}
*/
}
