function draw_rectangle(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) 
{
	var c = document.getElementById(param1).getContext("2d");
	var x 		= param2;
	var y 		= param3;
	var w 		= param4;
	var h 		= param5;
	var radius 	= param6;
	var lw 		= param7;
	var lclr 	= param8;
	var la 		= param9/100;
	var fclr 	= param10;
	var fa 		= param11/100;
	
	
	var stroke 	= true;
	var fill 	= true;
	var inner 	= (param15 == null) ? false : true;
	
	if (lw == 0 || lw == null || la == 0 || la == null) 
	{
		stroke = false;
	}
	if (fa == 0 || fa == null ) 
	{
		fill = false;
	}
	
	x 			= lw/2;
	y 			= lw/2;
	w 			= w - (lw);
	h 			= h - (lw);
	
	
	//var sox 	= (lw/2)+param12;
	//var soy 	= (lw/2)+param13;
	var sox 	= param12;
	var soy 	= param13;
	var sb 		= param14;
	
	if (c) 
	{
		c.beginPath();
		c.moveTo(x + radius, y);
		c.lineTo(x + w - radius, y);
		c.quadraticCurveTo(x + w, y, x + w, y + radius);
		c.lineTo(x + w, y + h - radius);
		c.quadraticCurveTo(x + w, y + h, x + w - radius, y + h);
		c.lineTo(x + radius, y + h);
		c.quadraticCurveTo(x, y + h, x, y + h - radius);
		c.lineTo(x, y + radius);
		c.quadraticCurveTo(x, y, x + radius, y);
		c.closePath();  
		 
		//*
		c.shadowOffsetX = sox;
		c.shadowOffsetY = soy;
		c.shadowBlur    = sb;
		c.shadowColor   = 'rgba(0, 0, 0, 0.5)';
		//*/
		var fhr = hexToR(fclr);
		var fhg = hexToG(fclr);
		var fhb = hexToB(fclr);
		var frgba = "rgba("+fhr+","+fhg+","+fhb+","+fa+")";
		c.fillStyle = frgba;
		
		if (fill)
		{
			c.fill();
		}  
		//c.shadowColor = "transparent";
		c.lineWidth = lw;
		
		c.lineJoin = "round";
		if(radius == 0)
		{
			c.lineJoin = "miter";
		}
		//
		//c.lineJoin = "bevel";	
		var lhr = hexToR(lclr);
		var lhg = hexToG(lclr);
		var lhb = hexToB(lclr);
		var lrgba = "rgba("+lhr+","+lhg+","+lhb+","+la+")";
		c.strokeStyle = lrgba;
		//c.strokeStyle = 'rgba(lhr, lhg, lhb, 0.5)';//lclr;
		if (stroke) 
		{
			c.stroke();
		}
		
	}
}


/*
function draw_circle(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) 
{
	var c = document.getElementById(param1);
	var cx = document.getElementById(param1).getContext("2d");
	//var c = document.getElementById(param1).getContext("2d");
	var x 		= param2;
	var y 		= param3;
	var w 		= param4;
	var h 		= param5;
	var radius 	= param6;
	var lw 		= param7;//(param7 > 1) ? param7-1 : param7;
	var lclr 	= param8;
	var la 		= param9;
	var fclr 	= param10;
	var fa 		= param11;
	
	
	var stroke 	= true;
	var fill 	= true;
	
	if (lw == 0 || lw == null || la == 0 || la == null) 
	{
		stroke = false;
	}
	if (fa == 0 || fa == null ) 
	{
		fill = false;
	}
	
	x 	= (w/2);
	y 	= (h/2);
	
	
	var xf = 1;
	var yf = 1;
	
	if(w > h)
	{
		radius	= ((w-lw)/2);
		var f = h/w;
		yf = yf * f;
	}
	else
	{
		radius	= ((h-lw)/2);
		var f = w/h;
		xf = xf * f;
	}
	
	
	var sox 	= param12;
	var soy 	= param13;
	var sb 		= param14;
	
	
	
	if (cx) 
	{
		
		//cx.save();
		//cx.scale(xf, yf);
		if(xf < 1)
		{
			//cx.translate(x, 0);
		}
		else if(yf < 1)
		{
			//cx.translate(y, 0);
		}
		else
		{
		}
    	
    	
 		cx.beginPath();
    	cx.arc(x, y, radius, 0, 2 * Math.PI, false);
 		//cx.restore(); 
		
		cx.shadowOffsetX = sox;
		cx.shadowOffsetY = soy;
		cx.shadowBlur    = sb;
		cx.shadowColor   = 'rgba(0, 0, 0, 0.5)';
		
		
		if (fill)
		{
			cx.fillStyle = fclr;
			cx.fill();
			cx.shadowColor = "transparent";
		}  
		
		cx.lineWidth = lw;
		
		cx.lineJoin = "round";
		if(radius == 0)
		{
			cx.lineJoin = "miter";
		}
		if (stroke) 
		{
			cx.strokeStyle = lclr;
			cx.stroke();
		}
		
	}
}
*/

