
//  Real file name = drugListU.html
// GLOBALS
//var canCompareSets = false;
var windowVis = 'drugs';
//var bigWindowPrev = 'drugListSpan';
var keyHandlerStatus = true;
var disabled = false;
document.onkeypress = keyhandler;
//var TMenu_path_to_files = '/ddiD/menu_files/';
var logInDone = false;
//var resultPageValid = false;
var theDrugSet = null;
var compareType;
var showAlgo = '';
var globals = null;

// ------------------------------------------- INCRIMENTAL ADDITION OF JAVASCRIPT ----------------------------------------------------------------
function include(src)
{
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = src;
    document.getElementsByTagName('head')[0].appendChild(script);
    return true;
  }
// ------------------------------------------- END INCRIMENTAL ADDITION OF JAVASCRIPT ----------------------------------------------------------------
    
function init()    // When page first displays
{
//	Loadd = 1;
	if(navigator.userAgent.match(/Safari/i))
    {
         alert("On a Macintosh computer you need to use the FireFox browser which can be downloaded free from: http://www.mozilla.com/en-US/firefox/");
    }

	globals = new globalObj(null,false);
	setToScreen();
    createXMLHttpRequest();
    var cdH = document.getElementById('chosenList');
	var introScreen = 'show';
	if(cookiesEnabled())
		introScreen = getCookie('introScreen');
    if(introScreen != 'skip')
    {
        select_1(26);
        keyHandlerStatus = true;
    }
    locateServer();
//	alert('handlers');
    eventHandlers();
/*------------ SAVE FOR FUTURE VERSIONS -----------------------------------------	*/
	if(getCookie('updateBox9-23') != 'skip')
		updateMessage();
 /*-------------------------------------------------------------------------------- */
    if(cookiesEnabled() && getCookie('loginPreference') != 'yes')
    {
        var email = getCookie('email');
        if(email)
        {
            document.getElementById('email').value = email;
            thisstuff= getCookie('new');
            document.getElementById('password').value = thisstuff;
            document.getElementById('saveLoginInfo').checked = false;
        }
    }
    else if(cookiesEnabled() && getCookie('loginPreference') == 'yes')
    {
        document.getElementById('saveLoginInfo').checked= false;
    }
    document.getElementById('email').focus();   
    windowVis = 'drugs';
	var showMenu = true;
	if(exTask != 'none')
	{
        switch(exTask)
		{
			case 'guest':
				setupGuest();
				break;
			case 'tour':
				setupTour();
				break;
			case 'dnaTest':
				dnaTestFcnt();
				break;
			case 'HealthVaultHelp':
				select_1(43);
				break;
			case 'HealthVaultPrivacy':
				select_1(18);
				break;
			case 'HealthVaultRecordFailed':
				select_1(44);
				break;
			case 'tourForHV':
				tourForHV();
				break;	
			case 'medDem':
				showMenu = false;
				directRegistr(47);
		//	alert(34591);
				select_1(47);
				break;	
			case 'toActivDNASubscr':
				showMenu = false;
				directRegistr(48);
			//	select_1(48);
				break;	
		}
	}
//	alert('trigger next');
//	Trigger.onload=Go;
	if(showMenu)
		Go();
}

function directRegistr(n)
{
//	alert('12121212');
//	document.getElementById('bMenu').style.display='none'; 
	document.getElementById('loginDiv').className= 'hideIt';
	document.getElementById('mainDiv').className= 'hideIt';
	document.getElementById('regDiv').className= 'showIt';
//	document.getElementById('gmxMenu').className= 'hideIt';
	select_1(n);
}


function globalObj(a,b,c)
{
	this.ptDrugList = a;
	this.hvMember = b;
	this.intoPageNewHVUser = c;
		
}

function postLogIn()
{
   var curiousBox = getCookie('curiousBox');
    if(curiousBox.length == 0) // if actually no cookie exists
        curiousBox = 1;
    curiousDisplay(curiousBox);
    if(curiousBox == 0)
 	   document.getElementById('curiousCheckBox').checked= false;
	else
		document.getElementById('curiousCheckBox').checked= true;
}




function dnaTestFcnt()
{
	select_1(39);
}


function setupTour()  // Called by setup()
{
	var url = serverAddress + 'registration/registAjax.php?task=logInTour&guestID=1000'; // Global
//	alert(url);
	sendAjax(url);
}


function setupTourSub()  // Called by callback function when logInTour returns
{
	iframeDoc = getIFrameDoc('guestIFr');
	iframeDoc.location.replace(serverAddress + 'tour.html'); 
	url = serverAddress +  'ptData.php?task=getAll&session=' + sessionNumber + '&examples=yes';
	sendAjax(url);
	makeVisible('drugLists');
	document.getElementById("guestIFr").className="showIt";
}

function setupTour_3()
{
	document.getElementById('selectRecord').selectedIndex = 1;
	openRecord();
}

