var scrollbar;
var popupWindow = null;
var hotjobsTimer = null;
var divTimer = null;
var pollSelection = -1;

var specialties = [];
specialties[1] = [ [39, "CLINIC"], [22, "CNA HOSP"], [36, "HOME CARE/CBRF"], [1, "LTC"], [2, "M/S"], [29, "PSYCH"], [30, "REHAB"] ];
specialties[2] = [ [40, "CASE MGMT"], [39, "CLINIC"], [36, "HOME CARE/CBRF"], [23, "LPN HOSP"], [1, "LTC"], [2, "M/S"],
					[42, "OCC HEALTH"], [29, "PSYCH"], [30, "REHAB"] ];

specialties[3] = [ [40, "CASE MGMT"], [7, "CCU"], [39, "CLINIC"], [10, "CVICU"], [9, "CVOR"], [8, "Cardiac Cath"], [31, "DIALYSIS"],
					[3, "ER"], [36, "HOME CARE/CBRF"],	[12, "ICU"], [18, "L&D"], [1, "LTC"], [19, "M&B"], [2, "M/S"], [25, "NEURO"],
					[13, "NICU"], [14, "NURSERY"], [20, "OB/GYN"], [42, "OCC HEALTH"], [27, "ONCOLOGY"], [26, "OPEN HEART"],
					[6, "OR"], [24, "ORTHO"], [16, "PACU"], [17, "PEDS"], [15, "PICU"], [29, "PSYCH"], [100, "PULMONARY LAB"],
					[28, "RECOVERY"], [30, "REHAB"], [21, "SDU"], [5, "TELE"] ];

specialties[8] = [ [6, "OR"], [145, "Sterile Processing Tech"] ];
specialties[9] = [ [140, "PT"] ];
specialties[14] = [ [139, "Phlebotimist"] ];
specialties[15] = [ [76, "Radiology"] ];
specialties[19] = [ [39, "CLINIC"], [36, "HOME CARE/CBRF"], [1, "LTC"], [29, "PSYCH"] ];
specialties[22] = [ [93, "Dental"] ];
specialties[23] = [ [93, "Dental"] ];
specialties[24] = [ [141, "COTA"] ];
specialties[42] = [ [40, "CASE MGMT"], [7, "CCU"], [39, "CLINIC"], [22, "CNA HOSP"], [141, "COTA"], [97, "CT"], [11, "CTOR"],
					[10, "CVICU"], [9, "CVOR"], [8, "Cardiac Cath"], [93, "DENTAL"], [31, "DIALYSIS"], [3, "ER"],
					[36, "HOME CARE/CBRF"], [12, "ICU"], [18, "L&D"], [23, "LPN HOSP"], [1, "LTC"], [19, "M&B"], [2, "M/S"],
					[98, "MRI"], [146, "MS/Tele"], [25, "NEURO"], [13, "NICU"], [96, "NUCLEAR MED"], [14, "NURSERY"],
					[20, "OB/GYN"], [42, "OCC HEALTH"], [27, "ONCOLOGY"], [26, "OPEN HEART"], [6, "OR"], [24, "ORTHO"],
					[16, "PACU"], [17, "PEDS"], [101, "PFT"], [15, "PICU"], [29, "PSYCH"], [140, "PT"], [100, "PULMONARY LAB"],
					[139, "Phlebotimist"], [76, "Radiology"], [28, "RECOVERY"], [30, "REHAB"], [21, "SDU"], [99, "SONOGRAPHY"],
					[145, "Sterile Processing Tech"], [5, "TELE"] ];

function getSpecialties(discipline) {
	var as_div = document.getElementById("apply_specialties");
	if(!specialties[discipline]) {
		as_div.innerHTML = "";
		as_div.style.display = "none";
	} else {
		for(var i = 0; i < specialties[discipline].length; ++i) {
			as_div.innerHTML += "<input type='checkbox' value='" + specialties[discipline][i][0] + "' name='Spec'> " + specialties[discipline][i][1] + "<br>";
		}
	}
	as_div.style.display = "";
}

function changeInputType(oldObject, oType) {
	var newObject = document.createElement('input');
	newObject.type = oType;
	if(oldObject.size) newObject.size = oldObject.size;
	if(oldObject.value) newObject.value = oldObject.value;
	if(oldObject.name) newObject.name = oldObject.name;
	if(oldObject.id) newObject.id = oldObject.id;
	if(oldObject.className) newObject.className = oldObject.className;
	if(oldObject.style.position) newObject.style.position = oldObject.style.position;
	if(oldObject.style.left) newObject.style.left = oldObject.style.left;
	if(oldObject.style.top) newObject.style.top = oldObject.style.top;
	if(oldObject.style.textAlign) newObject.style.textAlign = oldObject.style.textAlign;
	if(oldObject.style.fontSize) newObject.style.fontSize = oldObject.style.fontSize;
	if(oldObject.onfocus) newObject.onfocus = oldObject.onfocus;
	if(oldObject.onblur) newObject.onblur = oldObject.onblur;
	oldObject.parentNode.replaceChild(newObject,oldObject);
	return newObject;
}

