/* Printing */

function PrintArea(elementID) {
	var toPrint = "";
	toPrint = ""+eval("document.getElementById('" + elementID + "').innerHTML");
	var win = window.open("","print","scrollbars=yes,width=800,height=600"); 
	win.document.open("text/html", "replace");
	win.document.write('<html><HEAD><TITLE>Print Page</TITLE></HEAD>');
	win.document.write('<link href="/medicine/media/styles/medicine.css" rel="stylesheet" type="text/css">');
	win.document.write('<link href="/medicine/media/styles/user.css" rel="stylesheet" type="text/css">');
	win.document.write('<body onLoad="window.print();" bgcolor="#FFFFFF">');
	win.document.write('<table bgColor="#FFFFFF" width="100%" height="100%" border="0" cellspacing="0" cellpadding="0"><tr><td colspan="2">');
	win.document.write(toPrint);
	win.document.write('</td></tr><tr><td width="50%"><div align="center"><a href="javascript:window.close();">Close Window</a></div></td>');
	win.document.write('<td width="50%"><div align="center"><a href="javascript:window.print();">Print Window</a></div></td>');
	win.document.write("</table>");
	win.document.write("</body></html>");
	win.document.close();
}

/* Visibility */

var rootLocation = '/medicine/';

function ShowDiv(divid) {
   if (document.layers) document.layers[divid].visibility="show";
   else document.getElementById(divid).style.visibility="visible";
}

function HideDiv(divid) {
   if (document.layers) document.layers[divid].visibility="hide";
   else document.getElementById(divid).style.visibility="hidden";
}

function HideDivs() {
	var args = new Array();
	args = HideDivs.arguments;
	for(var i=0; i<args.length; i++) {
    	if (document.getElementById(args[i])) HideDiv(args[i]);
	}
}

function swapImage(obj,newImage) {
	obj.src = rootLocation+newImage;
}

function ShowCell(objName) {
	if (document.getElementById(objName).style.display=='none') ToggleCell(objName);
}

function HideCell(objName) {
	if (document.getElementById(objName).style.display!='none') ToggleCell(objName);
}

function ToggleCell(objName) {
	var showing = ((navigator.appName=='Microsoft Internet Explorer')?'inline':'table-cell');
	if (document.getElementById(objName).style.display=='none') document.getElementById(objName).style.display=showing;
	else document.getElementById(objName).style.display='none';
}

function ShowColumn(objName) {
	if (document.getElementById(objName).style.display=='none') ToggleRow(objName);
}

function HideColumn(objName) {
	if (document.getElementById(objName).style.display!='none') ToggleRow(objName);
}

function ToggleColumn(objName) {
	var showing = ((navigator.appName=='Microsoft Internet Explorer')?'inline':'table-column');
	if (document.getElementById(objName).style.display=='none') document.getElementById(objName).style.display=showing;
	else document.getElementById(objName).style.display='none';
}

function ShowRow(objName) {
	if (document.getElementById(objName).style.display=='none') ToggleRow(objName);
}

function HideRow(objName) {
	if (document.getElementById(objName).style.display!='none') ToggleRow(objName);
}

function ToggleRow(objName) {
	var showing = ((navigator.appName=='Microsoft Internet Explorer')?'inline':'table-row');
	if (document.getElementById(objName).style.display=='none') document.getElementById(objName).style.display=showing;
	else document.getElementById(objName).style.display='none';
}

function ShowElement(objName) {
	if (document.getElementById(objName).style.display=='none') ToggleElement(objName);
}

function HideElement(objName) {
	if (document.getElementById(objName).style.display!='none') ToggleElement(objName);
}

function ToggleElement(objName) {
	if (document.getElementById(objName).style.display=='none') document.getElementById(objName).style.display='inline';
	else document.getElementById(objName).style.display='none';
}

function ToggleBlock(objName) {
	if (document.getElementById(objName).style.display=='none') document.getElementById(objName).style.display='block';
	else document.getElementById(objName).style.display='none';
}

