function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}


function placeFocus() {
   if (document.forms.length > 0) {
   var field = document.forms[0];
   for (i = 0; i < field.length; i++) {
   if ((field.elements[i].type == "text") || (field.elements[i].type == "textarea")) {
   document.forms[0].elements[i].focus();
   break;
            }
         }
      }
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}


function tmenuOver(item) {  //table cell over
  if (Right(item.className, 8) != 'selected') item.className=item.className+'_over';
}

function tmenuOut(item) {  //table cell over
  if (Right(item.className, 4) == 'over') item.className=Left(item.className, item.className.length-5);
}

function suggestOver(item) {  //table cell over
  if (item.className == 'rowUnselected') 
   {
      item.className='rowOver';
   }
}

function suggestOut(item) {  //table row-cell out
  if (item.className == 'rowOver') 
   {
      item.className='rowUnselected';
   }
}

function clicked(item) {  //selects a table row
  if (item.className == 'rowSelected') 
   {
      item.className='rowUnselected';
   }
  else
   {
      item.className='rowSelected';
   }
}


function unSelectRadio(item) {  //table row-cell out
   var obj;
   obj=MM_findObj(item);
   if (obj!=null) obj.className='radioUnselected';      
}

function selectRadio(item) {  //table row-cell out
  var obj;
   obj=MM_findObj(item);
   if (obj!=null) obj.className='radioSelected';
}

function txtFocus(item) {  //
	item.className=item.className+'On';  
}

function txtBlur(item) {  //
	item.className=item.className.substr(0, item.className.length-2);
}




function show(lyr) {
	var obj;
	obj=$get(lyr);
	if (obj!=null) { 
		if (obj.style) { 
			obj.style.display="";
			}
	}
}

function hide(lyr) { 
   var obj;
	obj=$get(lyr);
	if (obj!=null) { 
		if (obj.style) { 
			obj.style.display="none";
		}
	}
	
}



var req;
var searchDiv;

