.clothing and accessories.

To contact us, please fill out the form below and we will reply to you at our soonest possible opportunity.

.clothing and accessories.

What are your shipping costs?Currently, shipping rates range from $15AUD to $60AUD relative to your distance from Australia.
How long will it take for my order to arrive?Feel free to check out our handy dandy little shipping info button at the bottom of the page.
How do I place a return or exchange?Simply reach out to us at [email protected] and we can help from there.
I think I got the sizing wrong on my order, can I exchange it for a different size?Unfortunately, due to the nature of reworked clothing and the uniqueness of the products we create, this isn't possible.
How do I know which size fits me?Refer to the sizing chart link provided on each product page.
What are your clothes actually made from?It's our heartfelt passion to breath life into forgotten gems and clothing that just needs a second chance. Acknowledging this, our clothing is made from a wide range of textiles and materials.
Is this product available in different colors or sizes?Unfortunately not. Due to the nature of reworking clothing and the individuality of the products we create.
How do you handle my personal data?All of our payment processes are completed with the aid of Stripe and are protected by their robust security measures. Without getting into the nitty gritty, we will never give your information to anyone unless it's legally required from us.

.clothing and accessories.

The Rubber Skeleton store is hosted through Carrd Inc. Carrd provides Rubber Skeleton with the online e-commerce platform that allows the sale of Goods and Services to all parties.Please read the Terms of Service carefully before continuing the use of our website. By using this site you agree to be bound by these Terms of Service. If you do not agree to all the terms and conditions of this agreement please contact us at [email protected] to discuss further.Original ‘General conditions for the supply of Goods’ document authored and supplied by the State of Victoria (Department of Treasury and Finance). Changes have been made to reflect Rubber Skeleton policies.Terms of ServiceRubber SkeletonVersion 1.2.1Contents
1. Term of Agreement
2. Supply and delivery of Goods
3. Acceptance or rejection of Goods
4. Pricing
6. Title and risk
9. Data
10. Liability
12. Termination
13. Confidentiality, privacy and data protection
16. Compliance with Law and policy
17. GST
18. Dispute Resolution
19. General
20. Entire understanding and order for precedence
22. Definitions
23. Interpretation
General conditions for the supply of GoodsTerm of Agreement
The Agreement begins on the Commencement Date and continues until the Completion Date, unless extended in accordance with clause 1(b) or terminated earlier in accordance with these terms. If no Completion Date is specified, the Agreement will come to an end when all Goods have been delivered and accepted and all payments required to be made under the Agreement have been made.
A party may, by the provision of notice in writing, request the Agreement be extended beyond the Completion Date. The Agreement may only be extended for the period or periods agreed to by the parties in writing.
Supply and delivery of Goods
The Supplier must supply the Goods to the Organisation in accordance with this Agreement and any reasonable directions given by the Organisation.
The Supplier must deliver the Goods to the Delivery Point by the Time for Delivery as set out in the Purchase Order. Acceptance of the Goods by the Organisation will not be taken to have occurred until either:
acceptance is acknowledged in writing by the Organisation; or
acceptance is deemed to have occurred in accordance with clause 3(a) below.
Acceptance or rejection of Goods
If the Goods conform with this Agreement, the Organisation will promptly issue written notification of acceptance of the Goods. If the Organisation does not give written notification of acceptance or rejection of the Goods within 30 days of delivery, acceptance of the Goods will be deemed to have occurred on the date of delivery.
If the Goods:
do not conform with this Agreement; or
on delivery are damaged, unfit for purpose or not of merchantable quality, the Organisation may reject the Goods by giving written notice (including reasons for rejection) to the Supplier within 30 days of delivery. The Organisation is not obliged to pay for any rejected Goods.
The Supplier must, at its cost, collect and remove any rejected Goods as soon as practicable following notification. If the Supplier fails to collect and remove the rejected Goods within a reasonable time, the Organisation may return the Goods to the Supplier at the Supplier’s expense, or, following further notification, destroy the Goods or otherwise dispose of the Goods in its discretion.
Pricing
The Unit Price for products are subject to change without notice.
The Supplier shall not be liable to the Organisation or to any third-party for any modification, price change, suspension or discontinuance of the Service occurring over the duration of the Agreement.
Title and risk
Title in the Goods will pass to the Organisation upon acceptance of the Goods. Risk in the Goods will pass to the Organisation when the Goods are delivered to the Delivery Point.
Data
The Supplier must only use the Data to the extent necessary to perform its obligations under this Agreement as outlined within the Privacy Policy provided by the Supplier.
Liability
The Supplier indemnifies, and will at all times keep the Organisation and each of its Personnel indemnified, against any liabilities, losses, damages, costs and expenses (including all legal and settlement costs determined on a full indemnity basis) or compensation arising out of, or in any way in connection with, any:
personal injury, including sickness and death;
property damage;
breach of an obligation of confidence or privacy, whether under this Agreement or otherwise;
fraudulent acts or omissions;
wilful misconduct or unlawful act or omission;
breaches of logical or physical security;
loss or corruption of Data;
third party claim arising out of a breach of the Agreement by the Supplier or its Personnel or any negligent act or omission of the Supplier or its Personnel; or
infringement or alleged infringement of the Intellectual Property Rights or any other rights of any person, including any third party, which was caused, or contributed to by, any act or omission by the Supplier or any of its Personnel.
The Supplier’s liability to indemnify the Organisation under clause 11(a) is reduced to the extent that any wilful, unlawful or negligent act or omission by the Organisation or its Personnel contributed to the liability, loss, damage, cost, expense or compensation.
To the extent that the indemnity in clause 11(a) refers to persons other than the Organisation, the Organisation holds this clause on trust for those other persons.
Termination
The Organisation may terminate the Agreement with immediate effect (or with effect from a specified date) by giving notice in writing to the Supplier if the Supplier:
fails to provide the Goods in accordance with the Agreement;
breaches any provision of the Agreement and, where that breach is capable of remedy, fails to remedy the breach within 10 Business Days after receiving written notice requiring it to do so (or such later date as may be specified in that notice);
breaches any provision of the Agreement that is not capable of remedy;
or any of its Personnel involved in the supply of the Goods commits fraud, dishonesty or any other serious misconduct;
commits any act or does anything that may be prejudicial or otherwise detrimental to the reputation of the State; or
suffers from an Insolvency Event.
The Organisation may terminate the Agreement without cause on notice to the Supplier.
If the Agreement is terminated pursuant to clause 12(b), the Organisation will pay the Supplier:
for the Goods delivered in accordance with the Agreement up to the date of the termination; and
the unavoidable and substantiated costs incurred by the Supplier as a direct result of the termination, excluding any loss of profit,
and the Organisation has no other liability to the Supplier in relation to that termination.
When the Organisation issues a notice under clause 12(b), the Supplier will immediately comply with any directions given in the notice and do all that is possible to mitigate its losses arising from the termination of the Agreement.
The Supplier may terminate the Agreement by giving at least 20 Business Days written notice to the Organisation if the Organisation fails to pay amounts due under this Agreement.
Termination or expiry of this Agreement will not prejudice any right of action or remedy which may have accrued to either party prior to termination or expiry.
On termination or expiry the Supplier must immediately, following instructions by the Organisation, cease using all materials that contain any Data or Confidential Information by either destroying the materials or returning the materials at no additional cost to the Organisation.
Confidentiality, privacy and data protection
The Supplier and its Personnel must keep the Confidential Information confidential and secure and must not disclose or otherwise make available any Confidential Information to any other person.
The Supplier consents to the Organisation publishing or otherwise making available information in relation to the Supplier (and the supply of the Goods):
as may be required to comply with the Contract Publishing System;
to other Victorian Public Entities or Ministers of the State in connection with the use of the Goods;
to any public sector agency (of the State, any other state or territory or the Commonwealth) for the purposes of benchmarking, provided that it will not identify the Supplier;
to the office of the Auditor General appointed under section 94A of the Constitution Act 1975 (Vic) or the ombudsman appointed under the Ombudsman Act 1973 (Vic);
to comply with Law, including the Freedom of Information Act 1982 (Vic); or
to the IBAC.
The Supplier acknowledges that it will be bound by the Information Privacy Principles, Health Privacy Principles and any applicable Code of Practice (together, Privacy Obligations) with respect to any act done or practice engaged in by the Supplier for the purposes of the Agreement, in the same way and to the same extent as the Privacy Obligations would have applied to the Organisation in respect of that act or practice had it been directly done or engaged in by the Organisation.
The Supplier acknowledges that the Organisation is bound by the Protective Data Security Standards. The Supplier will not do any act or engage in any practice that would contravene or give rise to a breach of a Protective Data Security Standard in respect of any Data collected, held, used, managed, disclosed or transferred by the Supplier, on behalf of the State, under or in connection with the Agreement.
Access
Compliance with Law and policy
The Supplier must, in performing its obligations under the Agreement, comply with the Laws relevant to the provision of the Goods by the Supplier under the Agreement and with the ‘Victorian Industry Participation Policy’ (if applicable).
The Supplier acknowledges that:
the Supplier Code of Conduct is an important part of the State's approach to procurement and describes the State's minimum expectations regarding the conduct of its suppliers;
it has read and aspires to comply with the Supplier Code of Conduct; and
the expectations set out in the Code are not intended to reduce, alter or supersede any other obligations which may be imposed on the Supplier, whether under the Agreement or at Law.
GST
The terms used in this clause have the same meanings given to them in the GST Act.
Unless otherwise expressly stated, all prices or other sums payable or consideration to be provided under or in accordance with the Agreement are exclusive of GST.
If GST is imposed on any supply made under or in accordance with the Agreement, the recipient of the taxable supply must pay to the party making the taxable supply an amount equal to the GST payable on or for the taxable supply. Subject to the recipient first receiving a valid tax invoice, payment of the GST amount will be made at the same time the consideration for the taxable supply is to be paid or provided in accordance with the Agreement.
Dispute Resolution
If any dispute arises under or in connection with this Agreement (Dispute), either party may at any time give written notice to the other (Dispute Notice) requesting that a meeting take place to seek to resolve the Dispute in good faith.
If the Dispute is not resolved in 15 Business Days it will be referred to mediation (Mediation) conducted by the Australian Disputes Centre (ADC) in accordance with the ADC mediation guidelines (Guidelines) with each party bearing their own cost.
If the parties fail to settle the Dispute at Mediation, the parties may agree to submit the dispute for resolution to final and binding arbitration.
The parties will continue to perform their respective obligations under this Agreement pending the resolution of a Dispute.
General
The Agreement is governed by and is to be construed in accordance with the Laws. Each party irrevocably and unconditionally submits to the exclusive jurisdiction of the courts of Victoria and any courts which have jurisdiction to hear appeals from any of those courts and waives any right to object to any proceedings being brought in those courts.
Time is of the essence in relation to the supply of the Goods.
The Agreement may only be varied or replaced by a written document executed by the parties.
A waiver of any right, power or remedy under the Agreement must be in writing and signed by the party granting it. The fact that a party fails to do, or delays in doing, something the party is entitled to do under the Agreement does not amount to a waiver.
Any provision of the Agreement which is invalid or unenforceable is to be read down, if possible, so as to be valid and enforceable, and, if that is not possible, the provision will, to the extent that it is capable, be severed to the extent of the invalidity or unenforceability, without affecting the remaining provisions.
The Organisation may set off against any sum owing to the Supplier under the Agreement any amount then owing by the Supplier to the Organisation.
Subject to clause 20(h), a party may not assign any right under the Agreement without the prior written consent of the other party. The Supplier will be responsible for acts and omissions of any assignee.
The Organisation may, by notice in writing to the Supplier, assign its rights, transfer its obligations or novate the Agreement to any Victorian Public Entity in the event of any State government restructure or other re organisation or change in policy.
Entire understanding and order for precedence
In the event and to the extent of any inconsistency between these General Conditions for the supply of goods and the Purchase Order, the General conditions will prevail to the extent of the inconsistency. If the inconsistency remains incapable of resolution by reading down, the inconsistent provisions will be severed from the Purchase Order without otherwise diminishing the enforceability of the remaining provisions of the Purchase Order.
This Agreement contains everything the parties have agreed in relation to the Goods. No party can rely on an earlier written document or anything said or done by or on behalf of another party before this Agreement was executed.

