var xmlHttp;
createXMLHttpRequest = function (){
	try{
		if (typeof XMLHttpRequest != "undefined"){
			xmlHttp = new XMLHttpRequest();
		}
		else if (window.ActiveXObject){
			try{
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e){
				xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
			}
		}
	}
	catch(oError){
		throw new Error("XMLHttp object could not be created");
	}
}

window.onload = createXMLHttpRequest;

function getDrugs(e,drugInput,searchList){
	var quarter = document.getElementById("ddlQuarter").options[document.getElementById("ddlQuarter").selectedIndex].value;
	var resultList = document.getElementById(searchList);
	searchTerm = document.getElementById(drugInput).value;
	
	switch(e.keyCode){
		case 13:
			selectItem(drugInput,searchList);
		case 38:
			if(resultList.childNodes.length>0){
				selectItemUp(drugInput,searchList);}
		break;
		case 40:
			if(resultList.childNodes.length>0){
				selectItemDown(drugInput,searchList);}
		break;
		default:
			if(searchTerm.length > 2){
				resultList.activeIndex = -1;
				resultList.innerHTML = "<li>Retrieving drug matches...</li>";
				resultList.style.display='block';
				
							
				if(xmlHttp)
				{
					var searchType, qryString;
					if(drugInput=='txtDrug'){ 
						searchType = 'ps';
						qryString = 'quarter=' + quarter + '&searchTerm=' + searchTerm;
					}
					else{
						searchType = 'alternate';
						qryString = 'quarter=' + quarter +  '&searchTerm=' + searchTerm + '&psdrug=' + document.getElementById('txtDrug').value.replace(' ','');	
					}
											
					xmlHttp.open("GET","components/ajaxhandler.aspx?rpt=" + searchType + "&" + qryString,true);

					xmlHttp.onreadystatechange = function(){
						if(xmlHttp.readyState == 4){
							// Success
							if(xmlHttp.status == 200 || xmlHttp.status == 304){
								//alert(xmlHttp.getAllResponseHeaders());
								var xmlDoc;
								var items = new Array();
								if(xmlHttp.responseXML != null){
									xmlDoc = xmlHttp.responseXML.documentElement;
								}
								
								if(xmlDoc != null){
								
									items = xmlDoc.getElementsByTagName("DRUGNAME");

									//show hide list based on item count
									resultList.innerHTML = "";
									if(items.length>0){ 
										resultList.style.display="block";
									}
									else{resultList.style.display="none";}
									
									//load list
									for(i=0;i<items.length;i++){
										var newAnchor = document.createElement('a');
										curDrug = items[i].childNodes[0].nodeValue;
										newAnchor.innerHTML = curDrug;
										newAnchor.href="javascript:;";
										newAnchor.onclick = function(){
											document.getElementById(drugInput).value = this.innerHTML;
											resultList.style.display='none';
										}
										
										var newListItem = document.createElement('li');
										newListItem.appendChild(newAnchor);
										resultList.appendChild(newListItem);
									}
								}
								
								//if(items.length==0){resultList.innerHTML="";}
							}
							else{
								var fault = xmlHttp.responseText;
								document.write("Error Occurred! \n\n" + fault);
							}
						}
					}
				
					//Execute the request
					xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
					xmlHttp.send(null);
				}
				
				if(resultList.childNodes[0] == null){
					resultList.innerHTML = "";
					resultList.style.display='none';
				}
				
			}
			else{
				resultList.style.display='none';
			}
		break;
	}
}

function selectItemDown(drugInput,searchList){
	var autocomplete = document.getElementById(searchList);
	queryBox = document.getElementById(drugInput);
	
	if(autocomplete.style.display == "none"){
		return;
	}
	
	if(autocomplete.activeIndex < autocomplete.childNodes.length-1){
		autocomplete.activeIndex++;}
	else{
		autocomplete.activeIndex = autocomplete.childNodes.length-1;}

	if(autocomplete.activeIndex>=0){
		if(autocomplete.activeIndex>0){
			autocomplete.childNodes[autocomplete.activeIndex-1].className = "";
		}
		autocomplete.childNodes[autocomplete.activeIndex].className = "hover";
	}

	queryBox.value = autocomplete.childNodes[autocomplete.activeIndex].firstChild.innerHTML;

	//attempt to set selection range
	if(queryBox.lastValue)
	{
		if(queryBox.createTextRange)
		{
			var selection = queryBox.createTextRange();
			selection.moveStart("character", queryBox.lastValue.length);
			selection.moveEnd("character", queryBox.value.length-1);
			selection.select();
		}
		else if(queryBox.setSelectionRange){
			queryBox.setSelectionRange(queryBox.lastValue.length,queryBox.value.length);
		}
	}
}

