var wrapper=document.getElementsByClassName("signature-pad"),canvases=[];function resizeCanvas(){for(var i=0;i<canvases.length;i++){var ratio=window.devicePixelRatio||1;0==canvases[i].offsetWidth||0==canvases[i].offsetHeight?(canvases[i].width=645*ratio,canvases[i].height=207*ratio):(canvases[i].width=canvases[i].offsetWidth*ratio,canvases[i].height=canvases[i].offsetHeight*ratio),canvases[i].getContext("2d").scale(ratio,ratio),null!=signaturePad&&"undefined"!=typeof signaturePad&&""!=signaturePad&&null!=signaturePad[i]&&void 0!==signaturePad[i]&&""!=signaturePad[i]&&signaturePad[i].clear()}}function InitCanvasAndHide(){wrapper=document.getElementsByClassName("signature-pad"),signaturePad=[];for(var i=0;i<wrapper.length;i++)canvases[i]=wrapper[i].querySelector("canvas"),canvases[i].setAttribute("id","canvas_"+i),signaturePad[i]=new SignaturePad(canvases[i]);var parentSignaturePad=document.getElementsByClassName("signature-pad-parent");for(i=0;i<parentSignaturePad.length;i++)parentSignaturePad[i].style.display="block"}function ShowCanvas(){for(var SignaturePadDiv=document.getElementsByClassName("signature-pad"),i=0;i<SignaturePadDiv.length;i++)SignaturePadDiv[i].style.display="block";setTimeout(function(){resizeCanvas()},2e3);for(i=0;i<canvases.length;i++)signaturePad[i]=new SignaturePad(canvases[i],{onBegin:function(e){$(e.target.previousElementSibling).hide(),$(e.target).parents(".signature-pad-parent").removeClass("errorInput"),$(e.target).parents(".signature-pad-parent").siblings(".errorInput").hide()}});return!1}function ClearSignatureData(that){"undefined"!=typeof _formResp&&(_formResp.isClickFromClearButton=!0);var canvasIndex=that.previousElementSibling.getAttribute("id").split("_");if(null!=canvasIndex&&null!=canvasIndex){var signaturePadIndex=parseInt(canvasIndex[canvasIndex.length-1]);signaturePad[signaturePadIndex].clear(),$(that.previousElementSibling.previousElementSibling).show()}return!1}
/*!
 * Signature Pad v1.3.2
 * https://github.com/szimek/signature_pad
 *
 * Copyright 2013 Szymon Nowak
 * Released under the MIT license
 *
 * The main idea and some parts of the code (e.g. drawing variable width Bézier curve) are taken from:
 * http://corner.squareup.com/2012/07/smoother-signatures.html
 *
 * Implementation of interpolation using cubic Bézier curves is taken from:
 * http://benknowscode.wordpress.com/2012/09/14/path-interpolation-using-cubic-bezier-and-control-point-estimation-in-javascript
 *
 * Algorithm for approximated length of a Bézier curve is taken from:
 * http://www.lemoda.net/maths/bezier-length/index.html
 *
 */$(document).ready(function(){Array.isArray(wrapper);InitCanvasAndHide(),ShowCanvas();var width=$(window).width();$(window).resize(function(){var differ=$(this).width()-width;width!=$(this).width()&&(differ>100||differ<-100)&&(resizeCanvas(),width=$(this).width())})});var SignaturePad=function(document){"use strict";var SignaturePad=function(canvas,options){var opts=options||{};this.velocityFilterWeight=opts.velocityFilterWeight||.7,this.minWidth=opts.minWidth||2.5,this.maxWidth=opts.maxWidth||3.5,this.dotSize=opts.dotSize||function(){return(this.minWidth+this.maxWidth)/2},this.penColor=opts.penColor||"black",this.backgroundColor=opts.backgroundColor||"rgba(0,0,0,0)",this.onEnd=opts.onEnd,this.onBegin=opts.onBegin,this._canvas=canvas,this._ctx=canvas.getContext("2d"),this.clear(),this._handleMouseEvents(),this._handleTouchEvents()};SignaturePad.prototype.clear=function(){var ctx=this._ctx,canvas=this._canvas;ctx.fillStyle=this.backgroundColor,ctx.clearRect(0,0,canvas.width,canvas.height),ctx.fillRect(0,0,canvas.width,canvas.height),this._reset()},SignaturePad.prototype.toDataURL=function(imageType,quality){var canvas=this._canvas;return canvas.toDataURL.apply(canvas,arguments)},SignaturePad.prototype.fromDataURL=function(dataUrl){var self=this,image=new Image;this._reset(),image.src=dataUrl,image.onload=function(){self._ctx.drawImage(image,0,0,self._canvas.width,self._canvas.height)},this._isEmpty=!1},SignaturePad.prototype._strokeUpdate=function(event){var point=this._createPoint(event);this._addPoint(point)},SignaturePad.prototype._strokeBegin=function(event){this._reset(),this._strokeUpdate(event),"function"==typeof this.onBegin&&this.onBegin(event)},SignaturePad.prototype._strokeDraw=function(point){var ctx=this._ctx,dotSize="function"==typeof this.dotSize?this.dotSize():this.dotSize;ctx.beginPath(),this._drawPoint(point.x,point.y,dotSize),ctx.closePath(),ctx.fill()},SignaturePad.prototype._strokeEnd=function(event){var canDrawCurve=this.points.length>2,point=this.points[0];!canDrawCurve&&point&&this._strokeDraw(point),"function"==typeof this.onEnd&&this.onEnd(event)},SignaturePad.prototype._handleMouseEvents=function(){var self=this;this._mouseButtonDown=!1,this._canvas.addEventListener("mousedown",function(event){1===event.which&&(self._mouseButtonDown=!0,self._strokeBegin(event))}),this._canvas.addEventListener("mousemove",function(event){self._mouseButtonDown&&self._strokeUpdate(event)}),document.addEventListener("mouseup",function(event){1===event.which&&self._mouseButtonDown&&(self._mouseButtonDown=!1,self._strokeEnd(event))})},SignaturePad.prototype._handleTouchEvents=function(){var self=this;this._canvas.style.msTouchAction="none",this._canvas.addEventListener("touchstart",function(event){var touch=event.changedTouches[0];self._strokeBegin(touch)}),this._canvas.addEventListener("touchmove",function(event){event.preventDefault();var touch=event.changedTouches[0];self._strokeUpdate(touch)}),document.addEventListener("touchend",function(event){event.target===self._canvas&&self._strokeEnd(event)})},SignaturePad.prototype.isEmpty=function(){return this._isEmpty},SignaturePad.prototype._reset=function(){this.points=[],this._lastVelocity=0,this._lastWidth=(this.minWidth+this.maxWidth)/2,this._isEmpty=!0,this._ctx.fillStyle=this.penColor},SignaturePad.prototype._createPoint=function(event){var rect=this._canvas.getBoundingClientRect();return new Point(event.clientX-rect.left,event.clientY-rect.top)},SignaturePad.prototype._addPoint=function(point){var c2,c3,curve,points=this.points;points.push(point),points.length>2&&(3===points.length&&points.unshift(points[0]),c2=this._calculateCurveControlPoints(points[0],points[1],points[2]).c2,c3=this._calculateCurveControlPoints(points[1],points[2],points[3]).c1,curve=new Bezier(points[1],c2,c3,points[2]),this._addCurve(curve),points.shift())},SignaturePad.prototype._calculateCurveControlPoints=function(s1,s2,s3){var dx1=s1.x-s2.x,dy1=s1.y-s2.y,dx2=s2.x-s3.x,dy2=s2.y-s3.y,m1_x=(s1.x+s2.x)/2,m1_y=(s1.y+s2.y)/2,m2_x=(s2.x+s3.x)/2,m2_y=(s2.y+s3.y)/2,l1=Math.sqrt(dx1*dx1+dy1*dy1),l2=Math.sqrt(dx2*dx2+dy2*dy2),k=l2/(l1+l2),cm_x=m2_x+(m1_x-m2_x)*k,cm_y=m2_y+(m1_y-m2_y)*k,tx=s2.x-cm_x,ty=s2.y-cm_y;return{c1:new Point(m1_x+tx,m1_y+ty),c2:new Point(m2_x+tx,m2_y+ty)}},SignaturePad.prototype._addCurve=function(curve){var velocity,newWidth,startPoint=curve.startPoint;velocity=curve.endPoint.velocityFrom(startPoint),velocity=this.velocityFilterWeight*velocity+(1-this.velocityFilterWeight)*this._lastVelocity,newWidth=this._strokeWidth(velocity),this._drawCurve(curve,this._lastWidth,newWidth),this._lastVelocity=velocity,this._lastWidth=newWidth},SignaturePad.prototype._drawPoint=function(x,y,size){var ctx=this._ctx;ctx.moveTo(x,y),ctx.arc(x,y,size,0,2*Math.PI,!1),this._isEmpty=!1},SignaturePad.prototype._drawCurve=function(curve,startWidth,endWidth){var drawSteps,width,i,t,tt,ttt,u,uu,uuu,x,y,ctx=this._ctx,widthDelta=endWidth-startWidth;for(drawSteps=Math.floor(curve.length()),ctx.beginPath(),i=0;i<drawSteps;i++)ttt=(tt=(t=i/drawSteps)*t)*t,x=(uuu=(uu=(u=1-t)*u)*u)*curve.startPoint.x,x+=3*uu*t*curve.control1.x,x+=3*u*tt*curve.control2.x,x+=ttt*curve.endPoint.x,y=uuu*curve.startPoint.y,y+=3*uu*t*curve.control1.y,y+=3*u*tt*curve.control2.y,y+=ttt*curve.endPoint.y,width=startWidth+ttt*widthDelta,this._drawPoint(x,y,width);ctx.closePath(),ctx.fill()},SignaturePad.prototype._strokeWidth=function(velocity){return Math.max(this.maxWidth/(velocity+1),this.minWidth)};var Point=function(x,y,time){this.x=x,this.y=y,this.time=time||(new Date).getTime()};Point.prototype.velocityFrom=function(start){return this.time!==start.time?this.distanceTo(start)/(this.time-start.time):1},Point.prototype.distanceTo=function(start){return Math.sqrt(Math.pow(this.x-start.x,2)+Math.pow(this.y-start.y,2))};var Bezier=function(startPoint,control1,control2,endPoint){this.startPoint=startPoint,this.control1=control1,this.control2=control2,this.endPoint=endPoint};return Bezier.prototype.length=function(){var i,t,cx,cy,px,py,xdiff,ydiff,length=0;for(i=0;i<=10;i++)t=i/10,cx=this._point(t,this.startPoint.x,this.control1.x,this.control2.x,this.endPoint.x),cy=this._point(t,this.startPoint.y,this.control1.y,this.control2.y,this.endPoint.y),i>0&&(xdiff=cx-px,ydiff=cy-py,length+=Math.sqrt(xdiff*xdiff+ydiff*ydiff)),px=cx,py=cy;return length},Bezier.prototype._point=function(t,start,c1,c2,end){return start*(1-t)*(1-t)*(1-t)+3*c1*(1-t)*(1-t)*t+3*c2*(1-t)*t*t+end*t*t*t},SignaturePad}(document);