function checkContactForm(lf) {
	var errorNum = 0;
	var errorMsg = "";

	if (lf.CFirstName.value == "" || lf.CFirstName.value == "First Name") {
		errorMsg += "You must enter your first name to continue.\n";
		++errorNum;
	}

	if (lf.CLastName.value == "" || lf.CLastName.value == "Last Name") {
		errorMsg += "You must enter your last name to continue.\n";
		++errorNum;
	}

	if (lf.CZip.value == "" || lf.CZip.value == "Zip Code") {
		errorMsg += "You must enter your zip code to continue.\n";
		++errorNum;
	}

	if(lf.CState.value == 0) {
		errorMsg += "You must enter your state to continue.\n";
		++errorNum;
	}

	if (lf.DisciplineID.value == 0) {
		errorMsg += "You must select a Discipline to continue.\n";
		++errorNum;
	}

	// validate email string to have the @, plus the period
	var TestVar = lf.CEmail.value;
	if(TestVar != "" && TestVar != "Email Address") {
		var pattern = /^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/;
		var flag = pattern.test(TestVar);

		if(!flag) {
			errorMsg += "Please enter a valid email address.\n";
			++errorNum;
		}
	}

	if (lf.CPhone.value == "" || lf.CPhone.value == "Phone Number") {
		errorMsg += "You must enter your telephone number to continue.\n";
		++errorNum;
	}

	if(errorNum > 0) {
		alert("Please fix the following errors before you submit:\n\n" + errorMsg);
		return false;
	}
	return true;
}

function highlightTopMenu(index) {
	var menuRow = document.getElementById('topmenuRow');
	for(var i = 0; i < menuRow.cells.length; i++) {
		if(i == index) {
			menuRow.cells[i].style.backgroundColor = '#E3E3E3';
		} else {
			menuRow.cells[i].style.backgroundColor = '';
		}
	}

	var img = document.getElementById('myImg');
	if(img) {
		if(index == 3) {
			img.src = "images/my-light.gif";
		} else {
			img.src = "images/my.gif";
		}
	}
}

function popUp(url, width, height, scrollbars) {
	if(url == "") {
		return false;
	}

	if(!scrollbars) {
		scrollbars = "no";
	}

	if(popupWindow != null && !popupWindow.closed) {
		popupWindow.close();
	}

	popupWindow = window.open(url, "popup", "width=" + width + ",height=" + height + ",scrollbars=" + scrollbars);
	if(popupWindow.opener == null) popupWindow.opener = self;
	return true;
}

function findPos(obj) {
	var x0 = y0 = 0;

	if (obj.offsetParent) {
		do {
			x0 += obj.offsetLeft;
			y0 += obj.offsetTop;
		} while (obj = obj.offsetParent);

		return [x0, y0];
	}
}

function showHotJob(num) {
	clearTimeout(hotjobsTimer);

	for(i = 1; i < 5; i++) {
		hideHotJob(i);
	}

	var hotjob = document.getElementById('hotjob' + num);
	var img = document.getElementById('ulimg');

	hotjob.style.display="block";
	var yOff = -hotjob.offsetHeight;
	if(num == 1) {
		yOff += 83;
	} else if(num == 2) {
		yOff += 126;
	} else if(num == 3) {
		yOff += 159;
	} else if(num == 4) {
		yOff += 200;
	}

	var pos = findPos(img);
	hotjob.style.left = (pos[0] + 200) + "px";
	hotjob.style.top = (pos[1] + yOff) + "px";
}

function hideHotJob(num) {
	var hotjob = document.getElementById('hotjob' + num);
	hotjob.style.display = "none";
}

function verify_form() {
	var emailField = document.getElementById('email');
	var emailField2 = document.getElementById('email2');
	var messageField = document.getElementById('message');
	var nameField = document.getElementById('name');
	var addressField = document.getElementById('address');

	if(emailField.value != emailField2.value) {
		alert('Your email address fields do not match.');
		return false;
	} else if(messageField.value == "") {
		alert('Please enter a message.');
		return false;
	} else if(nameField && (nameField.value == "")) {
		alert('Please enter your name.');
		return false;
	} else if(addressField && (addressField.value == "")) {
		alert('Please enter your address.');
		return false;
	}

	return true;
}

