shop.balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

checkout.twig (41244B)


      1 {{ header }}
      2 <div id="checkout-checkout" class="container">
      3   <ul class="breadcrumb">
      4     {% for breadcrumb in breadcrumbs %}
      5     <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
      6     {% endfor %}
      7   </ul>
      8   {% if error_warning %}
      9   <div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }}
     10     <button type="button" class="close" data-dismiss="alert">&times;</button>
     11   </div>
     12   {% endif %}
     13   <div class="row">{{ column_left }}
     14     {% if column_left and column_right %}
     15     {% set class = 'col-sm-6' %}
     16     {% elseif column_left or column_right %}
     17     {% set class = 'col-sm-9' %}
     18     {% else %}
     19     {% set class = 'col-sm-12' %}
     20     {% endif %}
     21     <div id="content" class="{{ class }}">{{ content_top }}
     22       <h1>{{ heading_title }}</h1>
     23       <div class="panel-group" id="accordion">
     24         <div class="panel panel-default">
     25           <div class="panel-heading">
     26             <h4 class="panel-title">{{ text_checkout_option }}</h4>
     27           </div>
     28           <div class="panel-collapse collapse" id="collapse-checkout-option">
     29             <div class="panel-body"></div>
     30           </div>
     31         </div>
     32         {% if not logged and account != 'guest' %}
     33         <div class="panel panel-default">
     34           <div class="panel-heading">
     35             <h4 class="panel-title">{{ text_checkout_account }}</h4>
     36           </div>
     37           <div class="panel-collapse collapse" id="collapse-payment-address">
     38             <div class="panel-body"></div>
     39           </div>
     40         </div>
     41         {% else %}
     42         <div class="panel panel-default">
     43           <div class="panel-heading">
     44             <h4 class="panel-title">{{ text_checkout_payment_address }}</h4>
     45           </div>
     46           <div class="panel-collapse collapse" id="collapse-payment-address">
     47             <div class="panel-body"></div>
     48           </div>
     49         </div>
     50         {% endif %}
     51         {% if shipping_required %}
     52         <div class="panel panel-default">
     53           <div class="panel-heading">
     54             <h4 class="panel-title">{{ text_checkout_shipping_address }}</h4>
     55           </div>
     56           <div class="panel-collapse collapse" id="collapse-shipping-address">
     57             <div class="panel-body"></div>
     58           </div>
     59         </div>
     60         <div class="panel panel-default">
     61           <div class="panel-heading">
     62             <h4 class="panel-title">{{ text_checkout_shipping_method }}</h4>
     63           </div>
     64           <div class="panel-collapse collapse" id="collapse-shipping-method">
     65             <div class="panel-body"></div>
     66           </div>
     67         </div>
     68         {% endif %}
     69         <div class="panel panel-default">
     70           <div class="panel-heading">
     71             <h4 class="panel-title">{{ text_checkout_payment_method }}</h4>
     72           </div>
     73           <div class="panel-collapse collapse" id="collapse-payment-method">
     74             <div class="panel-body"></div>
     75           </div>
     76         </div>
     77         <div class="panel panel-default">
     78           <div class="panel-heading">
     79             <h4 class="panel-title">{{ text_checkout_confirm }}</h4>
     80           </div>
     81           <div class="panel-collapse collapse" id="collapse-checkout-confirm">
     82             <div class="panel-body"></div>
     83           </div>
     84         </div>
     85       </div>
     86       {{ content_bottom }}</div>
     87     {{ column_right }}</div>
     88 </div>
     89 <script type="text/javascript"><!--
     90 $(document).on('change', 'input[name=\'account\']', function() {
     91 	if ($('#collapse-payment-address').parent().find('.panel-heading .panel-title > *').is('a')) {
     92 		if (this.value == 'register') {
     93 			$('#collapse-payment-address').parent().find('.panel-heading .panel-title').html('<a href="#collapse-payment-address" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_account }} <i class="fa fa-caret-down"></i></a>');
     94 		} else {
     95 			$('#collapse-payment-address').parent().find('.panel-heading .panel-title').html('<a href="#collapse-payment-address" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_payment_address }} <i class="fa fa-caret-down"></i></a>');
     96 		}
     97 	} else {
     98 		if (this.value == 'register') {
     99 			$('#collapse-payment-address').parent().find('.panel-heading .panel-title').html('{{ text_checkout_account }}');
    100 		} else {
    101 			$('#collapse-payment-address').parent().find('.panel-heading .panel-title').html('{{ text_checkout_payment_address }}');
    102 		}
    103 	}
    104 });
    105 
    106 {% if not logged %}
    107 $(document).ready(function() {
    108     $.ajax({
    109         url: 'index.php?route=checkout/login',
    110         dataType: 'html',
    111         success: function(html) {
    112            $('#collapse-checkout-option .panel-body').html(html);
    113 
    114 			$('#collapse-checkout-option').parent().find('.panel-heading .panel-title').html('<a href="#collapse-checkout-option" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_option }} <i class="fa fa-caret-down"></i></a>');
    115 
    116 			$('a[href=\'#collapse-checkout-option\']').trigger('click');
    117         },
    118         error: function(xhr, ajaxOptions, thrownError) {
    119             alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    120         }
    121     });
    122 });
    123 {% else %}
    124 $(document).ready(function() {
    125     $.ajax({
    126         url: 'index.php?route=checkout/payment_address',
    127         dataType: 'html',
    128         success: function(html) {
    129             $('#collapse-payment-address .panel-body').html(html);
    130 
    131 			$('#collapse-payment-address').parent().find('.panel-heading .panel-title').html('<a href="#collapse-payment-address" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_payment_address }} <i class="fa fa-caret-down"></i></a>');
    132 
    133 			$('a[href=\'#collapse-payment-address\']').trigger('click');
    134         },
    135         error: function(xhr, ajaxOptions, thrownError) {
    136             alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    137         }
    138     });
    139 });
    140 {% endif %}
    141 
    142 // Checkout
    143 $(document).delegate('#button-account', 'click', function() {
    144     $.ajax({
    145         url: 'index.php?route=checkout/' + $('input[name=\'account\']:checked').val(),
    146         dataType: 'html',
    147         beforeSend: function() {
    148         	$('#button-account').button('loading');
    149 		},
    150         complete: function() {
    151 			$('#button-account').button('reset');
    152         },
    153         success: function(html) {
    154             $('.alert-dismissible, .text-danger').remove();
    155 			$('.form-group').removeClass('has-error');
    156 
    157             $('#collapse-payment-address .panel-body').html(html);
    158 
    159 			if ($('input[name=\'account\']:checked').val() == 'register') {
    160 				$('#collapse-payment-address').parent().find('.panel-heading .panel-title').html('<a href="#collapse-payment-address" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_account }} <i class="fa fa-caret-down"></i></a>');
    161 			} else {
    162 				$('#collapse-payment-address').parent().find('.panel-heading .panel-title').html('<a href="#collapse-payment-address" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_payment_address }} <i class="fa fa-caret-down"></i></a>');
    163 			}
    164 
    165 			$('a[href=\'#collapse-payment-address\']').trigger('click');
    166         },
    167         error: function(xhr, ajaxOptions, thrownError) {
    168             alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    169         }
    170     });
    171 });
    172 
    173 // Login
    174 $(document).delegate('#button-login', 'click', function() {
    175     $.ajax({
    176         url: 'index.php?route=checkout/login/save',
    177         type: 'post',
    178         data: $('#collapse-checkout-option :input'),
    179         dataType: 'json',
    180         beforeSend: function() {
    181         	$('#button-login').button('loading');
    182 		},
    183         complete: function() {
    184             $('#button-login').button('reset');
    185         },
    186         success: function(json) {
    187             $('.alert-dismissible, .text-danger').remove();
    188             $('.form-group').removeClass('has-error');
    189 
    190             if (json['redirect']) {
    191                 location = json['redirect'];
    192             } else if (json['error']) {
    193                 $('#collapse-checkout-option .panel-body').prepend('<div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> ' + json['error']['warning'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>');
    194 
    195 				// Highlight any found errors
    196 				$('input[name=\'email\']').parent().addClass('has-error');
    197 				$('input[name=\'password\']').parent().addClass('has-error');
    198 		   }
    199         },
    200         error: function(xhr, ajaxOptions, thrownError) {
    201             alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    202         }
    203     });
    204 });
    205 
    206 // Register
    207 $(document).delegate('#button-register', 'click', function() {
    208     $.ajax({
    209         url: 'index.php?route=checkout/register/save',
    210         type: 'post',
    211         data: $('#collapse-payment-address input[type=\'text\'], #collapse-payment-address input[type=\'date\'], #collapse-payment-address input[type=\'datetime-local\'], #collapse-payment-address input[type=\'time\'], #collapse-payment-address input[type=\'password\'], #collapse-payment-address input[type=\'hidden\'], #collapse-payment-address input[type=\'checkbox\']:checked, #collapse-payment-address input[type=\'radio\']:checked, #collapse-payment-address textarea, #collapse-payment-address select'),
    212         dataType: 'json',
    213         beforeSend: function() {
    214 			$('#button-register').button('loading');
    215 		},
    216         success: function(json) {
    217             $('.alert-dismissible, .text-danger').remove();
    218             $('.form-group').removeClass('has-error');
    219 
    220             if (json['redirect']) {
    221                 location = json['redirect'];
    222             } else if (json['error']) {
    223                 $('#button-register').button('reset');
    224 
    225                 if (json['error']['warning']) {
    226                     $('#collapse-payment-address .panel-body').prepend('<div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> ' + json['error']['warning'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>');
    227                 }
    228 
    229 				for (i in json['error']) {
    230 					var element = $('#input-payment-' + i.replace('_', '-'));
    231 
    232 					if ($(element).parent().hasClass('input-group')) {
    233 						$(element).parent().after('<div class="text-danger">' + json['error'][i] + '</div>');
    234 					} else {
    235 						$(element).after('<div class="text-danger">' + json['error'][i] + '</div>');
    236 					}
    237 				}
    238 
    239 				// Highlight any found errors
    240 				$('.text-danger').parent().addClass('has-error');
    241             } else {
    242                 {% if shipping_required %}
    243                 var shipping_address = $('#payment-address input[name=\'shipping_address\']:checked').prop('value');
    244 
    245                 if (shipping_address) {
    246                     $.ajax({
    247                         url: 'index.php?route=checkout/shipping_method',
    248                         dataType: 'html',
    249                         success: function(html) {
    250 							// Add the shipping address
    251                             $.ajax({
    252                                 url: 'index.php?route=checkout/shipping_address',
    253                                 dataType: 'html',
    254                                 success: function(html) {
    255                                     $('#collapse-shipping-address .panel-body').html(html);
    256 
    257 									$('#collapse-shipping-address').parent().find('.panel-heading .panel-title').html('<a href="#collapse-shipping-address" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_shipping_address }} <i class="fa fa-caret-down"></i></a>');
    258                                 },
    259                                 error: function(xhr, ajaxOptions, thrownError) {
    260                                     alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    261                                 }
    262                             });
    263 
    264 							$('#collapse-shipping-method .panel-body').html(html);
    265 
    266 							$('#collapse-shipping-method').parent().find('.panel-heading .panel-title').html('<a href="#collapse-shipping-method" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_shipping_method }} <i class="fa fa-caret-down"></i></a>');
    267 
    268    							$('a[href=\'#collapse-shipping-method\']').trigger('click');
    269 
    270 							$('#collapse-shipping-method').parent().find('.panel-heading .panel-title').html('{{ text_checkout_shipping_method }}');
    271 							$('#collapse-payment-method').parent().find('.panel-heading .panel-title').html('{{ text_checkout_payment_method }}');
    272 							$('#collapse-checkout-confirm').parent().find('.panel-heading .panel-title').html('{{ text_checkout_confirm }}');
    273                         },
    274                         error: function(xhr, ajaxOptions, thrownError) {
    275                             alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    276                         }
    277                     });
    278                 } else {
    279                     $.ajax({
    280                         url: 'index.php?route=checkout/shipping_address',
    281                         dataType: 'html',
    282                         success: function(html) {
    283                             $('#collapse-shipping-address .panel-body').html(html);
    284 
    285 							$('#collapse-shipping-address').parent().find('.panel-heading .panel-title').html('<a href="#collapse-shipping-address" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_shipping_address }} <i class="fa fa-caret-down"></i></a>');
    286 
    287 							$('a[href=\'#collapse-shipping-address\']').trigger('click');
    288 
    289 							$('#collapse-shipping-method').parent().find('.panel-heading .panel-title').html('{{ text_checkout_shipping_method }}');
    290 							$('#collapse-payment-method').parent().find('.panel-heading .panel-title').html('{{ text_checkout_payment_method }}');
    291 							$('#collapse-checkout-confirm').parent().find('.panel-heading .panel-title').html('{{ text_checkout_confirm }}');
    292                         },
    293                         error: function(xhr, ajaxOptions, thrownError) {
    294                             alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    295                         }
    296                     });
    297                 }
    298                 {% else %}
    299                 $.ajax({
    300                     url: 'index.php?route=checkout/payment_method',
    301                     dataType: 'html',
    302                     success: function(html) {
    303                         $('#collapse-payment-method .panel-body').html(html);
    304 
    305 						$('#collapse-payment-method').parent().find('.panel-heading .panel-title').html('<a href="#collapse-payment-method" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_payment_method }} <i class="fa fa-caret-down"></i></a>');
    306 
    307 						$('a[href=\'#collapse-payment-method\']').trigger('click');
    308 
    309 						$('#collapse-checkout-confirm').parent().find('.panel-heading .panel-title').html('{{ text_checkout_confirm }}');
    310                     },
    311                     error: function(xhr, ajaxOptions, thrownError) {
    312                         alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    313                     }
    314                 });
    315                 {% endif %}
    316 
    317                 $.ajax({
    318                     url: 'index.php?route=checkout/payment_address',
    319                     dataType: 'html',
    320                     complete: function() {
    321                         $('#button-register').button('reset');
    322                     },
    323                     success: function(html) {
    324                         $('#collapse-payment-address .panel-body').html(html);
    325 
    326 						$('#collapse-payment-address').parent().find('.panel-heading .panel-title').html('<a href="#collapse-payment-address" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_payment_address }} <i class="fa fa-caret-down"></i></a>');
    327                     },
    328                     error: function(xhr, ajaxOptions, thrownError) {
    329                         alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    330                     }
    331                 });
    332             }
    333         },
    334         error: function(xhr, ajaxOptions, thrownError) {
    335             alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    336         }
    337     });
    338 });
    339 
    340 // Payment Address
    341 $(document).delegate('#button-payment-address', 'click', function() {
    342     $.ajax({
    343         url: 'index.php?route=checkout/payment_address/save',
    344         type: 'post',
    345         data: $('#collapse-payment-address input[type=\'text\'], #collapse-payment-address input[type=\'date\'], #collapse-payment-address input[type=\'datetime-local\'], #collapse-payment-address input[type=\'time\'], #collapse-payment-address input[type=\'password\'], #collapse-payment-address input[type=\'checkbox\']:checked, #collapse-payment-address input[type=\'radio\']:checked, #collapse-payment-address input[type=\'hidden\'], #collapse-payment-address textarea, #collapse-payment-address select'),
    346         dataType: 'json',
    347         beforeSend: function() {
    348         	$('#button-payment-address').button('loading');
    349 		},
    350         complete: function() {
    351 			$('#button-payment-address').button('reset');
    352         },
    353         success: function(json) {
    354             $('.alert-dismissible, .text-danger').remove();
    355 			$('.form-group').removeClass('has-error');
    356 
    357             if (json['redirect']) {
    358                 location = json['redirect'];
    359             } else if (json['error']) {
    360                 if (json['error']['warning']) {
    361                     $('#collapse-payment-address .panel-body').prepend('<div class="alert alert-warning alert-dismissible">' + json['error']['warning'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>');
    362                 }
    363 
    364 				for (i in json['error']) {
    365 					var element = $('#input-payment-' + i.replace('_', '-'));
    366 
    367 					if ($(element).parent().hasClass('input-group')) {
    368 						$(element).parent().after('<div class="text-danger">' + json['error'][i] + '</div>');
    369 					} else {
    370 						$(element).after('<div class="text-danger">' + json['error'][i] + '</div>');
    371 					}
    372 				}
    373 
    374 				// Highlight any found errors
    375 				$('.text-danger').parent().parent().addClass('has-error');
    376             } else {
    377                 {% if shipping_required %}
    378                 $.ajax({
    379                     url: 'index.php?route=checkout/shipping_address',
    380                     dataType: 'html',
    381                     success: function(html) {
    382                         $('#collapse-shipping-address .panel-body').html(html);
    383 
    384 						$('#collapse-shipping-address').parent().find('.panel-heading .panel-title').html('<a href="#collapse-shipping-address" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_shipping_address }} <i class="fa fa-caret-down"></i></a>');
    385 
    386 						$('a[href=\'#collapse-shipping-address\']').trigger('click');
    387 
    388 						$('#collapse-shipping-method').parent().find('.panel-heading .panel-title').html('{{ text_checkout_shipping_method }}');
    389 						$('#collapse-payment-method').parent().find('.panel-heading .panel-title').html('{{ text_checkout_payment_method }}');
    390 						$('#collapse-checkout-confirm').parent().find('.panel-heading .panel-title').html('{{ text_checkout_confirm }}');
    391                     },
    392                     error: function(xhr, ajaxOptions, thrownError) {
    393                         alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    394                     }
    395                 }).done(function() {
    396 					$.ajax({
    397 						url: 'index.php?route=checkout/payment_address',
    398 						dataType: 'html',
    399 						success: function(html) {
    400 							$('#collapse-payment-address .panel-body').html(html);
    401 						},
    402 						error: function(xhr, ajaxOptions, thrownError) {
    403 							alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    404 						}
    405 					});
    406 				});
    407                 {% else %}
    408                 $.ajax({
    409                     url: 'index.php?route=checkout/payment_method',
    410                     dataType: 'html',
    411                     success: function(html) {
    412                         $('#collapse-payment-method .panel-body').html(html);
    413 
    414 						$('#collapse-payment-method').parent().find('.panel-heading .panel-title').html('<a href="#collapse-payment-method" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_payment_method }} <i class="fa fa-caret-down"></i></a>');
    415 
    416 						$('a[href=\'#collapse-payment-method\']').trigger('click');
    417 
    418 						$('#collapse-checkout-confirm').parent().find('.panel-heading .panel-title').html('{{ text_checkout_confirm }}');
    419                     },
    420                     error: function(xhr, ajaxOptions, thrownError) {
    421                         alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    422                     }
    423                 }).done(function() {
    424 					$.ajax({
    425 						url: 'index.php?route=checkout/payment_address',
    426 						dataType: 'html',
    427 						success: function(html) {
    428 							$('#collapse-payment-address .panel-body').html(html);
    429 						},
    430 						error: function(xhr, ajaxOptions, thrownError) {
    431 							alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    432 						}
    433 					});				
    434 				});
    435                 {% endif %}
    436             }
    437         },
    438         error: function(xhr, ajaxOptions, thrownError) {
    439             alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    440         }
    441     });
    442 });
    443 
    444 // Shipping Address
    445 $(document).delegate('#button-shipping-address', 'click', function() {
    446     $.ajax({
    447         url: 'index.php?route=checkout/shipping_address/save',
    448         type: 'post',
    449         data: $('#collapse-shipping-address input[type=\'text\'], #collapse-shipping-address input[type=\'date\'], #collapse-shipping-address input[type=\'datetime-local\'], #collapse-shipping-address input[type=\'time\'], #collapse-shipping-address input[type=\'password\'], #collapse-shipping-address input[type=\'checkbox\']:checked, #collapse-shipping-address input[type=\'radio\']:checked, #collapse-shipping-address textarea, #collapse-shipping-address select'),
    450         dataType: 'json',
    451         beforeSend: function() {
    452 			$('#button-shipping-address').button('loading');
    453 	    },
    454         success: function(json) {
    455             $('.alert-dismissible, .text-danger').remove();
    456 			$('.form-group').removeClass('has-error');
    457 
    458             if (json['redirect']) {
    459                 location = json['redirect'];
    460             } else if (json['error']) {
    461                 $('#button-shipping-address').button('reset');
    462 
    463                 if (json['error']['warning']) {
    464                     $('#collapse-shipping-address .panel-body').prepend('<div class="alert alert-warning alert-dismissible">' + json['error']['warning'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>');
    465                 }
    466 
    467 				for (i in json['error']) {
    468 					var element = $('#input-shipping-' + i.replace('_', '-'));
    469 
    470 					if ($(element).parent().hasClass('input-group')) {
    471 						$(element).parent().after('<div class="text-danger">' + json['error'][i] + '</div>');
    472 					} else {
    473 						$(element).after('<div class="text-danger">' + json['error'][i] + '</div>');
    474 					}
    475 				}
    476 
    477 				// Highlight any found errors
    478 				$('.text-danger').parent().parent().addClass('has-error');
    479             } else {
    480                 $.ajax({
    481                     url: 'index.php?route=checkout/shipping_method',
    482                     dataType: 'html',
    483                     complete: function() {
    484                         $('#button-shipping-address').button('reset');
    485                     },
    486                     success: function(html) {
    487                         $('#collapse-shipping-method .panel-body').html(html);
    488 
    489 						$('#collapse-shipping-method').parent().find('.panel-heading .panel-title').html('<a href="#collapse-shipping-method" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_shipping_method }} <i class="fa fa-caret-down"></i></a>');
    490 
    491 						$('a[href=\'#collapse-shipping-method\']').trigger('click');
    492 
    493 						$('#collapse-payment-method').parent().find('.panel-heading .panel-title').html('{{ text_checkout_payment_method }}');
    494 						$('#collapse-checkout-confirm').parent().find('.panel-heading .panel-title').html('{{ text_checkout_confirm }}');
    495 						
    496                         $.ajax({
    497                             url: 'index.php?route=checkout/shipping_address',
    498                             dataType: 'html',
    499                             success: function(html) {
    500                                 $('#collapse-shipping-address .panel-body').html(html);
    501                             },
    502                             error: function(xhr, ajaxOptions, thrownError) {
    503                                 alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    504                             }
    505                         });
    506                     },
    507                     error: function(xhr, ajaxOptions, thrownError) {
    508                         alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    509                     }
    510                 }).done(function() {
    511 					$.ajax({
    512 						url: 'index.php?route=checkout/payment_address',
    513 						dataType: 'html',
    514 						success: function(html) {
    515 							$('#collapse-payment-address .panel-body').html(html);
    516 						},
    517 						error: function(xhr, ajaxOptions, thrownError) {
    518 							alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    519 						}
    520 					});
    521 				});
    522             }
    523         },
    524         error: function(xhr, ajaxOptions, thrownError) {
    525             alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    526         }
    527     });
    528 });
    529 
    530 // Guest
    531 $(document).delegate('#button-guest', 'click', function() {
    532     $.ajax({
    533         url: 'index.php?route=checkout/guest/save',
    534         type: 'post',
    535         data: $('#collapse-payment-address input[type=\'text\'], #collapse-payment-address input[type=\'date\'], #collapse-payment-address input[type=\'datetime-local\'], #collapse-payment-address input[type=\'time\'], #collapse-payment-address input[type=\'checkbox\']:checked, #collapse-payment-address input[type=\'radio\']:checked, #collapse-payment-address input[type=\'hidden\'], #collapse-payment-address textarea, #collapse-payment-address select'),
    536         dataType: 'json',
    537         beforeSend: function() {
    538        		$('#button-guest').button('loading');
    539 	    },
    540         success: function(json) {
    541             $('.alert-dismissible, .text-danger').remove();
    542 			$('.form-group').removeClass('has-error');
    543 
    544             if (json['redirect']) {
    545                 location = json['redirect'];
    546             } else if (json['error']) {
    547                 $('#button-guest').button('reset');
    548 
    549                 if (json['error']['warning']) {
    550                     $('#collapse-payment-address .panel-body').prepend('<div class="alert alert-warning alert-dismissible">' + json['error']['warning'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>');
    551                 }
    552 
    553 				for (i in json['error']) {
    554 					var element = $('#input-payment-' + i.replace('_', '-'));
    555 
    556 					if ($(element).parent().hasClass('input-group')) {
    557 						$(element).parent().after('<div class="text-danger">' + json['error'][i] + '</div>');
    558 					} else {
    559 						$(element).after('<div class="text-danger">' + json['error'][i] + '</div>');
    560 					}
    561 				}
    562 
    563 				// Highlight any found errors
    564 				$('.text-danger').parent().addClass('has-error');
    565             } else {
    566                 {% if shipping_required %}
    567                 var shipping_address = $('#collapse-payment-address input[name=\'shipping_address\']:checked').prop('value');
    568 
    569                 if (shipping_address) {
    570                     $.ajax({
    571                         url: 'index.php?route=checkout/shipping_method',
    572                         dataType: 'html',
    573                         complete: function() {
    574                             $('#button-guest').button('reset');
    575                         },
    576                         success: function(html) {
    577 							// Add the shipping address
    578                             $.ajax({
    579                                 url: 'index.php?route=checkout/guest_shipping',
    580                                 dataType: 'html',
    581                                 success: function(html) {
    582                                     $('#collapse-shipping-address .panel-body').html(html);
    583 
    584 									$('#collapse-shipping-address').parent().find('.panel-heading .panel-title').html('<a href="#collapse-shipping-address" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_shipping_address }} <i class="fa fa-caret-down"></i></a>');
    585                                 },
    586                                 error: function(xhr, ajaxOptions, thrownError) {
    587                                     alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    588                                 }
    589                             });
    590 
    591 						    $('#collapse-shipping-method .panel-body').html(html);
    592 
    593 							$('#collapse-shipping-method').parent().find('.panel-heading .panel-title').html('<a href="#collapse-shipping-method" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_shipping_method }} <i class="fa fa-caret-down"></i></a>');
    594 
    595 							$('a[href=\'#collapse-shipping-method\']').trigger('click');
    596 
    597 							$('#collapse-payment-method').parent().find('.panel-heading .panel-title').html('{{ text_checkout_payment_method }}');
    598 							$('#collapse-checkout-confirm').parent().find('.panel-heading .panel-title').html('{{ text_checkout_confirm }}');
    599                         },
    600                         error: function(xhr, ajaxOptions, thrownError) {
    601                             alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    602                         }
    603                     });
    604                 } else {
    605                     $.ajax({
    606                         url: 'index.php?route=checkout/guest_shipping',
    607                         dataType: 'html',
    608                         complete: function() {
    609                             $('#button-guest').button('reset');
    610                         },
    611                         success: function(html) {
    612                             $('#collapse-shipping-address .panel-body').html(html);
    613 
    614 							$('#collapse-shipping-address').parent().find('.panel-heading .panel-title').html('<a href="#collapse-shipping-address" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_shipping_address }} <i class="fa fa-caret-down"></i></a>');
    615 
    616 							$('a[href=\'#collapse-shipping-address\']').trigger('click');
    617 
    618 							$('#collapse-shipping-method').parent().find('.panel-heading .panel-title').html('{{ text_checkout_shipping_method }}');
    619 							$('#collapse-payment-method').parent().find('.panel-heading .panel-title').html('{{ text_checkout_payment_method }}');
    620 							$('#collapse-checkout-confirm').parent().find('.panel-heading .panel-title').html('{{ text_checkout_confirm }}');
    621                         },
    622                         error: function(xhr, ajaxOptions, thrownError) {
    623                             alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    624                         }
    625                     });
    626                 }
    627                 {% else %}
    628                 $.ajax({
    629                     url: 'index.php?route=checkout/payment_method',
    630                     dataType: 'html',
    631                     complete: function() {
    632                         $('#button-guest').button('reset');
    633                     },
    634                     success: function(html) {
    635                         $('#collapse-payment-method .panel-body').html(html);
    636 
    637 						$('#collapse-payment-method').parent().find('.panel-heading .panel-title').html('<a href="#collapse-payment-method" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_payment_method }} <i class="fa fa-caret-down"></i></a>');
    638 
    639 						$('a[href=\'#collapse-payment-method\']').trigger('click');
    640 
    641 						$('#collapse-checkout-confirm').parent().find('.panel-heading .panel-title').html('{{ text_checkout_confirm }}');
    642                     },
    643                     error: function(xhr, ajaxOptions, thrownError) {
    644                         alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    645                     }
    646                 });
    647                 {% endif %}
    648             }
    649         },
    650         error: function(xhr, ajaxOptions, thrownError) {
    651             alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    652         }
    653     });
    654 });
    655 
    656 // Guest Shipping
    657 $(document).delegate('#button-guest-shipping', 'click', function() {
    658     $.ajax({
    659         url: 'index.php?route=checkout/guest_shipping/save',
    660         type: 'post',
    661         data: $('#collapse-shipping-address input[type=\'text\'], #collapse-shipping-address input[type=\'date\'], #collapse-shipping-address input[type=\'datetime-local\'], #collapse-shipping-address input[type=\'time\'], #collapse-shipping-address input[type=\'password\'], #collapse-shipping-address input[type=\'checkbox\']:checked, #collapse-shipping-address input[type=\'radio\']:checked, #collapse-shipping-address textarea, #collapse-shipping-address select'),
    662         dataType: 'json',
    663         beforeSend: function() {
    664         	$('#button-guest-shipping').button('loading');
    665 		},
    666         success: function(json) {
    667             $('.alert-dismissible, .text-danger').remove();
    668 			$('.form-group').removeClass('has-error');
    669 
    670             if (json['redirect']) {
    671                 location = json['redirect'];
    672             } else if (json['error']) {
    673                 $('#button-guest-shipping').button('reset');
    674 
    675                 if (json['error']['warning']) {
    676                     $('#collapse-shipping-address .panel-body').prepend('<div class="alert alert-danger alert-dismissible">' + json['error']['warning'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>');
    677                 }
    678 
    679 				for (i in json['error']) {
    680 					var element = $('#input-shipping-' + i.replace('_', '-'));
    681 
    682 					if ($(element).parent().hasClass('input-group')) {
    683 						$(element).parent().after('<div class="text-danger">' + json['error'][i] + '</div>');
    684 					} else {
    685 						$(element).after('<div class="text-danger">' + json['error'][i] + '</div>');
    686 					}
    687 				}
    688 
    689 				// Highlight any found errors
    690 				$('.text-danger').parent().addClass('has-error');
    691             } else {
    692                 $.ajax({
    693                     url: 'index.php?route=checkout/shipping_method',
    694                     dataType: 'html',
    695                     complete: function() {
    696                         $('#button-guest-shipping').button('reset');
    697                     },
    698                     success: function(html) {
    699                         $('#collapse-shipping-method .panel-body').html(html);
    700 
    701 						$('#collapse-shipping-method').parent().find('.panel-heading .panel-title').html('<a href="#collapse-shipping-method" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_shipping_method }} <i class="fa fa-caret-down"></i>');
    702 
    703 						$('a[href=\'#collapse-shipping-method\']').trigger('click');
    704 
    705 						$('#collapse-payment-method').parent().find('.panel-heading .panel-title').html('{{ text_checkout_payment_method }}');
    706 						$('#collapse-checkout-confirm').parent().find('.panel-heading .panel-title').html('{{ text_checkout_confirm }}');
    707                     },
    708                     error: function(xhr, ajaxOptions, thrownError) {
    709                         alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    710                     }
    711                 });
    712             }
    713         },
    714         error: function(xhr, ajaxOptions, thrownError) {
    715             alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    716         }
    717     });
    718 });
    719 
    720 $(document).delegate('#button-shipping-method', 'click', function() {
    721     $.ajax({
    722         url: 'index.php?route=checkout/shipping_method/save',
    723         type: 'post',
    724         data: $('#collapse-shipping-method input[type=\'radio\']:checked, #collapse-shipping-method textarea'),
    725         dataType: 'json',
    726         beforeSend: function() {
    727         	$('#button-shipping-method').button('loading');
    728 		},
    729         success: function(json) {
    730             $('.alert-dismissible, .text-danger').remove();
    731 
    732             if (json['redirect']) {
    733                 location = json['redirect'];
    734             } else if (json['error']) {
    735                 $('#button-shipping-method').button('reset');
    736 
    737                 if (json['error']['warning']) {
    738                     $('#collapse-shipping-method .panel-body').prepend('<div class="alert alert-danger alert-dismissible">' + json['error']['warning'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>');
    739                 }
    740             } else {
    741                 $.ajax({
    742                     url: 'index.php?route=checkout/payment_method',
    743                     dataType: 'html',
    744                     complete: function() {
    745                         $('#button-shipping-method').button('reset');
    746                     },
    747                     success: function(html) {
    748                         $('#collapse-payment-method .panel-body').html(html);
    749 
    750 						$('#collapse-payment-method').parent().find('.panel-heading .panel-title').html('<a href="#collapse-payment-method" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_payment_method }} <i class="fa fa-caret-down"></i></a>');
    751 
    752 						$('a[href=\'#collapse-payment-method\']').trigger('click');
    753 
    754 						$('#collapse-checkout-confirm').parent().find('.panel-heading .panel-title').html('{{ text_checkout_confirm }}');
    755                     },
    756                     error: function(xhr, ajaxOptions, thrownError) {
    757                         alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    758                     }
    759                 });
    760             }
    761         },
    762         error: function(xhr, ajaxOptions, thrownError) {
    763             alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    764         }
    765     });
    766 });
    767 
    768 $(document).delegate('#button-payment-method', 'click', function() {
    769     $.ajax({
    770         url: 'index.php?route=checkout/payment_method/save',
    771         type: 'post',
    772         data: $('#collapse-payment-method input[type=\'radio\']:checked, #collapse-payment-method input[type=\'checkbox\']:checked, #collapse-payment-method textarea'),
    773         dataType: 'json',
    774         beforeSend: function() {
    775          	$('#button-payment-method').button('loading');
    776 		},
    777         success: function(json) {
    778             $('.alert-dismissible, .text-danger').remove();
    779 
    780             if (json['redirect']) {
    781                 location = json['redirect'];
    782             } else if (json['error']) {
    783                 $('#button-payment-method').button('reset');
    784                 
    785                 if (json['error']['warning']) {
    786                     $('#collapse-payment-method .panel-body').prepend('<div class="alert alert-danger alert-dismissible">' + json['error']['warning'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>');
    787                 }
    788             } else {
    789                 $.ajax({
    790                     url: 'index.php?route=checkout/confirm',
    791                     dataType: 'html',
    792                     complete: function() {
    793                         $('#button-payment-method').button('reset');
    794                     },
    795                     success: function(html) {
    796                         $('#collapse-checkout-confirm .panel-body').html(html);
    797 
    798 						$('#collapse-checkout-confirm').parent().find('.panel-heading .panel-title').html('<a href="#collapse-checkout-confirm" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle">{{ text_checkout_confirm }} <i class="fa fa-caret-down"></i></a>');
    799 
    800 						$('a[href=\'#collapse-checkout-confirm\']').trigger('click');
    801 					},
    802                     error: function(xhr, ajaxOptions, thrownError) {
    803                         alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    804                     }
    805                 });
    806             }
    807         },
    808         error: function(xhr, ajaxOptions, thrownError) {
    809             alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    810         }
    811     });
    812 });
    813 //--></script>
    814 {{ footer }}