Warning: The magic method OCDI\OneClickDemoImport::__wakeup() must have public visibility in /customers/4/d/2/personalplatsen.org/httpd.www/wp-content/themes/house-painter/importer/inc/OneClickDemoImport.php on line 121
Warning: Cannot modify header information - headers already sent by (output started at /customers/4/d/2/personalplatsen.org/httpd.www/wp-content/themes/house-painter/importer/inc/OneClickDemoImport.php:121) in /customers/4/d/2/personalplatsen.org/httpd.www/wp-content/plugins/appointment-hour-booking/js/fbuilder-loader-public.php on line 1
fbuilderjQuery = (typeof fbuilderjQuery != 'undefined' ) ? fbuilderjQuery : jQuery;
fbuilderjQuery(function(){
(function($) {
// Namespace of fbuilder
$.fbuilder = $.fbuilder || {};
$.fbuilder[ 'objName' ] = 'fbuilderjQuery';
$.fbuilder[ 'controls' ] = ( typeof $.fbuilder[ 'controls' ] != 'undefined' ) ? $.fbuilder[ 'controls' ]: {};
$.fbuilder[ 'forms' ] = ( typeof $.fbuilder[ 'forms' ] != 'undefined' ) ? $.fbuilder[ 'forms' ]: {};
$.fbuilder[ 'htmlEncode' ] = function(value)
{
value = $('
');
}
else
{
$("#fieldlist"+opt.identifier+" .pb"+page).append(items[i].show());
if (items[i].predefinedClick)
{
$("#fieldlist"+opt.identifier+" .pb"+page).find("#"+items[i].name).attr("placeholder",items[i].predefined);
$("#fieldlist"+opt.identifier+" .pb"+page).find("#"+items[i].name).attr("value","");
}
if (items[i].userhelpTooltip)
{
var uh = $("#fieldlist"+opt.identifier+" .pb"+page).find("#"+items[i].name).closest(".fields");
uh.find(".uh").css("display","none");
if (uh.find(".uh").text()!="")
{
uh.attr("uh",uh.find(".uh").text());
}
}
}
}
if (page>0)
{
$("#fieldlist"+opt.identifier+" .pb"+page).addClass("pbEnd");
$("#fieldlist"+opt.identifier+" .pbreak").each(function(index) {
var code = $(this).html();
var bSubmit = '';
if (index == page)
{
if ( $( "#cpcaptchalayer"+opt.identifier ).length && !/^\s*$/.test( $( "#cpcaptchalayer"+opt.identifier ).html() ) )
{
code += ''+$("#cpcaptchalayer"+opt.identifier).html()+'
';
$("#cpcaptchalayer"+opt.identifier).html("");
}
if ($("#cp_subbtn"+opt.identifier).html())
{
bSubmit = ''+$("#cp_subbtn"+opt.identifier).html()+'
';
}
}
$(this).html(''+opt.messages.pageof.replace( /\{\s*\d+\s*\}/, (index+1) ).replace( /\{\s*\d+\s*\}/, (page+1) )+' '+code+''+opt.messages.previous+'
'+opt.messages.next+'
'+bSubmit+'
');
});
$( '#fieldlist'+opt.identifier).find(".pbPrevious,.pbNext").bind("click", { 'identifier' : opt.identifier }, function( evt ) {
var identifier = evt.data.identifier;
if ( ($(this).hasClass("pbPrevious")) || (($(this).hasClass("pbNext")) && $(this).parents("form").valid()) )
{
var page = parseInt($(this).parents(".pbreak").attr("page"));
(($(this).hasClass("pbPrevious"))?page--:page++);
$("#fieldlist"+identifier+" .pbreak").css("display","none");
$("#fieldlist"+identifier+" .pbreak").find(".field").addClass("ignorepb");
$("#fieldlist"+identifier+" .pb"+page).css("display","block");
$("#fieldlist"+identifier+" .pb"+page).find(".field").removeClass("ignorepb");
if ($("#fieldlist"+identifier+" .pb"+page).find(".field").length>0)
{
try
{
$("#fieldlist"+identifier+" .pb"+page).find(".field")[0].focus();
}
catch(e){}
}
}
else
{
$(this).parents("form").validate().focusInvalid();
}
return false;
});
}
else
{
if ( $( "#cpcaptchalayer"+opt.identifier ).length && !/^\s*$/.test( $( "#cpcaptchalayer"+opt.identifier ).html() ) )
{
$("#fieldlist"+opt.identifier+" .pb"+page).append(''+$("#cpcaptchalayer"+opt.identifier).html()+'
');
$("#cpcaptchalayer"+opt.identifier).html("");
}
if ($("#cp_subbtn"+opt.identifier).html())
{
$("#fieldlist"+opt.identifier+" .pb"+page).append(''+$("#cp_subbtn"+opt.identifier).html()+'
');
}
}
// Set Captcha Event
$( document ).on( 'click', '#fbuilder .captcha img', function(){ var e = $( this ); e.attr( 'src', e.attr( 'src' ).replace( /&\d+$/, '' ) + '&' + Math.floor( Math.random()*1000 ) ); } );
$( '#fieldlist'+opt.identifier).find(".pbSubmit").bind("click", { 'identifier' : opt.identifier }, function( evt )
{
$(this).closest("form").submit();
});
if (i>0)
{
theForm.after_show( opt.identifier );
for (var i=0;i'+(this.title!=''?''+this.title+' ':'')+(this.description!=''?''+this.description+' ':'')+'';
},
after_show:function( id ){
$( '#cp_calculatedfieldsf_pform'+id ).attr( 'data-evalequations', this.evalequations ).attr( 'autocomplete', ( ( this.autocomplete ) ? 'on' : 'off' ) );
}
});
//var theForm = new fform(),
var theForm,
ffunct = {
getItem: function( name )
{
for( var i in items )
{
if( items[ i ].name == name )
{
return items[ i ];
}
}
return false;
},
getItems: function()
{
return items;
},
loadData:function(f)
{
var d,
e = $("#"+f);
this.formId = e.parents( 'form' ).attr( 'id' );
if ( d = $.parseJSON( e.val() ))
{
if (d.length==2)
{
items = [];
for (var i=0;i'+this.title+''+((this.required)?"* ":"")+' '+this.userhelp+'
';
}
}
); $.fbuilder.controls[ 'femail' ] = function(){};
$.extend(
$.fbuilder.controls[ 'femail' ].prototype,
$.fbuilder.controls[ 'ffields' ].prototype,
{
title:"Email",
ftype:"femail",
predefined:"",
predefinedClick:false,
required:false,
size:"medium",
equalTo:"",
show:function()
{
return '';
},
val:function()
{
var e = $( '[id="' + this.name + '"]:not(.ignore)' );
if( e.length ) return $.fbuilder.parseValStr( e.val() );
return '';
}
}
);$.fbuilder.controls[ 'fapp' ] = function(){};
$.extend(
$.fbuilder.controls[ 'fapp' ].prototype,
$.fbuilder.controls[ 'ffields' ].prototype,
{
title:"Number",
ftype:"fapp",
services:new Array({name:"Service 1",price:1,capacity:1,duration:60,pb:0,pa:0,ohindex:0}),
/*openhours:new Array({type:"all",d:"",h1:8,m1:0,h2:17,m2:0}),new Array({name:"Default",openhours:new Array({type:"all",d:"",h1:8,m1:0,h2:17,m2:0})})*/
openhours:new Array(),
allOH:new Array({name:"Default",openhours:new Array({type:"all",d:"",h1:8,m1:0,h2:17,m2:0})}),
usedSlots:new Array(),
dateFormat:"mm/dd/yy",
showDropdown:false,
showTotalCost:false,
showTotalCostFormat:"$ {0}",
showEndTime:false,
usedSlotsCheckbox:false,
avoidOverlaping:true,
emptySelectCheckbox:false,
emptySelect:"-- Please select service --",
dropdownRange:"-10:+10",
working_dates:[true,true,true,true,true,true,true],
numberOfMonths:1,
maxNumberOfApp:0,
firstDay:0,
minDate:"0",
maxDate:"",
defaultDate:"",
invalidDates:"",
required:true,
bSlotsCheckbox: true,
bSlots:30,
militaryTime:1,
cacheArr:new Array(),
getD:new Date(),
formId:0,
getMinDate:"",
getMaxDate:"",
arr:new Array(),
allUsedSlots:new Array(),
invalidDatesByService:new Array(),
service_selected:0,
quantity_selected:1,
tz:0,
loadOK:false,
ignoreUsedSlots:false,
initialapp:"",
initialID:0,
pctByDay:new Array(),
htmlUsedSlots:new Array(),
extras:0,
sub_cost:0,
notShowBookedDate:true,
getCompatSlots:function(d)
{
var data = new Array();
var find = false;
for (var i=0;i 0)
ind--;
return ind;
},
show:function()
{
return '';
},
getSpecialDays:function()
{
var me = this;
var a = new Array();
if (!me.emptySelectCheckbox || (me.emptySelectCheckbox && $(".fieldCalendarService"+me.name+" select option:selected").index() > 0 ))
{
var ohindex = me.services[me.normalizeSelectIndex($(".fieldCalendarService"+me.name+" select option:selected").index())].ohindex;
for (var i=0;i=arr[i].t2)
arr[i].t2 += 24 * 60;
}
me.usedSlots[d] = me.usedSlots[d] || [];
if (me.ignoreUsedSlots)
var data2 = $.merge(data1.slice(0),[]);
else
var data2 = $.merge(data1.slice(0),me.usedSlots[d]);
for (var i=0;idata[i].t2)
data[i].t2 += 24 * 60;
for (var i=0;icapacity_service || (data[i].service.length==0 || (data[i].service.length && data[i].service[0]!=me.service_selected)))
|| (!me.avoidOverlaping && (data[i].quantity+me.quantity_selected>capacity_service && (typeof data[i].serviceindex === 'undefined' || data[i].serviceindex==me.service_selected)) ))
{
for (var j=0;j arr[j].t1) && (data[i].t1 < arr[j].t2) && (data[i].t2 > arr[j].t1) && (data[i].t2 < arr[j].t2))
{
var v1 = {t1:arr[j].t1, t2:data[i].t1, h1:arr[j].h1, h2:data[i].h1, m1:arr[j].m1, m2:data[i].m1};
var v2 = {t1:data[i].t2, t2:arr[j].t2, h1:data[i].h2, h2:arr[j].h2, m1:data[i].m2, m2:arr[j].m2};
arr.splice(j, 1, v1, v2);
}
else if ((data[i].t1 > arr[j].t1) && (data[i].t1 < arr[j].t2))
{
arr[j].t2 = data[i].t1;
arr[j].h2 = data[i].h1;
arr[j].m2 = data[i].m1;
}
else if ((data[i].t2 > arr[j].t1) && (data[i].t2 < arr[j].t2))
{
arr[j].t1 = data[i].t2;
arr[j].h1 = data[i].h2;
arr[j].m1 = data[i].m2;
}
else if ((data[i].t1 <= arr[j].t1) && (data[i].t2 >= arr[j].t2))
{
arr.splice(j, 1);
}
}
}
}
for (var i=0;i=0;i--)
{
if ($.datepicker.parseDate("yy-mm-dd",arr[i].day).getTime()+arr[i].t2*60*1000 <= currenttime)
arr.splice(i, 1 );
else if ($.datepicker.parseDate("yy-mm-dd",arr[i].day).getTime()+arr[i].t1*60*1000 <= currenttime)
{
var st = arr[i].t1 + me.duration + me.pb + me.pa;
while ($.datepicker.parseDate("yy-mm-dd",arr[i].day).getTime() + st*60*1000 <= currenttime)
st += me.duration + me.pb + me.pa;
var m1 = st % 60;
var h1 = (st - m1)/60;
arr[i].t1 = st;
arr[i].h1 = h1;
arr[i].m1 = m1;
}
}
}
if (me.maxDate!=="" && me.getMaxDate!="")
{
var current = me.getMaxDate;
var currenttime = current.getTime()-me.tz*60*60*1000;
for (var i=arr.length-1;i>=0;i--)
{
if ($.datepicker.parseDate("yy-mm-dd",arr[i].day).getTime()+arr[i].t1*60*1000 >= currenttime)
arr.splice(i, 1 );
else if ($.datepicker.parseDate("yy-mm-dd",arr[i].day).getTime()+arr[i].t2*60*1000 >= currenttime)
{
var et = arr[i].t1 + me.duration;
while ($.datepicker.parseDate("yy-mm-dd",arr[i].day).getTime() + et*60*1000 <= currenttime)
et += me.duration;
var m2 = et % 60;
var h2 = (et - m2)/60;
arr[i].t2 = et;
arr[i].h2 = h2;
arr[i].m2 = m2;
}
}
}
for (var i=arr.length-1;i>=0;i--)
if (arr[i].t1+me.bduration > arr[i].t2 || arr[i].t1 > 24*60)
arr.splice(i, 1 );
return arr;
},
formattime: function(t,mt)/*mt=2 for database 09:00*/
{
if (t<0) t+=(24*60);
t = t % (24*60);
var h = Math.floor(t/60);
var m = t%60;
var suffix = "";
if (mt==0)
{
if (h>12)
{
h = h-12;
suffix = " PM";
}
else if (h==12)
suffix = " PM";
else
{
if (h==0 && mt!=2) h=12;
suffix = " AM";
}
}
return (((h<10)?((mt==2)?"0":""):"")+h+":"+(m<10?"0":"")+m)+suffix;
},
formatString: function(obj,showdate,tz)
{
var me = this;
tz = tz * 60;
if (typeof obj.st === 'undefined')
obj.st = obj.h1*60+obj.m1*1;
if (typeof obj.et === 'undefined')
obj.et = obj.h2*60+obj.m2*1;
var str = "";
if (showdate)
str += $.datepicker.formatDate(me.dateFormat, $.datepicker.parseDate("yy-mm-dd", obj.d))+" ";
str += me.formattime(obj.st+tz,me.militaryTime)+(me.showEndTime?("-"+me.formattime(obj.et+tz,me.militaryTime)):"");
return str;
},
getCurrentSlots: function(arr,d)
{
var me = this;
var duration = me.duration;
var html = "";
var htmlSlots = new Array();
var pb = 0;
var pa = 0;
var capacity_service = me.services[me.service_selected].capacity;
if (true)
{
var compactUsedSlots = me.getCompatSlots(me.htmlUsedSlots[d])
for (var i=0;i=capacity_service && compactUsedSlots[i].serviceindex==me.service_selected)
if (compactUsedSlots[i].serviceindex==me.service_selected)
{
compactUsedSlots[i].st = compactUsedSlots[i].h1 * 60 + compactUsedSlots[i].m1;
compactUsedSlots[i].t = $.datepicker.parseDate("yy-mm-dd",compactUsedSlots[i].d).getTime()+compactUsedSlots[i].st*60*1000;
compactUsedSlots[i].html = "";
if (me.minDate!=="" && me.getMinDate!="") //check with the min date
{
var current = me.getMinDate;
var currenttime = current.getTime()-me.tz*60*60*1000;
if (compactUsedSlots[i].t > currenttime)
{
if (compactUsedSlots[i].quantity>=capacity_service)
compactUsedSlots[i].html = '';
//if (me.bSlotsCheckbox && me.usedSlotsCheckbox)
if (me.usedSlotsCheckbox)
htmlSlots[htmlSlots.length] = compactUsedSlots[i];
}
}
}
}
}
if ((typeof specialPadding === 'undefined'))
{
pb = me.pb;
pa = me.pa;
}
for (var i=0;i= et)
et += 24 * 60;
while (st + me.duration + me.pa <=et && st<24 * 60)//me.bduration Ticket #343269 2019-10-08
{
html = "";
htmlSlots[htmlSlots.length] = {st:st,html:html,t:$.datepicker.parseDate("yy-mm-dd",arr[i].day).getTime()+st*60*1000};
if (!me.bSlotsCheckbox)
st += me.bduration;
else
st += me.bduration + pa + pb;
}
}
htmlSlots.sort(function(a, b){
if ((typeof cp_hourbk_cmpublic !== 'undefined') && (a.t == b.t))
{
if ((typeof a.quantity !== 'undefined') && (typeof b.quantity === 'undefined'))
{
b.html = b.html.replace("ahbslotavailabilityP",(capacity_service - a.quantity));
b.quantity = a.quantity;
}
else if ((typeof b.quantity !== 'undefined') && (typeof a.quantity === 'undefined'))
{
a.html = a.html.replace("ahbslotavailabilityP",(capacity_service - b.quantity));
a.quantity = b.quantity;
}
}
return a.t - b.t
});
return htmlSlots;
},
getAvailableSlots: function(d)
{
var me = this;
function setHtmlUsedSlots(d,st,et)
{
st = st * 60;
et = et * 60;
var htmlSlots = new Array();
//if (me.bSlotsCheckbox && me.usedSlotsCheckbox)
if (me.usedSlotsCheckbox)
{
me.cacheArr[d] = me.cacheArr[d] || [];
for (var i=0;i=me.cacheArr[d][i].h2*60+me.cacheArr[d][i].m2)
htmlSlots[htmlSlots.length] = jQuery.extend({}, me.cacheArr[d][i]);
for (var i=0;me.usedSlots[d] && i=me.usedSlots[d][i].h2*60+me.usedSlots[d][i].m2)
htmlSlots[htmlSlots.length] = jQuery.extend({}, me.usedSlots[d][i]);
}
}
return htmlSlots;
}
var day = $.datepicker.parseDate("yy-mm-dd", d);
if (this.tz==0)
{
me.htmlUsedSlots[d] = setHtmlUsedSlots(d,0,24);
var arr = this.getAvailablePartialSlots(d,[{h1:0,m1:0,h2:0,m2:0}]);
}
else if (this.tz > 0)
{
day.setDate(day.getDate() - 1);
var d1 = $.datepicker.formatDate("yy-mm-dd",day);
var arr = $.merge(this.getAvailablePartialSlots(d1,[{h1:0,m1:0,h2:24-this.tz,m2:0}]),this.getAvailablePartialSlots(d,[{h1:24-this.tz,m1:0,h2:24,m2:0}]));
me.htmlUsedSlots[d] = $.merge(setHtmlUsedSlots(d1,24-this.tz,24), setHtmlUsedSlots(d,0,24-this.tz));
}
else
{
day.setDate(day.getDate() + 1);
var d1 = $.datepicker.formatDate("yy-mm-dd",day);
var arr = $.merge(this.getAvailablePartialSlots(d,[{h1:0,m1:0,h2:this.tz*-1,m2:0}]),this.getAvailablePartialSlots(d1,[{h1:this.tz*-1,m1:0,h2:24,m2:0}]));
me.htmlUsedSlots[d] = $.merge(setHtmlUsedSlots(d1,this.tz*-1,24), setHtmlUsedSlots(d,0,this.tz*-1));
}
var c = "s"+me.service_selected+"q"+me.quantity_selected;
if (arr.length==0)
{
me.invalidDatesByService[c] = me.invalidDatesByService[c] || [];
if ($.inArray(d, me.invalidDatesByService[c]) == -1)
me.invalidDatesByService[c][me.invalidDatesByService[c].length] = d;
}
return arr;
},
after_show:function()
{
function closeOtherDatepicker(){
$('#ui-datepicker-div').css("display","none");
}
setTimeout(closeOtherDatepicker,100);
if (typeof cp_hourbk_timezone !== 'undefined')
{
var gmt = (parseInt(cp_hourbk_timezone));
var local = (new Date().getTimezoneOffset() * -1)/60;
this.tz = local - gmt;
}
var me = this,
e = $( '#field' + me.form_identifier + '-' + me.index + ' .fieldCalendar'+me.name ),
d = $( '#field' + me.form_identifier + '-' + me.index + ' .fieldCalendarService'+me.name ),
str = "",
op = "";
e.addClass("notranslate")
if (me.openhours.length>0)/*compatible with old version*/
{
if (!me.openhours[0].name)
{
var obj = {name:"Default",openhours:me.openhours.slice(0)};
me.openhours = new Array();
me.openhours[0] = obj;
}
me.allOH = new Array();
me.allOH = me.openhours.slice(0);
me.openhours = new Array();
}
var dd = "";
if (me.initialapp!="")
{
var s = me.initialapp.split(";");
var s2 = "";
var ind = 0;
for (var i=0;i 0 ))
{
var arr = me.getAvailableSlots(day);
if ($.inArray(day, me.invalidDatesByService["s"+me.service_selected+"q"+me.quantity_selected]) > -1 && me.notShowBookedDate)
c.push("nonworking","ui-datepicker-unselectable","ui-state-disabled","notavailslot");
if (typeof cp_hourbk_cmpublic !== 'undefined')
{
var used = 0;
var htmlSlots = me.getCurrentSlots(arr,day);
var cclass = c.join(" ");
var q = 0;
for (var i=0;i 0 )))
return;
function getSlots(d)
{
var data1 = me.cacheArr[d];
var duration = me.duration;
me.bduration = me.duration;
if (!me.bSlotsCheckbox)
me.bduration = me.bSlots*1;
var str = "";
var arr = me.getAvailableSlots(d);
var nextdateAvailable = $.datepicker.parseDate("yy-mm-dd", d);
var c = "s"+me.service_selected+"q"+me.quantity_selected;
var s = $( '#field' + me.form_identifier + '-' + me.index + ' .slotsCalendar'+me.name );
var i =0;
if (me.notShowBookedDate && (me.maxNumberOfApp==0 || me.allUsedSlots.length0 )
{
e.datepicker("setDate", nextdateAvailable);
me.getD = nextdateAvailable;
onChangeDateOrService($.datepicker.formatDate("yy-mm-dd", nextdateAvailable));
}
else if (me.invalidDatesByService[c].length>=365)
{
if (me.getMinDate != "" && me.getMinDate.getTime() < me.getD.getTime())
{
e.datepicker("setDate", me.getMinDate);
me.getD = me.getMinDate;
me.invalidDatesByService[c] = new Array();
onChangeDateOrService($.datepicker.formatDate("yy-mm-dd", me.getD));
return;
}
e.datepicker("setDate", me.getMinDate);
s.html(""+cp_hourbk_nomore_label+"
");
}
return;
}
var htmlSlots = me.getCurrentSlots(arr,d);
var capacity_service = me.services[me.service_selected].capacity;
for (var i=0;i0)
{
before = s.find(".slots").attr("d");
}
s.html(""+$.datepicker.formatDate(me.dateFormat, $.datepicker.parseDate("yy-mm-dd", d))+" "+str+"
");
if (before!="" && before!=d)
{
s.find(".slots span:first").hide().show(200);
}
var str1="",str2="";
me.allUsedSlots = me.allUsedSlots || [];
me.allUsedSlots.sort(function(a, b){ return ($.datepicker.parseDate("yy-mm-dd", a.d).getTime()+(a.h1*60+a.m1)*60*1000) - ($.datepicker.parseDate("yy-mm-dd", b.d).getTime()+(b.h1*60+b.m1)*60*1000)});
j = 0;
var total = 0;
for (var i=0;i"+me.formatString(me.allUsedSlots[i],true,me.tz)+" "+me.services[me.allUsedSlots[i].serviceindex].name+" "+((me.allUsedSlots[i].quantity>1)?"("+me.allUsedSlots[i].quantity+") ":"")+"["+(cp_hourbk_cancel_label?cp_hourbk_cancel_label:'cancel')+"] "+(((typeof cp_hourbk_repeat !== 'undefined') && i==0)?showrepeat(me.name):"")+"";
str2 += ((str2=="")?"":";")+me.allUsedSlots[i].d+" "+me.formattime(me.allUsedSlots[i].h1*60+me.allUsedSlots[i].m1*1,2)+"/"+me.formattime(me.allUsedSlots[i].h2*60+me.allUsedSlots[i].m2*1,2)+" "+me.allUsedSlots[i].serviceindex+" "+me.allUsedSlots[i].quantity;
if (me.allUsedSlots[i].d==d)
j++;
}
me.sub_cost = total;
total = me.sub_cost + me.extras;
total = total.toFixed(2);
if (me.showTotalCost && (str1!=""))
str1 += ''+cp_hourbk_cost_label+' '+me.showTotalCostFormat.replace("{0}", total)+'
';
$( '.usedSlots'+me.name ).html(str1);
$( '#field' + me.form_identifier + '-' + me.index + ' #'+me.name ).val(str2);
$( '#field' + me.form_identifier + '-' + me.index + ' #tcost'+me.name ).val(total);
$( '#field' + me.form_identifier + '-' + me.index + ' #'+me.name ).change();
try {
$( "#fbuilder .slots div a" ).tooltip({
position: {
my: "left top+10"
},
open: function (event, ui) {
$(this).tooltip( "option", "content", $(this).parent().find(".ahbmoreinfo").html() );
},
tooltipClass: "ahbtooltip"
});
} catch (e) {}
$( '.slotsCalendar' + me.name + ' .slots a').off("click").on("click", function()
{
if ($(this).parents("fieldset").hasClass("ahbgutenberg_editor"))
return false;
$( "#field" + me.form_identifier + "-" + me.index + " div.cpefb_error").remove();
if ($(this).parent().hasClass("htmlUsed"))
return false;
me.allUsedSlots = me.allUsedSlots || [];
if (me.maxNumberOfApp==0 || me.allUsedSlots.length -1)
{
me.invalidDatesByService[c].splice($.inArray(d, me.invalidDatesByService[c]), 1);
e.datepicker("setDate", me.getD);
}
onChangeDateOrService($.datepicker.formatDate('yy-mm-dd', me.getD));
return false;
});
}
getSlots(d);
$(document).trigger("afterOnChange",{name:me.name, me:me});
}
if (typeof cpapphourbk_in_admin !== 'undefined')
{
me.minDate = "";
me.maxDate = "";
}
if (!me.loadOK)
{
me.formId = $(".fieldCalendarService"+me.name).parents("form").find('input[type="hidden"][name$="_id"]').val();
$.ajax(
{
dataType : 'json',
type: "POST",
url : document.location.href,
cache : true,
data : { cp_app_action: 'get_slots',
formid: me.formId,
initialID: me.initialID,
formfield: me.name.replace(me.form_identifier, "")
},
success : function( data ){
for (var i=0;i'+me.services[i].name+'';
me.services[i].capacity = (parseInt(me.services[i].capacity)>0)?me.services[i].capacity:1;
if (capacity'+ str ;
var str2 = "";
for (var i=1;i<=me.services[0].capacity;i++)
str2 += ''+i+' ';
d.html(''+str+' '+((typeof cp_hourbk_quantity_label !== 'undefined')?cp_hourbk_quantity_label:'Quantity')+' '+str2+'
');
me.service_selected = me.normalizeSelectIndex($(".fieldCalendarService"+me.name+" select.ahbfield_service option:selected").index());
me.quantity_selected = parseInt($(".fieldCalendarService"+me.name+" select.ahbfield_quantity option:selected").val());
me.duration = $(".fieldCalendarService"+me.name+" select.ahbfield_service option:selected").val()*1;
me.pa = me.services[me.service_selected].pa * 1 || 0;
me.pb = me.services[me.service_selected].pb * 1 || 0;
$(".fieldCalendarService"+me.name+" select.ahbfield_service").bind("change", function()
{
me.duration = $(".fieldCalendarService"+me.name+" select.ahbfield_service option:selected").val()*1;
me.service_selected = me.normalizeSelectIndex($(".fieldCalendarService"+me.name+" select.ahbfield_service option:selected").index());
me.pa = me.services[me.service_selected].pa * 1 || 0;
me.pb = me.services[me.service_selected].pb * 1 || 0;
me.cacheOpenHours = new Array();
me.special_days = me.getSpecialDays();
var str2 = "";
for (var i=1;i<=me.services[me.service_selected].capacity;i++)
str2 += ''+i+' ';
$(".fieldCalendarService"+me.name+" select.ahbfield_quantity").html(str2);
me.quantity_selected = parseInt($(".fieldCalendarService"+me.name+" select.ahbfield_quantity option:selected").val());
$( '#field' + me.form_identifier + '-' + me.index + ' .fieldCalendar'+me.name ).datepicker( "option", "beforeShowDay", renderCalendarCallback );
onChangeDateOrService($.datepicker.formatDate('yy-mm-dd', me.getD));
});
$(".fieldCalendarService"+me.name+" select.ahbfield_quantity").bind("change", function()
{
me.quantity_selected = parseInt($(".fieldCalendarService"+me.name+" select.ahbfield_quantity option:selected").val());
$( '#field' + me.form_identifier + '-' + me.index + ' .fieldCalendar'+me.name ).datepicker( "option", "beforeShowDay", renderCalendarCallback );
onChangeDateOrService($.datepicker.formatDate('yy-mm-dd', me.getD));
});
$("#"+me.name).bind("change", function()
{
if ($(this).attr("reload")=="reload")
{
$(this).attr("reload","");
onChangeDateOrService($.datepicker.formatDate('yy-mm-dd', me.getD));
$( '#field' + me.form_identifier + '-' + me.index + ' .fieldCalendar'+me.name ).datepicker( "option", "beforeShowDay", renderCalendarCallback );
}
});
try{
me.special_days = me.getSpecialDays();
} catch (e) {}
var hrs = 0;
me.getMinDate = "";
if (me.minDate!=="")
{
if (me.minDate.indexOf("h")!= -1)
{
if (me.minDate.indexOf(" ")!= -1)
{
var a = me.minDate.split(" ");
var find = false;
for (var i=0;(i -1 )
return false;
if (me.working_dates[date.getDay()]==0)
return false;
return true;
}
var sum = 0;
for (var i=0;i0)
{
var nextdateAvailable = e.datepicker("getDate");
while (!DisableSpecificDates(nextdateAvailable))
nextdateAvailable.setDate(nextdateAvailable.getDate() + 1);
e.datepicker("setDate", nextdateAvailable);
me.getD = nextdateAvailable;
function ifLoadOk()
{
if (!me.loadOK)
setTimeout(ifLoadOk,100);
else
{
$( '#field' + me.form_identifier + '-' + me.index + ' .fieldCalendar'+me.name ).datepicker( "option", "beforeShowDay", renderCalendarCallback );
onChangeDateOrService($.datepicker.formatDate('yy-mm-dd', me.getD));
$( '#field' + me.form_identifier + '-' + me.index + ' .fieldCalendar'+me.name ).datepicker( "option", "beforeShowDay", renderCalendarCallback );
}
}
ifLoadOk();
}
preselect_service = function(v)
{
$(".fieldCalendarService"+me.name+" select.ahbfield_service").children().removeAttr("selected");
if (me.emptySelectCheckbox)
$(".fieldCalendarService"+me.name+" select.ahbfield_service").children().eq(v+1).attr('selected', 'selected').change();
else
$(".fieldCalendarService"+me.name+" select.ahbfield_service").children().eq(v).attr('selected', 'selected').change();
}
if (typeof cp_hourbk_preselect !== 'undefined' && cp_hourbk_preselect!="")
preselect_service(cp_hourbk_preselect*1);
else
if (me.initialapp!="" && dd!="")
{
preselect_service(me.initialServiceInd);
onChangeDateOrService(dd);
}
getExtras=function()
{
var f = $( '#field' + me.form_identifier + '-' + me.index ).parents( "form" );
var v = 0;
var find = false;
var e = f.find(".ahb_service").find(':checked:not(.ignore)');
if( e.length )
{
find = true;
e.each( function(){
v += this.value*1;
});
}
e = f.find(".ahb_service_per_slot").find(':checked:not(.ignore)');
me.allUsedSlots = me.allUsedSlots || [];
var s = me.allUsedSlots.length;
if( e.length )
{
find = true;
e.each( function(){
v += this.value * s;
} );
}
e = f.find(".ahb_service_per_quantity_selection").find(':checked:not(.ignore)');
var q = f.find(".ahbfield_quantity").val();
if (!parseInt(q))
q = 1;
if( e.length )
{
find = true;
e.each( function(){
v += this.value * q;
} );
}
f.find('#'+me.name+'_services').val(v);
if (find)
{
me.extras = v;
var total = me.sub_cost + me.extras;
total = total.toFixed(2);
$( '#field' + me.form_identifier + '-' + me.index ).find(".totalCost .n").html(" " +me.showTotalCostFormat.replace("{0}",total));
$( '#field' + me.form_identifier + '-' + me.index + ' #tcost'+me.name ).val(total);
}
}
$( '#field' + me.form_identifier + '-' + me.index ).parents( "form" ).find(".ahb_service,.ahb_service_per_slot,.ahb_service_per_quantity_selection").on("click", function(){
getExtras();
});
$( '#field' + me.form_identifier + '-' + me.index + ' #'+me.name ).change(function( ) {
getExtras();
});
if (typeof cp_hourbk_overlapping_label != "undefined")
$.extend($.validator.messages, {avoid_overlapping: $.validator.format(cp_hourbk_overlapping_label)});
if(!('avoid_overlapping' in $.validator.methods))
{
function avoid_over_function(value, element){
var validator = this,
previous = validator.previousValue( element );
if ( previous.old === value ) {
return previous.valid;
}
previous.old = value;
validator.startRequest( element );
var p = element.id.split( '_' ),
_index = ( p.length > 1 ) ? '_'+p[ 1 ] : '',
me = (
typeof $.fbuilder[ 'forms' ] != 'undefined' &&
typeof $.fbuilder[ 'forms' ][ _index ] != 'undefined'
) ? $.fbuilder[ 'forms' ][ _index ].getItem( p[ 0 ]+'_'+p[ 1 ] ) : null;
if( me != null )
{
$.ajax({
dataType : 'json',
type: "POST",
url : document.location.href,
data : { cp_app_action: 'get_slots',
formid: me.formId,
initialID: me.initialID,
formfield: me.name.replace(me.form_identifier, "")
},
success: function(data) {
var overlapping = false;
var find = false;
me.ignoreUsedSlots = true;
me.cacheArr = new Array();
for (var i=0;i=t2)
find = true;
}
overlapping = !find;
}
me.ignoreUsedSlots = false;
var isValid = !overlapping;
if (true === isValid) {
var submitted = validator.formSubmitted;
validator.prepareElement( element );
validator.formSubmitted = submitted;
validator.successList.push( element );
delete validator.invalid[ element.name ];
validator.showErrors();
} else {
for (var i=0;i'+label+'';
}
else if(!/^\s*$/.test(me.message))
{
label = ''+label+' ';
dlg += ''
}
return '';
},
after_show:function()
{
$(document).on('click','.cff-open-dlg', function(){
var dlg = $(this).closest('.fields').find('.cff-dialog'), w = dlg.data('width'), h=dlg.data('height');
dlg.removeClass('hide');
if('undefined' == typeof w) w = Math.min($(this).closest('form').width(), $(window).width(), dlg.width());
if('undefined' == typeof h) h = Math.min($(this).closest('form').height(), $(window).height(), dlg.height());
dlg.data('width',w);
dlg.data('height',h);
dlg.css({'width': w+'px', 'height': h+'px', 'margin-top': (-1*h/2)+'px', 'margin-left': (-1*w/2)+'px'});
});
$(document).on('click','.cff-close-dlg', function(){$(this).closest('.cff-dialog').addClass('hide');});
},
val:function()
{
var e = $('[id="'+this.name+'"]:checked:not(.ignore)');
if( e.length )
{
var t = $.fbuilder.parseValStr( e[0].value );
if(!$.isNumeric(t)) t = t.replace(/^"/,'').replace(/"$/,'');
}
return (v) ? (($.isNumeric(v)) ? v : '"'+v+'"') : 0;
}
}
); var fcount = 1;
var fcount_tags = 1;
var fnum = "_"+fcount;
while (20>fcount || eval("typeof cp_appbooking_fbuilder_config"+fnum+" != 'undefined'"))
{
try {
var cp_appbooking_fbuilder_config = eval("cp_appbooking_fbuilder_config"+fnum);
while (20>fcount_tags && !$("#fbuilder_"+fcount_tags).length)
fcount_tags++;
cp_appbooking_fbuilder_config = $.parseJSON(cp_appbooking_fbuilder_config.obj);
cp_appbooking_fbuilder_config.identifier = "_"+fcount_tags;
var f = $("#fbuilder_"+fcount_tags).fbuilder(cp_appbooking_fbuilder_config);
f.fBuild.loadData("form_structure_"+fcount_tags);
$("#cp_appbooking_pform_"+fcount_tags).validate({
ignore:".ignore,.ignorepb",
errorElement: "div",
errorClass:"cpefb_error",
errorPlacement: function(e, element)
{
if (element.hasClass('group'))
element = element.parent();
e.insertBefore(element);
e.addClass('message'); // add a class to the wrapper
e.css('position', 'absolute');
e.css('left',0 );
e.css('top',element.parent().outerHeight(true));
}
});
} catch (e) {}
fcount++;
fcount_tags++;
fnum = "_"+fcount;
}
})(fbuilderjQuery);
});