Personal tools
Navigation
 

Merck Patient Assistance HTML

Still working on the signature on the third page. <!--- Created March 2013, Written for version 12.0, Has x boxes, Drawing Code for signatures, Check Gender, fills in subject line, 3 pages, uses JSMPC.css --->

HTML icon Merck_Patient_Assisstance.html — HTML, 58 kB (60376 bytes)

File contents

<html>

<head>

<!--- Created March 2013, Written for version 12.0, Has x boxes, Drawing Code for signatures, Check Gender, fills in subject line, 3 pages, uses JSMPC.css --->


	<link rel="stylesheet" type="text/css" media="print" href="${oscar_image_path}JSMPC.css" />

	<!--<script language="javascript" type="text/javascript" media="print" src="${oscar_image_path}JSMPC.js"></script>	-->
	
<style type="text/css" media="print">
 .DoNotPrint {
	 display: none;
 }
 .noborder {
	 border : 0px;
	 background: transparent;
	 scrollbar-3dlight-color: transparent;
	 scrollbar-arrow-color: transparent;
	 scrollbar-base-color: transparent;
	 scrollbar-darkshadow-color: transparent;
	 scrollbar-face-color: transparent;
	 scrollbar-highlight-color: transparent;
	 scrollbar-shadow-color: transparent;
	 scrollbar-track-color: transparent;
	 background: transparent;
	 overflow: hidden;
 }
</style>

<!-- js graphics scripts -->
<script type="text/javascript" src="jsgraphics.js"></script>

<script language="javascript" type="text/javascript">
		/****************************
		startup functions 
		****************************/
		function startUp()
		{			
			// shows the forms on development machine from notepad ++ - saves you from uploading to the server to input alignments
			var strLoc = window.location.href.toLowerCase();
			if(strLoc.indexOf("https") == -1)
			{
				// page1
				var src = document.getElementById('BGImage').src;				
				document.getElementById('BGImage').src = src.replace('$%7Boscar_image_path%7D','');

				// page2 additional patient information
				var src2 = document.getElementById('BGImage2').src;
				document.getElementById('BGImage2').src = src2.replace('$%7Boscar_image_path%7D','');

				// page3 additional patient information
				var src3 = document.getElementById('BGImage3').src;
				document.getElementById('BGImage3').src = src3.replace('$%7Boscar_image_path%7D','');

				}
			// the input ID must match the ID for last name in the e-form.
			setDocumentTitle('Merck Patient Assistance Form',document.getElementById('LastName').value);
			setDefaults();			
		}

		function setDocumentTitle(Title,LastName)
		{
			// set document title
			document.title = Title + ' - ' + LastName;					
		}
		
		function setDefaults()
		{	            
			// check the newform flag to ensure this is the initial load of the form
			// can add further default, prechecked boxes by copying the last line and inserting the proper ID names
			if (document.getElementById("newForm").value == 'True')
			{
				document.getElementById('MSP').value = 'X';	
			}   
		}


		/****************************
			submit and print functions 
		****************************/
		function printSubmit()
		{
			printLetter();
			releaseDirtyFlag();			
			submission();
		}

		function printLetter()
		{
			// hide the bottom buttons
			if (document.getElementById('BottomButtons').style.display == '')
				document.getElementById('BottomButtons').style.display = 'none';
			// print the letter
			window.print();
		} 

		function submission()
		{
			setFlag();
			setTimeout('document.FormName.submit()',1000);			
		}

		function setFlag()
		{
		// indicate that the form has been submitted
		if (document.getElementById("newForm").value == 'True')
			document.getElementById("newForm").value = 'False';
		}
		
		function showButtons()
		{
			//show the bottom buttons if they are hidden
			if (document.getElementById('BottomButtons').style.display == 'none')
				document.getElementById('BottomButtons').style.display = '';
		}

		/****************************
			checkbox functions 
		****************************/
		function changeValue(x)
		{
			if (document.getElementById(x).value == '')
				document.getElementById(x).value = 'X';
			else
				document.getElementById(x).value = '';
		}

		function displayKeyCode(evt,x)
		{
			var charCode = (evt.which) ? evt.which : event.keyCode
			// any key press except tab will constitute a value change to the checkbox
			if (charCode != 9)
			{
				changeValue(x);
				return false;
			}
		}		
</script>

<!-------Script to optimize window on loading----------->
<script language="JavaScript">

top.window.moveTo(0,0);
if (document.all) {
top.window.resizeTo(screen.availWidth,screen.availHeight);
}
else if (document.layers||document.getElementById) {
if (top.window.outerHeight<screen.availHeight||top.window.outerWidth<screen.availWidth){
top.window.outerHeight = screen.availHeight;
top.window.outerWidth = 1030;
}
}

</script>
<!----------End optimize window script---------->

<!-- scripts to confirm closing of window if it hadn't been saved yet -->
<script language="javascript">
//keypress events trigger dirty flag
var needToConfirm = false;
document.onkeyup=setDirtyFlag;
function setDirtyFlag(){
		needToConfirm = true;
}
function releaseDirtyFlag(){
		needToConfirm = false; //Call this function if doesn't requires an alert.
//this could be called when save button is clicked
}
window.onbeforeunload = confirmExit;
function confirmExit(){
	 if (needToConfirm){
		 return "You have attempted to leave this page. If you have made any changes to the fields without clicking the Save button, your changes will be lost. Are you sure you want to exit this page?";
	 }
}
</script>

<!-- Start of Drawing scripts -->
<!-- wz_jsgraphics.js -->
<script type="text/javascript">
/* This notice must be untouched at all times.

wz_jsgraphics.js    v. 3.01
The latest version is available at
http://www.walterzorn.com
or http://www.devira.com
or http://www.walterzorn.de

Copyright (c) 2002-2004 Walter Zorn. All rights reserved.
Created 3. 11. 2002 by Walter Zorn (Web: http://www.walterzorn.com )
Last modified: 1. 6. 2007

Performance optimizations for Internet Explorer
by Thomas Frank and John Holdsworth.
fillPolygon method implemented by Matthieu Haller.

High Performance JavaScript Graphics Library.
Provides methods
- to draw lines, rectangles, ellipses, polygons
	with specifiable line thickness,
- to fill rectangles, polygons, ellipses and arcs
- to draw text.
NOTE: Operations, functions and branching have rather been optimized
to efficiency and speed than to shortness of source code.

LICENSE: LGPL

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License (LGPL) as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA,
or see http://www.gnu.org/copyleft/lesser.html
*/


var jg_ok, jg_ie, jg_fast, jg_dom, jg_moz;


function _chkDHTM(x, i)
{
	x = document.body || null;
	jg_ie = x && typeof x.insertAdjacentHTML != "undefined" && document.createElement;
	jg_dom = (x && !jg_ie &&
		typeof x.appendChild != "undefined" &&
		typeof document.createRange != "undefined" &&
		typeof (i = document.createRange()).setStartBefore != "undefined" &&
		typeof i.createContextualFragment != "undefined");
	jg_fast = jg_ie && document.all && !window.opera;
	jg_moz = jg_dom && typeof x.style.MozOpacity != "undefined";
	jg_ok = !!(jg_ie || jg_dom);
}

function _pntCnvDom()
{
	var x = this.wnd.document.createRange();
	x.setStartBefore(this.cnv);
	x = x.createContextualFragment(jg_fast? this._htmRpc() : this.htm);
	if(this.cnv) this.cnv.appendChild(x);
	this.htm = "";
}

function _pntCnvIe()
{
	if(this.cnv) this.cnv.insertAdjacentHTML("BeforeEnd", jg_fast? this._htmRpc() : this.htm);
	this.htm = "";
}

function _pntDoc()
{
	this.wnd.document.write(jg_fast? this._htmRpc() : this.htm);
	this.htm = '';
}

function _pntN()
{
	;
}

function _mkDiv(x, y, w, h)
{
	this.htm += '<div style="position:absolute;'+
		'left:' + x + 'px;'+
		'top:' + y + 'px;'+
		'width:' + w + 'px;'+
		'height:' + h + 'px;'+
		'clip:rect(0,'+w+'px,'+h+'px,0);'+
		'background-color:' + this.color +
		(!jg_moz? ';overflow:hidden' : '')+
		';"></div>';
}

function _mkDivIe(x, y, w, h)
{
	this.htm += '%%'+this.color+';'+x+';'+y+';'+w+';'+h+';';
}