function Initialize()
{
    try
    {
        req=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
        try
		{
            req=new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(oc)
        {
            req=null;
        }
    }

    if(!req&&typeof XMLHttpRequest!="undefined")
    {
        req = new XMLHttpRequest();
   }
}


function ShowList(strSearchFor, strInputName, strDivName, searchType, nextName, strMedication, strCity, strState, strPracticeName, strPhysicianLast, strPhysicianFirst, strSearchCount)
    {
		
		Initialize();	

		url="/MyRecords/getSuggestList.aspx?search="+escape(strSearchFor)+"&inputName="+escape(strInputName)+"&divName="+escape(strDivName)+"&searchType="+escape(searchType)+"&nextControl="+escape(nextName)+"&medication="+escape(strMedication)+"&city="+escape(strCity)+"&state="+escape(strState)+"&practiceName="+escape(strPracticeName)+"&physicianLast="+escape(strPhysicianLast)+"&physicianFirst="+escape(strPhysicianFirst)+"&searchCount="+escape(strSearchCount);
		
		if(req!=null)
		{
			req.onreadystatechange = ProcessList;
			req.open("GET", url, true);
			req.send(null);
		}   
}


function ProcessList()
{
   if (req.readyState == 4)
   {
      // only if "OK"
      if (req.status == 200)
      {
		   if(req.responseText=="")
         {
            hide(searchDiv);
         }
         else
         {
             MM_findObj(searchDiv).innerHTML =req.responseText;
			    show(searchDiv);
         }
      }
      else
      {
         MM_findObj(searchDiv).innerHTML= "There was a problem retrieving data:<br>"+req.statusText;
      }
   }
}

function doOnEnter(e, lnkBtnId) {
   // create DomEvent if not passed in
   var de = (e.preventDefault)?e:(new Sys.UI.DomEvent(e));
   // get key that raised event
   var keyPressed = (de.charCode)?de.charCode:de.keyCode;
   // check to see if enter key
   if (keyPressed == Sys.UI.Key.enter) {
      // prevents form submission
      de.stopPropagation();
      de.preventDefault();
      // get linkbutton
      var lnk = $get(lnkBtnId);
      // get linkbutton href
      var cmd = new String(lnk.href);
      // strip "javascript:" from href
      cmd = cmd.substr(11,cmd.length-11);
      // unescape - IE6 error
      if (cmd.indexOf('%20')>-1)
         cmd = unescape(cmd);
      // "click" linkbutton
      eval(cmd);
   }
}

function keyPressed(evt, txtID, divName, nextName, searchType, medicationID, cityID, stateID, practiceNameID, physicianLastID, physicianFirstID, strSearchCount)
{
   var strSearchFor = '';
   var strInputName = '';
   if (txtID != '')
   {
	   var objTxt = MM_findObj(txtID);
	   if (objTxt!=null)
	   {
		   strSearchFor = objTxt.value;
		   strInputName = objTxt.name;
	   }
   }
   var strMedication = '';
   if (medicationID != '')
	{
	   var objMedication = MM_findObj(medicationID);
	   if (objMedication!=null) strMedication = objMedication.value;
	}
	var strCity = '';
   if (cityID != '')
	{
	   var objCity = MM_findObj(cityID);
	   if (objCity!=null) strCity = objCity.value;
	}
	var strState = '';
   if (stateID != '')
	{
	   var objState = MM_findObj(stateID);
	   if (objState!=null) strState = objState.options[objState.selectedIndex].value;
	}
	var strPracticeName = '';
   if (practiceNameID != '')
	{
	   var objPracticeName = MM_findObj(practiceNameID);
	   if (objPracticeName!=null) strPracticeName = objPracticeName.value;
	}
	var strPhysicianLast = '';
   if (physicianLastID != '')
	{
	   var objPhysicianLast = MM_findObj(physicianLastID);
	   if (objPhysicianLast!=null) strPhysicianLast = objPhysicianLast.value;
	}
	var strPhysicianFirst = '';
   if (physicianFirstID != '')
	{
	   var objPhysicianFirst = MM_findObj(physicianFirstID);
	   if (objPhysicianFirst!=null) strPhysicianFirst = objPhysicianFirst.value;
	}

   searchDiv = divName;

   var theKey;
   if (evt.keyCode)
	{
	   theKey = evt.keyCode;
	}
	else
   {
	   theKey = evt.which;
   }
   switch (theKey) 
   {
      case 16: //shift
      case 17: //ctrl
      case 18: //alt
      case 19: //break
      case 20: //capslck
      case 27: //escape
      case 33: //page up
      case 34: //page down
      case 35: //end
      case 36: //home
      case 37: //l arrow      
      case 39: //right arrow
      case 92: //win key
      case 93: //menu key
      case 113: //f2
      case 114: //f3
      case 115: //f4
      case 116: //f5
      case 117: //f6
      case 118: //f7
      case 119: //f8
      case 120: //f9
      case 121: //f10
      case 122: //f11
      case 123: //f12     
         //do nothing
         break;
      case 38: //up arrow
      case 49: //down arrow
         break;
      case 45: //insert
      case 46: //delete
      case 8: //backspace
         ShowList(strSearchFor, strInputName, divName, searchType, nextName, strMedication, strCity, strState, strPracticeName, strPhysicianLast, strPhysicianFirst, strSearchCount);
         break;
      case 9: //tab
         hide(divName);
         break;
	  case 13: //enter
         hide(divName);
		 if (nextName!='')
		 { MM_findObj(nextName).focus();
		 }         
         break;
      default:
         ShowList(strSearchFor, strInputName, divName, searchType, nextName, strMedication, strCity, strState, strPracticeName, strPhysicianLast, strPhysicianFirst, strSearchCount);
         //var lenBefore = txt.value.length;
		 //setSelectionRange(txt, lenBefore, txt.value.length);      
   }
}

function setSelectionRange(input, selectionStart, selectionEnd) {
  if (input.setSelectionRange) {
    input.focus();
    input.setSelectionRange(selectionStart, selectionEnd);
  }
  else if (input.createTextRange) {
    var range = input.createTextRange();
    range.collapse(true);
    range.moveEnd('character', selectionEnd);
    range.moveStart('character', selectionStart);
    range.select();
  }
}

function pause(numberMillis, com) {
        var now = new Date();
        var exitTime = now.getTime() + numberMillis;
        while (true) {
            now = new Date();
            if (now.getTime() > exitTime)
                eval(com);
        }
    }



var tmo;
var ivc;
function watchTimeout(){
   tmo = setTimeout ( showTimeout, 1800000 );
}

function hideTimeout(){
	var mpePopUp = $find('mpePopUp');
   if (mpePopUp!=null)
   {
      show('popup_modalContent');
	   hide('popup_sessionTimingOut');
	   mpePopUp.hide();
	   tmo = setTimeout ( showTimeout, 1800000 );
	   clearInterval(ivc);
	}
	else
	{
	   location.reload(true);
	}
}

function showTimeout(){
   var mpePopUp = $find('mpePopUp');
   if (mpePopUp!=null)
   {
      hide('popup_modalContent');
	   show('popup_sessionTimingOut');
	   mpePopUp.show();
	   $get('signoutcountdown').innerHTML = "90";
	   ivc = setInterval ( showCountdown, 1000 );
	   clearTimeout(tmo);
   }
   else
   {
      signOut(true);
   }
}

function showCountdown(){
   var signoutcountdown = $get('signoutcountdown');
	signoutcountdown.innerHTML = parseInt(signoutcountdown.innerHTML)-1;
	if (signoutcountdown.innerHTML=="0")
	{
	   clearInterval(ivc);
		signOut(true);
	}
}

function signOut(){
   signOut(false);
}

function signOut(timeout){
   var bln = new Boolean(timeout);
	document.location = "/signout.aspx?timeout=" + bln.toString() + "&returnurl=" + escape(document.location);
}

function setcs(item, className) { 
   var obj;
	obj=$get(item);
	if (obj!=null) { 
		if (obj.style) { 
			obj.className = className;
		}
	}
	
}


//--------------------------------  THE FOLLOWING ARE CLEARED FOR V3 RELEASE ----------

function onWSFailed(error, response, context)
{
   // no op
   var stackTrace = error.get_stackTrace();
   var message = error.get_message();
   var statusCode = error.get_statusCode();
   var exceptionType = error.get_exceptionType();
   var timedout = error.get_timedOut();

   // Display the error.    
   alert("Stack Trace: " +  stackTrace + "\n" +
      "Service Error: " + message + "\n" +
      "Status Code: " + statusCode + "\n" +
      "Exception Type: " + exceptionType + "\n" +
      "Timedout: " + timedout);
}
