//////////////////////////////////////////////////////// KP DHTML Utilities// Description: Extends cssplib.js functionality// with browser detection, NN4 resize fix, // rollovers, and popup windows// // Critical Mass recommends the removal of comments// from web files before deploying to a live environment // in order to reduce overall file size.//////////////////////////////////////////////////////function UA(){var v = navigator.appVersion.toLowerCase(), u = navigator.userAgent.toLowerCase(), n = navigator.appName;this.mac = (v.indexOf("mac")+1);this.win = (v.indexOf("win")+1);this.nn = (n == "Netscape");this.ie = (n == "Microsoft Internet Explorer");this.aol = (u.indexOf("aol")+1);this.opera = (u.indexOf("opera")+1);this.ver = (this.ie) ? parseFloat(v.split('msie ')[1]) : parseFloat(v);this.v4 = (parseInt(v) == 4);this.os = (this.mac) ? 'mac' : (this.win) ? 'win' : navigator.platform;this.name = (this.nn) ? 'nn' : (this.ie) ? 'ie' : n;this.codeName = this.name +'_'+ parseInt(this.ver) + '_'+ this.os;}var ua = new UA();var docloaded = false;var onloadHandlers = [];function loadEvents() {  for(var i=0; i<onloadHandlers.length;i++) {    eval(onloadHandlers[i]);  }docloaded = true;}window.onload = loadEvents;var onresizeHandlers = [];function resizeEvents() { for(var i=0; i<onresizeHandlers.length;i++) {  eval(onresizeHandlers[i]);  }}window.onresize = resizeEvents;// legacy function - DO NOT CALL DIRECTLY!!function getObjByName(name,doc) {var o = 0;if(!doc) doc = document;if(doc[name]) o=doc[name];if(document.all && doc.all[name]) o=doc.all[name];  if(o){  if(!o.getElementsByTagName) o.getElementsByTagName = getElementsArray;  return o;  }if(document.layers) {  for(var i=0;i < doc.layers.length;i++){  var lyrdoc = doc.layers[i].document;  if(lyrdoc[name]) return lyrdoc[name];    if(lyrdoc.layers.length > 0) {    var o = getObjByName(name,lyrdoc);    if(o) return o;    }  }}return 0;}if(!document.getElementById) document.getElementById = getObjByName;// legacy function - DO NOT CALL DIRECTLY!!function getElementsArray(el) {  if(document.layers) {  var doc = (this == document) ? document : this.document;    switch(el) {    case 'img' : return doc.images;    case 'a' : return doc.links;    case 'div' : return doc.layers;    case 'form' : return doc.forms;    default : return 0;    }  }if(document.all) return this.all.tags(el);return 0;}if(!document.getElementsByTagName) document.getElementsByTagName = getElementsArray;if(document.layers) Layer.prototype.getElementsByTagName = getElementsArray;function swapImg() {if(!document.images) return;var args = swapImg.arguments;  for(var i=0;i < args.length;i+=2) {  var imgSrc = (args[i + 1].indexOf('[') != -1) ? eval(args[i + 1] + '.src') : args[i + 1];  if(getObjByName(args[i])) getObjByName(args[i]).src = imgSrc;  }}function handleResize(init) {if(!(ua.nn && ua.v4)) return;  if(init==true) with (navigator) {  document.pgW=innerWidth;  document.pgH=innerHeight;  onresizeHandlers[onresizeHandlers.length] = 'handleResize()';  }  else if (innerWidth!=document.pgW || innerHeight!=document.pgH) location.reload();}handleResize(true);function getWidth(width) {  if(arguments[1]) {    if(ua.mac) {    if(ua.ie && ua.v4) width += 2;    if(ua.nn) width += 17;    }    if(ua.win) {    width += 16;    if(ua.aol) width += 20;    }  }  else {    if(ua.mac) {    if(ua.ie && ua.v4) width -= 17;    }    if(ua.win) {    if(ua.aol) width += 20;    }  }return width;}function getHeight(height) {  if(arguments[1]) {    if(ua.mac) {    if(ua.ie && ua.v4) height -= 15;    }    if(ua.win) {    if(ua.aol) height += 20;    }  }  else {    if(ua.mac) {    if(ua.ie && ua.v4) height -= 15;    }    if(ua.win) {    if(ua.aol) height += 20;    }  }return height;}function winOpen() {  var a = arguments;  var n,f,s,w,h,t,l;  n = (a[1]) ? a[1] : 'child';  f = (a[6]) ? a[6].toString() : null;  s = (f && f.search(/scrollbars=(1|true)/) != -1);  w = getWidth(a[2],s);  h = getHeight(a[3],s);  t = (a[4]) ? a[4] : 0;  l = (a[5]) ? a[5] : 0;  child = window.open(a[0],n,'width='+w+',height='+h+',top='+t+',left='+l+',directories=0,'+f);  if(ua.ie) { child.location.reload(); } //this breaks in Netscape  setTimeout('child.focus()',100);  if(f && f.search(/temp=(1|true)/) != -1) window.onfocus = function(){ if(window.child) child.close(); child = null };}var remoteOpen = winOpen;var scrollOpen = winOpen;var msgWin = winOpen;function show(div){if(document.layers) getObjByName(div).visibility = 'show';else document.getElementById(div).style.visibility = 'visible';}function hide(div){if(document.layers) getObjByName(div).visibility = 'hide';else document.getElementById(div).style.visibility = 'hidden';}var request = new Object();request.getParameter = function(param) {var s = window.location.search;if(!s) return null;if(!(s.indexOf(param+'=')+1)) return null;return s.split(param+'=')[1].split('&')[0];}var globalFormObj = new Object();function getFormObj(formname) {  var formref = (ua.nn && ua.v4) ? window.document.getElementById(formname) : document.forms[formname];  return formref;}function submitForm(formname) {  var formref = getFormObj(formname);  formref.submit();  // Supress multiple clicks  if (!document.layers) {    for (i=0; i<document.links.length; i++) {      if (document.links[i].href.indexOf("submitForm('"+formname)>-1) {  	    globalFormObj.buttonObj = document.links[i];      }    }      if (globalFormObj.buttonObj) {      globalFormObj.oldButHref = globalFormObj.buttonObj.href;      globalFormObj.buttonObj.href = "#";	  setTimeout("globalFormObj.buttonObj.href = globalFormObj.oldButHref;",60000);    }  } }function resetForm(formname) {  var formref = getFormObj(formname);  formref.reset();}/////////////////////////////// submitFormSetRoP added by Cole Thompson://///////////////////////////function submitFormSetRoP(formname, regionId) {  var formref = getFormObj(formname);    // Below: formref is reference to the Struts form bean  // and formref.regionId is a handle on the method  // ActionForm.setregionId()  // formref.regionId.value='MRN' is  // equivalent to ActionForm.setregionId("MRN");  // for this to work, we need to have HTML hidden input  // for regionId field with any default/placeholder value.  formref.regionId.value=regionId;  formref.submit();}function submitFormSetParameter(formname, paramValue) {  var formref = getFormObj(formname);    //window.document.getElementById('form1').event.value = paramValue;   formref.event.value = paramValue;  formref.submit();    // Supress multiple clicks  if (!document.layers) {    for (i=0; i<document.links.length; i++) {      if (document.links[i].href.indexOf("submitFormSetParameter('"+formname)>-1) {  	    globalFormObj.buttonObj = document.links[i];      }    }      if (globalFormObj.buttonObj) {      globalFormObj.oldButHref = globalFormObj.buttonObj.href;      globalFormObj.buttonObj.href = "#";	  setTimeout("globalFormObj.buttonObj.href = globalFormObj.oldButHref;",60000);    }  }   }function submitFormSetParameterValue(formname, paramValue) {  var formref = getFormObj(formname);  formref.event.value = paramValue;  formref.submit();    // Supress multiple clicks  if (!document.layers) {    for (i=0; i<document.links.length; i++) {      if (document.links[i].href.indexOf("submitFormSetParameterValue('"+formname)>-1) {  	    globalFormObj.buttonObj = document.links[i];      }    }      if (globalFormObj.buttonObj) {      globalFormObj.oldButHref = globalFormObj.buttonObj.href;      globalFormObj.buttonObj.href = "#";	  setTimeout("globalFormObj.buttonObj.href = globalFormObj.oldButHref;",60000);    }  }     }function RObj(ea) {var LS="";var QS=new Object();var un="undefined";var f="function";var n="number";var r="string";var e1="ERROR: Index out of range in\r\nRequest.QueryString";var e2="ERROR: Wrong number of arguments or invalid property assignment\r\nRequest.QueryString";var e3="ERROR: Object doesn't support this property or method\r\nRequest.QueryString.Key"function Err(arg) {}function URID(t) {var d="";if (t) {for (var i=0; i<t.length; ++i) {var c=t.charAt(i);d+=(c=="+" ? " ":c);};};return unescape(d);}function OL(o) {var l=0;for (var i in o) {if (typeof(o[i])!=f) l++;};return l;}function AK(key) {var auk=true;for (var u in QS) {if (typeof(QS[u])!=f && u.toString().toLowerCase()==key.toLowerCase()) {auk=false;return u;}};if (auk) {QS[key]=new Object();QS[key].toString=function() {return TS(QS[key])};QS[key].Count=function() {return OL(QS[key])};QS[key].Count.toString=function() {return OL(QS[key]).toString()};QS[key].Item=function(e) {if (typeof(e)==un) return QS[key];else {if (typeof(e)==n) {var a=QS[key][Math.ceil(e)];if (typeof(a)==un) Err(e1 +"(\""+key+"\").Item("+e+")");return a;}else Err("ERROR: Expecting numeric input in\r\nRequest.QueryString(\""+key+"\").Item(\""+e+"\")");}};QS[key].Item.toString=function(e) {if (typeof(e)==un) return QS[key].toString();else {var a=QS[key][e];if (typeof(a)==un) Err(e1+"(\""+key+"\").Item("+e+")");return a.toString();};};QS[key].Key=function(e) {var t=typeof(e);if (t==r) {var a=QS[key][e];return (typeof(a)!=un && a && a.toString() ? e:"");}else Err(e3+"("+(e?e:"")+")");};QS[key].Key.toString=function() {return un};};return key}function AVTK(key, val) {if (key!="") {var key=AK(key);var l=OL(QS[key]);QS[key][l+1]=val;}}function TS(o) {var s="";for (var i in o) {var ty=typeof(o[i]);if (ty=="object") s+=TS(o[i]);else if (ty!=f) s+=o[i]+", ";};var l=s.length;if (l>1) return(s.substring(0,l-2));return (s=="" ? un:s);}function KM(k, o) {var k=k.toLowerCase();for (var u in o) {if (typeof(o[u])!=f && u.toString().toLowerCase()==k) return u;};}if (window.location && window.location.search) {LS=window.location.search;var l=LS.length;if (l>0) {LS=LS.substring(1,l);var preAmpAt=0;var ampAt=-1;var eqAt=-1;var k=0;var skip=false;for (var i=0; i<l; ++i) {var c=LS.charAt(i);if (LS.charAt(preAmpAt)=="=" || (preAmpAt==0 && i==0 && c=="=")) skip=true;if (c=="=" && eqAt==-1 && !skip) eqAt=i;if (c=="&" && ampAt==-1) {if (eqAt!=-1) ampAt=i;if (skip) preAmpAt=i+1;skip=false;};if (ampAt>eqAt) {AVTK(URID(LS.substring(preAmpAt,eqAt)),URID(LS.substring(eqAt+1,ampAt)));preAmpAt=ampAt+1;eqAt=ampAt=-1;++k;};};if (LS.charAt(preAmpAt)!="=" && (preAmpAt!=0 || i!=0 || c!="=")) {if (preAmpAt!=l) {if (eqAt!=-1) AVTK(URID(LS.substring(preAmpAt,eqAt)),URID(LS.substring(eqAt+1,l)));else if (preAmpAt!=l-1) AVTK(URID(LS.substring(preAmpAt,l)),"");};if (l==1) AVTK(LS.substring(0,1),"");};};};var TC=OL(QS);if (!TC) TC=0QS.toString=function() {return LS.toString()};QS.Count=function() {return (TC ? TC:0)};QS.Count.toString=function() {return (TC ? TC.toString():"0")};QS.Item=function(e) {if (typeof(e)==un) return LS;else {if (typeof(e)==n) {var e=Math.ceil(e);var c=0;for (var i in QS) {if (typeof(QS[i])!=f && ++c==e) return QS[i];};Err(e1+"().Item("+e+")");}else return QS[KM(e, QS)];};return un;};QS.Item.toString=function() {return LS.toString()};QS.Key=function(e) {var t=typeof(e);if (t==n) {var e=Math.ceil(e);var c=0;for (var i in QS) {if (typeof(QS[i])!=f && ++c==e) return i;}}else if (t==r) {var e=KM(e, QS);var a=QS[e];return (typeof(a)!=un && a && a.toString() ? e:"");}else Err(e2+"().Key("+(e?e:"")+")");Err(e1+"().Item("+e+")");};QS.Key.toString=function() {Err(e2+"().Key");}this.QueryString=function(k) {if (typeof(k)==un) return QS;else {var k=KM(k, QS);if (typeof(QS[k])==un) {t=new Object();t.Count=function() {return 0};t.Count.toString=function() {return "0"};t.toString=function() {return un};t.Item=function(e) {return un};t.Item.toString=function() {return un};t.Key=function(e) {Err(e3+"("+(e?e:"")+")");};t.Key.toString=function() {return un};return t;}if (typeof(k)==n) return QS.Item(k);else return QS[k];}}this.QueryString.toString=function() {return LS.toString();};this.QueryString.Count=function() {return (TC ? TC:0)};this.QueryString.Count.toString=function() {return (TC ? TC.toString():"0")};this.QueryString.Item=function(e) {if (typeof(e)==un) return LS.toString();else {if (typeof(e)==n) {var e=Math.ceil(e);var c=0;for (var i in QS) {if (typeof(QS[i])!=f && ++c==e) return QS[i];};Err(e1+".Item("+e+")");}else return QS[KM(e, QS)];}if (typeof(e)==(n)) Err(e1+".Item("+e+")");return un;}this.QueryString.Item.toString=function() {return LS.toString()};this.QueryString.Key=function(e) {var t=typeof(e);if (t==n) {var e=Math.ceil(e);var c=0;for (var i in QS) {if (typeof(QS[i])=="object" && (++c==e)) {return i;}}}else if (t==r) {var e=KM(e, QS);var a=QS[e];return (typeof(a)!=un && a && a.toString() ? e:"");}else Err(e2+".Key("+(e?e:"")+")");Err(e1+".Item("+e+")");};this.QueryString.Key.toString=function() {Err(e2+".Key");};}var Request=new RObj(false);function getDynamicFormLink(partialLink) {  var formLink = Request.QueryString("formLink");  var newurl = formLink + partialLink;    window.location.href=newurl;}function getFirstAvailableApptURL(oldurl) {                if(ua.nn && ua.v4) {                                 alert("Your browser appears unable to use the 'Show me the first available appointment link'.  Please use the blue 'Continue' button to proceed.  You may wish to upgrade to a newer version of your browser to avoid this problem in the future.");                } else {                                 var formVal = document.makestep1.default_fac.selectedIndex;                                 var val = document.makestep1.default_fac.options[formVal].value;                                 var newurl = oldurl + val;                                 //alert(newurl);                                 window.location.href=newurl;                }}function numbersonly(myfield, e, dec){var key;var keychar;if (window.event)   key = window.event.keyCode;else if (e)   key = e.which;else   return true;keychar = String.fromCharCode(key);// control keysif ((key==null) || (key==0) || (key==8) ||    (key==9) || (key==13) || (key==27) )   return true;// numberselse if ((("0123456789").indexOf(keychar) > -1))   return true;// decimal point jumpelse if (dec && (keychar == "."))   {   myfield.form.elements[dec].focus();   return false;   }else   return false;}//----------------------------------------------------------------------------/** * Adds a hidden argument to the form. * * @param  oForm     form * @param  strName   argument name * @param  strValue  argument value *///----------------------------------------------------------------------------function addArg(oForm, strName, strValue){  oArg = document.createElement('input');  oArg.type  = 'hidden';  oArg.name  = strName;  oArg.value = strValue;  oForm.appendChild(oArg);      return;} // adArg