function _mkDivPrt(x, y, w, h)
{
	this.htm += '<div style="position:absolute;'+
		'border-left:' + w + 'px solid ' + this.color + ';'+
		'left:' + x + 'px;'+
		'top:' + y + 'px;'+
		'width:0px;'+
		'height:' + h + 'px;'+
		'clip:rect(0,'+w+'px,'+h+'px,0);'+
		'background-color:' + this.color +
		(!jg_moz? ';overflow:hidden' : '')+
		';"></div>';
}

var _regex =  /%%([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);/g;
function _htmRpc()
{
	return this.htm.replace(
		_regex,
		'<div style="overflow:hidden;position:absolute;background-color:'+
		'$1;left:$2;top:$3;width:$4;height:$5"></div>');
}

function _htmPrtRpc()
{
	return this.htm.replace(
		_regex,
		'<div style="overflow:hidden;position:absolute;background-color:'+
		'$1;left:$2;top:$3;width:$4;height:$5;border-left:$4px solid $1"></div>');
}

function _mkLin(x1, y1, x2, y2)
{
	if(x1 > x2)
	{
		var _x2 = x2;
		var _y2 = y2;
		x2 = x1;
		y2 = y1;
		x1 = _x2;
		y1 = _y2;
	}
	var dx = x2-x1, dy = Math.abs(y2-y1),
	x = x1, y = y1,
	yIncr = (y1 > y2)? -1 : 1;

	if(dx >= dy)
	{
		var pr = dy<<1,
		pru = pr - (dx<<1),
		p = pr-dx,
		ox = x;
		while(dx > 0)
		{--dx;
			++x;
			if(p > 0)
			{
				this._mkDiv(ox, y, x-ox, 1);
				y += yIncr;
				p += pru;
				ox = x;
			}
			else p += pr;
		}
		this._mkDiv(ox, y, x2-ox+1, 1);
	}

	else
	{
		var pr = dx<<1,
		pru = pr - (dy<<1),
		p = pr-dy,
		oy = y;
		if(y2 <= y1)
		{
			while(dy > 0)
			{--dy;
				if(p > 0)
				{
					this._mkDiv(x++, y, 1, oy-y+1);
					y += yIncr;
					p += pru;
					oy = y;
				}
				else
				{
					y += yIncr;
					p += pr;
				}
			}
			this._mkDiv(x2, y2, 1, oy-y2+1);
		}
		else
		{
			while(dy > 0)
			{--dy;
				y += yIncr;
				if(p > 0)
				{
					this._mkDiv(x++, oy, 1, y-oy);
					p += pru;
					oy = y;
				}
				else p += pr;
			}
			this._mkDiv(x2, oy, 1, y2-oy+1);
		}
	}
}

function _mkLin2D(x1, y1, x2, y2)
{
	if(x1 > x2)
	{
		var _x2 = x2;
		var _y2 = y2;
		x2 = x1;
		y2 = y1;
		x1 = _x2;
		y1 = _y2;
	}
	var dx = x2-x1, dy = Math.abs(y2-y1),
	x = x1, y = y1,
	yIncr = (y1 > y2)? -1 : 1;

	var s = this.stroke;
	if(dx >= dy)
	{
		if(dx > 0 && s-3 > 0)
		{
			var _s = (s*dx*Math.sqrt(1+dy*dy/(dx*dx))-dx-(s>>1)*dy) / dx;
			_s = (!(s-4)? Math.ceil(_s) : Math.round(_s)) + 1;
		}
		else var _s = s;
		var ad = Math.ceil(s/2);

		var pr = dy<<1,
		pru = pr - (dx<<1),
		p = pr-dx,
		ox = x;
		while(dx > 0)
		{--dx;
			++x;
			if(p > 0)
			{
				this._mkDiv(ox, y, x-ox+ad, _s);
				y += yIncr;
				p += pru;
				ox = x;
			}
			else p += pr;
		}
		this._mkDiv(ox, y, x2-ox+ad+1, _s);
	}

	else
	{
		if(s-3 > 0)
		{
			var _s = (s*dy*Math.sqrt(1+dx*dx/(dy*dy))-(s>>1)*dx-dy) / dy;
			_s = (!(s-4)? Math.ceil(_s) : Math.round(_s)) + 1;
		}
		else var _s = s;
		var ad = Math.round(s/2);

		var pr = dx<<1,
		pru = pr - (dy<<1),
		p = pr-dy,
		oy = y;
		if(y2 <= y1)
		{
			++ad;
			while(dy > 0)
			{--dy;
				if(p > 0)
				{
					this._mkDiv(x++, y, _s, oy-y+ad);
					y += yIncr;
					p += pru;
					oy = y;
				}
				else
				{
					y += yIncr;
					p += pr;
				}
			}
			this._mkDiv(x2, y2, _s, oy-y2+ad);
		}
		else
		{
			while(dy > 0)
			{--dy;
				y += yIncr;
				if(p > 0)
				{
					this._mkDiv(x++, oy, _s, y-oy+ad);
					p += pru;
					oy = y;
				}
				else p += pr;
			}
			this._mkDiv(x2, oy, _s, y2-oy+ad+1);
		}
	}
}

function _mkLinDott(x1, y1, x2, y2)
{
	if(x1 > x2)
	{
		var _x2 = x2;
		var _y2 = y2;
		x2 = x1;
		y2 = y1;
		x1 = _x2;
		y1 = _y2;
	}
	var dx = x2-x1, dy = Math.abs(y2-y1),
	x = x1, y = y1,
	yIncr = (y1 > y2)? -1 : 1,
	drw = true;
	if(dx >= dy)
	{
		var pr = dy<<1,
		pru = pr - (dx<<1),
		p = pr-dx;
		while(dx > 0)
		{--dx;
			if(drw) this._mkDiv(x, y, 1, 1);
			drw = !drw;
			if(p > 0)
			{
				y += yIncr;
				p += pru;
			}
			else p += pr;
			++x;
		}
	}
	else
	{
		var pr = dx<<1,
		pru = pr - (dy<<1),
		p = pr-dy;
		while(dy > 0)
		{--dy;
			if(drw) this._mkDiv(x, y, 1, 1);
			drw = !drw;
			y += yIncr;
			if(p > 0)
			{
				++x;
				p += pru;
			}
			else p += pr;
		}
	}
	if(drw) this._mkDiv(x, y, 1, 1);
}

function _mkOv(left, top, width, height)
{
	var a = (++width)>>1, b = (++height)>>1,
	wod = width&1, hod = height&1,
	cx = left+a, cy = top+b,
	x = 0, y = b,
	ox = 0, oy = b,
	aa2 = (a*a)<<1, aa4 = aa2<<1, bb2 = (b*b)<<1, bb4 = bb2<<1,
	st = (aa2>>1)*(1-(b<<1)) + bb2,
	tt = (bb2>>1) - aa2*((b<<1)-1),
	w, h;
	while(y > 0)
	{
		if(st < 0)
		{
			st += bb2*((x<<1)+3);
			tt += bb4*(++x);
		}
		else if(tt < 0)
		{
			st += bb2*((x<<1)+3) - aa4*(y-1);
			tt += bb4*(++x) - aa2*(((y--)<<1)-3);
			w = x-ox;
			h = oy-y;
			if((w&2) && (h&2))
			{
				this._mkOvQds(cx, cy, x-2, y+2, 1, 1, wod, hod);
				this._mkOvQds(cx, cy, x-1, y+1, 1, 1, wod, hod);
			}
			else this._mkOvQds(cx, cy, x-1, oy, w, h, wod, hod);
			ox = x;
			oy = y;
		}
		else
		{
			tt -= aa2*((y<<1)-3);
			st -= aa4*(--y);
		}
	}
	w = a-ox+1;
	h = (oy<<1)+hod;
	y = cy-oy;
	this._mkDiv(cx-a, y, w, h);
	this._mkDiv(cx+ox+wod-1, y, w, h);
}

function _mkOv2D(left, top, width, height)
{
	var s = this.stroke;
	width += s+1;
	height += s+1;
	var a = width>>1, b = height>>1,
	wod = width&1, hod = height&1,
	cx = left+a, cy = top+b,
	x = 0, y = b,
	aa2 = (a*a)<<1, aa4 = aa2<<1, bb2 = (b*b)<<1, bb4 = bb2<<1,
	st = (aa2>>1)*(1-(b<<1)) + bb2,
	tt = (bb2>>1) - aa2*((b<<1)-1);

	if(s-4 < 0 && (!(s-2) || width-51 > 0 && height-51 > 0))
	{
		var ox = 0, oy = b,
		w, h,
		pxw;
		while(y > 0)
		{
			if(st < 0)
			{
				st += bb2*((x<<1)+3);
				tt += bb4*(++x);
			}
			else if(tt < 0)
			{
				st += bb2*((x<<1)+3) - aa4*(y-1);
				tt += bb4*(++x) - aa2*(((y--)<<1)-3);
				w = x-ox;
				h = oy-y;

				if(w-1)
				{
					pxw = w+1+(s&1);
					h = s;
				}
				else if(h-1)
				{
					pxw = s;
					h += 1+(s&1);
				}
				else pxw = h = s;
				this._mkOvQds(cx, cy, x-1, oy, pxw, h, wod, hod);
				ox = x;
				oy = y;
			}
			else
			{
				tt -= aa2*((y<<1)-3);
				st -= aa4*(--y);
			}
		}
		this._mkDiv(cx-a, cy-oy, s, (oy<<1)+hod);
		this._mkDiv(cx+a+wod-s, cy-oy, s, (oy<<1)+hod);
	}

	else
	{
		var _a = (width-(s<<1))>>1,
		_b = (height-(s<<1))>>1,
		_x = 0, _y = _b,
		_aa2 = (_a*_a)<<1, _aa4 = _aa2<<1, _bb2 = (_b*_b)<<1, _bb4 = _bb2<<1,
		_st = (_aa2>>1)*(1-(_b<<1)) + _bb2,
		_tt = (_bb2>>1) - _aa2*((_b<<1)-1),

		pxl = new Array(),
		pxt = new Array(),
		_pxb = new Array();
		pxl[0] = 0;
		pxt[0] = b;
		_pxb[0] = _b-1;
		while(y > 0)
		{
			if(st < 0)
			{
				pxl[pxl.length] = x;
				pxt[pxt.length] = y;
				st += bb2*((x<<1)+3);
				tt += bb4*(++x);
			}
			else if(tt < 0)
			{
				pxl[pxl.length] = x;
				st += bb2*((x<<1)+3) - aa4*(y-1);
				tt += bb4*(++x) - aa2*(((y--)<<1)-3);
				pxt[pxt.length] = y;
			}
			else
			{
				tt -= aa2*((y<<1)-3);
				st -= aa4*(--y);
			}

			if(_y > 0)
			{
				if(_st < 0)
				{
					_st += _bb2*((_x<<1)+3);
					_tt += _bb4*(++_x);
					_pxb[_pxb.length] = _y-1;
				}
				else if(_tt < 0)
				{
					_st += _bb2*((_x<<1)+3) - _aa4*(_y-1);
					_tt += _bb4*(++_x) - _aa2*(((_y--)<<1)-3);
					_pxb[_pxb.length] = _y-1;
				}
				else
				{
					_tt -= _aa2*((_y<<1)-3);
					_st -= _aa4*(--_y);
					_pxb[_pxb.length-1]--;
				}
			}
		}

		var ox = -wod, oy = b,
		_oy = _pxb[0],
		l = pxl.length,
		w, h;
		for(var i = 0; i < l; i++)
		{
			if(typeof _pxb[i] != "undefined")
			{
				if(_pxb[i] < _oy || pxt[i] < oy)
				{
					x = pxl[i];
					this._mkOvQds(cx, cy, x, oy, x-ox, oy-_oy, wod, hod);
					ox = x;
					oy = pxt[i];
					_oy = _pxb[i];
				}
			}
			else
			{
				x = pxl[i];
				this._mkDiv(cx-x, cy-oy, 1, (oy<<1)+hod);
				this._mkDiv(cx+ox+wod, cy-oy, 1, (oy<<1)+hod);
				ox = x;
				oy = pxt[i];
			}
		}
		this._mkDiv(cx-a, cy-oy, 1, (oy<<1)+hod);
		this._mkDiv(cx+ox+wod, cy-oy, 1, (oy<<1)+hod);
	}
}

function _mkOvDott(left, top, width, height)
{
	var a = (++width)>>1, b = (++height)>>1,
	wod = width&1, hod = height&1, hodu = hod^1,
	cx = left+a, cy = top+b,
	x = 0, y = b,
	aa2 = (a*a)<<1, aa4 = aa2<<1, bb2 = (b*b)<<1, bb4 = bb2<<1,
	st = (aa2>>1)*(1-(b<<1)) + bb2,
	tt = (bb2>>1) - aa2*((b<<1)-1),
	drw = true;
	while(y > 0)
	{
		if(st < 0)
		{
			st += bb2*((x<<1)+3);
			tt += bb4*(++x);
		}
		else if(tt < 0)
		{
			st += bb2*((x<<1)+3) - aa4*(y-1);
			tt += bb4*(++x) - aa2*(((y--)<<1)-3);
		}
		else
		{
			tt -= aa2*((y<<1)-3);
			st -= aa4*(--y);
		}
		if(drw && y >= hodu) this._mkOvQds(cx, cy, x, y, 1, 1, wod, hod);
		drw = !drw;
	}
}

function _mkRect(x, y, w, h)
{
	var s = this.stroke;
	this._mkDiv(x, y, w, s);
	this._mkDiv(x+w, y, s, h);
	this._mkDiv(x, y+h, w+s, s);
	this._mkDiv(x, y+s, s, h-s);
}

function _mkRectDott(x, y, w, h)
{
	this.drawLine(x, y, x+w, y);
	this.drawLine(x+w, y, x+w, y+h);
	this.drawLine(x, y+h, x+w, y+h);
	this.drawLine(x, y, x, y+h);
}

function jsgFont()
{
	this.PLAIN = 'font-weight:normal;';
	this.BOLD = 'font-weight:bold;';
	this.ITALIC = 'font-style:italic;';
	this.ITALIC_BOLD = this.ITALIC + this.BOLD;
	this.BOLD_ITALIC = this.ITALIC_BOLD;
}
var Font = new jsgFont();

function jsgStroke()
{
	this.DOTTED = -1;
}
var Stroke = new jsgStroke();

function jsGraphics(cnv, wnd)
{
	this.setColor = function(x)
	{
		this.color = x.toLowerCase();
	};

	this.setStroke = function(x)
	{
		this.stroke = x;
		if(!(x+1))
		{
			this.drawLine = _mkLinDott;
			this._mkOv = _mkOvDott;
			this.drawRect = _mkRectDott;
		}
		else if(x-1 > 0)
		{
			this.drawLine = _mkLin2D;
			this._mkOv = _mkOv2D;
			this.drawRect = _mkRect;
		}
		else
		{
			this.drawLine = _mkLin;
			this._mkOv = _mkOv;
			this.drawRect = _mkRect;
		}
	};

	this.setPrintable = function(arg)
	{
		this.printable = arg;
		if(jg_fast)
		{
			this._mkDiv = _mkDivIe;
			this._htmRpc = arg? _htmPrtRpc : _htmRpc;
		}
		else this._mkDiv = arg? _mkDivPrt : _mkDiv;
	};

	this.setFont = function(fam, sz, sty)
	{
		this.ftFam = fam;
		this.ftSz = sz;
		this.ftSty = sty || Font.PLAIN;
	};

	this.drawPolyline = this.drawPolyLine = function(x, y)
	{
		for (var i=x.length - 1; i;)
		{--i;
			this.drawLine(x[i], y[i], x[i+1], y[i+1]);
		}
	};

	this.fillRect = function(x, y, w, h)
	{
		this._mkDiv(x, y, w, h);
	};

	this.drawPolygon = function(x, y)
	{
		this.drawPolyline(x, y);
		this.drawLine(x[x.length-1], y[x.length-1], x[0], y[0]);
	};

	this.drawEllipse = this.drawOval = function(x, y, w, h)
	{
		this._mkOv(x, y, w, h);
	};

	this.fillEllipse = this.fillOval = function(left, top, w, h)
	{
		var a = w>>1, b = h>>1,
		wod = w&1, hod = h&1,
		cx = left+a, cy = top+b,
		x = 0, y = b, oy = b,
		aa2 = (a*a)<<1, aa4 = aa2<<1, bb2 = (b*b)<<1, bb4 = bb2<<1,
		st = (aa2>>1)*(1-(b<<1)) + bb2,
		tt = (bb2>>1) - aa2*((b<<1)-1),
		xl, dw, dh;
		if(w) while(y > 0)
		{
			if(st < 0)
			{
				st += bb2*((x<<1)+3);
				tt += bb4*(++x);
			}
			else if(tt < 0)
			{
				st += bb2*((x<<1)+3) - aa4*(y-1);
				xl = cx-x;
				dw = (x<<1)+wod;
				tt += bb4*(++x) - aa2*(((y--)<<1)-3);
				dh = oy-y;
				this._mkDiv(xl, cy-oy, dw, dh);
				this._mkDiv(xl, cy+y+hod, dw, dh);
				oy = y;
			}
			else
			{
				tt -= aa2*((y<<1)-3);
				st -= aa4*(--y);
			}
		}
		this._mkDiv(cx-a, cy-oy, w, (oy<<1)+hod);
	};

	this.fillArc = function(iL, iT, iW, iH, fAngA, fAngZ)
	{
		var a = iW>>1, b = iH>>1,
		iOdds = (iW&1) | ((iH&1) << 16),
		cx = iL+a, cy = iT+b,
		x = 0, y = b, ox = x, oy = y,
		aa2 = (a*a)<<1, aa4 = aa2<<1, bb2 = (b*b)<<1, bb4 = bb2<<1,
		st = (aa2>>1)*(1-(b<<1)) + bb2,
		tt = (bb2>>1) - aa2*((b<<1)-1),
		// Vars for radial boundary lines
		xEndA, yEndA, xEndZ, yEndZ,
		iSects = (1 << (Math.floor((fAngA %= 360.0)/180.0) << 3))
				| (2 << (Math.floor((fAngZ %= 360.0)/180.0) << 3))
				| ((fAngA >= fAngZ) << 16),
		aBndA = new Array(b+1), aBndZ = new Array(b+1);
		
		// Set up radial boundary lines
		fAngA *= Math.PI/180.0;
		fAngZ *= Math.PI/180.0;
		xEndA = cx+Math.round(a*Math.cos(fAngA));
		yEndA = cy+Math.round(-b*Math.sin(fAngA));
		_mkLinVirt(aBndA, cx, cy, xEndA, yEndA);
		xEndZ = cx+Math.round(a*Math.cos(fAngZ));
		yEndZ = cy+Math.round(-b*Math.sin(fAngZ));
		_mkLinVirt(aBndZ, cx, cy, xEndZ, yEndZ);

		while(y > 0)
		{
			if(st < 0) // Advance x
			{
				st += bb2*((x<<1)+3);
				tt += bb4*(++x);
			}
			else if(tt < 0) // Advance x and y
			{
				st += bb2*((x<<1)+3) - aa4*(y-1);
				ox = x;
				tt += bb4*(++x) - aa2*(((y--)<<1)-3);
				this._mkArcDiv(ox, y, oy, cx, cy, iOdds, aBndA, aBndZ, iSects);
				oy = y;
			}
			else // Advance y
			{
				tt -= aa2*((y<<1)-3);
				st -= aa4*(--y);
				if(y && (aBndA[y] != aBndA[y-1] || aBndZ[y] != aBndZ[y-1]))
				{
					this._mkArcDiv(x, y, oy, cx, cy, iOdds, aBndA, aBndZ, iSects);
					ox = x;
					oy = y;
				}
			}
		}
		this._mkArcDiv(x, 0, oy, cx, cy, iOdds, aBndA, aBndZ, iSects);
		if(iOdds >> 16) // Odd height
		{
			if(iSects >> 16) // Start-angle > end-angle
			{
				var xl = (yEndA <= cy || yEndZ > cy)? (cx - x) : cx;
				this._mkDiv(xl, cy, x + cx - xl + (iOdds & 0xffff), 1);
			}
			else if((iSects & 0x01) && yEndZ > cy)
				this._mkDiv(cx - x, cy, x, 1);
		}
	};

/* fillPolygon method, implemented by Matthieu Haller.
This javascript function is an adaptation of the gdImageFilledPolygon for Walter Zorn lib.
C source of GD 1.8.4 found at http://www.boutell.com/gd/

THANKS to Kirsten Schulz for the polygon fixes!

The intersection finding technique of this code could be improved
by remembering the previous intertersection, and by using the slope.
That could help to adjust intersections to produce a nice
interior_extrema. */
	this.fillPolygon = function(array_x, array_y)
	{
		var i;
		var y;
		var miny, maxy;
		var x1, y1;
		var x2, y2;
		var ind1, ind2;
		var ints;

		var n = array_x.length;
		if(!n) return;

		miny = array_y[0];
		maxy = array_y[0];
		for(i = 1; i < n; i++)
		{
			if(array_y[i] < miny)
				miny = array_y[i];

			if(array_y[i] > maxy)
				maxy = array_y[i];
		}
		for(y = miny; y <= maxy; y++)
		{
			var polyInts = new Array();
			ints = 0;
			for(i = 0; i < n; i++)
			{
				if(!i)
				{
					ind1 = n-1;
					ind2 = 0;
				}
				else
				{
					ind1 = i-1;
					ind2 = i;
				}
				y1 = array_y[ind1];
				y2 = array_y[ind2];
				if(y1 < y2)
				{
					x1 = array_x[ind1];
					x2 = array_x[ind2];
				}
				else if(y1 > y2)
				{
					y2 = array_y[ind1];
					y1 = array_y[ind2];
					x2 = array_x[ind1];
					x1 = array_x[ind2];
				}
				else continue;

				 //  Modified 11. 2. 2004 Walter Zorn
				if((y >= y1) && (y < y2))
					polyInts[ints++] = Math.round((y-y1) * (x2-x1) / (y2-y1) + x1);

				else if((y == maxy) && (y > y1) && (y <= y2))
					polyInts[ints++] = Math.round((y-y1) * (x2-x1) / (y2-y1) + x1);
			}
			polyInts.sort(_CompInt);
			for(i = 0; i < ints; i+=2)
				this._mkDiv(polyInts[i], y, polyInts[i+1]-polyInts[i]+1, 1);
		}
	};

	this.drawString = function(txt, x, y)
	{
		this.htm += '<div style="position:absolute;white-space:nowrap;'+
			'left:' + x + 'px;'+
			'top:' + y + 'px;'+
			'font-family:' +  this.ftFam + ';'+
			'font-size:' + this.ftSz + ';'+
			'color:' + this.color + ';' + this.ftSty + '">'+
			txt +
			'</div>';
	};

/* drawStringRect() added by Rick Blommers.
Allows to specify the size of the text rectangle and to align the
text both horizontally (e.g. right) and vertically within that rectangle */
	this.drawStringRect = function(txt, x, y, width, halign)
	{
		this.htm += '<div style="position:absolute;overflow:hidden;'+
			'left:' + x + 'px;'+
			'top:' + y + 'px;'+
			'width:'+width +'px;'+
			'text-align:'+halign+';'+
			'font-family:' +  this.ftFam + ';'+
			'font-size:' + this.ftSz + ';'+
			'color:' + this.color + ';' + this.ftSty + '">'+
			txt +
			'</div>';
	};

	this.drawImage = function(imgSrc, x, y, w, h, a)
	{
		this.htm += '<div style="position:absolute;'+
			'left:' + x + 'px;'+
			'top:' + y + 'px;'+
			'width:' +  w + 'px;'+
			'height:' + h + 'px;">'+
			'<img src="' + imgSrc + '" width="' + w + '" height="' + h + '"' + (a? (' '+a) : '') + '>'+
			'</div>';
	};

	this.clear = function()
	{
		this.htm = "";
		if(this.cnv) this.cnv.innerHTML = "";
	};

	this._mkOvQds = function(cx, cy, x, y, w, h, wod, hod)
	{
		var xl = cx - x, xr = cx + x + wod - w, yt = cy - y, yb = cy + y + hod - h;
		if(xr > xl+w)
		{
			this._mkDiv(xr, yt, w, h);
			this._mkDiv(xr, yb, w, h);
		}
		else
			w = xr - xl + w;
		this._mkDiv(xl, yt, w, h);
		this._mkDiv(xl, yb, w, h);
	};
	
	this._mkArcDiv = function(x, y, oy, cx, cy, iOdds, aBndA, aBndZ, iSects)
	{
		var xrDef = cx + x + (iOdds & 0xffff), y2, h = oy - y, xl, xr, w;

		if(!h) h = 1;
		x = cx - x;

		if(iSects & 0xff0000) // Start-angle > end-angle
		{
			y2 = cy - y - h;
			if(iSects & 0x00ff)
			{
				if(iSects & 0x02)
				{
					xl = Math.max(x, aBndZ[y]);
					w = xrDef - xl;
					if(w > 0) this._mkDiv(xl, y2, w, h);
				}
				if(iSects & 0x01)
				{
					xr = Math.min(xrDef, aBndA[y]);
					w = xr - x;
					if(w > 0) this._mkDiv(x, y2, w, h);
				}
			}
			else
				this._mkDiv(x, y2, xrDef - x, h);
			y2 = cy + y + (iOdds >> 16);
			if(iSects & 0xff00)
			{
				if(iSects & 0x0100)
				{
					xl = Math.max(x, aBndA[y]);
					w = xrDef - xl;
					if(w > 0) this._mkDiv(xl, y2, w, h);
				}
				if(iSects & 0x0200)
				{
					xr = Math.min(xrDef, aBndZ[y]);
					w = xr - x;
					if(w > 0) this._mkDiv(x, y2, w, h);
				}
			}
			else
				this._mkDiv(x, y2, xrDef - x, h);
		}
		else
		{
			if(iSects & 0x00ff)
			{
				if(iSects & 0x02)
					xl = Math.max(x, aBndZ[y]);
				else
					xl = x;
				if(iSects & 0x01)
					xr = Math.min(xrDef, aBndA[y]);
				else
					xr = xrDef;
				y2 = cy - y - h;
				w = xr - xl;
				if(w > 0) this._mkDiv(xl, y2, w, h);
			}
			if(iSects & 0xff00)
			{
				if(iSects & 0x0100)
					xl = Math.max(x, aBndA[y]);
				else
					xl = x;
				if(iSects & 0x0200)
					xr = Math.min(xrDef, aBndZ[y]);
				else
					xr = xrDef;
				y2 = cy + y + (iOdds >> 16);
				w = xr - xl;
				if(w > 0) this._mkDiv(xl, y2, w, h);
			}
		}
	};

	this.setStroke(1);
	this.setFont("verdana,geneva,helvetica,sans-serif", "12px", Font.PLAIN);
	this.color = "#000000";
	this.htm = "";
	this.wnd = wnd || window;

	if(!jg_ok) _chkDHTM();
	if(jg_ok)
	{
		if(cnv)
		{
			if(typeof(cnv) == "string")
				this.cont = document.all? (this.wnd.document.all[cnv] || null)
					: document.getElementById? (this.wnd.document.getElementById(cnv) || null)
					: null;
			else if(cnv == window.document)
				this.cont = document.getElementsByTagName("body")[0];
			// If cnv is a direct reference to a canvas DOM node
			// (option suggested by Andreas Luleich)
			else this.cont = cnv;
			// Create new canvas inside container DIV. Thus the drawing and clearing
			// methods won't interfere with the container's inner html.
			// Solution suggested by Vladimir.
			this.cnv = document.createElement("div");
			this.cont.appendChild(this.cnv);
			this.paint = jg_dom? _pntCnvDom : _pntCnvIe;
		}
		else
			this.paint = _pntDoc;
	}
	else
		this.paint = _pntN;

	this.setPrintable(false);
}

function _mkLinVirt(aLin, x1, y1, x2, y2)
{
	var dx = Math.abs(x2-x1), dy = Math.abs(y2-y1),
	x = x1, y = y1,
	xIncr = (x1 > x2)? -1 : 1,
	yIncr = (y1 > y2)? -1 : 1,
	p,
	i = 0;
	if(dx >= dy)
	{
		var pr = dy<<1,
		pru = pr - (dx<<1);
		p = pr-dx;
		while(dx > 0)
		{--dx;
			if(p > 0)    //  Increment y
			{
				aLin[i++] = x;
				y += yIncr;
				p += pru;
			}
			else p += pr;
			x += xIncr;
		}
	}
	else
	{
		var pr = dx<<1,
		pru = pr - (dy<<1);
		p = pr-dy;
		while(dy > 0)
		{--dy;
			y += yIncr;
			aLin[i++] = x;
			if(p > 0)    //  Increment x
			{
				x += xIncr;
				p += pru;
			}
			else p += pr;
		}
	}
	for(var len = aLin.length, i = len-i; i;)
		aLin[len-(i--)] = x;
};

function _CompInt(x, y)
{
	return(x - y);
}


</script>

<!-- mousefunction.js -->
<script type="text/javascript">
var mousex = 0;
var mousey = 0;
var grabx = 0;
var graby = 0;
var orix = 0;
var oriy = 0;
var elex = 0;
var eley = 0;
var algor = 0;

var dragobj = null;

function falsefunc() { return false; } // used to block cascading events

function init()
{
  document.onmousemove = update; // update(event) implied on NS, update(null) implied on IE
  update();
}

function getMouseXY(e) // works on IE6,FF,Moz,Opera7
{ 
  if (!e) e = window.event; // works on IE, but not NS (we rely on NS passing us the event)
 
  if (e)
  { 
    if (e.pageX || e.pageY)
    { // this doesn't work on IE6!! (works on FF,Moz,Opera7)
      mousex = e.pageX;
      mousey = e.pageY;
      algor = '[e.pageX]';
      if (e.clientX || e.clientY) algor += ' [e.clientX] '
    }
    else if (e.clientX || e.clientY)
    { // works on IE6,FF,Moz,Opera7
      // Note: I am adding together both the "body" and "documentElement" scroll positions
      //       this lets me cover for the quirks that happen based on the "doctype" of the html page.
      //         (example: IE6 in compatibility mode or strict)
      //       Based on the different ways that IE,FF,Moz,Opera use these ScrollValues for body and documentElement
      //       it looks like they will fill EITHER ONE SCROLL VALUE OR THE OTHER, NOT BOTH 
      //         (from info at http://www.quirksmode.org/js/doctypes.html)
      mousex = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
      mousey = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
      algor = '[e.clientX]';
      if (e.pageX || e.pageY) algor += ' [e.pageX] '
    }
  }
}

function grab(context)
{
  document.onmousedown = falsefunc; // in NS this prevents cascading of events, thus disabling text selection
  dragobj = context;
  dragobj.style.zIndex = 10; // move it to the top
  document.onmousemove = drag;
  document.onmouseup = drop;
  grabx = mousex;
  graby = mousey;
  elex = orix = dragobj.offsetLeft;
  eley = oriy = dragobj.offsetTop;
  update(); 
}

function drag(e) // parameter passing is important for NS family 
{
  if (dragobj)
  {
    elex = orix + (mousex-grabx);
    eley = oriy + (mousey-graby);
    dragobj.style.position = "absolute";
    dragobj.style.left = (elex).toString(10) + 'px';
    dragobj.style.top  = (eley).toString(10) + 'px';
  }
  update(e);
  return false; // in IE this prevents cascading of events, thus text selection is disabled
}

function drop()
{
	if (dragobj)
	{
		dragobj.style.zIndex = 0;
		dragobj = null;
	}
	update();
	document.onmousemove = update;
	document.onmouseup = null;
	document.onmousedown = null;   // re-enables text selection on NS

}

function update(e)
{
	  getMouseXY(e); // NS is passing (event), while IE is passing (null)	
}
</script>


<script type="text/javascript">
function Highlight(i){
	document.getElementById(i).style.border = "2px solid orange";
}
function RemoveHighlight(i){
	document.getElementById(i).style.borderStyle = "none";
}
</script>

<script type="text/javascript">

/***********************************************
* Floating Top Bar script- u00A9 Dynamic Drive (www.dynamicdrive.com)
* Sliding routine by Roy Whittle (http://www.javascript-fx.com/)
* This notice must stay intact for legal use.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

var persistclose=0 //set to 0 or 1. 1 means once the bar is manually closed, it will remain closed for browser session
var startX = 840 //set x offset of bar in pixels
var startY = 280//set y offset of bar in pixels
var verticalpos="fromtop" //enter "fromtop" or "frombottom"

function iecompattest(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function get_cookie(Name) {
	var search = Name + "="
	var returnvalue = "";
	if (document.cookie.length > 0) {
	offset = document.cookie.indexOf(search)
	if (offset != -1) {
	offset += search.length
	end = document.cookie.indexOf(";", offset);
	if (end == -1) end = document.cookie.length;
	returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}

function closebar(){
	if (persistclose)
	document.cookie="remainclosed=1"
	document.getElementById("topbar").style.visibility="hidden"
	document.getElementById("topbar").style.display="none"
}

function staticbar(){
	barheight=document.getElementById("topbar").offsetHeight
	var ns = (navigator.appName.indexOf("Netscape") != -1) || window.opera;
	var d = document;
function ml(id){
	var el=d.getElementById(id);
	if (!persistclose || persistclose && get_cookie("remainclosed")=="")
		el.style.visibility="visible"
		if(d.layers)el.style=el;
		el.sP=function(x,y){this.style.left=x+"px";this.style.top=y+"px";};
		el.x = startX;
		if (verticalpos=="fromtop")
			el.y = startY;
		else{
			el.y = ns ? pageYOffset + innerHeight : iecompattest().scrollTop + iecompattest().clientHeight;
			el.y -= startY;
		}
		return el;
	}
	window.stayTopLeft=function(){
		if (verticalpos=="fromtop"){
			var pY = ns ? pageYOffset : iecompattest().scrollTop;
			ftlObj.y += (pY + startY - ftlObj.y)/8;
		}
		else{
			var pY = ns ? pageYOffset + innerHeight - barheight: iecompattest().scrollTop + iecompattest().clientHeight - barheight;
			ftlObj.y += (pY - startY - ftlObj.y)/8;
		}
		ftlObj.sP(ftlObj.x, ftlObj.y);
		setTimeout("stayTopLeft()", 10);
	}
	ftlObj = ml("topbar");
	stayTopLeft();
}

if (window.addEventListener)
	window.addEventListener("load", staticbar, false)
	else if (window.attachEvent)
		window.attachEvent("onload", staticbar)
	else if (document.getElementById)
		window.onload=staticbar
</script>

<script type="text/javascript" language="javascript">
function checkGender(){
	if (document.getElementById('PatientGender').value == 'M'){
	document.getElementById('Male').value = 'X';
	}else if (document.getElementById('PatientGender').value == 'F'){
	document.getElementById('Female').value = 'X';
	}
}
</script>




<script language="javascript" type="text/javascript">
function onLoad(){
      if (document.getElementById("counter").value ==''){
       (document.getElementById("counter").value = 1);
	   
      }  

}
</script>




</head>



<body onload="init(); ReloadImage(); SetSwitchOn('Freehand'); startUp();  checkGender();"  onMouseDown="showButtons(); ">

<img id='BGImage' src="${oscar_image_path}Merck_EnrolmentForm_ENGLISH-1.png" style="position:relative; left:0px; top:0px; width:750px;">

<div id="chkCanvas" style="position:absolute; left:10px; top:10px; width:750px;" onmouseover="putInBack();">

<form method="post" action="" name="FormName" id="FormName" >

<!-- -----------------Hidden input for storing Image data---------------------------------- -->
<input type="hidden" name="TempData" id="TempData">
<input type="hidden" name="DrawData" id="DrawData">
<input type="hidden" name="SubmitData" id="SubmitData">
<input type="hidden" name="counter" id="counter">




<!-- Top of Form -->

<input name="DrugName" id="DrugName" type="text" class="noborder" style="position:absolute; left:245px; top:77px; width:480px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-align:left; background-color:white;"  onblur="subject.value=DrugName.value;"  >

<input name="Dose" id="Dose" type="text" class="noborder" style="position:absolute; left:400px; top:105px; width:325px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-align:left; background-color:white;"  >

<input name="Refills" id="Refills" type="text" class="noborder" style="position:absolute; left:120px; top:135px; width:200px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-align:left; background-color:white;"  >

<input name="PrescriptionNum" id="PrescriptionNum" type="text" class="noborder" style="position:absolute; left:430px; top:135px; width:295px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-align:left; background-color:white;"  >

   <textarea name="Instructions" id="Instructions" class="noborder" style="position: absolute; left:190px; top:160px;height: 55px; width: 540px; font-family: Arial; font-size: 12px; text-decoration:underline; text-align:left; background-color:white;"  ></textarea>


<!--  Drawing code: start -->



<div id="preview" style="position:absolute; left: 190px; top: 252px; width: 420px; height: 50px; background-color:grey; opacity:0.1"></div>

<div id="myCanvas"

	style="position:absolute; left: 190px; top: 252px; width: 420px; height: 50px; "

	onmouseover="SetDrawOn();" 

	onmouseout="SetDrawOff();" 	

	onmousedown="SetMouseDown();SetStart();" 

	onmouseup="SetMouseUp();  DrawMarker();" 

	onmousemove="DrawPreview();"> 

</div>

<!--- Drawing code: finish --->


<input name="Today" id="Today" type="text" class="noborder" style="position:absolute; left:635px; top:265px; width:100px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-decoration:underline; text-align:left; background-color:white;"  oscarDB=today>

<span style="position:absolute; left:635px; top:288px; font-family:sans-serif; font-size:10px;" >(YYYY-MM-DD)</span>


<input name="PhysicianName" id="PhysicianName" type="text" class="noborder" style="position:absolute; left:225px; top:325px; width:210px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-decoration:underline; text-align:left; background-color:white;"  oscarDB=doctor>


<input name="Specialty" id="Specialty" type="text" class="noborder" style="position:absolute; left:485px; top:325px; width:85px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-decoration:underline; text-align:left; background-color:white;"  value="">

<input name="PhysicianLicence" id="PhysicianLicence" type="text" class="noborder" style="position:absolute; left:620px; top:325px; width:110px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-decoration:underline; text-align:left; background-color:white;"  oscarDB=doctor_cpsid>

<input name="ClinicAddress" id="ClinicAddress" type="text" class="noborder" style="position:absolute; left:130px; top:350px; width:210px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-align:left; background-color:white;"  oscarDB=clinic_addressLine>

<input name="ClinicAddressCity" id="ClinicAddressCity" type="text" class="noborder" style="position:absolute; left:370px; top:350px; width:200px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-align:left; background-color:white;"  oscarDB=clinic_city>

<input name="ClinicAddressPostal" id="ClinicAddressPostal" type="text" class="noborder" style="position:absolute; left:630px; top:350px; width:100px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-align:left; background-color:white;"  oscarDB=clinic_postal>

<input name="ClinicPhone" id="ClinicPhone" type="text" class="noborder" style="position:absolute; left:100px; top:380px; width:180px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-align:left; background-color:white;"  oscarDB=clinic_phone>

<input name="ClinicFax" id="ClinicFax" type="text" class="noborder" style="position:absolute; left:325px; top:380px; width:155px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-align:left; background-color:white;"  oscarDB=clinic_fax>

<input name="ClinicEmail" id="ClinicEmail" type="text" class="noborder" style="position:absolute; left:515px; top:380px; width:210px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-align:left; background-color:white;"  value="">


<!--  Drawing code: start -->



<div id="preview2" style="position:absolute; left: 190px; top: 460px; width: 420px; height: 50px; background-color:grey; opacity:0.1"></div>

<div id="myCanvas2"

	style="position:absolute; left: 190px; top: 460px; width: 420px; height: 50px; "

	onmouseover="SetDrawOn();" 

	onmouseout="SetDrawOff();" 	

	onmousedown="SetMouseDown();SetStart();" 

	onmouseup="SetMouseUp();  DrawMarker();" 

	onmousemove="DrawPreview();"> 

</div>

<!--- Drawing code: finish --->

<input name="Today2" id="Today2" type="text" class="noborder" style="position:absolute; left:635px; top:473px; width:100px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-decoration:underline; text-align:left; background-color:white;"  oscarDB=today>

<span style="position:absolute; left:635px; top:496px; font-family:sans-serif; font-size:10px;" >(YYYY-MM-DD)</span>


<input name="FirstName" id="FirstName" type="text" class="noborder" style="position:absolute; left:145px; top:558px; width:200px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-decoration:underline; text-align:left; background-color:white;"  oscarDB=patient_nameF>



<input name="LastName" id="LastName" type="text" class="noborder" style="position:absolute; left:405px; top:558px; width:160px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-decoration:underline; text-align:left; background-color:white;"  oscarDB=patient_nameL>

<input name="DOB" id="DOB" type="text" class="noborder" style="position:absolute; left:636px; top:558px; width:100px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-align:left; background-color:white;"  oscarDB=dobc>

<input name="PtAddress" id="PtAddress" type="text" class="noborder" style="position:absolute; left:125px; top:583px; width:220px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-align:left; background-color:white;"  oscarDB=address_street_number_and_name>

<input name="PtCity" id="PtCity" type="text" class="noborder" style="position:absolute; left:370px; top:583px; width:110px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-align:left; background-color:white;"  oscarDB=city>

<input name="PtProvince" id="PtProvince" type="text" class="noborder" style="position:absolute; left:530px; top:583px; width:40px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-align:left; background-color:white;"  oscarDB=province>

<input name="PtPostal" id="PtPostal" type="text" class="noborder" style="position:absolute; left:635px; top:589px; width:100px; height:16px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:10px; text-align:left; background-color:white;"  oscarDB=postal>

<input name="PtPhone" id="PtPhone" type="text" class="noborder" style="position:absolute; left:100px; top:613px; width:220px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-align:left; background-color:white;"  oscarDB=phone>


</div>
<!-- START OF PAGE 2 -->


<div id="page2" style="position: relative;" class="pagebreak">
			<img id="BGImage2" src="${oscar_image_path}Merck_EnrolmentForm_ENGLISH-2.png" style="position:relative; left:0px; top:0px; width:750px;">

<!-- START OF PAGE 3 -->
<input type="hidden" name="TempData" id="TempData">
<input type="hidden" name="DrawData" id="DrawData">
<input type="hidden" name="SubmitData" id="SubmitData">


<div id="page3" style="position: relative;" class="pagebreak">
			<img id="BGImage3" src="${oscar_image_path}FCPA-PAP-Program-ENG-FINAL.png" style="position:relative; left:0px; top:0px; width:750px;">

			
<input name="GovernmentNo" id="GovernmentNo" type="text" class="noborder" style="position:absolute; left: 30px; top: 547px; width:16px; height:16px;border: 1px solid #000000;font-weight:bold;" onkeypress="javascript:return displayKeyCode(event,this.id);" onmousedown="changeValue(this.id);setDirtyFlag()" onkeypress="javascript:return displayKeyCode(event,this.id);">

<input name="GovernmentYes1" id="GovernmentYes1" type="text" class="noborder" style="position:absolute; left: 30px; top: 575px; width:16px; height:16px;border: 1px solid #000000;font-weight:bold;" onkeypress="javascript:return displayKeyCode(event,this.id);" onmousedown="changeValue(this.id);setDirtyFlag()" onkeypress="javascript:return displayKeyCode(event,this.id);">

<input name="GovernmentText1" id="GovernmentText1" type="text" class="noborder" style="position:absolute; left:60px; top:595px; width:600px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-decoration:underline; text-align:left; background-color:white;"  value="">

<input name="GovernmentYes2" id="GovernmentYes2" type="text" class="noborder" style="position:absolute; left: 30px; top: 625px; width:16px; height:16px;border: 1px solid #000000;font-weight:bold;" onkeypress="javascript:return displayKeyCode(event,this.id);" onmousedown="changeValue(this.id);setDirtyFlag()" onkeypress="javascript:return displayKeyCode(event,this.id);">

<input name="GovernmentText2" id="GovernmentText2" type="text" class="noborder" style="position:absolute; left:360px; top:618px; width:185px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-decoration:underline; text-align:left; background-color:white;"  value="">

<input name="GovernmentText3" id="GovernmentText3" type="text" class="noborder" style="position:absolute; left:405px; top:640px; width:185px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-decoration:underline; text-align:left; background-color:white;"  value="">

<input name="Doctor2" id="Doctor2" type="text" class="noborder" style="position:absolute; left:260px; top:680px; width:300px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-decoration:underline; text-align:left; background-color:white;"  oscardb=doctor>


<!--  Drawing code: start -->



<div id="preview3" style="position:absolute; left: 300px; top: 705px; width: 420px; height: 50px; background-color:grey; opacity:0.1"></div>

<div id="myCanvas3"

	style="position:absolute; left: 300px; top: 705px; width: 420px; height: 50px; "

	onmouseover="SetDrawOn();" 

	onmouseout="SetDrawOff();" 	

	onmousedown="SetMouseDown();SetStart();" 

	onmouseup="SetMouseUp();  DrawMarker();" 

	onmousemove="DrawPreview();"> 

</div>

<!--- Drawing code: finish --->


<input name="Today3" id="Today3" type="text" class="noborder" style="position:absolute; left:75px; top:750px; width:200px; height:22px; font-family:sans-serif; font-style:normal; font-weight:normal; font-size:14px; text-decoration:underline; text-align:left; background-color:white;"  oscarDB=today>



<!-- --------------------- End of form inputs -------------------------------------->        

</div>

<!-- The submit/print/reset buttons ------------------------------------------------------------->
<div class="DoNotPrint" id="BottomButtons" >
 <div id="faxControl">&nbsp;</div>	

		<table style="position: relative; left:20px; top:20px;text-align: left; width: 90%;   font-size:12px; font-family:Arial;" border="0" cellpadding="0" cellspacing="0">
		<tr><td>
		<input type="hidden" id="newForm" name="newForm" value="True" />				
		Subject: <input name="subject" size="40" type="text"> 
		<input value="Submit" name="SubmitButton" id="SubmitButton" type="submit" onclick="releaseDirtyFlag();document.FormName.submit();SubmitImage(); document.forms[0].submit();">
		<input value="Reset" name="ResetButton" id="ResetButton" type="reset"> 
		<input value="Print" name="PrintButton" id="PrintButton" type="button" onclick="printLetter()"> 			
		<input value="Print and Submit" name="PrintSubmitButton" type="button" onClick="printLetter(); releaseDirtyFlag(); setTimeout('SubmitButton.click()',1000);"> 
		</td></tr>
		</table>
</div>
<!-- ------End of submit/print/reset buttons----------------------------------------------------->

 </form>

 








<!-- -----------Pop-up menu items ------------------------ -->

<div id="topbar" style="position:fixed; left:250px; top:30px" class="DoNotPrint">

<form name="ToolSelect">

	<table><tr><td>

			<input id="Freehand" type="button" value="Draw" onclick="SetSwitchOn(this.id);" style="width:100px">

			<input id="Text" type="button" value="Text" onclick="GetTxt(); SetSwitchOn(this.id);" style="width:50px">



			<select id="FontSize" name="FontSize" style="width:50px;">

			<option onclick="SetFontSize('10px');">10</option>

			<option onclick="SetFontSize('11px');">11</opion>

			<option onclick="SetFontSize('12px');">12</option>

			<option onclick="SetFontSize('13px');">13</option>

			<option onclick="SetFontSize('14px');">14</option>

			<option onclick="SetFontSize('15px');">15</option>

			<option onclick="SetFontSize('16px');">16</option>

			<option onclick="SetFontSize('18px');">18</option>

			<option onclick="SetFontSize('19px');">19</option>

			<option onclick="SetFontSize('20px');">20</option>

			</select>

	</td></tr></table>

	

	<table><tr><td>

			<input id="black"  style="width:10px; height: 10px;border: 2px solid orange; background-color: black; margin: 2px;" onmouseover="Highlight(this.id);" onmouseout="RemoveHighlight(this.id);Highlight(StrokeColor);" 



onclick="RemoveHighlight(StrokeColor);SetStrokeColor(this.id);">

			<input id="red" style="width: 10px; height: 10px; background-color: red; border:2px solid orange; margin: 2px;" onmouseover="Highlight(this.id);" onmouseout="RemoveHighlight(this.id);Highlight(StrokeColor);" 



onclick="RemoveHighlight(StrokeColor);SetStrokeColor(this.id);">

	</td><td>

			<input id="SetThickness1" name="Thickness" type="radio" onclick="SetThickness(1);" >1

			<input id="SetThickness3" name="Thickness" type="radio" onclick="SetThickness(3);" checked>3						<input id="SetThickness5" name="Thickness" type="radio" 



onclick="SetThickness(5);">5

			<input id="SetThickness7" name="Thickness" type="radio" onclick="SetThickness(7);">7

			<input id="SetThickness9" name="Thickness" type="radio" onclick="SetThickness(9);">9

	</td></tr></table>



	<table><tr><td>

				<input id="UndoButton" type="button" value="Undo" onclick="Undo();" style="width:100px">

				<input id="ClearButton" type="button"  value="Clear" onclick="Clear();" style="width:100px">

	</td></tr></table>



</form>

</div>





<script type="text/javascript">



var cnv = document.getElementById("myCanvas"); 

var jg = new jsGraphics(cnv);

var cnvLeft = parseInt(document.getElementById('myCanvas').style.left); 

var cnvTop = parseInt(document.getElementById('myCanvas').style.top);



var pvcnv = document.getElementById("preview");

var pv = new jsGraphics(pvcnv);



var SubmitData = new Array();

var DrawData  = new Array();

var TempData = new Array();





jg.setPrintable(true);

var StrokeColor = "black";

var StrokeThickness = 3;

var x0 = 0;

var y0 = 0;

var txt = "";





function SetStrokeColor(c){

	StrokeColor = c;

}



var FontSize = "10px";

function SetFontSize(n){

	FontSize = n;

}



var MouseDown = false;

function SetMouseDown(){

	MouseDown = true;

}

function SetMouseUp(){

	MouseDown = false;

}



var DrawSwitch = false;

function SetDrawOn(){

	DrawSwitch = true;

}



function SetDrawOff(){

	DrawSwitch  = false;

}



function SetThickness(x){

	StrokeThickness = parseInt(x);

}



var TextSwitch = false;

var FreehandSwitch = false;



function SetSwitchesOff(){

	TextSwitch = false;

	FreehandSwitch = false;

}



var DrawTool = "Freehand";

function SetSwitchOn(n){	

	SetSwitchesOff();

	DrawTool = n;

	if(n=="Text"){

		TextSwitch = true;

	}else if(n=="Freehand"){

		FreehandSwitch=true;

	}

}





function SetStart(){

	x0 = mousex - cnvLeft;

	y0 = mousey - cnvTop;

	if(FreehandSwitch){

		Xposition.push(x0);

		Yposition.push(y0);

	}

}



function GetTxt(){

	txt = prompt("Enter Text Here:","");

}



function DrawText(canvas,x,y,txt,StrokeColor,FontSize){

	//draws a sting of text

	canvas.setColor(StrokeColor);

	canvas.setStroke(StrokeThickness);

	var FontFamily = "arial";		//sets font

	var FontStyle = Font.PLAIN;		//Font.PLAIN, Font.BOLD, Font.ITALIC, Font.ITALIC_BOLD

	canvas.setFont(FontFamily,FontSize,FontStyle);



	var x1 = x;

	var y1 = y - 10;



	if ((txt != null) && (txt != "")){

		canvas.drawString(txt, x1, y1);

		canvas.paint();





		//store parameters in an array 

		if(canvas == jg){

			var Parameter = "Text" + "_" +  x + "_" + y + "_" + txt + "_" +  StrokeColor + "_" + FontSize;

			DrawData.push(Parameter);

			document.getElementById("DrawData").value = DrawData;

		}

	}

}

var Xposition = new Array();

var Yposition = new Array();



function GetXY(x,y){

var s = StrokeThickness;

var l = Xposition.length - 1;	//l = last position

	if ( (Math.abs(Xposition[l] - x) > s) ||  (Math.abs(Yposition[l] - y) > s)){

		Xposition.push(x);

		Yposition.push(y);



	}

	

}



function ClearXY(){

	Xposition = new Array();

	Yposition = new Array();

}



function ArrToStr(Arr,s){

	//convert array values to string

	var Str = "";

	for (n = 0; (n < Arr.length); n++)

	 {

		if (n > 0) 

		{

			Str += s; // each set of data separated by s

		}

		Str += Arr[n]; 

	}

 	return Str;

}



function StrToArr(Str,s){

	//converts string to an array

	var Arr  = Str.split(s);

	for (n=0;n<Arr.length;n++){

		Arr[n] = parseInt(Arr[n]);

	}

	return Arr;

}



function DrawFreehand(canvas,X,Y,StrokeColor){

	if (canvas == pv){

		jg.setColor(StrokeColor);

		jg.setStroke(StrokeThickness);

		if(X.length<2){

			var x = X[0];

			var y = Y[0];

			jg.drawLine(x,y,x,y);

			jg.paint();

		}

		else if (X.length>1){

			var a = X.length - 2;

			var b = a + 1;

			var x1 = parseInt(X[a]);

			var y1 = parseInt(Y[a]);

			var x2 = parseInt(X[b]);

			var y2 = parseInt(Y[b]);

			jg.drawLine(x1,y1,x2,y2);

			jg.paint();

		}

	}

	if (canvas == jg){

		canvas.setColor(StrokeColor);

		canvas.setStroke(StrokeThickness);

		if(X.length<2){

			var x = X[0];

			var y = Y[0];

			canvas.drawLine(x,y,x,y);

			canvas.paint();

		}

		if(X.length > 1){

			canvas.drawPolyline(X,Y);

			canvas.paint();

		}



		//store parameters in an array

		var StrX = ArrToStr(X, ':');

		var StrY = ArrToStr(Y, ':');



		var Parameter = "Freehand" + "_" +  StrX + "_" + StrY + "_" + StrokeColor;

		DrawData.push(Parameter);

		document.getElementById("DrawData").value = DrawData;

	}



}



function DrawMarker(){

	if(DrawSwitch){

		var x = parseInt(mousex - cnvLeft);	

		var y = parseInt(mousey - cnvTop);

		if(TextSwitch){

			DrawText(jg,x,y,txt,StrokeColor,FontSize);

		}

		else if(FreehandSwitch){

			DrawFreehand(jg,Xposition,Yposition,StrokeColor);

			ClearXY();

		}

	}

}

		

function DrawPreview(){

	pv.clear();

	var x = parseInt(mousex-cnvLeft);

	var y = parseInt(mousey-cnvTop);

	if (MouseDown){

		if(TextSwitch){

			DrawText(pv,x,y,txt,StrokeColor,FontSize);

		}

		else if(FreehandSwitch){

			GetXY(x,y);

			DrawFreehand(pv,Xposition,Yposition,StrokeColor);

		}

	}



}





function RedrawImage(RedrawParameter){

		var DrawingType = RedrawParameter[0];

		if(DrawingType == "Text"){

			var x = parseInt(RedrawParameter[1]);

			var y = parseInt(RedrawParameter[2]);

			var txt = RedrawParameter[3];

			StrokeColor = RedrawParameter[4];

			FontSize = RedrawParameter[5];

			DrawText(jg,x,y,txt,StrokeColor,FontSize);

		}

		else if(DrawingType == "Freehand"){

			var X = StrToArr(RedrawParameter[1], ':');

			var Y = StrToArr(RedrawParameter[2], ':');

			StrokeColor = RedrawParameter[3];

			DrawFreehand(jg,X,Y,StrokeColor);

		}

}





function Undo(){

	jg.clear();

	TempData = DrawData;

	DrawData = new Array();

	document.getElementById("DrawData").value = "";



	for (i=0; (i < (TempData.length - 1) ); i++){

		var Parameters = TempData[i].split("_");

		RedrawImage(Parameters);

	}

}



function RecallImage(){

	for (i=0; (i < TempData.length);i++){

		var Parameters = new Array();

		Parameters =  TempData[i].split("_");

		RedrawImage(Parameters);

	}

}



function Clear(){

	jg.clear();

	TempData = new Array();

	DrawData = new Array();

	SubmitData = new Array();

	document.getElementById("TempData").value = "";

	document.getElementById("DrawData").value = "";

	document.getElementById("SubmitData").value = "";

	Xposition = new Array();

	Yposition = new Array();

}



function ClearExceptSubmit(){

	jg.clear();

	TempData = new Array();

	DrawData = new Array();

	document.getElementById("TempData").value = "";

	document.getElementById("DrawData").value = "";

	Xposition = new Array();

	Yposition = new Array();

}



function SubmitImage(){

	EncodeData();

}



function EncodeData(){

	var packed = "";  // Initialize packed or we get the word 'undefined'

	//Converting image data in array into a string

	for (i = 0; (i < DrawData.length); i++)

	 {

		if (i > 0) 

		{

			packed += ","; // each set of data separated by comma

		}

		packed += escape(DrawData[i]); 	//'escape' encodes dataset into unicode

	}

	document.getElementById("SubmitData").value = packed;  //stores image data into hidden form field

}



function DecodeData(){

	var query = document.getElementById("SubmitData").value;

	var data = query.split(',');

	for (i = 0; (i < data.length); i++)

	{

		data[i] = unescape(data[i]);

	}

	TempData = data;

	DrawData = new Array();

	document.getElementById("DrawData").value = document.getElementById("SubmitData").value;

	document.getElementById("SubmitData").value = "";

}



function ReloadImage(){

	DecodeData();

	RecallImage();

}



</script>

<!-- Drawing Code: End -->

</body>

</html>

Document Actions

 

Download button

DOWNLOAD OSCAR FOR TESTING

 

eForms button

DOWNLOAD SHARED E-FORMS


 Customize button

FIND PLUG-INS AND TWEAKS
FOR YOUR OSCAR EMR

 

Subscribe Button

SUBSCRIBE TO DISCUSSION LIST 
(SEE ALL LISTS)

  

Help button

ACCESS THE ONLINE MANUALS
(PAID SUPPORT)