var signatures=[];
(function($){
'use strict';
$.fn.wpcf7InitSignatures=function(){
signatures=[];
return this.each(function(i, form){
$(form).find('.wpcf7-form-control-signature-global-wrap').each(function(j, wrapper){
var $canvas=$(wrapper).find('canvas'),
$clear=$(wrapper).find('input[type=button]'),
id=$(wrapper).data('field-id'),
input=document.getElementById("wpcf7_input_" + id),
canvas=$canvas[0];
sigFieldRatio(canvas);
var options=[];
options['penColor']=$canvas.data("color");
options['backgroundColor']=$canvas.data("background");
var extras=$canvas.data("extras");
if(extras!=null&&typeof(extras)!='undefined'){
for (var key in extras){
if(extras.hasOwnProperty(key)){
options[key]=extras[key];
}}
}
var signature=new SignaturePad(canvas, options);
var sigObj=new Wpcf7Signature(signature, canvas, input, options);
signatures.push(sigObj);
sigObj.setValue();
$clear.on("click", function(){
sigObj.clear();
});
$clear.on("mouseup", function(){
sigObj.change();
});
$(form).on('submit', function(){
sigObj.beforeSubmit();
});
});
});
}
$.fn.wpcf7ResizeSignatures=function(){
$(".wpcf7-form-control-signature-input-wrap").each(function(i){
signatures[i].resize();
});
return this;
}
$.fn.wpcf7ClearSignatures=function(){
$(".wpcf7-form-control-signature-input-wrap").each(function(i){
signatures[i].clear();
});
return this;
}
$(function(){
$('div.wpcf7 > form').wpcf7InitSignatures();
});
$(document).on('wpcf7mailsent', function(event){
$('div.wpcf7 > form').wpcf7ClearSignatures();
});
})(jQuery);
var Wpcf7Signature=(function(){
var signature, canvas, input, options;
function Wpcf7Signature(signature, canvas, input, options){
this.signature=signature;
this.canvas=canvas;
this.input=input;
this.options=options;
}
Wpcf7Signature.prototype.setValue=function(){
if(this.input.value!=''){
this.signature.fromDataURL(this.input.value);
}}
Wpcf7Signature.prototype.change=function(){
this.beforeSubmit();
if(document.createEvent){
var changeEvent=document.createEvent("HTMLEvents");
changeEvent.initEvent("change", false, true);
this.input.dispatchEvent(changeEvent);
}else{
this.input.fireEvent("onchange");
}}
Wpcf7Signature.prototype.beforeSubmit=function(){
if(!this.signature.isEmpty()){
this.input.value=this.signature.toDataURL();
}else{
this.input.value="";
}};
Wpcf7Signature.prototype.clear=function(){
this.signature.clear();
this.input.value="";
};
Wpcf7Signature.prototype.resize=function(clear){
sigFieldRatio(this.canvas);
if(clear){
this.sigFieldClear();
}};
return Wpcf7Signature;
})();
function sigFieldRatio(canvas){
var ratio=Math.max(window.devicePixelRatio||1, 1);
canvas.width=canvas.offsetWidth * ratio;
canvas.height=canvas.offsetHeight * ratio;
canvas.getContext("2d").scale(ratio, ratio);
};