Definitions
In this Agreement, unless the context otherwise requires:
Agreement means the agreement for the supply of the Goods consisting of these General conditions for the supply of goods and the Purchase Order.
Business Day means a day which is not a Saturday, Sunday or public holiday (being a public holiday appointed as such under the Public Holidays Act 1993 (Vic)) in Melbourne.
Code of Practice means a code of practice as defined in, and approved under, the Privacy and Data Protection Act 2014 (Vic).
Completion Date means the date by which the goods should be delivered by the Supplier, as specified in the Purchase Order.
Commencement Date means the date on which the supply of the Goods will commence, as specified in the Purchase Order.
Confidential Information means any technical, scientific, commercial, financial or other information of, about or in any way related to, the Organisation, including any information designated by the Organisation as confidential, which is disclosed, made available, communicated or delivered to the Supplier, but excludes information which:
is in or which subsequently enters the public domain, other than as a result of a breach of an obligation of confidentiality;
the Supplier can demonstrate was in its possession prior to the date of the Agreement;
the Supplier can demonstrate was developed by it independently of any disclosures previously made by the Organisation;
is lawfully obtained by the Supplier on a non-confidential basis from a person who is not bound by a confidentiality agreement with the Organisation or otherwise prohibited from disclosing the information to the Supplier; or
is required to be disclosed pursuant to Law, court order or other legal process.
Contract Publishing System means the system of the Victorian Government requiring publication of details of contracts entered into by Victorian Government departments, bodies and agencies including any replacement or amended system.
Data means all data, information, text, drawings, statistics, analysis and other materials embodied in any form which is:
• supplied by or on behalf of the Organisation in connection with this Agreement (Input Data); or
generated, placed, stored, processed, retrieved, printed, accessed or produced utilising the Input Data or the Goods.
Delivery Point means the location or address to which the goods are to be delivered, as specified in the Purchase Order.
Goods means the goods specified in the Purchase Order and as provided under this Agreement.
GST Act means the A New Tax System (Goods and Services Tax) Act 1999 (Cth).
Health Privacy Principles means the health privacy principles set out in the Health Records Act 2001 (Vic).
IBAC means the commission established under the Independent Broad-based Anti-corruption Commission Act 2011 (Vic) and includes any other organisation that may, from time to time, perform the functions of the commission.
Information Privacy Principles has the meaning given in the Privacy and Data Protection Act 2014 (Vic).
Insolvency Event means, in relation to the Supplier, any of the following:
• anything that reasonably indicates that there is a significant risk that the Supplier is or will become unable to pay debts as they fall due;
a step being taken to have a receiver, receiver and manager, liquidator or provisional liquidator appointed to the Supplier or any of its assets; or
the Supplier ceasing, or indicating that it is about to cease, carrying on business.
Intellectual Property Rights means all intellectual property rights at any time recognised by law, including all present and future copyright, all proprietary rights in relation to inventions (including patents), registered and unregistered trademarks, trade secrets and know-how, registered designs, circuit layouts, and all other proprietary rights resulting from intellectual activity in the industrial, scientific, literary or artistic fields.
Laws means:
• any statute, regulation or subordinate legislation of the Commonwealth of Australia, the State or local or other government in force in the State of Victoria, irrespective of where enacted; and
lawful requirements of any government or government department or other body or a governmental, semi-governmental, judicial, municipal, statutory or public entity or authority (including a statutory authority or a State-owned enterprise), a self-regulatory authority established under statute or a stock exchange (wherever created or located) or a person (whether autonomous or not) who is charged with the administration of a law.
Organisation means the department, body or agency of the State party to this Agreement.
Overdue Amount means an amount (or part thereof) that:
• is not, or is no longer, disputed;
is due and owing under a tax invoice (as defined in the GST Act), properly rendered by the Supplier in accordance with this Agreement; and
which has been outstanding for more than 30 days, or if clause 6 applies, 10 Business Days from the date of receipt of the correctly rendered tax invoice, or the date that the amount ceased to be disputed, as the case may be.
Personnel of a party includes the officers, employees, agents, contractors and sub-contractors of that party.
Protective Data Security Standards means any standard issued under Part 4 of the Privacy and Data Protection Act 2014 (Vic) and any policies or protocols issued by the Organisation to ensure compliance with those standards.
Purchase Order means any form of order or purchase issued by the Organisation for the supply of the Goods, made under or incorporating these General conditions for the supply of goods.
Purchase Price means the sum ascertained by multiplying the Unit Price for the applicable Goods by the number of units delivered.
State means the Crown in right of the State of Victoria.
Supplier means the entity supplying the Goods under the Agreement.
Supplier Code of Conduct means the Code of Conduct issued by the Victorian Government for suppliers providing goods or services to the Victorian Government, as amended from time to time.
Time for Delivery means the date and, where relevant, the time specified in the Purchase Order (or such other date or time as may be agreed in writing) by or on which the Goods must be delivered by the Supplier.
Unit Price means the price per item of each of the Goods, as specified in the Purchase Order.
Victorian Public Entity means:
• a public sector body as defined in section 4 of the Public Administration Act 2004 (Vic));
a statutory corporation, a State owned company, a State body or a State business corporation as those terms are defined in the State Owned Enterprises Act 1992 (Vic);
a "Council" as defined in the Local Government Act 1989 (Vic); or
an entity which receives the majority of its funding from any of the entities listed in paragraphs (a) to (c) or any entity under the control of any of the entities listed in paragraphs (a) to (c).
Victorian Public Sector Commission (VPSC) Code of Conduct means the Code of Conduct for Victorian Public Sector Employees 2015 (as amended or replaced from time to time) issued by the Public Sector Commission pursuant to section 61 of the Public Administration Act 2004 (Vic).
Interpretation
Unless expressed to the contrary, in this Agreement:
words in the singular include the plural and vice versa;
any gender includes the other genders;
if a word or phrase is defined its other grammatical forms have corresponding meanings;
'includes’ and 'including' are not words of limitation;
no rule of construction will apply to a clause to the disadvantage of a party merely because that party put forward the clause or would otherwise benefit from it;
the obligations of the Supplier, if more than one person, under the Agreement are joint and several and each person constituting the Supplier acknowledges and agrees that it will be causally responsible for the acts and omissions, including breaches of the Agreement, of the other as if those acts or omissions were its own;
the rights of the Supplier, if more than one person, under the Agreement, including the right to payment, jointly benefit each person constituting the Supplier (and not severally or jointly and severally); and
a reference to:
a person includes a partnership, joint venture, unincorporated association, corporation and a government or statutory body or authority;
a person includes the person’s legal personal representatives, successors, assigns and persons substituted by novation;
any law, legislation or legislative provision includes any statutory modification, amendment or re-enactment, and any subordinate legislation or regulations issued under that legislation or legislative provision; and
a party or parties is a reference to the Organisation and the Supplier (as the case requires).