function setupGuest()
{
	var drAr = email_drugList.split(",");   //  This is a quest user who opened GeneMedRx using email link sent by subscriber
	var url = serverAddress + 'sendEmail.php?task=logInGuest&guestID=' + guestID;   // Global
	sendAjax(url);
	for( i in drAr)
	{
		var smAr = drAr[i].split("^");
		addToList(smAr[1],smAr[0]);
	}
	makeVisible('drugLists');   // Prevents intro screen from showing.
	document.getElementById("guestIFr").className="showIt";
}



//   ------------ Genes Coming in -------------------

function displayGenesSentIn()
{
	if(geneArray.length)
	{
		if(geneArray[0] == 'skip'){
			return;
		}
		for(i in geneArray){
			var data = geneArray[i].split('|');
			var cdH = document.getElementById('chosenList');
			var num = '0-' + data[0];
			cdH.options[i] = new Option(data[1],num);
		}
		alert('Your genotype information has been placed in the Selected Items list. Now you can add the drugs you take.');
	}
/*	else
	{
		confirm('No genotype information found. Check to be sure the name, DOB and password were entered as they appeard in the laboratory report.');
		document.getElementById('addButton').disabled = true;
		disabled = true;
	}

	if(dnaUserNames)
	{
	alert('hello from dnaUserNames');
		dnaUserNames.namesAr;
//		geneArray = getKeyValue('genes',resp);
		toBox = document.getElementById("selectRecord");
		var c = toBox.options.length;
			//		var datPair = encryptedNamesArray[i_encr].split('^');
			//		var encrName = datPair[0].replace(/ /g,'+');
			alert(name);
					var encrName = name.replace(/ /g,'+');
					name = secureDecrypt(encrName,'kgH4C00PaD38Gbu');
					if(name.length > 2)
					{
						toBox.options[c] = new Option(name,genesAr);
						alert('added at : ' + c + ' ' + name + 'dnaUser');
					}
	}
*/		    
}


//-------------------------------------------------------EVENT HANDLERS ---------------------------------------------------------------------------
function eventHandlers()
{
    setupEvent('logInButton',logIn);
    setupEvent('logOutButton',logOut);
}

function procEvent(e) {
    var targ;
    if (!e){ 
        e = window.event;
    }
    if (e.target){
        targ = e.target;
    }
    else if (e.srcElement){
         targ = e.srcElement;
    }
    if (targ.nodeType == 3){ // defeat Safari bug
        targ = targ.parentNode;
    }
    return targ.src;
}

function setupEvent(id,funct,gotoX)  // params: id of event source, function to run and (optional) the value of the src and target attributes 
{
    var obj = document.getElementById(id);
    obj.onclick = funct;
    if(gotoX){
	alert('set onclick');
        obj.setAttribute("target", gotoX);
        obj.setAttribute("src",gotoX);   // Microsoft way
    }
}

//-------------------------------------------------------END EVENT HANDLERS ------------------------------------------------------------------------


function findItem(object)  //,iFrame,select)
{
//alert(cdH.length);
    var letters = object.value;
    var theSelect = 'drugSelect';
    var doc = getIFrameDoc('iFrame0');
    if(object.id == 'initLetBox2')
    {
        doc = getIFrameDoc('largeFrame');
        theSelect = 'lookMoreSelect';
    }
    var select;
    // MIKE - this was giving some errors so I'm doing a check to make sure 'letters' really exits
    if (!letters){
        return;
    }
    var dr = letters.toLowerCase();
    if(!dr){
        return;
    }
    var cdH = doc.getElementById(theSelect); //'drugSelect'); //select);
    for(d=0;d<cdH.length;d++)
    {
        var lst =  cdH.options[d].text.toLowerCase();
        if( dr <= lst)
        {
            cdH.selectedIndex = d;
            break;
        }
    }
}

function keyhandler(e)
{
//  alert(e.which);
    if(!keyHandlerStatus)
    {
//      alert('returning');
        return;
    }
     var browserName=navigator.appName;
     if (browserName=="Microsoft Internet Explorer")
    {
        key = window.event.keyCode;
    }
    else
    {
        key = e.which;
    }
    if(key == 13)
    {
        if(!logInDone){
          logIn();   //
          return false;  // Keeps return from calling Alt Names when Enter is hit.
        }
        else
        {       
            getSelLine();
            return false;   // Keeps return from performaing delete if delete button is highlighted when Enter is hit.
        }
    }
/*    if(key==32)
    {
        sendSearch();
		return;
    }
	*/
    if(key== 126)
    {
        password = prompt("Please enter the specific developer password for what you want.","");
        document.getElementById("server").value = serverLocation;
        switch(password)
		{
			case 'pr2':
				document.getElementById("task").value = "reprocessDB";
				document.getElementById("sessionNumber").value = sessionNumber;
				document.getElementById('form1').action = prologEngine;
				cdH = document.getElementById("form1");
				cdH.submit();
				break;
   			case 'pr3':		
				document.getElementById("task").value = "reprocessDB_2";
				document.getElementById("sessionNumber").value = sessionNumber;
				cdH = document.getElementById("form1");
				cdH.submit();
				break;
  			case 'test':
				var testAd = serverAddress + "testSet/testSet.html";
				document.open(testAd,"","height=700, width=1000, resizable=yes, toolbar=yes");
				break;           
 			case 'algo':
				if(showAlgo == '')
				{
					showAlgo = '&showAlgo=yes';
					theDrugSet = null;
				}
				else
				{				
					showAlgo = '';
					alert('Algo reporting off');
				}
				break;
  			case 'debug':
				document.getElementById("debugDiv").className= "showIt";
				alert("The debug window is showing at the bottom of the page.");
				break;           
				
		}
    }
}