function ToggleElementImage(objName,plus,minus) {
	if (document.getElementById(objName).style.display=='none') document.getElementById(objName).style.display='block';
	else document.getElementById(objName).style.display='none';
	if (document.getElementById(plus).style.display=='none') {
		document.getElementById(minus).style.display='none';
		document.getElementById(plus).style.display='inline';		
	} else {
		document.getElementById(plus).style.display='none';
		document.getElementById(minus).style.display='inline';		
	}
}

/* Form Functionality */

function updateLength(obj,maximum) {
	if (obj.value.length>maximum) obj.value = obj.value.substr(0,maximum);
}

function updateLength(obj,left,maximum) {
	if (obj.value.length>maximum) obj.value = obj.value.substr(0,maximum);
	left.value = maximum-obj.value.length;
}

/* Button Actions */

function goToSearch(id) {
	var obj = document.getElementById(id);
	if (obj!=null&&obj!='undefined'&&obj.value!='') {
		window.location.href = 'http://www.google.com/u/URMC?q='+obj.value;
	}
}

function addToFavorites() {
	var isMac = false;
  	if (window.sidebar&&window.sidebar.addPanel) {
    	alert("To add a page to your favorites in Netscape, click the page you would like to add and press Ctrl-D.\n\nThank you\n\nNote: If you would like to save this page in your sidebar, click Ok at the next prompt.");
    	window.sidebar.addPanel(document.title, document.location,"");
  	} else if (isMac) {
    	alert("To add a page to your favorites in Macintosh, click the page you would like to add and press Ctrl-D.\n\nThank you");
  	} else if (document.all) {
    	window.external.AddFavorite(document.location, document.title);
  	} else if (window.opera && window.print) {
    	return true;
  	}
}

/* Page Rendering */

var hideLocation = false;
var nav_objects = new Array();

function stripHTML(oldString) {
   var newString = "";
   var inTag = false;
   for(var i = 0; i < oldString.length; i++) {
        if(oldString.charAt(i) == '<') inTag = true;
        if(oldString.charAt(i) == '>') {
			inTag = false;
			continue;
		}
        if(!inTag) newString += oldString.charAt(i);
   }
   return newString;
}

function updateTitle() {
	var obj = document.getElementById('TitleArea');
	if (obj!=null&&obj!='undefined'&&obj.innerHTML!='') {
		var titleVal = stripHTML(obj.innerHTML); 
		document.getElementById('TitleArea').innerHTML = titleVal;
		if (titleVal.length>27) document.getElementById('TitleArea').innerHTML = titleVal.substring(0,27);
		document.title += ' - '+titleVal;
		if (!hideLocation) {
			document.getElementById('LocationTitle').innerHTML = ' &#8226; '+titleVal;
			if (window.location.href.indexOf('/index.aspx')==-1&&window.location.href.lastIndexOf('/')!=(window.location.href.length-1)) {
				document.getElementById('LocationTitle').style.display = 'inline';
			} else document.getElementById('LocationTitle').style.display = 'none';
		}
	}
	window.status = document.title;
	if (nav_objects.length>0) loadNavigation();
}

function loadNavigation() {
	var thisPage = PageNoQuery();
	var proceed = true;
	for (var i=0; i<nav_objects.length; i++) {
		var pages = nav_objects[i].pages.split(',');
		for (var j=0; j<pages.length; j++) {
			if (pages[j].toLowerCase()==thisPage.toLowerCase()) {
				ShowRow(nav_objects[i].name);
				proceed = false;
				break;
			}
		}
		if (!proceed) break;
	} 
}

function PageNoQuery() {
	var page = window.location.href;
	if (page.lastIndexOf('/')<page.length) page = page.substr(page.lastIndexOf('/')+1);
	if (page.indexOf('?')>-1) page = page.substr(0,page.indexOf('?'));
	if (page.indexOf('#')>-1) page = page.substr(0,page.indexOf('#'));
	return page;
}