.clothing and accessories.

Privacy Policy
Rubber Skeleton is committed to providing quality services to you and this policy outlines our ongoing obligations to you in respect of how we manage your Personal Information.
We have adopted the Australian Privacy Principles (APPs) contained in the Privacy Act 1988 (Cth) (the Privacy Act). The NPPs govern the way in which we collect, use, disclose, store, secure and dispose of your Personal Information.
A copy of the Australian Privacy Principles may be obtained from the website of The Office of the Australian Information Commissioner at https://www.oaic.gov.au/.
What is Personal Information and why do we collect it?
Personal Information is information or an opinion that identifies an individual. Examples of Personal Information we collect includes names, addresses, email addresses, phone and facsimile numbers.
This Personal Information is obtained in many ways including correspondence, by email, via this website, from cookies and from third parties. We don’t guarantee website links or policy of authorised third parties.
We collect your Personal Information for the primary purpose of providing our services to you, providing information to our clients and marketing. We may also use your Personal Information for secondary purposes closely related to the primary purpose, in circumstances where you would reasonably expect such use or disclosure. You may unsubscribe from our mailing/marketing lists at any time by contacting us in writing.
When we collect Personal Information we will, where appropriate and where possible, explain to you why we are collecting the information and how we plan to use it.
Sensitive Information
Sensitive information is defined in the Privacy Act to include information or opinion about such things as an individual's racial or ethnic origin, political opinions, membership of a political association, religious or philosophical beliefs, membership of a trade union or other professional body, criminal record or health information.
Sensitive information will be used by us only:
• For the primary purpose for which it was obtained
• For a secondary purpose that is directly related to the primary purpose
• With your consent; or where required or authorised by law.
Third Parties
Where reasonable and practicable to do so, we will collect your Personal Information only from you. However, in some circumstances we may be provided with information by third parties. In such a case we will take reasonable steps to ensure that you are made aware of the information provided to us by the third party.
Disclosure of Personal Information
Your Personal Information may be disclosed in a number of circumstances including the following:
• Third parties where you consent to the use or disclosure; and
• Where required or authorised by law.
Security of Personal Information
Your Personal Information is stored in a manner that reasonably protects it from misuse and loss and from unauthorized access, modification or disclosure.
When your Personal Information is no longer needed for the purpose for which it was obtained, we will take reasonable steps to destroy or permanently de-identify your Personal Information. However, most of the Personal Information is or will be stored in client files which will be kept by us for a minimum of 7 years.
Access to your Personal Information
You may access the Personal Information we hold about you and to update and/or correct it, subject to certain exceptions. If you wish to access your Personal Information, please contact us in writing.
Rubber Skeleton will not charge any fee for your access request, but may charge an administrative fee for providing a copy of your Personal Information.
In order to protect your Personal Information we may require identification from you before releasing the requested information.
Maintaining the Quality of your Personal Information
It is an important to us that your Personal Information is up to date. We will take reasonable steps to make sure that your Personal Information is accurate, complete and up-to-date. If you find that the information we have is not up to date or is inaccurate, please advise us as soon as practicable so we can update our records and ensure we can continue to provide quality services to you.
Policy Updates
This Policy may change from time to time and is available on our website.
Privacy Policy Complaints and Enquiries
If you have any queries or complaints about our Privacy Policy please contact us at:
[email protected]