function getSelLine()
{
    
    var doc = getIFrameDoc('iFrame0');
//07-03-11  var cdH = doc.getElementById(select);
    var cdH = doc.getElementById('drugSelect');
    index = cdH.selectedIndex;
	if(index != -1){
    	addToList(cdH.options[index].text,cdH.options[index].value);
    	theDrugSet = null;
	} 

}


function switchTo(file,curWindow)
{
    var iframeDoc = getIFrameDoc('iFrame0');
    iframeDoc.location.replace(file);
    windowVis = curWindow;
    var drf = document.getElementById("initLetBox");
    drf.value = "";
    drf.focus();
}

function checkSelections()
{
        if(document.getElementById('chosenList').selectedIndex == -1)
        {
            alert("You need to select one or more drugs in the 'Drugs Selected' box in order to make this kind of search. To select multiple drugs hold down the control key while clicking the drug names.");
            return true;
        }
}
function sendSearch()
{
	keyHandlerStatus = false;
	if(!checkLogIn()){
		return;
	}
    var drgList = makeDrugList();
    if(drgList == 0)
        return;
		
    if(theDrugSet == drgList)
    {
        makeVisible('searchResults');
        return;
    }
    else
    {
        makeVisible('gettingResultsPage');
        theDrugSet = drgList;
    }
/*    // FOR STUDY -----------------------------------
	var study = 'no';
    if(study == 'yes'){
        document.getElementById("study").value="yes";
    }
    if(study == 'no'){
        document.getElementById("study").value="no";
    }
	*/
    //-------------------------------------------------
    var minors = getCookie('skipMinorIneractions');
    if(minors != 'skip'){  // Skip details if no cookie // 09-01-15 switched - shouls show all unless elected not to.
        minors= 'show';
    }
    var url = prologEngine + '?task=regSearch&server=' + serverLocation + '&data=' + drgList + '&sessionNumber=' + sessionNumber + 
    '&destination=screen&skipMinorIneractions=' + minors + showAlgo; 
    sendAjax(url); 
}

function makeDrugList(type)
{
	if(type == 'email') // Simple list for emailed searches
	{
		var cdH = document.getElementById('chosenList');
		if(cdH.options[0].value == 'first option')
		{
			alert('You need to select at least one drug or gene.');
			return 0;
		}       
	 // At least one drug enterred.
	 	var sep = '';
		var drgList = ''; // = '[';   //'drugList([';
		for(c=0;c<cdH.options.length;c++)
		{
			var val = cdH.options[c].value;
			var txt = cdH.options[c].text;				
			drgList = drgList + sep + val + '^' + txt; 
			sep = ',';           
		}
		return drgList;
	}
	// Below: usual drgList fore prolog
    var cdH = document.getElementById('chosenList');
    if(cdH.options[0].value == 'first option')
    {
        alert('You need to select at least one drug or gene.');
        return 0;
    }       
 // At least one drug enterred.
    compareType = 'none';
    var drgList = 'drugList([';
    for(c=0;c<cdH.options.length;c++)
    {
            if(c>0){
                drgList += ',[';
            }
            else{
                drgList += '[';
            } 
        var val = cdH.options[c].value;
        var status = 'cont';
        var valAr = val.split('-');             
        switch (valAr[0])
        {
            case '1':
                status = 'start';
                compareType = 'yes';
                break;
            case '2':
                status = 'stop';
                compareType = 'yes';
                break;              
        }
                        
        drgList = drgList +'`' + val + '`';              
        var txt = cdH.options[c].text;              
        drgList = drgList + ',`' + txt  + '`:' + status;            
        drgList += ']';
    }
    drgList += '])';
    return drgList;
}

function removeSelections()
{
    chosenList.selectedIndex = -1;
}


/*
function hideWindow(fileName)
{
    if(fileName == 'ptFile4'){
        document.getElementById("saveIFrame").className="hideIt";
    }
 //   if(fileName == 'printSetup4'){
 //       document.getElementById("printIFrame").className="hideIt";
    }
	document.getElementById(fileName).className="hideIt";  // handles all others (guestIFr,recNotes)
	
}
*/
function windowShowing()
{
    return windowVis;
}

function cookiesEnabled()
{
   var cookieEnabled=(navigator.cookieEnabled)? true : false;
    if (typeof navigator.cookieEnabled=="undefined" && !cookieEnabled){ 
        document.cookie="testcookie";
        cookieEnabled=(document.cookie.indexOf("testcookie")!=-1)? true : false;
    }
    return cookieEnabled;
}