function NavigationObject(name,pages) {
	this.name = name;
	this.pages = pages;
}

function loadImages() {
	var doc = document;
	if(doc.images) { 
		if (!doc.sys_images) doc.sys_images = new Array();
		var imgs = new Array();
		imgs = loadImages.arguments;
		var j = 0;
		for(var i=0; i<imgs.length; i++) {
    		if (imgs[i].indexOf("#")!=0) { 
				doc.sys_images[j]=new Image;
				doc.sys_images[j++].src=rootLocation+imgs[i];
			}
		}
	}
}

/* Link Fading */

startColor = "#000000";
endColor = "#75879B";
stepIn = 18;
stepOut = 25;
autoFade = true;
sloppyClass = false;

hexa = new makearray(16);
for(var i = 0; i < 10; i++) hexa[i] = i;
hexa[10]="a"; hexa[11]="b"; hexa[12]="c";
hexa[13]="d"; hexa[14]="e"; hexa[15]="f";

document.onmouseover = domouseover;
document.onmouseout = domouseout;

startColor = dehexize(startColor.toLowerCase());
endColor = dehexize(endColor.toLowerCase());

var fadeId = new Array();

function dehexize(Color){
	var colorArr = new makearray(3);
	for (i=1; i<7; i++){
		for (j=0; j<16; j++){
			if (Color.charAt(i) == hexa[j]){
				if (i%2 !=0) colorArr[Math.floor((i-1)/2)]=eval(j)*16;
				else colorArr[Math.floor((i-1)/2)]+=eval(j);
			}
		}
	}
	return colorArr;
}

function domouseover() {
  	if(document.all){
  		var srcElement = event.srcElement;
  		if ((srcElement.tagName == "A" && srcElement.id.indexOf('subNav_')==-1 && autoFade) || srcElement.className == "fade" || (sloppyClass && srcElement.className.indexOf("fade") != -1)) {
			window.status = srcElement.innerText;
			fade(startColor,endColor,srcElement.uniqueID,stepIn);
			return true;
		}
   	}
}	

function domouseout() {
  	if (document.all){
  		var srcElement = event.srcElement;
	    if ((srcElement.tagName == "A" && srcElement.id.indexOf('subNav_')==-1 && autoFade) || srcElement.className == "fade" || (sloppyClass && srcElement.className.indexOf("fade") != -1)) {
			window.status = document.title;
			fade(endColor,startColor,srcElement.uniqueID,stepOut);
		}
	}
}

function makearray(n) {
    this.length = n;
    for(var i = 1; i <= n; i++) this[i] = 0;
    return this;
}

function hex(i) {
    if (i < 0) return "00";
    else if (i > 255) return "ff";
    else return "" + hexa[Math.floor(i/16)] + hexa[i%16];
}

function setColor(r, g, b, element) {
      var hr = hex(r); var hg = hex(g); var hb = hex(b);
      element.style.color = "#"+hr+hg+hb;
}

function fade(s,e, element,step){
	var sr = s[0]; var sg = s[1]; var sb = s[2];
	var er = e[0]; var eg = e[1]; var eb = e[2];
	if (fadeId[0] != null && fade[0] != element){
		setColor(sr,sg,sb,eval(fadeId[0]));
		var i = 1;
		while(i < fadeId.length){
			clearTimeout(fadeId[i]);
			i++;
		}
	}
	for(var i = 0; i <= step; i++) fadeId[i+1] = setTimeout("setColor(Math.floor(" +sr+ " *(( " +step+ " - " +i+ " )/ " +step+ " ) + " +er+ " * (" +i+ "/" +step+ ")),Math.floor(" +sg+ " * (( " +step+ " - " +i+ " )/ " +step+ " ) + " +eg+ " * (" +i+ "/" +step+")),Math.floor(" +sb+ " * ((" +step+ "-" +i+ ")/" +step+ ") + " +eb+ " * (" +i+ "/" +step+ ")),"+element+");",i*step);
	fadeId[0] = element;
}