function draw_circle(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) 
{
	
	var c = document.getElementById(param1).getContext("2d");
	var x 		= param2;
	var y 		= param3;
	var w 		= param4;
	var h 		= param5;
	var radius 	= param6;
	var lw 		= param7;
	var lclr 	= param8;
	var la 		= param9;
	var fclr 	= param10;
	var fa 		= param11;
	
	
	var stroke 	= true;
	var fill 	= true;
	
	if (lw == 0 || lw == null || la == 0 || la == null) 
	{
		stroke = false;
	}
	if (fa == 0 || fa == null ) 
	{
		fill = false;
	}
	
	
	x 			= (w/2)+lw;
	y 			= (h/2)+lw;
	
	if(w > h)
	{
		radius		= (w/2);
		
	}
	else
	{
		radius		= (h/2);
		
	}
	
	
	var sox 	= param12;
	var soy 	= param13;
	var sb 		= param14;
	
	
	
	if (c) 
	{
		c.beginPath();
		c.arc(x, y, radius, 0, 2 * Math.PI, false);
		c.closePath();
		
		c.shadowOffsetX = sox;
		c.shadowOffsetY = soy;
		c.shadowBlur    = sb;
		c.shadowColor   = 'rgba(0, 0, 0, 0.5)';
		
		
		if (fill)
		{
			var fhr = hexToR(fclr);
			var fhg = hexToG(fclr);
			var fhb = hexToB(fclr);
			var frgba = "rgba("+fhr+","+fhg+","+fhb+","+fa+")";
			c.fillStyle = frgba;
			c.fill();
			c.shadowColor = "transparent";
		}  
		
		c.lineWidth = lw;
		
		c.lineJoin = "round";
		if(radius == 0)
		{
			c.lineJoin = "miter";
		}
		if (stroke) 
		{
			var lhr = hexToR(lclr);
			var lhg = hexToG(lclr);
			var lhb = hexToB(lclr);
			var lrgba = "rgba("+lhr+","+lhg+","+lhb+","+la+")";
			c.strokeStyle = lrgba;
			//c.strokeStyle = lclr;
			c.stroke();
		}
		
	}
}

/*
function draw_ellipse(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) 
{
	var c = document.getElementById(param1).getContext("2d");
	var x 		= param2;
	var y 		= param3;
	var w 		= param4;
	var h 		= param5;
	var radius 	= param6;
	var lw 		= param7;
	var lclr 	= param8;
	var la 		= param9;
	var fclr 	= param10;
	var fa 		= param11;
	
	
	var stroke 	= true;
	var fill 	= true;
	
	if (lw == 0 || lw == null || la == 0 || la == null) 
	{
		stroke = false;
	}
	if (fa == 0 || fa == null ) 
	{
		fill = false;
	}
	
	//w = radius*2;
	//h = radius*2;
	
	x 			= (w/2);
	y 			= (h/2);
	
	
	radius		= (w/2);
	
	var sox 	= param12;
	var soy 	= param13;
	var sb 		= param14;
	
	
	
	if (c) 
	{
		
		c.beginPath();
  		c.moveTo(x, y - h/2);
		c.bezierCurveTo(x + w/2, y - h/2, x + w/2, y + h/2, x, y + h/2);
		c.bezierCurveTo(x - w/2, y + h/2, x - w/2, y - h/2, x, y - h/2);
		c.closePath();	
		
		c.shadowOffsetX = sox;
		c.shadowOffsetY = soy;
		c.shadowBlur    = sb;
		c.shadowColor   = 'rgba(0, 0, 0, 0.5)';
		
		if (fill)
		{
			c.fillStyle = fclr;
			c.fill();
			c.shadowColor = "transparent";
		}  
		
		c.lineWidth = lw;
		
		c.lineJoin = "round";
		if(radius == 0)
		{
			c.lineJoin = "miter";
		}
		//c.lineJoin = "bevel";	
		if (stroke) 
		{
			c.strokeStyle = lclr;
			c.stroke();
		}
		
		
	}
}
*/

function draw_image(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) 
{
	var c = document.getElementById(param1);
	var cx = document.getElementById(param1).getContext("2d");
	
	var img = new Image;
	img.src = param2;
	img.onload = function() 
	{
		add();
	};
	
	function add()
	{
		var x = param3;
		var y = param4;
		var w = param5;
		var h = param6;
		var dx = param7;
		var dy = param8;
		var dw = param9;
		var dh = param10;
		x = ((w/2) - (dw/2))+dx;
		y = ((h/2) - (dh/2))+dy;
		cx.drawImage(img,x,y,dw,dh);
	}
}
/*/
function draw_image(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param13, param14, param15, param16) 
{
	var c = document.getElementById(param1);
	var cx = document.getElementById(param1).getContext("2d");
	
	
	
	var img = new Image;
	img.onload = function() 
	{
		add();
	};
	
	img.src = param2;
	
	function add()
	{
		var x = param3;
		var y = param4;
		var w = param5;
		var h = param6;
		var dx = param7;
		var dy = param8;
		var dw = param9;
		var dh = param10;
		
		var sox 	= param13;
		var soy 	= param14;
		var sb 		= param15;
 		
		cx.drawImage(img, x, y, w, h, dx, dy, dw, dh);
	}
}
/*/





function hexToR(param1) {return parseInt((cutHex(param1)).substring(0,2),16)}
function hexToG(param1) {return parseInt((cutHex(param1)).substring(2,4),16)}
function hexToB(param1) {return parseInt((cutHex(param1)).substring(4,6),16)}
function cutHex(param1) {return (param1.charAt(0)=="#") ? param1.substring(1,7):param1}



