File: /home/www/aritmodecarnaval/wp-content/plugins/photo-gallery-ecommerce/js/checkoutform.js
////////////////////////////////////////////////////////////////////////////////////////
// Events //
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
// Constants //
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
// Variables //
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
// Constructor //
////////////////////////////////////////////////////////////////////////////////////////
Stripe.setPublishableKey(publishable_key);
function showErrorMsg(msg){
var jq_alert = jQuery(".pge_checkout_alert_incorrect_data");
if (jq_alert.is(":visible") == false) {
jq_alert
.show()
.slideUp(0)
.slideDown(250);
} else {
jq_alert
.fadeOut(100)
.fadeIn(100);
}
jQuery(".pge_checkout_alert_incorrect_data").html(msg);
}
function checkFormData(step){
jQuery(".form_row").removeClass("has-error");
jQuery(".form_row").find("input").removeClass("has-error");
jQuery(".pge_checkout_alert_incorrect_data").hide();
switch(step){
case "pge_shipping_billing_info":
if(validateEmail(jQuery("[name=billing_data_email]").val()) == false){
showErrorMsg("Invalid email address.");
jQuery("[name=billing_data_email]").addClass("has-error");
return false;
}
break;
}
var flag = true;
jQuery(".pge_shipping_billing_info [data-pge-required]").each(function(){
if(jQuery(this).val() == ""){
showErrorMsg("Please fill required fields.");
jQuery(this).addClass("has-error");
flag = false;
return;
}
});
return flag;
}
function stripeResponseHandler(status, response) {
if (response.error) {
// show errors returned by Stripe
showErrorMsg(response.error.message);
if(response.error.param == 'exp_month' || response.error.param == 'exp_year' ){
jQuery('.card-expiry').addClass("has-error");
showErrorMsg("Your card's exp. date is invalid. ");
}
if(response.error.param == 'number'){
jQuery('.card-number').addClass("has-error");
}
if(response.error.param == 'cvc'){
jQuery('.card-cvc').addClass("has-error");
}
// re-enable the submit button
jQuery('[name=checkout]').attr("disabled", false);
} else {
var form$ = jQuery("#pge_order_form");
// token contains id, last4, and card type
var token = response['id'];
// insert the token into the form so it gets submitted to the server
form$.append("<input type='hidden' name='stripeToken' value='" + token + "'/>");
// and submit
jQuery("#pge_order_form").submit();
}
}
function submitCheckoutForm(obj,event){
var paymetMethod = jQuery("[name=payment_method]").val();
var step = jQuery(obj).closest(".pge_checkout_step").attr("data-step");
jQuery(".form_row").removeClass("has-error");
jQuery(".form_row").find("input").removeClass("has-error");
if( jQuery("[name=accept_terms]").length>0 && jQuery("[name=accept_terms]").prop("checked") == false){
showErrorMsg("Please fill required fields.");
jQuery("[name=accept_terms]").closest(".form_row").addClass("has-error");
return false;
}
if(paymetMethod == "without_online_payment" || (paymetMethod == "paypalexpress" && Number(skipExprresForm) == 0)){
var flag = checkFormData(step);
if(flag == false ){
return false;
}
jQuery("#pge_order_form").submit();
}
else if(paymetMethod == "paypalexpress" && skipExprresForm == "1"){
jQuery("#pge_order_form").submit();
}
else if(paymetMethod == "stripe"){
var flag = true;
jQuery(".pge_credit_cart_details [data-pge-required]").each(function(){
if(jQuery(this).val() == ""){
showErrorMsg("Please fill required fields.");
jQuery(this).addClass("has-error");
flag = false;
return;
}
});
if(flag == true){
// disable the submit button to prevent repeated clicks
jQuery('[name=checkout]').attr("disabled", "disabled");
var expiry = jQuery('.card-expiry').val();
expiry = expiry.split("/");
// send the card details to Stripe
Stripe.createToken({
name: jQuery('.card-name').val(),
number: jQuery('.card-number').val(),
cvc: jQuery('.card-cvc').val(),
exp_month: Number(expiry[0]),
exp_year: Number(expiry[1]),
address_line1: jQuery('.address-line1').val(),
address_line2: jQuery('.address-line2').val(),
address_city: jQuery('.address-city').val(),
address_state: jQuery('.address-state').val(),
address_zip: jQuery('.address-zip').val(),
address_country: jQuery('.address-country').val()
}, stripeResponseHandler);
}
}
}
jQuery(document).ready(function($) {
jQuery(".pge_payment_btn").click(function(){
if(Number(jQuery("[name=pge_product_price]").val()) < 0){
jQuery(".pge_img").html("Invalid price.");
return false;
}
var paymetMethod = jQuery(this).attr("data-payment-method");
jQuery("[name=payment_method]").val(paymetMethod);
if(licensing == 0 && paymetMethod == "paypalexpress" && skipExprresForm == "1"){
jQuery("#pge_order_form").submit();
}
else{
jQuery(".pge_checkout_form_wrap_opacity").show();
var data = {
'action': 'display_checkout_form',
'task': 'display_checkout_form',
'controller': 'checkout',
"payment_method": paymetMethod
};
jQuery.post(ajaxURL, data, function(response) {
jQuery('.pge_checkout_form_wrap').html(response);
jQuery(".pge_checkout_form_wrap").show();
});
}
});
});
function validateEmail(email) {
var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
return re.test(email);
}
////////////////////////////////////////////////////////////////////////////////////////
// Public Methods //
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
// Getters & Setters //
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
// Private Methods //
////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
// Listeners //
////////////////////////////////////////////////////////////////////////////////////////