function showAbout(num) {
	var aboutImg = document.getElementById('urImg');
	var aboutInfo = document.getElementById('about' + num);

	aboutImg.src = "images/about-ur" + num + ".gif";

	var pos = findPos(aboutImg);

	if(num == 1) {
		pos[0] += 28;
		pos[1] += 8;
	} else if(num == 2) {
		pos[0] += 159;
		pos[1] += 8;
	} else if(num == 3) {
		pos[0] += 291;
		pos[1] += 8;
	} else if(num == 4) {
		pos[0] += 419;
		pos[1] += 8;
	}

	aboutInfo.style.left = pos[0] + "px";
	aboutInfo.style.top = pos[1] + "px";
	aboutInfo.style.display = "block";
}

function hideAbout(num) {
	var aboutImg = document.getElementById('urImg');
	var aboutInfo = document.getElementById('about' + num);

	aboutImg.src = "images/about-ur.gif";
	aboutInfo.style.display = "none";
}

function showHomeNote() {
	var homeDiv = document.getElementById('urDiv');
	var noteDiv = document.getElementById('note');
	var noteImg = document.getElementById('noteImg');

	noteDiv.style.display = "block";

	var trace = "";

	var pos = findPos(homeDiv);
	trace += pos[0] + ", ";
	pos[0] += homeDiv.offsetWidth;
	trace += pos[0] + ", ";
	pos[0] -= noteImg.width / 2;
	trace += pos[0] + " -- " + pos[1] + ", ";
	pos[1] += homeDiv.offsetHeight / 2;
	trace += pos[1] + ", ";
	pos[1] -= noteImg.height / 2;
	trace += pos[1];
	//window.status = trace;

	noteDiv.style.position = "absolute";
	noteDiv.style.left = pos[0] + "px";
	noteDiv.style.top = pos[1] + "px";
}

function showDiv(name) {
	clearTimeout(divTimer);

	var hotjob = document.getElementById(name);
	hotjob.style.display="block";
}

function hideDiv(name) {
	var hotjob = document.getElementById(name);
	hotjob.style.display = "none";
}

function travelEmail(subject) {
	if(subject != '')
		location.href = 'mailto:robin@prninc.com?bcc=jen@prninc.com&subject=' + subject;
}

function clientEmail(subject) {
	if(subject != '')
		location.href = 'mailto:robin@prninc.com?subject=' + subject;
}

function disableSelection(element) {
    element.onselectstart = function() {
        return false;
    };
    element.unselectable = "on";
    element.style.MozUserSelect = "none";
}