function selectItemUp(drugInput,searchList){
	var autocomplete = document.getElementById(searchList);
	queryBox = document.getElementById(drugInput);
	
	if(autocomplete.style.display == "none")
		return;

	if(autocomplete.activeIndex > autocomplete.childNodes.length){
		autocomplete.activeIndex = autocomplete.childNodes.length;
	}
	
	if(autocomplete.activeIndex < 1)
	{
		autocomplete.activeIndex = -1;
		queryBox.value = ''; //queryBox.lastValue;//value.substring(0,queryBox.lastValue.length);
		autocomplete.childNodes[0].className = "";
		return;
	}

	autocomplete.activeIndex--;
	if(autocomplete.activeIndex < autocomplete.childNodes.length-1){
		autocomplete.childNodes[autocomplete.activeIndex+1].className = "";
		autocomplete.childNodes[autocomplete.activeIndex].className = "hover";
	}
	
	queryBox.value = autocomplete.childNodes[autocomplete.activeIndex].firstChild.innerHTML;
	
	//attempt to set selection range
	if(queryBox.lastValue)
	{
		if(queryBox.createTextRange)
		{
			var selection = queryBox.createTextRange();
			selection.moveStart("character", queryBox.lastValue.length);
			selection.moveEnd("character", queryBox.length-1);
			selection.select();
		}
		else if(queryBox.setSelectionRange)
		{
			queryBox.setSelectionRange(queryBox.lastValue.length,queryBox.value.length);
		}
	}
}

function selectItem(drugInput,searchList){
	var autocomplete = document.getElementById(searchList);
	queryBox = document.getElementById(drugInput);
		
	if(autocomplete.activeIndex >= 0){
		queryBox.value = autocomplete.childNodes[autocomplete.activeIndex].firstChild.innerHTML;
		autocomplete.style.display='none';
		return;
	}
}


function goToPage(pg,pgCt,e,curPath){
	if(e.keyCode=='13'){
		if(pg <=pgCt && pg != 0){
			window.location.href = curPath + '?Page=' + String(pg);
		}
		else{
			alert('Please enter a valid page number');
		}
	}
}

function submitForm(e){
	if(e.keyCode=='13'){
		Form1.submit();
	}
}

function toggleFormElements(){
	if(document.getElementById('txtDrug').value.length > 0){
		document.getElementById('txtDrug2').disabled=false;
		document.getElementById('txtDrug2').style.backgroundColor="#ffffff";
		document.getElementById('chkExact2').disabled=false;
		
		if(document.getElementById('txtDrug2').value.length > 0){
			document.getElementById('txtDrug3').disabled=false;
			document.getElementById('txtDrug3').style.backgroundColor="#ffffff";
			document.getElementById('chkPS').checked=true;
			document.getElementById('chkPS').disabled=true;
			document.getElementById('chkExact3').disabled=false;
			document.getElementById('rdAnd').disabled=false;
			document.getElementById('rdOr').disabled=false;
		}
		else{
			document.getElementById('txtDrug3').disabled=true;
			document.getElementById('txtDrug3').style.backgroundColor="#f2f2f2";
			document.getElementById('chkPS').disabled=false;
			document.getElementById('chkExact3').disabled=true;
			document.getElementById('rdAnd').disabled=true;
			document.getElementById('rdOr').disabled=true;
		}
	}
	else{
		document.getElementById('txtDrug2').disabled=true;
		document.getElementById('txtDrug2').style.backgroundColor="#f2f2f2";
		document.getElementById('chkExact2').disabled=true;
	}
}

function showHideLogin(aLogin){
	if(aLogin.className==''){aLogin.className='down';}
	else{ aLogin.className='';}

	var login = document.getElementById('loginbox');
	if(login.className==''){ login.className='show';}
	else{ login.className='';}
}


var PTDetails = {
	quarter : '',
	ps_drugname : '',
	ps_exact : '',
	isPs : '',
	sec_drugname : '',
	sec_exact : ''
}

function setPTDetails(){
	PTDetails.quarter = document.getElementById("hdnQtr").value;
	PTDetails.ps_drugname = document.getElementById("hdnDrug1").value;
	PTDetails.ps_exact = document.getElementById("hdnDrug1Exact").value;
	PTDetails.isPs = document.getElementById("hdnIsPs").value;
	PTDetails.sec_drugname = document.getElementById("hdnDrug2").value;
	PTDetails.sec_exact = document.getElementById("hdnDrug2Exact").value;
}

function showPTDetails(elem, pt, gender, age_group){
	//Show loader
	document.getElementById('ptdetails-loader').style.display='block';
	
	var myFrameCntnr = document.getElementById('iframe_wrapper');
	var myFrame = document.getElementById('DetailsFrame');
	setPTDetails();
	myFrameCntnr.style.display='block';
	
	version = parseFloat(navigator.appVersion.split("MSIE")[1]);
	if ((version >= 5.5) && (version < 7) && (document.body.filters)) { 
		myFrameCntnr.style.position="absolute";
	}
	else{
		myFrameCntnr.style.position="fixed";
	}
	
	var qryString = "quarter=" + PTDetails.quarter + "&ps_drugname=" + PTDetails.ps_drugname;
	qryString += "&ps_exact=" + PTDetails.ps_exact + "&isPs=" + PTDetails.isPs + "&sec_drugname=" + PTDetails.sec_drugname;
	qryString += "&sec_exact=" + PTDetails.sec_exact + "&pt=" + pt;
	qryString += "&gender=" + gender + "&age_group=" + age_group;
	
	myFrame.src = "report_details.aspx?" + qryString;
}


function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

