Deprecated: Return type of FS_Key_Value_Storage::offsetExists($k) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ajax-search-for-woocommerce/fs/lib/includes/managers/class-fs-key-value-storage.php on line 309
Deprecated: Return type of FS_Key_Value_Storage::offsetGet($k) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ajax-search-for-woocommerce/fs/lib/includes/managers/class-fs-key-value-storage.php on line 317
Deprecated: Return type of FS_Key_Value_Storage::offsetSet($k, $v) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ajax-search-for-woocommerce/fs/lib/includes/managers/class-fs-key-value-storage.php on line 301
Deprecated: Return type of FS_Key_Value_Storage::offsetUnset($k) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ajax-search-for-woocommerce/fs/lib/includes/managers/class-fs-key-value-storage.php on line 313
Deprecated: Return type of FS_Key_Value_Storage::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ajax-search-for-woocommerce/fs/lib/includes/managers/class-fs-key-value-storage.php on line 328
Deprecated: Return type of FS_Key_Value_Storage::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ajax-search-for-woocommerce/fs/lib/includes/managers/class-fs-key-value-storage.php on line 339
Deprecated: Return type of FS_Key_Value_Storage::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ajax-search-for-woocommerce/fs/lib/includes/managers/class-fs-key-value-storage.php on line 350
Deprecated: Return type of FS_Key_Value_Storage::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ajax-search-for-woocommerce/fs/lib/includes/managers/class-fs-key-value-storage.php on line 362
Deprecated: Return type of FS_Key_Value_Storage::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ajax-search-for-woocommerce/fs/lib/includes/managers/class-fs-key-value-storage.php on line 375
Deprecated: Return type of FS_Key_Value_Storage::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ajax-search-for-woocommerce/fs/lib/includes/managers/class-fs-key-value-storage.php on line 389
Deprecated: Creation of dynamic property Cookie_Notice::$options is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/cookie-notice/cookie-notice.php on line 143
Deprecated: Creation of dynamic property Cookie_Notice::$bot_detect is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/cookie-notice/cookie-notice.php on line 118
Deprecated: Creation of dynamic property Cookie_Notice_Frontend::$app_url is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/cookie-notice/includes/frontend.php on line 21
Deprecated: Creation of dynamic property Cookie_Notice::$frontend is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/cookie-notice/cookie-notice.php on line 119
Deprecated: Creation of dynamic property Cookie_Notice::$settings is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/cookie-notice/cookie-notice.php on line 120
Deprecated: Creation of dynamic property Cookie_Notice::$welcome is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/cookie-notice/cookie-notice.php on line 121
Deprecated: Creation of dynamic property Cookie_Notice::$welcome_api is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/cookie-notice/cookie-notice.php on line 122
Deprecated: Creation of dynamic property Cookie_Notice::$welcome_frontend is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/cookie-notice/cookie-notice.php on line 123
Deprecated: version_compare(): Passing null to parameter #2 ($version2) of type string is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/load.php on line 31
Deprecated: version_compare(): Passing null to parameter #2 ($version2) of type string is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/load.php on line 36
Deprecated: Creation of dynamic property BeRocket_AAPF::$feature_list is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-ajax-filters/main.php on line 185
Deprecated: Return type of WC_DateTime::setTimezone($timezone) should either be compatible with DateTime::setTimezone(DateTimeZone $timezone): DateTime, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce/includes/class-wc-datetime.php on line 57
Deprecated: Return type of WC_DateTime::getOffset() should either be compatible with DateTime::getOffset(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce/includes/class-wc-datetime.php on line 47
Deprecated: Return type of WC_DateTime::getTimestamp() should either be compatible with DateTime::getTimestamp(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce/includes/class-wc-datetime.php on line 68
Deprecated: Return type of WC_Meta_Data::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce/includes/class-wc-meta-data.php on line 50
Deprecated: Creation of dynamic property WooCommerce::$api is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce/includes/class-woocommerce.php on line 529
Deprecated: Return type of WPForms\Logger\Records::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/wpforms-lite/src/Logger/Records.php on line 96
Deprecated: Return type of WPForms\Logger\Records::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/wpforms-lite/src/Logger/Records.php on line 40
Deprecated: Return type of WPForms\Logger\Records::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/wpforms-lite/src/Logger/Records.php on line 50
Deprecated: Return type of WPForms\Logger\Records::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/wpforms-lite/src/Logger/Records.php on line 62
Deprecated: Return type of WPForms\Logger\Records::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/wpforms-lite/src/Logger/Records.php on line 74
Deprecated: Return type of WPForms\Logger\Records::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/wpforms-lite/src/Logger/Records.php on line 84
Deprecated: Creation of dynamic property Automattic\Jetpack\Connection\Manager::$error_handler is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/jetpack/vendor/automattic/jetpack-connection/src/class-manager.php on line 93
Deprecated: Creation of dynamic property Essential_Addons_Elementor\Classes\Plugin_Usage_Tracker::$disabled_wp_cron is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/essential-addons-for-elementor-lite/includes/Classes/Plugin_Usage_Tracker.php on line 68
Deprecated: Creation of dynamic property Essential_Addons_Elementor\Classes\Plugin_Usage_Tracker::$enable_self_cron is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/essential-addons-for-elementor-lite/includes/Classes/Plugin_Usage_Tracker.php on line 69
Deprecated: Creation of dynamic property Essential_Addons_Elementor\Classes\Plugin_Usage_Tracker::$require_optin is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/essential-addons-for-elementor-lite/includes/Classes/Plugin_Usage_Tracker.php on line 73
Deprecated: Creation of dynamic property Essential_Addons_Elementor\Classes\Plugin_Usage_Tracker::$include_goodbye_form is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/essential-addons-for-elementor-lite/includes/Classes/Plugin_Usage_Tracker.php on line 74
Deprecated: Creation of dynamic property Essential_Addons_Elementor\Classes\Plugin_Usage_Tracker::$marketing is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/essential-addons-for-elementor-lite/includes/Classes/Plugin_Usage_Tracker.php on line 75
Deprecated: Creation of dynamic property Essential_Addons_Elementor\Classes\Plugin_Usage_Tracker::$options is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/essential-addons-for-elementor-lite/includes/Classes/Plugin_Usage_Tracker.php on line 76
Deprecated: Creation of dynamic property Essential_Addons_Elementor\Classes\Plugin_Usage_Tracker::$item_id is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/essential-addons-for-elementor-lite/includes/Classes/Plugin_Usage_Tracker.php on line 77
Deprecated: Creation of dynamic property Essential_Addons_Elementor\Classes\Plugin_Usage_Tracker::$notice_options is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/essential-addons-for-elementor-lite/includes/Classes/Plugin_Usage_Tracker.php on line 638
Deprecated: Creation of dynamic property WC_Gateway_PPEC_Plugin::$gateway_loader is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-gateway-paypal-express-checkout/includes/class-wc-gateway-ppec-plugin.php on line 371
Deprecated: Creation of dynamic property WC_Gateway_PPEC_Plugin::$admin is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-gateway-paypal-express-checkout/includes/class-wc-gateway-ppec-plugin.php on line 372
Deprecated: Creation of dynamic property WC_Gateway_PPEC_Plugin::$checkout is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-gateway-paypal-express-checkout/includes/class-wc-gateway-ppec-plugin.php on line 373
Deprecated: Creation of dynamic property WC_Gateway_PPEC_Plugin::$cart is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-gateway-paypal-express-checkout/includes/class-wc-gateway-ppec-plugin.php on line 374
Deprecated: Creation of dynamic property WC_Gateway_PPEC_Plugin::$ips is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-gateway-paypal-express-checkout/includes/class-wc-gateway-ppec-plugin.php on line 375
Deprecated: Creation of dynamic property WC_Gateway_PPEC_Plugin::$client is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-gateway-paypal-express-checkout/includes/class-wc-gateway-ppec-plugin.php on line 376
Deprecated: class_exists(): Passing null to parameter #1 ($class) of type string is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce/includes/wc-core-functions.php on line 2057
Deprecated: Return type of SkyVerge\WooCommerce\PluginFramework\v5_4_0\SV_WC_DateTime::getTimestamp() should either be compatible with DateTime::getTimestamp(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-square/vendor/skyverge/wc-plugin-framework/woocommerce/compatibility/class-sv-wc-datetime.php on line 61
Deprecated: Constant FILTER_SANITIZE_STRING is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/wp-smushit/core/modules/helpers/class-parser.php on line 229
Deprecated: Constant FILTER_SANITIZE_STRING is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/wp-smushit/core/modules/helpers/class-parser.php on line 234
Deprecated: Creation of dynamic property Smush\Core\Modules::$webp is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/wp-smushit/core/class-modules.php on line 95
Deprecated: Creation of dynamic property WPForms\WPForms::$form is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/wpforms-lite/src/WPForms.php on line 272
Deprecated: Creation of dynamic property WPForms\WPForms::$frontend is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/wpforms-lite/src/WPForms.php on line 273
Deprecated: Creation of dynamic property WPForms\WPForms::$process is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/wpforms-lite/src/WPForms.php on line 274
Deprecated: Creation of dynamic property TInvWLRename::$rename is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ti-woocommerce-wishlist/tinv-wishlists-function.php on line 145
Deprecated: Creation of dynamic property TInvWLRename::$rename_single is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ti-woocommerce-wishlist/tinv-wishlists-function.php on line 146
Deprecated: Creation of dynamic property TInvWLRename::$rename_plural is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ti-woocommerce-wishlist/tinv-wishlists-function.php on line 147
Deprecated: Creation of dynamic property TInvWL_Public_TInvWL::$addto is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ti-woocommerce-wishlist/public/tinvwl.class.php on line 102
Deprecated: Creation of dynamic property TInvWL_Public_TInvWL::$view is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ti-woocommerce-wishlist/public/tinvwl.class.php on line 103
Deprecated: Creation of dynamic property TInvWL_Public_TInvWL::$cart is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ti-woocommerce-wishlist/public/tinvwl.class.php on line 104
Deprecated: Creation of dynamic property TInvWL_Public_TInvWL::$topwishlist is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ti-woocommerce-wishlist/public/tinvwl.class.php on line 105
Deprecated: Creation of dynamic property TInvWL::$rest_api is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ti-woocommerce-wishlist/includes/tinvwl.class.php on line 97
Deprecated: Creation of dynamic property Automattic\Jetpack\Sync\Queue::$random_int is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/jetpack/vendor/automattic/jetpack-sync/src/class-queue.php on line 40
Deprecated: Creation of dynamic property Automattic\Jetpack\Sync\Queue::$random_int is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/jetpack/vendor/automattic/jetpack-sync/src/class-queue.php on line 40
Deprecated: Automatic conversion of false to array is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-ajax-filters/berocket/includes/updater.php on line 51
Deprecated: Creation of dynamic property Cookie_Notice_Settings::$revoke_opts is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/cookie-notice/includes/settings.php on line 58
Deprecated: Creation of dynamic property NewfoldLabs\WP\Module\ComingSoon::$container is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/wp-plugin-hostgator/vendor/newfold-labs/wp-module-coming-soon/includes/coming-soon.php on line 17
Deprecated: Creation of dynamic property NewfoldLabs\WP\Module\ComingSoon::$args is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/wp-plugin-hostgator/vendor/newfold-labs/wp-module-coming-soon/includes/coming-soon.php on line 40
Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/elementor-pro/modules/loop-builder/module.php on line 204
Deprecated: class_exists(): Passing null to parameter #1 ($class) of type string is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce/includes/wc-core-functions.php on line 2057
Deprecated: Creation of dynamic property WC_Connect_Tracks::$plugin_file is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-services/classes/class-wc-connect-tracks.php on line 20
Deprecated: Creation of dynamic property WC_Connect_Account_Settings::$payment_methods_store is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-services/classes/class-wc-connect-account-settings.php on line 19
Deprecated: Creation of dynamic property WC_Connect_TaxJar_Integration::$cache_time is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-services/classes/class-wc-connect-taxjar-integration.php on line 50
Deprecated: Creation of dynamic property WC_Connect_Loader::$tracks is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-services/woocommerce-services.php on line 349
Deprecated: Creation of dynamic property WC_Connect_Loader::$label_reports is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-services/woocommerce-services.php on line 505
Deprecated: Creation of dynamic property WC_Countries::$countries is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce/includes/class-wc-countries.php on line 51
Deprecated: Creation of dynamic property NM_Text_wooproduct::$icon is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-product-addon/classes/inputs/input.text.php on line 26
Deprecated: Creation of dynamic property NM_Textarea_wooproduct::$icon is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-product-addon/classes/inputs/input.textarea.php on line 26
Deprecated: Creation of dynamic property NM_Select_wooproduct::$icon is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-product-addon/classes/inputs/input.select.php on line 26
Deprecated: Creation of dynamic property NM_Radio_wooproduct::$icon is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-product-addon/classes/inputs/input.radio.php on line 26
Deprecated: Creation of dynamic property NM_Checkbox_wooproduct::$icon is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-product-addon/classes/inputs/input.checkbox.php on line 26
Deprecated: Creation of dynamic property NM_Email_wooproduct::$icon is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-product-addon/classes/inputs/input.email.php on line 26
Deprecated: Creation of dynamic property NM_Date_wooproduct::$icon is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-product-addon/classes/inputs/input.date.php on line 26
Deprecated: Creation of dynamic property NM_Number_wooproduct::$icon is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-product-addon/classes/inputs/input.number.php on line 26
Deprecated: Creation of dynamic property NM_Hidden_wooproduct::$icon is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/woocommerce-product-addon/classes/inputs/input.hidden.php on line 26
Deprecated: Creation of dynamic property AWS_Integrations::$child_theme is deprecated in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/advanced-woo-search/includes/class-aws-integrations.php on line 53
Warning: Cannot modify header information - headers already sent by (output started at /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/ajax-search-for-woocommerce/fs/lib/includes/managers/class-fs-key-value-storage.php:44) in /home2/ihmoleul/yaohanoptical.com/wp-content/plugins/appointment-hour-booking/js/fbuilder-loader-public.php on line 3
fbuilderjQuery = (typeof fbuilderjQuery != 'undefined' ) ? fbuilderjQuery : jQuery;
fbuilderjQuery(function(){
(function($) {
$.extend({
stringifyXX : function stringifyXX(obj) {
var enc = function(param) {
var escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
meta = {
'\b' : '\\b',
'\t' : '\\t',
'\n' : '\\n',
'\f' : '\\f',
'\r' : '\\r',
'"' : '\\"',
'\\' : '\\\\'
};
escapable.lastIndex = 0;
return escapable.test(param) ? param.replace(escapable, function (a) {
var c = meta[a];
return typeof c === 'string' ? c : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
}) : param;
};
var t = typeof (obj);
if (t != "object" || obj === null) {
// simple data type
if (t == "string") obj = '"' + obj + '"';
return String(obj);
} else {
// recurse array or object
var n, v, json = [], arr = (obj && obj.constructor == Array);
for (n in obj) {
v = obj[n];
t = typeof(v);
if (t!="function")
{
if (t == "string") v = '"' + enc(v) + '"'; else if (t == "object" && v !== null) v = $.stringifyXX(v);
json.push((arr ? "" : '"' + n + '":') + String(v));
}
}
return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
}
}
});
})(fbuilderjQuery);
});fbuilderjQuery="undefined"!=typeof fbuilderjQuery?fbuilderjQuery:jQuery,fbuilderjQuery(function(){var t;(t=fbuilderjQuery).extend(t.fn,{validate:function(e){if(this.length){var i=t.data(this[0],"validator");return i||(this.attr("novalidate","novalidate"),i=new t.validator(e,this[0]),t.data(this[0],"validator",i),i.settings.onsubmit&&(this.validateDelegate(":submit","click",function(e){i.settings.submitHandler&&(i.submitButton=e.target),t(e.target).hasClass("cancel")&&(i.cancelSubmit=!0)}),this.submit(function(e){function s(){var s;return!i.settings.submitHandler||(i.submitButton&&(s=t("").attr("name",i.submitButton.name).val(i.submitButton.value).appendTo(i.currentForm)),i.settings.submitHandler.call(i,i.currentForm,e),i.submitButton&&s.remove(),!1)}return i.settings.debug&&e.preventDefault(),i.cancelSubmit?(i.cancelSubmit=!1,s()):i.form()?i.pendingRequest?(i.formSubmitted=!0,!1):s():(i.focusInvalid(),!1)})),i)}e&&e.debug&&window.console&&console.warn("nothing selected, can't validate, returning nothing")},valid:function(){if(t(this[0]).is("form"))return this.validate().form();var e=!0,i=t(this[0].form).validate();return this.each(function(){e&=i.element(this)}),e},removeAttrs:function(e){var i={},s=this;return t.each(e.split(/\s/),function(t,e){i[e]=s.attr(e),s.removeAttr(e)}),i},rules:function(e,i){var s=this[0];if(e){var n=t.data(s.form,"validator").settings,r=n.rules,a=t.validator.staticRules(s);switch(e){case"add":t.extend(a,t.validator.normalizeRule(i)),r[s.name]=a,i.messages&&(n.messages[s.name]=t.extend(n.messages[s.name],i.messages));break;case"remove":if(!i)return delete r[s.name],a;var u={};return t.each(i.split(/\s/),function(t,e){u[e]=a[e],delete a[e]}),u}}var o=t.validator.normalizeRules(t.extend({},t.validator.metadataRules(s),t.validator.classRules(s),t.validator.attributeRules(s),t.validator.staticRules(s)),s);if(o.required){var l=o.required;delete o.required,o=t.extend({required:l},o)}return o}}),t.extend(t.expr[":"],{blank:function(e){return!t.trim(""+e.value)},filled:function(e){return!!t.trim(""+e.value)},unchecked:function(t){return!t.checked}}),t.validator=function(e,i){this.settings=t.extend(!0,{},t.validator.defaults,e),this.currentForm=i,this.init()},t.validator.format=function(e,i){return 1===arguments.length?function(){var i=t.makeArray(arguments);return i.unshift(e),t.validator.format.apply(this,i)}:(arguments.length>2&&i.constructor!==Array&&(i=t.makeArray(arguments).slice(1)),i.constructor!==Array&&(i=[i]),t.each(i,function(t,i){e=e.replace(new RegExp("\\{"+t+"\\}","g"),i)}),e)},t.extend(t.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"cpefb_error",validClass:"valid",errorElement:"label",focusInvalid:!0,errorContainer:t([]),errorLabelContainer:t([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(t,e){this.lastActive=t,this.settings.focusCleanup&&!this.blockFocusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,t,this.settings.errorClass,this.settings.validClass),this.addWrapper(this.errorsFor(t)).hide())},onfocusout:function(t,e){this.checkable(t)||!(t.name in this.submitted)&&this.optional(t)||this.element(t)},onkeyup:function(t,e){(t.name in this.submitted||t===this.lastElement)&&this.element(t)},onclick:function(t,e){t.name in this.submitted?this.element(t):t.parentNode.name in this.submitted&&this.element(t.parentNode)},highlight:function(e,i,s){"radio"===e.type?this.findByName(e.name).addClass(i).removeClass(s):t(e).addClass(i).removeClass(s)},unhighlight:function(e,i,s){"radio"===e.type?this.findByName(e.name).removeClass(i).addClass(s):t(e).removeClass(i).addClass(s)}},setDefaults:function(e){t.extend(t.validator.defaults,e)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",accept:"Please enter a value with a valid extension.",upload_size:t.validator.format("The file you've chosen is too big, maximum is {0} kB."),maxlength:t.validator.format("Please enter no more than {0} characters."),minlength:t.validator.format("Please enter at least {0} characters."),rangelength:t.validator.format("Please enter a value between {0} and {1} characters long."),range:t.validator.format("Please enter a value between {0} and {1}."),max:t.validator.format("Please enter a value less than or equal to {0}."),min:t.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){this.labelContainer=t(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||t(this.currentForm),this.containers=t(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var e=this.groups={};t.each(this.settings.groups,function(i,s){t.each(s.split(/\s/),function(t,s){e[s]=i})});var i=this.settings.rules;function s(e){var i=t.data(this[0].form,"validator"),s="on"+e.type.replace(/^validate/,"");i.settings[s]&&i.settings[s].call(i,this[0],e)}t.each(i,function(e,s){i[e]=t.validator.normalizeRule(s)}),t(this.currentForm).validateDelegate("[type='text'], [type='password'], [type='file'], select, textarea, [type='number'], [type='search'] ,[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'] ","focusin focusout keyup",s).validateDelegate("[type='radio'], [type='checkbox'], select, option","click",s),this.settings.invalidHandler&&t(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler)},form:function(){return this.checkForm(),t.extend(this.submitted,this.errorMap),this.invalid=t.extend({},this.errorMap),this.valid()||t(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var t=0,e=this.currentElements=this.elements();e[t];t++)this.check(e[t]);return this.valid()},element:function(e){e=this.validationTargetFor(this.clean(e)),this.lastElement=e,this.prepareElement(e),this.currentElements=t(e);var i=!1!==this.check(e);return i?delete this.invalid[e.name]:this.invalid[e.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),i},showErrors:function(e){if(e){for(var i in t.extend(this.errorMap,e),this.errorList=[],e)this.errorList.push({message:e[i],element:this.findByName(i)[0]});this.successList=t.grep(this.successList,function(t){return!(t.name in e)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){t.fn.resetForm&&t(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors(),this.elements().removeClass(this.settings.errorClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(t){var e=0;for(var i in t)e++;return e},hideErrors:function(){this.addWrapper(this.toHide).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{t(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(t){}},findLastActive:function(){var e=this.lastActive;return e&&1===t.grep(this.errorList,function(t){return t.element.name===e.name}).length&&e},elements:function(){var e=this,i={};return t(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){return!this.name&&e.settings.debug&&window.console&&console.error("%o has no name assigned",this),!(this.name in i||!e.objectLength(t(this).rules())||(i[this.name]=!0,0))})},clean:function(e){return t(e)[0]},errors:function(){var e=this.settings.errorClass.replace(" ",".");return t(this.settings.errorElement+"."+e,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=t([]),this.toHide=t([]),this.currentElements=t([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(t){this.reset(),this.toHide=this.errorsFor(t)},elementValue:function(e){var i=t(e).val();return"string"==typeof i?i.replace(/\r/g,""):i},check:function(e){e=this.validationTargetFor(this.clean(e));var i,s=t(e).rules(),n=!1,r=this.elementValue(e);for(var a in s){var u={method:a,parameters:s[a]};try{if("dependency-mismatch"===(i=t.validator.methods[a].call(this,r,e,u.parameters))){n=!0;continue}if(n=!1,"pending"===i)return void(this.toHide=this.toHide.not(this.errorsFor(e)));if(!i)return this.formatAndAdd(e,u),!1}catch(t){throw this.settings.debug&&window.console&&console.log("exception occurred when checking element "+e.id+", check the '"+u.method+"' method",t),t}}if(!n)return this.objectLength(s)&&this.successList.push(e),!0},customMetaMessage:function(e,i){if(t.metadata){var s=this.settings.meta?t(e).metadata()[this.settings.meta]:t(e).metadata();return s&&s.messages&&s.messages[i]}},customMessage:function(t,e){var i=this.settings.messages[t];return i&&(i.constructor===String?i:i[e])},findDefined:function(){for(var t=0;tWarning: No message defined for "+e.name+"")},formatAndAdd:function(e,i){var s=this.defaultMessage(e,i.method),n=/\$?\{(\d+)\}/g;"function"==typeof s?s=s.call(this,i.parameters,e):n.test(s)&&(s=t.validator.format(s.replace(n,"{$1}"),i.parameters)),this.errorList.push({message:s,element:e}),this.errorMap[e.name]=s,this.submitted[e.name]=s},addWrapper:function(t){return this.settings.wrapper&&(t=t.add(t.parent(this.settings.wrapper))),t},defaultShowErrors:function(){var t,e;for(t=0;this.errorList[t];t++){var i=this.errorList[t];this.settings.highlight&&this.settings.highlight.call(this,i.element,this.settings.errorClass,this.settings.validClass),this.showLabel(i.element,i.message)}if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(t=0;this.successList[t];t++)this.showLabel(this.successList[t]);if(this.settings.unhighlight)for(t=0,e=this.validElements();e[t];t++)this.settings.unhighlight.call(this,e[t],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return t(this.errorList).map(function(){return this.element})},showLabel:function(e,i){var s=this.errorsFor(e);s.length?(s.removeClass(this.settings.validClass).addClass(this.settings.errorClass),s.attr("generated")&&s.html(i)):(s=t("<"+this.settings.errorElement+"/>").attr({for:this.idOrName(e),generated:!0}).addClass(this.settings.errorClass).html(i||""),this.settings.wrapper&&(s=s.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.append(s).length||(this.settings.errorPlacement?this.settings.errorPlacement(s,t(e)):s.insertAfter(e))),!i&&this.settings.success&&(s.text(""),"string"==typeof this.settings.success?s.addClass(this.settings.success):this.settings.success(s)),this.toShow=this.toShow.add(s)},errorsFor:function(e){var i=this.idOrName(e);return this.errors().filter(function(){return t(this).attr("for")===i})},idOrName:function(t){return this.groups[t.name]||(this.checkable(t)?t.name:t.id||t.name)},validationTargetFor:function(t){return this.checkable(t)&&(t=this.findByName(t.name).not(this.settings.ignore)[0]),t},checkable:function(t){return/radio|checkbox/i.test(t.type)},findByName:function(e){var i=this.currentForm;return t(document.getElementsByName(e)).map(function(t,s){return s.form===i&&s.name===e&&s||null})},getLength:function(e,i){switch(i.nodeName.toLowerCase()){case"select":return t("option:selected",i).length;case"input":if(this.checkable(i))return this.findByName(i.name).filter(":checked").length}return e.length},depend:function(t,e){return!this.dependTypes[typeof t]||this.dependTypes[typeof t](t,e)},dependTypes:{boolean:function(t,e){return t},string:function(e,i){return!!t(e,i.form).length},function:function(t,e){return t(e)}},optional:function(e){var i=this.elementValue(e);return!t.validator.methods.required.call(this,i,e)&&"dependency-mismatch"},startRequest:function(t){this.pending[t.name]||(this.pendingRequest++,this.pending[t.name]=!0)},stopRequest:function(e,i){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[e.name],i&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(t(this.currentForm).submit(),this.formSubmitted=!1):!i&&0===this.pendingRequest&&this.formSubmitted&&(t(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(e){return t.data(e,"previousValue")||t.data(e,"previousValue",{old:null,valid:!0,message:this.defaultMessage(e,"remote")})}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(e,i){e.constructor===String?this.classRuleSettings[e]=i:t.extend(this.classRuleSettings,e)},classRules:function(e){var i={},s=t(e).attr("class");return s&&t.each(s.split(" "),function(){this in t.validator.classRuleSettings&&t.extend(i,t.validator.classRuleSettings[this])}),i},attributeRules:function(e){var i={},s=t(e);for(var n in t.validator.methods){var r;"required"===n?(""===(r=s.get(0).getAttribute(n))?r=!0:"false"===r&&(r=!1),r=!!r):r=s.attr(n),r?i[n]=r:s[0].getAttribute("type")===n&&(i[n]=!0)}return i.maxlength&&/-1|2147483647|524288/.test(i.maxlength)&&delete i.maxlength,i},metadataRules:function(e){if(!t.metadata)return{};var i=t.data(e.form,"validator").settings.meta;return i?t(e).metadata()[i]:t(e).metadata()},staticRules:function(e){var i={},s=t.data(e.form,"validator");return s.settings.rules&&(i=t.validator.normalizeRule(s.settings.rules[e.name])||{}),i},normalizeRules:function(e,i){return t.each(e,function(s,n){if(!1!==n){if(n.param||n.depends){var r=!0;switch(typeof n.depends){case"string":r=!!t(n.depends,i.form).length;break;case"function":r=n.depends.call(i,i)}r?e[s]=void 0===n.param||n.param:delete e[s]}}else delete e[s]}),t.each(e,function(s,n){e[s]=t.isFunction(n)?n(i):n}),t.each(["minlength","maxlength","min","max"],function(){e[this]&&(e[this]=Number(e[this]))}),t.each(["rangelength","range"],function(){e[this]&&(e[this]=[Number(e[this][0]),Number(e[this][1])])}),t.validator.autoCreateRanges&&(e.min&&e.max&&(e.range=[e.min,e.max],delete e.min,delete e.max),e.minlength&&e.maxlength&&(e.rangelength=[e.minlength,e.maxlength],delete e.minlength,delete e.maxlength)),e.messages&&delete e.messages,e},normalizeRule:function(e){if("string"==typeof e){var i={};t.each(e.split(/\s/),function(){i[this]=!0}),e=i}return e},addMethod:function(e,i,s){t.validator.methods[e]=i,t.validator.messages[e]=void 0!==s?s:t.validator.messages[e],i.length<3&&t.validator.addClassRules(e,t.validator.normalizeRule(e))},methods:{required:function(e,i,s){if(!this.depend(s,i))return"dependency-mismatch";if("select"===i.nodeName.toLowerCase()){var n=t(i).val();return n&&n.length>0}return this.checkable(i)?this.getLength(e,i)>0:t.trim(e).length>0},remote:function(e,i,s){if(this.optional(i))return"dependency-mismatch";var n=this.previousValue(i);if(this.settings.messages[i.name]||(this.settings.messages[i.name]={}),n.originalMessage=this.settings.messages[i.name].remote,this.settings.messages[i.name].remote=n.message,s="string"==typeof s&&{url:s}||s,this.pending[i.name])return"pending";if(n.old===e)return n.valid;n.old=e;var r=this;this.startRequest(i);var a={};return a[i.name]=e,t.ajax(t.extend(!0,{url:s,mode:"abort",port:"validate"+i.name,dataType:"json",data:a,success:function(s){r.settings.messages[i.name].remote=n.originalMessage;var a=!0===s;if(a){var u=r.formSubmitted;r.prepareElement(i),r.formSubmitted=u,r.successList.push(i),r.showErrors()}else{var o={},l=s||r.defaultMessage(i,"remote");o[i.name]=n.message=t.isFunction(l)?l(e):l,r.showErrors(o)}n.valid=a,r.stopRequest(i,a)}},s)),"pending"},minlength:function(e,i,s){var n=t.isArray(e)?e.length:this.getLength(t.trim(e),i);return this.optional(i)||n>=s},maxlength:function(e,i,s){var n=t.isArray(e)?e.length:this.getLength(t.trim(e),i);return this.optional(i)||n<=s},rangelength:function(e,i,s){var n=t.isArray(e)?e.length:this.getLength(t.trim(e),i);return this.optional(i)||n>=s[0]&&n<=s[1]},min:function(t,e,i){return this.optional(e)||t>=i},max:function(t,e,i){return this.optional(e)||t<=i},range:function(t,e,i){return this.optional(e)||t>=i[0]&&t<=i[1]},email:function(t,e){return this.optional(e)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(t)},url:function(t,e){return this.optional(e)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(t)},date:function(t,e){return this.optional(e)||!/Invalid|NaN/.test(new Date(t))},dateISO:function(t,e){return this.optional(e)||/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(t)},number:function(t,e){return this.optional(e)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(t)},digits:function(t,e){return this.optional(e)||/^\d+$/.test(t)},creditcard:function(t,e){if(this.optional(e))return"dependency-mismatch";if(/[^0-9 \-]+/.test(t))return!1;for(var i=0,s=0,n=!1,r=(t=t.replace(/\D/g,"")).length-1;r>=0;r--){var a=t.charAt(r);s=parseInt(a,10),n&&(s*=2)>9&&(s-=9),i+=s,n=!n}return i%10==0},accept:function(t,e,i){return i="string"==typeof i?i.replace(/,/g,"|"):"png|jpe?g|gif",this.optional(e)||t.match(new RegExp(".("+i+")$","i"))},equalTo:function(e,i,s){return e===t(s).unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){t(i).valid()}).val()}}}),t.format=t.validator.format,function(t){var e={};if(t.ajaxPrefilter)t.ajaxPrefilter(function(t,i,s){var n=t.port;"abort"===t.mode&&(e[n]&&e[n].abort(),e[n]=s)});else{var i=t.ajax;t.ajax=function(s){var n=("mode"in s?s:t.ajaxSettings).mode,r=("port"in s?s:t.ajaxSettings).port;return"abort"===n?(e[r]&&e[r].abort(),e[r]=i.apply(this,arguments)):i.apply(this,arguments)}}}(fbuilderjQuery),function(t){fbuilderjQuery.event.special.focusin||fbuilderjQuery.event.special.focusout||!document.addEventListener||t.each({focus:"focusin",blur:"focusout"},function(e,i){function s(e){return(e=t.event.fix(e)).type=i,t.event.dispatch.call(this,e)}t.event.special[i]={setup:function(){this.addEventListener(e,s,!0)},teardown:function(){this.removeEventListener(e,s,!0)},handler:function(e){var s=arguments;return s[0]=t.event.fix(e),s[0].type=i,t.event.dispatch.apply(this,s)}}}),t.extend(t.fn,{validateDelegate:function(e,i,s){return this.bind(i,function(i){var n=t(i.target);if(n.is(e))return s.apply(n,arguments)})}})}(fbuilderjQuery)});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 = $('').text(value).html()
value = value.replace( /&/g, '&').replace(/"/g, """);
return value;
};
$.fbuilder[ 'configValidate' ] = function(elem)
{
elem.validate({
ignore:".ignore,.ignorepb",
errorElement: "div",
errorClass:"cpefb_error",
errorPlacement: function(e, element)
{
if (element.parents(".dfield").find(".cpefb_error.message").not("[style]").length>0)
return;
e.insertAfter(element.parents(".dfield").children().last());
e.addClass("message");
}
});
};
$.fbuilder['htmlDecode']=function(value)
{
if(/&(?:#x[a-f0-9]+|#[0-9]+|[a-z0-9]+);?/ig.test(value))value=$('').html(value).text();return value;
};
$.fbuilder[ 'escape_symbol' ] = function( value ) // Escape the symbols used in regulars expressions
{
return value.replace(/([\^\$\-\.\,\[\]\(\)\/\\\*\?\+\!\{\}])/g, "\\$1");
};
$.fbuilder[ 'parseValStr' ] = function( value )
{
return '"' + value.replace(/'/g, "\\'").replace( /\$/g, '') + '"';
};
$.fbuilder[ 'parseVal' ] = function( value, thousandSeparator, decimalSymbol )
{
if( value == '' ) return 0;
value += '';
thousandSeparator = new RegExp( $.fbuilder.escape_symbol( ( typeof thousandSeparator == 'undefined' ) ? ',' : thousandSeparator ), 'g' );
decimalSymbol = new RegExp( $.fbuilder.escape_symbol( ( typeof decimalSymbol == 'undefined' ) ? '.' : decimalSymbol ), 'g' );
var t = value.replace( thousandSeparator, '' ).replace( decimalSymbol, '.' ).replace( /\s/g, '' ),
p = /[+-]?((\d+(\.\d+)?)|(\.\d+))/.exec( t );
return ( p ) ? p[0]*1 : $.fbuilder[ 'parseValStr' ]( value );
};
$.fn.fbuilder = function(options){
var opt = $.extend({},
{
pub:false,
identifier:"",
title:""
},options, true);
opt.messages = $.extend({
previous: "Previous",
next: "Next",
pageof: "Page {0} of {0}",
required: "This field is required.",
email: "Please enter a valid email address.",
datemmddyyyy: "Please enter a valid date with this format(mm/dd/yyyy)",
dateddmmyyyy: "Please enter a valid date with this format(dd/mm/yyyy)",
number: "Please enter a valid number.",
digits: "Please enter only digits.",
maxlength: $.validator.format("Please enter no more than {0} characters"),
minlength: $.validator.format("Please enter at least {0} characters."),
equalTo: "Please enter the same value again.",
max: $.validator.format("Please enter a value less than or equal to {0}."),
min: $.validator.format("Please enter a value greater than or equal to {0}.")
},opt.messages);
opt.messages.max = $.validator.format(opt.messages.max);
opt.messages.min = $.validator.format(opt.messages.min);
$.extend($.validator.messages, opt.messages);
var items = [];
var reloadItemsPublic = function()
{
$("#fieldlist"+opt.identifier).closest( 'form' ).addClass( theForm.formtemplate );
$("#fieldlist"+opt.identifier).html("").addClass(theForm.formlayout);
$("#formheader"+opt.identifier).html(theForm.show());
var page = 0;
$("#fieldlist"+opt.identifier).append('');
for (var i=0;i');
}
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 += '
";
htmlSlots[htmlSlots.length] = {availableslot:true,st:st,serviceindex:s,h1:Math.floor((st)/60),m1:((st)%60),h2:Math.floor((st+duration)/60),m2:((st+duration)%60),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
});
//remove duplicates
htmlSlots = htmlSlots.reduce(function(field, e1){
var matches = field.filter(function(e2){return e1.html== e2.html});
if (matches.length == 0){
field.push(e1);
}return field;
}, []);
htmlSlots = htmlSlots.reduce(function(field, e1){
var matches = field.filter(function(e2){return e1.t== e2.t});
if (matches.length == 0){
field.push(e1);
}
else
{
for (var i=0;i0 && htmlSlots.length>0)
for (var i=0;i=me.cacheArr[d][i].t2)
me.cacheArr[d][i].t2 += 24 * 60;
if (st<=me.cacheArr[d][i].t1 && et>=me.cacheArr[d][i].t1)
htmlSlots[htmlSlots.length] = jQuery.extend({}, me.cacheArr[d][i]);
}
for (var i=0;me.usedSlots[d] && i=me.usedSlots[d][i].t2)
me.usedSlots[d][i].t2 += 24 * 60;
if (st<=me.usedSlots[d][i].t1 && et>=me.usedSlots[d][i].t1)
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}],s);
}
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}],s),this.getAvailablePartialSlots(d,[{h1:24-this.tz,m1:0,h2:24,m2:0}],s));
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}],s),this.getAvailablePartialSlots(d1,[{h1:this.tz*-1,m1:0,h2:24,m2:0}],s));
me.htmlUsedSlots[d] = $.merge(setHtmlUsedSlots(d,this.tz*-1,24), setHtmlUsedSlots(d1,0,this.tz*-1));
}
var c = "s"+s+"q"+me.quantity_selected;
var slotsReal = 0;
var htmlSlots = me.getCurrentSlots(arr,d,s);
for (var j=0;j a_max.length)
a_max = me.availableSlotsByService[i].slice(0);
}
}
var c = "sq"+me.quantity_selected;
if (a_max.length==0)
{
me.invalidDatesByService[c] = me.invalidDatesByService[c] || [];
if ($.inArray(d, me.invalidDatesByService[c]) == -1)
me.invalidDatesByService[c][me.invalidDatesByService[c].length] = d;
return [];
}
return a_max;
},
rC: function(d)
{
var me = this;
var day = $.datepicker.formatDate('yy-mm-dd', d);
var c = new Array(day,"d"+day);
if (me.working_dates[d.getDay()]==0 && ($.inArray(day, me.special_days) == -1))
c.push("nonworking","ui-datepicker-unselectable","ui-state-disabled");
for( var i = 0, l = me.invalidDates.length; i < l; i++ )
{
if (d.getTime() === me.invalidDates[i].getTime() && ($.inArray(day, me.special_days) == -1))
c.push("nonworking","ui-datepicker-unselectable","ui-state-disabled","invalidDate");
}
if (me.minDate!=="" && me.getMinDate!="" && day < $.datepicker.formatDate('yy-mm-dd', me.getMinDate))
c.push("nonworking","ui-datepicker-unselectable","ui-state-disabled","beforemindate");
if (me.maxDate!=="" && me.getMaxDate!="" && day > $.datepicker.formatDate('yy-mm-dd', me.getMaxDate))
c.push("nonworking","ui-datepicker-unselectable","ui-state-disabled","aftermaxdate");
if (($.inArray("ui-datepicker-unselectable",c)==-1) && !me.emptySelectCheckbox || (me.emptySelectCheckbox && $(".fieldCalendarService"+me.name+" select option:selected").index() > 0 ))
{
var arr = me.getAvailableSlots(day);
if ($.inArray(day, me.invalidDatesByService["s"+(me.showAllServices?"":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 cclass = c.join(" ");
var q = 0;
var total = 0;
if (!me.showAllServices)
{
var htmlSlots = me.getCurrentSlots(arr,day,me.service_selected);
for (var i=0;i0)/*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!="")
{
try{
var s = me.initialapp.split(";");
var s2 = "";
var ind = 0;
for (var i=0;i 0 )))
{
$( '#field' + me.form_identifier + '-' + me.index + ' .slotsCalendar'+me.name ).html("");
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 arr = me.getAvailableSlots(d);
var nextdateAvailable = $.datepicker.parseDate("yy-mm-dd", d);
var c = "s"+(me.showAllServices?"":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;
}
me.service_change = false;
function getStrSlots(arr,d,s)
{
var str = "";
var htmlSlots = me.getCurrentSlots(arr,d,s);
var capacity_service = me.services[s].capacity;
for (var i=0;i
'+me.services[i].name+'
'+str_s+'';
}
}
if (str=="") str = cp_hourbk_nomore_label;
var before = "";
if (s.find(".slots").length>0)
{
before = s.find(".slots").attr("d");
}
s.html("