.clothing and accessories.

All shipping is handled by Australia Post and its associated business partners. Packages are sent via the relevant "standard" delivery option and shipping estimates are based on metro locations.

CountryDelivery Times
Australia Wide2-6 Business days
Indonesia4-8 Business Days
New Zealand4-8 Business Days
Japan4-8 Business Days
Hong Kong4-8 Business Days
China4-10 Business Days
South Korea5-10 Business Days
India7-12 Business Days
Canada5-9 Business Days
Mexico10-16 Business Days
Colombia15-22 Business days
USA5-10 Business Days
England4-8 Business Days
Scotland4-10 Business Days
Ireland7-14 Business days
Wales7-14 Business days
France7-12 Business days
Germany6-10 Business Days
Czech Republic8-15 Business days
Poland8-15 Business days
Italy6-12 Business Days
Egypt6-14 Business days
Ethiopia12-20 Business days
Kenya10-18 Business days
Spain6-14 Business days

If your chosen destination is not listed above please refer to the information provided by Australia Post using the link below.

});function form(id, settings) {var _this = this;this.id = id;this.mode = settings.mode;this.method = settings.method;this.code = ('code' in settings ? settings.code : null);this.success = settings.success;this.initHandler = ('initHandler' in settings ? settings.initHandler : null);this.presubmitHandler = ('presubmitHandler' in settings ? settings.presubmitHandler : null);this.failure = ('failure' in settings ? settings.failure : null);this.optional = ('optional' in settings ? settings.optional : []);this.events = ('events' in settings ? settings.events : {});this.recaptcha = ('recaptcha' in settings ? settings.recaptcha : null);this.collectTrackingParameters = ('collectTrackingParameters' in settings ? settings.collectTrackingParameters : false);this.exportVariables = ('exportVariables' in settings ? settings.exportVariables : false);this.$form = $('#' + this.id);this.$form.addEventListener('change', function(event) {if (event.target.tagName != 'INPUT')return;_this.refreshInput(event.target);});this.$form.addEventListener('submit', function(event) {event.preventDefault();event.stopPropagation();_this.triggerSubmit();});this.$form.addEventListener('reset', function(event) {setTimeout(function() {_this.refreshInputs();}, 0);});this.$form.addEventListener('keydown', function(event) {if (event.keyCode == 13 && event.ctrlKey) {event.preventDefault();event.stopPropagation();_this.triggerSubmit();}});var x = $('#' + this.id + ' input[name="' + settings.hid + '"]');if (x) {x.disabled = true;x.parentNode.style.display = 'none';}this.$submit = $('#' + this.id + ' .actions button[type="submit"]');this.$submit.disabled = false;this.initInputs();if (this.initHandler) {errors.handle(function(message) {return _this.failureHandler(message);});if (!this.initHandler())errors.unhandle();}if (this.recaptcha) {grecaptcha.ready(function() {var id;id = grecaptcha.render(_this.$submit, {sitekey: _this.recaptcha.key,isolated: true,theme: (_this.recaptcha.darkMode ? 'dark' : 'light'),callback: function(token) {_this.submit({recaptchaToken: token},['g-recaptcha-response']);grecaptcha.reset(id);}});});}};form.prototype.completionHandler = function(properties, eventHandler, response) {if (eventHandler !== null)eventHandler.apply(this.$form, [ response ]);switch (properties.mode) {default:case 1:alert(this.expandVariables(properties.value));break;case 2:this.openUrlProperty(properties.value);break;case 3:properties.value.apply(this.$form, [ response ]);break;case 4:break;}};form.prototype.expandVariables = function(s) {if (typeof variables === 'undefined')return s;if (variables.hasVariables(s)) {for (input of this.$form.elements) {if (!this.isAllowedInput(input))continue;value = '';if (this.isValidInput(input)) {switch (input.type) {case 'checkbox':value = input.checked ? 'true' : 'false';break;case 'email':case 'select-one':case 'number':case 'tel':case 'text':case 'textarea':case 'hidden':value = input.value;break;default:value = '';break;}} else value = '';if (!!(s.match(/^(#[a-zA-Z0-9\_\-]+|[a-z0-9\-\.]+:[a-zA-Z0-9\~\!\@\#$\%\&\-\_\+\=\;\,\.\?\/\:\{\}\|]+)$/)))value = encodeURIComponent(value);s = variables.expandVariable(s, input.name, value);}}s = variables.expandVariableString(this.$form, s);return s;};form.prototype.exportVariableValues = function(source, values, suffix) {if (typeof variables === 'undefined'|| this.exportVariables !== true)return;variables.import(source + (suffix ? suffix : ''), values);variables.purge('form' + (suffix ? suffix : ''));variables.import('form' + (suffix ? suffix : ''), values);};form.prototype.failureHandler = function(message) {var eventHandler;eventHandler = ('onfailure' in this.events) ? this.events.onfailure : null;if (message.charAt(0) == '*')this.completionHandler({mode: 1,value: message.substring(1)},eventHandler,null); else if (this.failure)this.completionHandler(this.failure,eventHandler,null); else this.completionHandler({mode: 1,value: message},eventHandler,null);this.waiting(false);errors.unhandle();return true;};form.prototype.finalizeInput = function(input) {try {if (!input|| typeof input != 'object'|| !('name' in input))throw 'Not an input.';if (!('value' in input))throw 'Missing "value" property.';if (input.type == 'text'|| input.type == 'email'|| input.type == 'textarea'|| input.type == 'hidden')input.value = input.value.replace(/^\s+/, '').replace(/\s+$/, '');}catch (e) {}};form.prototype.formatDate = function(value, format) {var date, options,a, s;if (!value.match(/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/))return '';a = value.split('-');date = new Date(a[0], parseInt(a[1]) - 1, parseInt(a[2]), 0, 0, 0, 0);switch (format) {default:case 'short':break;case 'medium':options = { dateStyle: 'medium' };break;case 'long':options = { dateStyle: 'long' };break;case 'full':options = { dateStyle: 'full' };break;}s = new Intl.DateTimeFormat(undefined, options).format(date);return s;};form.prototype.getAmount = function() {var x;x = this.getRequiredInputValue('amount', ['select-one', 'number']);if (!x)return null;x = parseFloat(x);if (isNaN(x)|| x < 1.00|| x > 100000.00)return null;return x;};form.prototype.getEmail = function() {return this.getRequiredInputValue('email', 'email');};form.prototype.getQuantity = function() {var x;x = this.getRequiredInputValue('quantity', ['select-one', 'number']);if (!x)return null;x = parseInt(x);if (isNaN(x)|| x < 1|| x > 100000)return null;return x;};form.prototype.getRequiredInputValue = function(name, type) {var input;for (input of this.$form.elements) {if (((Array.isArray(type) && type.includes(input.type)) || input.type == type)&& input.name == name&& input.value !== ''&& input.value !== null)return input.value;}return null;};form.prototype.initInputs = function() {var _this = this,i, input;for (i=0; i < this.$form.elements.length; i++) {input = this.$form.elements[i];switch (input.type) {case 'number':(function(input) {var p = input.parentNode,decrement = p.querySelector('button.decrement'),increment = p.querySelector('button.increment');input.addEventListener('blur', function(event) {_this.normalizeNumberInput(input);});if (decrement&& increment) {decrement.addEventListener('click', function(event) {event.preventDefault();_this.normalizeNumberInput(input);input.stepDown(1);_this.normalizeNumberInput(input);});increment.addEventListener('click', function(event) {event.preventDefault();_this.normalizeNumberInput(input);input.stepUp(1);_this.normalizeNumberInput(input);});}})(input);break;case 'file':(function(input) {var p = input.parentNode,select = p.querySelector('button.select');select.addEventListener('click', function(event) {event.preventDefault();input.click();});input.addEventListener('focus', function(event) {event.target.parentNode.classList.add('focus');});input.addEventListener('blur', function(event) {event.target.parentNode.classList.remove('focus');});})(input);break;case 'date':(function(input) {var p = input.parentNode,select = p.querySelector('button.select'),changeHandler,x, y, z;select.addEventListener('click', function(event) {event.preventDefault();input.click();input.focus();});switch (client.browser) {case 'safari':input.addEventListener('keydown', function(event) {switch (event.keyCode) {case 9:event.preventDefault();input.blur();break;case 27:event.preventDefault();input.blur();break;case 33:break;case 34:break;case 37:break;case 38:break;case 39:break;case 40:break;default:event.preventDefault();break;}});break;default:input.addEventListener('click', function(event) {event.preventDefault();input.focus();input.showPicker();});break;}changeHandler = function() {if (input.value)p.setAttribute('data-value', _this.formatDate(input.value, p.dataset.format)); else p.setAttribute('data-value', '');};input.addEventListener('change', function(event) {changeHandler();});changeHandler();})(input);break;case 'text':case 'textarea':case 'email':input.addEventListener('blur', function(event) {this.value = this.value.replace(/^\s+/, '').replace(/\s+$/, '');});break;}this.refreshInput(input);}};form.prototype.isAllowedInput = function(input, ignore) {try {if (!input|| typeof input != 'object'|| !('name' in input))throw 'Not an input.';if (ignore&& ignore.indexOf(input.name) != -1)throw 'Input is ignored.';if (input.disabled)throw 'Input is disabled.';switch (input.type) {case 'text':case 'email':case 'textarea':case 'select-one':case 'checkbox':case 'number':case 'tel':case 'file':case 'date':case 'hidden':break;default:throw 'Not an allowed input.';}}catch (e) {return false;}return true;};form.prototype.isValidInput = function(input) {var result = false;switch (input.type) {case 'email':result = input.value.match(new RegExp("^([a-zA-Z0-9\\_\\-\\.\\+]+)@([a-zA-Z0-9\\-\\.]+)\\.([a-zA-Z]+)$"));break;case 'select-one':result = input.value.match(new RegExp("^[^\\<\\>]+$"));break;case 'checkbox':result = true;break;case 'number':result = input.value.match(new RegExp("^[0-9\\-\\.]+$"));break;case 'tel':result = input.value.match(new RegExp("^[0-9\\-\\+\\(\\)\\ \\#\\*]+$"));break;case 'file':result = true;break;case 'date':result = input.value.match(new RegExp("^[0-9]{4}-[0-9]{2}-[0-9]{2}$"));break;default:case 'text':case 'textarea':case 'hidden':result = true;break;}return result;};form.prototype.normalizeNumberInput = function(input) {var min = parseFloat(input.min),max = parseFloat(input.max),step = parseFloat(input.step),v = parseFloat(input.value);if (isNaN(v)) {if (!input.required) {input.value = null;return;}v = isNaN(min) ? 0 : min;}if (!isNaN(min)&& v < min)v = min;if (!isNaN(max)&& v > max)v = max;if (!isNaN(step)&& (v % step) !== 0)v = Math.round(v / step) * step;switch (input.dataset.category) {case 'currency':v = parseFloat(v).toFixed(2);break;default:case 'decimal':v = parseFloat(v);break;case 'integer':v = parseInt(v);break;}input.value = v;};form.prototype.openUrlProperty = function(p) {if ('onclick' in p) {(p.onclick)(event);return;}if ('href' in p) {let href = this.expandVariables(p.href);this.$form.reset();if (href.charAt(0) == '#') {window.location.href = href;return;}if ('target' in p&& p.target == '_blank')window.open(href); else window.location.href = href;}};form.prototype.pause = function(values, handler) {var _this = this;this.waiting(true);db.open('formData', function(objectStore) {db.delete(objectStore, _this.id, function() {db.put(objectStore, values, function() {handler.call(_this);});});});};form.prototype.refreshInput = function(input) {var a = [],p;switch (input.type) {case 'file':p = input.parentNode;if (input.files.length > 0)p.setAttribute('data-filename', input.files[0].name); else p.setAttribute('data-filename', '');break;case 'date':p = input.parentNode;if (input.value)p.setAttribute('data-value', this.formatDate(input.value, p.dataset.format)); else p.setAttribute('data-value', '');break;default:break;}};form.prototype.refreshInputs = function() {var i;for (i=0; i < this.$form.elements.length; i++)this.refreshInput(this.$form.elements[i]);};form.prototype.resume = function(handler) {var _this = this;this.waiting(true);this.scrollIntoView();db.open('formData', function(objectStore) {db.get(objectStore, _this.id, function(values) {db.delete(objectStore, _this.id, function() {var e, i, v;for (i in _this.$form.elements) {e = _this.$form.elements[i];if (!e.name)continue;v = (e.name in values ? values[e.name] : null);switch (e.type) {case 'checkbox':e.checked = (v == 'checked' ? true : false);break;case 'file':if (v)e.parentNode.setAttribute('data-filename', v.name);break;default:e.value = v;break;}}handler.call(_this, values);});});});};form.prototype.scrollIntoView = function() {window.scrollTo(0, this.$form.offsetTop);};form.prototype.submit = function(values, ignore) {var _this = this,input, result, _success, _failure,a, b, i, e, fd, k, x, usp;try {for (input of this.$form.elements) {if (!this.isAllowedInput(input, ignore))continue;if (this.optional.indexOf(input.name) !== -1&&(input.value === ''|| input.value === null|| (input.type == 'checkbox' && !input.checked)))continue;this.finalizeInput(input);if (!this.isValidInput(input))throw 'Not valid.';}}catch (e) {alert('Missing or invalid fields. Please try again.');return;}if ('onsubmit' in this.events) {if (this.events.onsubmit.apply(this.$form) === false)return;}a = this.values();if (values) {for (k in values)a[k] = values[k];}if (this.collectTrackingParameters) {usp = new URLSearchParams(window.location.search);b = ['utm_source','utm_medium','utm_campaign','utm_term','utm_content'];for (k of b) {x = usp.get(k);if (x) {x = x.trim();x = x.replace(/[^a-zA-Z0-9\-\_\%\+\s]/g, '');x = x.replace(/\s+/g, '_');if (x.length <= 256)a[k] = x;}}}switch (this.method) {default:case 'ajax':break;case 'get':case 'post':for (k in a) {if (this.$form.elements[k])continue;e = document.createElement('input');e.setAttribute('type', 'hidden');e.setAttribute('name', k);this.$form.appendChild(e);e.value = a[k];}this.$form.submit();return;case 'code':if (typeof this.code == 'function') {this.waiting(true);_success = function() {_this.exportVariableValues(_this.id, a);_this.completionHandler(_this.success,('onsuccess' in _this.events) ? _this.events.onsuccess : null,null);_this.waiting(false);};_failure = function() {_this.completionHandler(_this.failure,('onfailure' in _this.events) ? _this.events.onfailure : null,null);_this.waiting(false);};result = this.code.apply(this.$form, [_success, _failure]);if (result === true)_success(); else if (result === false)_failure();}return;}if (x = $(':focus'))x.blur();errors.handle(function(message) {return _this.failureHandler(message);});if (this.presubmitHandler)this.presubmitHandler.call(this, a); else this.submitHandler(a);};form.prototype.submitHandler = function(values) {var _this = this,x, k, data;this.waiting(true);data = new FormData;for (k in values) {if (values[k]&& typeof values[k] == 'object'&& ('blob' in values[k]))data.append(k,values[k].blob,values[k].name); else data.append(k, values[k]);}x = new XMLHttpRequest();x.open('POST', ['', 'post', this.mode].join('/'));x.send(data);x.onreadystatechange = function() {var o;if (x.readyState != 4)return;if (x.status != 200)throw new Error('Failed server response (' + x.status + ')');try {o = JSON.parse(x.responseText);}catch (e) {throw new Error('Invalid server response');}if (!('result' in o)|| !('message' in o))throw new Error('Incomplete server response');if (o.result !== true) {if ('response' in o)console.log(o.response);throw new Error(o.message);}_this.exportVariableValues(_this.id, values);if ('response' in o)_this.exportVariableValues(_this.id, o.response, '_response');_this.completionHandler(_this.success,('onsuccess' in _this.events) ? _this.events.onsuccess : null,'response' in o ? o.response : null);_this.$form.reset();_this.waiting(false);errors.unhandle();};};form.prototype.triggerSubmit = function() {if (this.recaptcha)this.$submit.click(); else if (!this.$submit.disabled)this.submit();};form.prototype.values = function() {var a = {};for (i in this.$form.elements) {e = this.$form.elements[i];if (!e.name|| !e.value)continue;switch (e.type) {case 'checkbox':a[e.name] = (e.checked ? 'checked' : null);break;case 'file':a[e.name] = {name: e.files[0].name,blob: new Blob([e.files[0]], { type: e.files[0].type })};break;default:a[e.name] = e.value;break;}}a['id'] = this.id;return a;};form.prototype.waiting = function(x) {var _this = this;if (x) {$body.classList.add('is-instant');this.$submit.disabled = true;this.$submit.classList.add('waiting');if (this.recaptcha)setTimeout(function() {_this.$submit.disabled = true;}, 0);} else {$body.classList.remove('is-instant');this.$submit.classList.remove('waiting');this.$submit.disabled = false;}};new form('form01', {mode: 'contact',collectTrackingParameters: true,method: 'ajax',hid: 'msg',recaptcha: {key: '6Ld8bh4rAAAAAA9khnAHr7QrBiEUApXUvdJblNQf',darkMode: false,},success: {mode: 1,value: 'Thank you! We\'ll reach out to answer your query as soon as we can :)',},optional: ['phone', 'company'],});ready.run();})();