function Scrollbar(id, container, content, up, track, down, slider) {
	this.id = id;
	this.container = container;
	this.content = content;
	this.upArrow = up;
	this.track = track;
	this.downArrow = down;
	this.slider = slider;

	disableSelection(this.upArrow);
	disableSelection(this.track);
	disableSelection(this.downArrow);
	disableSelection(this.slider);

	this.maxOffset = container.offsetHeight - content.offsetHeight;

	this.scrollTimeout = null;

	content.style.position = "relative";
	content.style.top = "0px";

	slider.style.display = "block";
	var trackPos = findPos(track);

	trackPos[0] += track.offsetWidth / 2;
	trackPos[0] -= slider.offsetWidth / 2;
	trackPos[1] -= slider.offsetHeight / 2;

	slider.style.left = (trackPos[0] * 1) + "px";
	slider.style.top = (trackPos[1] * 1) + "px";

	this.beginScrollUp = function() {
		var top = parseInt(content.style.top);
		top += 2;

		if(top >= 0) {
			top = 0;
		} else {
			this.scrollTimeout = window.setTimeout(id + ".beginScrollUp()", 10);
		}

		content.style.top = top + "px";
		this.updateSlider();
	};

	this.beginScrollDown = function() {
		var top = parseInt(content.style.top);
		top -= 2;

		if(top < this.maxOffset) {
			top = this.maxOffset;
		} else {
			this.scrollTimeout = window.setTimeout(id + ".beginScrollDown()", 10);
		}

		content.style.top = top + "px";
		this.updateSlider();
	};

	this.endScroll = function() {
		window.clearTimeout(this.scrollTimeout);
	};

	this.updateSlider = function() {
		var top = parseInt(content.style.top);
		var pos = top / this.maxOffset;

		var trackPos = findPos(track);
		trackPos[0] += track.offsetWidth / 2;
		trackPos[0] -= slider.offsetWidth / 2;
		trackPos[1] -= slider.offsetWidth / 2;
		trackPos[1] += pos * track.offsetHeight;

		slider.style.left = trackPos[0] + "px";
		slider.style.top = trackPos[1] + "px";
	};

	this.mouseWheel = function(event) {
		var delta = 0;
		if (!event) event = window.event;
		if (event.wheelDelta) {
			delta = event.wheelDelta/120; 
			if (window.opera) delta = -delta;
		} else if (event.detail) {
			delta = -event.detail/3;
		}

		if (delta) {
			var top = parseInt(content.style.top);
			top += delta * 10;

			if(top >= 0) {
				top = 0;
			} else if(top <= this.maxOffset) {
				top = this.maxOffset;
			}

			content.style.top = top + "px";
			this.updateSlider();
		}

		event.cancelBubble = true;
		if(event.stopPropagation) e.stopPropagation();
	};

	this.startDrag = function() {
		eval("document.onmousemove = function(event) { " + id + ".dragTo(event); }");
		eval("document.onmouseup = function() { " + id + ".endDrag(); }");
	};

	this.endDrag = function() {
		document.onmousemove = null;
		document.onmouseup = null;
	}

	this.dragTo = function(event) {
		if(!event) event = window.event;

		var x = y = -1;
		if(document.all) {
			x = event.clientX;
			y = event.clientY;
			if(document.documentElement.scrollTop) {
				x += document.documentElement.scrollLeft;
				y += document.documentElement.scrollTop;
			} else {
				x += document.body.scrollLeft;
				y += document.body.scrollTop;
			}
		} else {
			x = event.pageX;
			y = event.pageY;
		}

		var trackPos = findPos(track);
		if (y < trackPos[1]) {
			y = trackPos[1];
		} else if(y >= trackPos[1] + track.offsetHeight) {
			y = trackPos[1] + track.offsetHeight;
		}

		slider.style.top = (y - (slider.offsetHeight / 2)) + "px";

		y -= trackPos[1];
		var pos = (y / track.offsetHeight) * this.maxOffset;
		content.style.top = pos + "px";
	}

	this.scrollTo = function(name) {
		var anchors = document.getElementsByTagName('a');
		for(i = 0; i < anchors.length; i++) {
			if(anchors[i].name == name) {
				var pos = findPos(anchors[i]);
				pos[1] -= content.offsetParent.offsetTop + parseInt(content.style.top);
				pos[1] = -pos[1];
				if (pos[1] < this.maxOffset) {
					pos[1] = this.maxOffset;
				} else if(pos[1] > 0) {
					pos[1] = 0;
				}
				content.style.top = pos[1] + "px";
				this.updateSlider();
			}
		}
	}

	eval("this.upArrow.onmousedown = function() { " + id + ".beginScrollUp(); }");
	eval("this.upArrow.onmouseup = function() { " + id + ".endScroll(); }");
	eval("this.downArrow.onmousedown = function() { " + id + ".beginScrollDown(); }");
	eval("this.downArrow.onmouseup = function() { " + id + ".endScroll(); }");
	eval("this.slider.onmousedown = function() { " + id + ".startDrag(); }");

	if (content.addEventListener) {
		eval("var f = function(event) { " + id + ".mouseWheel(event) }");
		content.addEventListener("DOMMouseScroll", f, false);
	} else {
		eval("content.onmousewheel = function (event) { " + id + ".mouseWheel(event) }");
	}
}

window.onload = function() {
	var container = document.getElementById("scroll_container");
	var content = document.getElementById("scroll_content");
	var up = document.getElementById("scroll_uparrow");
	var track = document.getElementById("scroll_track");
	var down = document.getElementById("scroll_downarrow");
	var slider = document.getElementById("scroll_slider");
	scrollbar = new Scrollbar("scrollbar", container, content, up, track, down, slider);

	var compactMap = document.getElementById("m_compactstates");
	if(compactMap) {
		var areas = compactMap.getElementsByTagName("area");
		for(var i = 0; i < areas.length; i++) {
			areas[i].onmouseover = function(e) {
									var posx = 0;
									var posy = 0;
									if (!e) var e = window.event;
									if (e.pageX || e.pageY) 	{
										posx = e.pageX;
										posy = e.pageY;
									}
									else if (e.clientX || e.clientY) 	{
										posx = e.clientX + document.body.scrollLeft
											+ document.documentElement.scrollLeft;
										posy = e.clientY + document.body.scrollTop
											+ document.documentElement.scrollTop;
									}

								var stateLabel = document.getElementById("state_label");
									stateLabel.style.left = (posx + 10) + "px";
									stateLabel.style.top = (posy + 10) + "px";
									stateLabel.innerHTML = this.alt;
									stateLabel.style.display = "block";
								};

			areas[i].onmouseout = function(e) {
									var stateLabel = document.getElementById("state_label");
									stateLabel.style.display = "none";
								};
		}
	}
};