shop.balmet.com

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

ebay_new.twig (125874B)


      1 {{ header }}{{ column_left }}
      2 <div id="content">
      3   <div class="page-header">
      4     <div class="container-fluid">
      5       <div class="pull-right"> <a onclick="confirmAction('{{ cancel }}');" data-toggle="tooltip" title="{{ button_cancel }}" class="btn btn-default"><i class="fa fa-reply"></i></a> </div>
      6       <h1>{{ heading_title }}</h1>
      7       <ul class="breadcrumb">
      8         {% for breadcrumb in breadcrumbs %}
      9         <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
     10         {% endfor %}
     11       </ul>
     12     </div>
     13   </div>
     14   <div class="container-fluid">
     15     {% if error_warning %}
     16     <div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }}</div>
     17     {% endif %}
     18     <div class="panel panel-default">
     19       <div class="panel-heading">
     20         <h3 class="panel-title"><i class="fa fa-list"></i> {{ text_insert }}</h3>
     21       </div>
     22       <div class="panel-body" id="page-listing">
     23         <form action="{{ action }}" method="post" enctype="multipart/form-data" id="form" class="form-horizontal">
     24           <input type="hidden" name="product_id" value="{{ product.product_id }}" />
     25           <input type="hidden" name="auction_type" value="FixedPriceItem" />
     26           <input type="hidden" name="attributes" value="{{ product.attributes }}" />
     27           <ul class="nav nav-tabs">
     28             <li class="active"><a href="#tab-listing-general" data-toggle="tab">{{ tab_general }}</a></li>
     29             <li><a href="#tab-listing-feature" data-toggle="tab">{{ tab_feature }}</a></li>
     30             <li style="display: none;" id="listing-compatibility"><a href="#tab-listing-compatibility" data-toggle="tab">{{ entry_compatibility }}</a></li>
     31             <li><a href="#tab-listing-catalog" data-toggle="tab">{{ tab_ebay_catalog }}</a></li>
     32             <li><a href="#tab-listing-description" data-toggle="tab">{{ tab_description }}</a></li>
     33             <li><a href="#tab-listing-images" data-toggle="tab">{{ tab_image }}</a></li>
     34             <li><a href="#tab-listing-price" data-toggle="tab">{{ tab_price }}</a></li>
     35             <li><a href="#tab-listing-payment" data-toggle="tab">{{ tab_payment }}</a></li>
     36             <li><a href="#tab-listing-shipping" data-toggle="tab">{{ tab_shipping }}</a></li>
     37             <li><a href="#tab-listing-returns" data-toggle="tab">{{ tab_returns }}</a></li>
     38           </ul>
     39           <div class="tab-content">
     40             <div id="tab-listing-general" class="tab-pane active">
     41               {% if product.store_cats is not empty %}
     42               <div class="form-group">
     43                 <label class="col-sm-2 control-label"> <span title="" data-toggle="tooltip" data-original-title="{{ help_shop_category }}">{{ entry_shop_category }}</span> </label>
     44                 <div class="col-sm-10">
     45                   <div class="row form-group">
     46                     <div class="col-sm-12">
     47                       <div class="input-group category-select-group"> <span class="input-group-addon"><i class="fa fa-angle-right fa-lg"></i></span>
     48                         <select name="eBayStoreCatId" class="form-control">
     49                           <option disabled selected>{{ text_select }}</option>
     50                           {% for key, cat in product['store_cats'] %}
     51                           <option value="{{ key }}">{{ cat }}</option>
     52                           {% endfor %}
     53                         </select>
     54                       </div>
     55                     </div>
     56                   </div>
     57                 </div>
     58               </div>
     59               {% endif %}
     60               {% if product.popular_cats is not empty %}
     61               <div class="form-group" id="category-popular-row">
     62                 <label class="col-sm-2 control-label"> <span title="" data-toggle="tooltip" data-original-title="{{ help_category_popular }}">{{ entry_category_popular }}</span> </label>
     63                 <div class="col-sm-10">
     64                   <p><input type="radio" name="popular" value="" id="popular_default" checked /><strong>{{ text_none }}</strong></p>
     65                   {% for cat in product.popular_cats %}
     66                     <p><input type="radio" name="popular" value="{{ cat.CategoryID }}" class="popular-category" />{{ cat.breadcrumb }}</p>
     67                   {% endfor %}
     68                 </div>
     69               </div>
     70               {% else %}
     71               <input type="hidden" name="popular" value="" />
     72               {% endif %}
     73               <div class="form-group" id="category-selections-row">
     74                 <label class="col-sm-2 control-label">{{ entry_category }}</label>
     75                 <div class="col-sm-10">
     76                   <div class="row form-group">
     77                     <div class="col-sm-12">
     78                       <div class="input-group category-select-group"> <span id="category-select-1-loading" class="input-group-addon"><i class="fa fa-angle-right fa-lg"></i></span>
     79                         <select id="category-select-1" class="form-control" onchange="loadCategories(2);">
     80                         </select>
     81                       </div>
     82                     </div>
     83                   </div>
     84                   <div class="row form-group" id="category-select-2-container" style="display:none;">
     85                     <div class="col-sm-12">
     86                       <div class="input-group category-select-group"> <span id="category-select-2-loading" class="input-group-addon"><i class="fa fa-angle-right fa-lg"></i></span>
     87                         <select id="category-select-2" class="form-control" onchange="loadCategories(3);">
     88                         </select>
     89                       </div>
     90                     </div>
     91                   </div>
     92                   <div class="row form-group" id="category-select-3-container" style="display:none;">
     93                     <div class="col-sm-12">
     94                       <div class="input-group category-select-group"> <span id="category-select-3-loading" class="input-group-addon"><i class="fa fa-angle-right fa-lg"></i></span>
     95                         <select id="category-select-3" class="form-control" onchange="loadCategories(4);">
     96                         </select>
     97                       </div>
     98                     </div>
     99                   </div>
    100                   <div class="row form-group" id="category-select-4-container" style="display:none;">
    101                     <div class="col-sm-12">
    102                       <div class="input-group category-select-group"> <span id="category-select-4-loading" class="input-group-addon"><i class="fa fa-angle-right fa-lg"></i></span>
    103                         <select id="category-select-4" class="form-control" onchange="loadCategories(5);">
    104                         </select>
    105                       </div>
    106                     </div>
    107                   </div>
    108                   <div class="row form-group" id="category-select-5-container" style="display:none;">
    109                     <div class="col-sm-12">
    110                       <div class="input-group category-select-group"> <span id="category-select-5-loading" class="input-group-addon"><i class="fa fa-angle-right fa-lg"></i></span>
    111                         <select id="category-select-5" class="form-control" onchange="loadCategories(6);">
    112                         </select>
    113                       </div>
    114                     </div>
    115                   </div>
    116                   <div class="row form-group" id="category-select-6-container" style="display:none;">
    117                     <div class="col-sm-12">
    118                       <div class="input-group category-select-group"> <span id="category-select-6-loading" class="input-group-addon"><i class="fa fa-angle-right fa-lg"></i></span>
    119                         <select id="category-select-6" class="form-control" onchange="loadCategories(7);">
    120                         </select>
    121                       </div>
    122                     </div>
    123                   </div>
    124                   <input type="hidden" name="finalCat" id="final-category" />
    125                 </div>
    126               </div>
    127               <div class="form-group" id="category-suggested-row" style="display: none;">
    128                 <label class="col-sm-2 control-label"> <span title="" data-toggle="tooltip" data-original-title="{{ help_category_suggested }}">{{ entry_category_suggested }}</span> </label>
    129                 <div class="col-sm-10">
    130                   <div id="suggested-cats"></div>
    131                 </div>
    132               </div>
    133               <div class="form-group" id="condition-container" style="display: none;">
    134                 <label class="col-sm-2 control-label">{{ entry_listing_condition }}</label>
    135                 <div class="col-sm-10">
    136                   <div class="row form-group">
    137                     <div class="col-sm-12">
    138                       <div class="input-group condition-select-group"> <span id="condition-loading" class="input-group-addon"><i class="fa fa-angle-right fa-lg"></i></span>
    139                         <select name="condition" id="condition-input" class="form-control">
    140                         </select>
    141                       </div>
    142                     </div>
    143                   </div>
    144                 </div>
    145               </div>
    146               <div class="form-group" id="duration-container" style="display: none;">
    147                 <label class="col-sm-2 control-label">{{ entry_listing_duration }}</label>
    148                 <div class="col-sm-10">
    149                   <div class="row form-group">
    150                     <div class="col-sm-12">
    151                       <div class="input-group condition-select-group"> <span id="duration-loading" class="input-group-addon"><i class="fa fa-angle-right fa-lg"></i></span>
    152                         <select name="auction_duration" id="duration-input" class="form-control">
    153                         </select>
    154                       </div>
    155                     </div>
    156                   </div>
    157                 </div>
    158               </div>
    159             </div>
    160             <div id="tab-listing-feature" class="tab-pane">
    161               <div class="well" style="display: none;" id="product_identifier_container">
    162                 <h3>{{ text_product_identifiers }}</h3>
    163                 <div class="form-group" id="product_identifier_ean_container" style="display:none;">
    164                   <label class="col-sm-2 control-label">{{ text_ean }}</label>
    165                   <div class="col-sm-10">
    166                     <input type="hidden" id="identifier_ean_required" class="product_identifier_required" value="0" />
    167                     <input type="hidden" id="identifier_ean_original" value="{{ product.ean }}" />
    168                     <input type="text" name="identifier_ean" value="{{ product.ean }}" id="identifier_ean" class="form-control" />
    169                   </div>
    170                 </div>
    171                 <div class="form-group" id="product_identifier_isbn_container" style="display:none;">
    172                   <label class="col-sm-2 control-label">{{ text_isbn }}</label>
    173                   <div class="col-sm-10">
    174                     <input type="hidden" id="identifier_isbn_required" class="product_identifier_required" value="0" />
    175                     <input type="hidden" id="identifier_isbn_original" value="{{ product.isbn }}" />
    176                     <input type="text" name="identifier_isbn" value="{{ product.isbn }}" id="identifier_isbn" class="form-control" />
    177                   </div>
    178                 </div>
    179                 <div class="form-group" id="product_identifier_upc_container" style="display:none;">
    180                   <label class="col-sm-2 control-label">{{ text_upc }}</label>
    181                   <div class="col-sm-10">
    182                     <input type="hidden" id="identifier_upc_required" class="product_identifier_required" value="0" />
    183                     <input type="hidden" id="identifier_upc_original" value="{{ product.upc }}" />
    184                     <input type="text" name="identifier_upc" value="{{ product.upc }}" id="identifier_upc" class="form-control" />
    185                   </div>
    186                 </div>
    187                 <div class="form-group">
    188                   <label class="col-sm-2 control-label">{{ text_identifier_not_required }}</label>
    189                   <div class="col-sm-10">
    190                     <input type="checkbox" name="identifier_not_required" value="1" id="identifier_not_required" class="form-control" />
    191                   </div>
    192                 </div>
    193               </div>
    194               <div class="alert alert-info">{{ text_features_help }}</div>
    195               <div class="form-group">
    196                 <div class="col-sm-12"> <span id="feature-loading" style="display: none;"><i class="fa fa-cog fa-lg fa-spin"></i></span>
    197                   <div id="feature-content"></div>
    198                 </div>
    199               </div>
    200             </div>
    201             <div id="tab-listing-compatibility" class="tab-pane">
    202               <div class="form-group">
    203                 <div class="col-sm-12">
    204                   <div class="alert alert-info" id="compatibility-loading" style="display:none;"><i class="fa fa-cog fa-lg fa-spin"></i> {{ text_loading_compatibility }}</div>
    205                   <div id="compatibility-content"></div>
    206                   <div id="compatibility-content-add" style="display: none;">
    207                     <div class="form-group">
    208                       <div class="col-sm-10 text-right">
    209                         <button class="btn btn-primary" id="compatibility-button-add" data-toggle="tooltip" type="button" data-original-title="{{ text_add }}"><i class="fa fa-plus-circle"></i></button>
    210                       </div>
    211                     </div>
    212                   </div>
    213                   <div id="compatibility-options" class="form-group" style="display:none;">
    214                     <label class="col-sm-2 control-label">{{ text_compatible }}</label>
    215                     <div class="col-sm-8">
    216                       <div class="table-responsive">
    217                         <table id="compatibility-table" class="table table-striped table-bordered table-hover">
    218                         </table>
    219                       </div>
    220                     </div>
    221                   </div>
    222                 </div>
    223               </div>
    224             </div>
    225             <div id="tab-listing-catalog" class="tab-pane">
    226               <div class="form-group">
    227                 <label class="col-sm-2 control-label">{{ entry_search_catalog }}</label>
    228                 <div class="col-sm-10">
    229                   <div class="row">
    230                     <div class="col-sm-3">
    231                       <input type="text" name="catalog_search" id="catalog-search" class="form-control" value="" />
    232                     </div>
    233                     <div class="col-sm-1"> <a class="btn btn-primary" id="button-catalog-search"><i class="fa fa-search"></i> {{ button_search }}</a> </div>
    234                   </div>
    235                 </div>
    236               </div>
    237               <div class="form-group">
    238                 <label class="col-sm-2 control-label">{{ entry_catalog }}</label>
    239                 <div class="col-sm-10">
    240                   <span class="help-block">
    241                     <input type="hidden" value="0" name="catalog_image">
    242                     <input id="catalog-image" type="checkbox" value="1" name="catalog_image"> - {{ text_catalog_help }}
    243                   </span>
    244                 </div>
    245               </div>
    246               <div class="row" id="product-catalog-container"></div>
    247             </div>
    248             <div id="tab-listing-description" class="tab-pane">
    249               <div class="form-group">
    250                 <label class="col-sm-2 control-label">{{ entry_title }}</label>
    251                 <div class="col-sm-10">
    252                   <input type="text" name="name" value="{{ product.name }}" size="85" id="name" class="form-control" />
    253                 </div>
    254               </div>
    255               <div class="form-group">
    256                 <label class="col-sm-2 control-label">{{ entry_subtitle }}</label>
    257                 <div class="col-sm-10">
    258                   <input type="text" name="sub_name" value="" size="85" id="sub_name" class="form-control" />
    259                 </div>
    260               </div>
    261               <div class="form-group">
    262                 <label class="col-sm-2 control-label">{{ entry_description }}</label>
    263                 <div class="col-sm-10">
    264                   <textarea name="description" id="description-field" data-toggle="summernote" class="form-control">{{ product.description }}</textarea>
    265                 </div>
    266               </div>
    267             </div>
    268             <div id="tab-listing-images" class="tab-pane">
    269               <div class="well well-lg">
    270                 <div class="row">
    271                   <label class="col-sm-2 control-label">{{ entry_profile_load }}</label>
    272                   <div class="col-sm-10">
    273                     <div class="input-group"> <span class="input-group-addon" id="profile-theme-icon"><i class="fa fa-lg fa-file-text"></i></span>
    274                       <select name="profile_theme" id="profile-theme-input" class="form-control">
    275                         <option value="def">{{ text_select }}</option>
    276                         {% for profiles_theme in product.profiles_theme %}
    277                           <option value="{{ profile.ebay_profile_id }}">{{ profile.name }}</option>
    278                         {% endfor %}
    279                       </select>
    280                     </div>
    281                   </div>
    282                 </div>
    283               </div>
    284               <div class="form-group">
    285                 <label class="col-sm-2 control-label">{{ entry_template }}</label>
    286                 <div class="col-sm-10">
    287                   <select name="template" id="template_id" class="form-control">
    288                     <option value="None">None</option>
    289                     {% if product.templates is not empty %}
    290                       {% for templates in product.templates %}
    291                         <option value="{{ template.template_id }}">{{ template.name }}</option>
    292                       {% endfor %}
    293                     {% endif %}
    294                   </select>
    295                 </div>
    296               </div>
    297               <div class="form-group">
    298                 <label class="col-sm-2 control-label">{{ entry_image_gallery }}</label>
    299                 <div class="col-sm-10">
    300                   <div class="row">
    301                     <div class="col-sm-3">
    302                       <div class="input-group"> <span class="input-group-addon">{{ text_height }}</span>
    303                       <input type="text" name="gallery_height" value="{{ product.defaults.gallery_height }}" maxlength="4" class="form-control" id="gallery_height" />
    304                       <span class="input-group-addon">{{ text_px }}</span> </div>
    305                     </div>
    306                     <div class="col-sm-3">
    307                       <div class="input-group"> <span class="input-group-addon">{{ text_width }}</span>
    308                       <input type="text" name="gallery_width" value="{{ product.defaults.gallery_width }}" maxlength="4" class="form-control" id="gallery_width" />
    309                       <span class="input-group-addon">{{ text_px }}</span> </div>
    310                     </div>
    311                   </div>
    312                 </div>
    313               </div>
    314               <div class="form-group">
    315                 <label class="col-sm-2 control-label">{{ entry_image_thumb }}</label>
    316                 <div class="col-sm-10">
    317                   <div class="row">
    318                     <div class="col-sm-3">
    319                       <div class="input-group"> <span class="input-group-addon">{{ text_height }}</span>
    320                         <input type="text" name="thumb_height" value="{{ product.defaults.thumb_height }}" maxlength="4" class="form-control" id="thumb_height" />
    321                         <span class="input-group-addon">{{ text_px }}</span> </div>
    322                     </div>
    323                     <div class="col-sm-3">
    324                       <div class="input-group"> <span class="input-group-addon">{{ text_width }}</span>
    325                         <input type="text" name="thumb_width" value="{{ product.defaults.thumb_width }}" maxlength="4" class="form-control" id="thumb_width" />
    326                         <span class="input-group-addon">{{ text_px }}</span> </div>
    327                     </div>
    328                   </div>
    329                 </div>
    330               </div>
    331               <div class="form-group">
    332                 <label class="col-sm-2 control-label">{{ entry_images_supersize }}</label>
    333                 <div class="col-sm-10">
    334                   <input type="hidden" name="gallery_super" value="0" />
    335                   <input type="checkbox" name="gallery_super" value="1" id="gallery_super" />
    336                 </div>
    337               </div>
    338               <div class="form-group">
    339                 <label class="col-sm-2 control-label">{{ entry_images_gallery_plus }}</label>
    340                 <div class="col-sm-10">
    341                   <input type="hidden" name="gallery_plus" value="0" />
    342                   <input type="checkbox" name="gallery_plus" value="1" id="gallery_plus" />
    343                 </div>
    344               </div>
    345               <div class="alert alert-info">
    346                 <p>* {{ text_images_text_1 }}</p>
    347                 <p>* {{ text_images_text_2 }}</p>
    348               </div>
    349               <div class="row">
    350                 {% if product.product_images is not empty %}
    351                 <div class="table-responsive">
    352                   <table id="images" class="table table-striped table-bordered table-hover">
    353                     <thead>
    354                       <tr>
    355                         <td class="text-center">{{ column_thumb }}</td>
    356                         <td class="text-center">{{ column_img_size }}</td>
    357                         <td class="text-center">{{ column_template_image }}
    358                           <input type="checkbox" name="all_template_images" value="1" id="check-all-template-images" style="margin-top:2px;" /></td>
    359                         <td class="text-center">{{ column_ebay_image }}
    360                           <input type="checkbox" name="all_ebay_images" value="1" id="check-all-ebay-images" style="margin-top:2px;" /></td>
    361                         <td class="text-center">{{ column_main_ebay_image }}</td>
    362                       </tr>
    363                     </thead>
    364                     <tbody>
    365                       {% set i = 0 %}
    366                       {% set i_valid = null %}
    367                       {% for product_images in product.product_images %}
    368                       <tr>
    369                         <td class="text-center"><img src="{{ img.preview }}" class="img-thumbnail" /></td>
    370                         <td class="text-center">
    371                           {% if img.width < 500 and img.height < 500 %}
    372                             <span class="label label-danger" data-toggle="tooltip" data-original-title="{{ error_ebay_imagesize }}">{{ img.width }} x {{ img.height }}</span>
    373                           {% else %}
    374                             {% if i_valid == null %}{% set i_valid = i %}{% endif %}
    375                             <span class="label label-success" data-toggle="tooltip" data-original-title="{{ text_ebay_imagesize_ok }}">{{ img.width }} x {{ img.height }}</span>
    376                           {% endif %}
    377                         </td>
    378                         <td class="text-center"><input type="checkbox" id="imgUrl{{ i }}" name="img_tpl[{{ i }}]" value="{{ img.image }}" class="check-template-image" /></td>
    379                         <td class="text-center"><input type="hidden" name="img[{{ i }}]" value="null" />
    380                           {% if img.width >= 500 and img.height >= 500 %}
    381                             <input type="checkbox" class="checkbox-ebay-image" onchange="toggleRad({{ i }});" id="image-checkbox-{{ i }}" name="img[{{ i }}]" value="{{ img.image }}" {% if i == 0 %}checked="checked"{% endif %} />
    382                           {% else %}
    383                             -
    384                           {% endif %}
    385                         </td>
    386                         <td class="text-center">
    387                           {% if img.width >= 500 or img.height >= 500 %}
    388                             <input type="radio" name="main_image"{% if i_valid !== null and i == i_valid %} checked{% endif %} value="{{ i }}" id="image-radio-{{ i }}" {% if i != 0 %}disabled="disabled"{% endif %} />
    389                           {% else %}
    390                             -
    391                           {% endif %}
    392                         </td>
    393                       </tr>
    394                       {% set i = i + 1 %}
    395                       {% endfor %}
    396                     </tbody>
    397                   </table>
    398                 </div>
    399                 {% else %}
    400                 <div class="alert alert-danger alert-dismissible">{{ text_images_none }}</div>
    401                 {% endif %}
    402               </div>
    403               {% if addon.openstock is not empty and addon.openstock == true and product.options is not empty %}
    404               <h2>{{ text_option_images }}</h2>
    405               <p>{{ text_option_description }}</p>
    406               <div class="form-group">
    407                 <label class="col-sm-2 control-label">{{ text_option_images_grp }}</label>
    408                 <div class="col-sm-10">
    409                   <select name="option_image_group" id="option_image_group" class="form-control">
    410                     <option value="def">{{ text_select }}</option>
    411                     {% for option_group in product.option_groups %}
    412                       <option value="{{ option_group.option_id }}">{{ option_group.name }}</option>
    413                     {% endfor %}
    414                   </select>
    415                   <input type="hidden" id="option-image-group-name" name="option_image_group_name" value=""/>
    416                 </div>
    417               </div>
    418               <div class="form-group option-group-img-tr" style="display:none;">
    419                 <label class="col-sm-2 control-label">{{ text_option_images_choice }}</label>
    420                 <div class="col-sm-10">
    421                   {% for option_groups in product.option_groups %}
    422                   <div id="option-group-img-{{ option_group.option_id }}" class="option-group-img">
    423                     <div class="table-responsive">
    424                       <table class="table table-striped table-bordered table-hover">
    425                         {% for option_group_choice in option_group.product_option_value %}
    426                         <tr>
    427                           <td>{{ option_group_choice.name }}</td>
    428                           <td><input type="hidden" name="option_image[{{ option_group.option_id }}][{{ option_group_choice.product_option_value_id }}][name]" value="{{ option_group_choice.name }}"/>
    429                             <a onclick="addVariationImage({{ option_group.option_id }}, {{ option_group_choice.product_option_value_id }});" class="btn btn-primary"><span>{{ text_add }}</span></a></td>
    430                           <td>
    431                             <table class="table table-striped table-bordered table-hover" id="option_images_{{ option_group_choice.product_option_value_id }}">
    432                               {% set x = 0 %}
    433                               {% if option_group_choice.image_thumb is not empty and option_group_choice.image != "no_image.jpg" %}
    434                                 {% set x = x + 1 %}
    435                                 <tr>
    436                                   <td id="option_image_{{ option_group.option_id }}_{{ option_group_choice.product_option_value_id }}_{{ x }}"><img src="{{ option_group_choice.image_thumb }}"/>
    437                                     <input type="hidden" name="option_image[{{ option_group.option_id }}][{{ option_group_choice.product_option_value_id }}][images][]" value="{{ option_group_choice.image }}"/></td>
    438                                   <td><button type="button" onclick="removeVariationImage({{ option_group.option_id }}, {{ option_group_choice.product_option_value_id }}, {{ x }});" data-toggle="tooltip" title="{{ button_remove }}" class="btn btn-danger"><i class="fa fa-minus-circle"></i></button></td>
    439                                 </tr>
    440                               {% endif %}
    441                               <input type="hidden" name="option_image_count_{{ option_group.option_id }}" id="option_image_count_{{ option_group.option_id }}" value="{{ x }}"/>
    442                             </table></td>
    443                         </tr>
    444                         {% endfor %}
    445                       </table>
    446                     </div>
    447                   </div>
    448                   {% endfor %}
    449                 </div>
    450               </div>
    451               {% endif %}
    452             </div>
    453             <div id="tab-listing-price" class="tab-pane">
    454               <div class="well well-lg">
    455                 <div class="row">
    456                   <label class="col-sm-2 control-label">{{ entry_profile_load }}<br />
    457                     <span id="profile-generic-loading" style="display: none;"><a class="btn btn-info" disabled="disabled"><i class="fa fa-cog fa-lg fa-spin"></i></a></span></label>
    458                   <div class="col-sm-10">
    459                     <div class="input-group"> <span class="input-group-addon" id="profile-generic-icon"><i class="fa fa-lg fa-file-text"></i></span>
    460                       <select name="profile_generic" id="profile-generic-input" class="form-control">
    461                         <option value="def">{{ text_select }}</option>
    462 						{% for profile in product.profiles_generic %}
    463                           <option value="{{ profile.ebay_profile_id }}">{{ profile.name }}</option>
    464                         {% endfor %}
    465                       </select>
    466                     </div>
    467                   </div>
    468                 </div>
    469               </div>
    470               {% if addon.openstock is not empty and addon.openstock == true and product.options is not empty %}
    471               <div class="form-group">
    472                 <label class="col-sm-2 control-label">{{ text_stock_matrix }}</label>
    473                 <div class="col-sm-10">
    474                   <table class="table table-striped table-bordered table-hover">
    475                     <thead>
    476                       <tr>
    477                         <td>{{ column_sku }}</td>
    478                         <td>{{ column_stock_total }}</td>
    479                         <td>{{ column_stock_col_qty }}</td>
    480                         <td>{{ column_stock_col_qty_reserve }}</td>
    481                         <td>{{ column_stock_col_comb }}</td>
    482                         <td>{{ column_price_ex_tax }}</td>
    483                         <td>{{ column_price_inc_tax }}</td>
    484                       </tr>
    485                     </thead>
    486                     <tbody>
    487                       <input type="hidden" name="optGroupArray" value="{{ product.option_group_array }}" />
    488                       <input type="hidden" name="optGroupRelArray" value="{{ product.option_group_relation_array }}" />
    489                       <input type="hidden" name="optArray" value="{{ product.options_array }}" />
    490                       {% set option_count = 0 %}
    491 
    492                       {% for option in product.options %}
    493                         {% set keys = [] %}
    494 
    495                         {% for variant_value in option.variant_values %}
    496                             {% set keys = keys|merge([variant_value.product_option_value_id]) %}
    497                         {% endfor %}
    498 
    499                         <input type="hidden" name="opt[{{ option_count }}][key]" value="{{ keys|join(':') }}" />
    500                         <input type="hidden" name="opt[{{ option_count }}][sku]" value="{{ option.sku }}" />
    501                         <input type="hidden" name="opt[{{ option_count }}][active]" value="{{ option.active }}" />
    502                         <input type="hidden" name="varPriceExCount" class="varPriceExCount" value="{{ option_count }}" />
    503 
    504                         {% if option.sku is empty or option.stock < 1 %}<tr class="warning">{% else %}<tr class="success">{% endif %}
    505                           <td>{% if option.sku is empty %}<span class="label label-danger">{{ error_no_sku }}</span>{% else %}{{ option.sku }}{% endif %}</td>
    506                           <td>{% if option.stock < 1 %}<span class="label label-danger">{{ option.stock }}</span>{% else %}<span class="label label-success">{{ option.stock }}</span>{% endif %}</td>
    507                           <td><input class="form-control" id="qty_{{ option_count }}" type="text" name="opt[{{ option_count }}][qty]" value="{{ option.stock }}" onkeyup="updateReserveMessage({{ option_count }}, {{ option.stock }});" /></td>
    508                           <td id="qty_reserve_{{ option_count }}">0</td>
    509                           <td>{{ option.combination }}</td>
    510                             {% if option.price == 0 %}{% set option_row_price = product.price %}{% else %}{% set option_row_price = option.price %}{% endif %}
    511                           <td><input class="form-control" id="varPriceEx_{{ option_count }}" onkeyup="updateVarPriceFromEx({{ option_count }});" type="text" name="opt[{{ option_count }}][priceex]" value="{{ option_row_price|number_format(2, '.', '') }}" /></td>';
    512                           <td><input class="form-control varPriceInc" id="varPriceInc_{{ option_count }}" onkeyup="updateVarPriceFromInc({{ option_count }});"  type="text" name="opt[{{ option_count }}][price]" value="0" /></td>
    513                         </tr>
    514 
    515                         {% set option_count = option_count + 1 %}
    516                       {% endfor %}
    517                     </tbody>
    518                   </table>
    519                 </div>
    520               </div>
    521               <div class="form-group">
    522                 <label class="col-sm-2 control-label">{{ entry_tax_inc }}</label>
    523                 <div class="col-sm-10">
    524                   <div class="input-group col-xs-2">
    525                     <input type="text" name="tax" value="{{ product.defaults.tax }}" id="taxRate" class="form-control text-right" onkeyup="updateVarPrice();" />
    526                     <span class="input-group-addon">%</span> </div>
    527                 </div>
    528               </div>
    529               {% else %}
    530               <div class="form-group">
    531                 <label class="col-sm-2 control-label">{{ entry_qty }}</label>
    532                 <div class="col-sm-10">
    533                   <input type="text" name="qty[0]" id="qty_0" value="{{ product.quantity }}" class="form-control" onkeyup="updateReserveMessage('0', '{{ product.quantity }}');" />
    534                   <span class="help-block">{{ help_quantity_reserve }}</span> <span class="help-block">{{ column_stock_total }}: {{ product.quantity }}<br/>
    535                   <span id="qty_reserve_0">0</span> {{ text_stock_reserved }}</span> </div>
    536               </div>
    537               <div class="form-group">
    538                 <label class="col-sm-2 control-label">{{ entry_price }}</label>
    539                 <div class="col-sm-10">
    540                   <div class="input-group col-xs-4">
    541                     <input type="text" name="price_no_tax[0]" id="taxEx" value="{{ product.price|number_format(2, '.', '') }}" class="form-control" onkeyup="updatePriceFromEx();" />
    542                     <span class="input-group-addon">{{ text_price_ex_tax }}</span> </div>
    543                   <span class="help-block">{{ help_price_ex_tax }}</span>
    544                   <div class="input-group col-xs-4">
    545                     <input type="text" name="price[0]" id="taxInc" value="{{ product.price|number_format(2, '.', '') }}" class="form-control" onkeyup="updatePriceFromInc();" />
    546                     <span class="input-group-addon">{{ text_price_inc_tax }}</span> </div>
    547                   <span class="help-block">{{ help_price_inc_tax }}</span> </div>
    548               </div>
    549               <div class="form-group">
    550                 <label class="col-sm-2 control-label">{{ entry_tax_inc }}</label>
    551                 <div class="col-sm-10">
    552                   <div class="input-group col-xs-2">
    553                     <input type="text" name="tax" value="{{ product.defaults.tax }}" id="taxRate" class="form-control text-right" onkeyup="updatePriceFromEx();" />
    554                     <span class="input-group-addon">%</span> </div>
    555                 </div>
    556               </div>
    557               {% endif %}
    558               {% if product.options is empty %}
    559                 <div class="form-group">
    560                   <label class="col-sm-2 control-label">{{ entry_offers }}</label>
    561                   <div class="col-sm-10">
    562                     <input type="hidden" name="bestoffer" value="0" />
    563                     <input type="checkbox" name="bestoffer" value="1" id="bestoffer" />
    564                   </div>
    565                 </div>
    566               {% endif %}
    567               <div class="form-group">
    568                 <label class="col-sm-2 control-label"> <span title="" data-toggle="tooltip" data-original-title="{{ help_private }}">{{ entry_private }}</span> </label>
    569                 <div class="col-sm-10"> <span class="help-block">
    570                   <input type="hidden" name="private_listing" value="0" />
    571                   <input type="checkbox" name="private_listing" value="1" id="private_listing" />
    572                   </span> </div>
    573               </div>
    574             </div>
    575             <div id="tab-listing-payment" class="tab-pane">
    576               <div class="form-group">
    577                 <label class="col-sm-2 control-label">{{ entry_imediate_payment }}</label>
    578                 <div class="col-sm-10">
    579                   <input type="hidden" name="ebay_payment_immediate" value="0" />
    580                   <input type="checkbox" name="ebay_payment_immediate" value="1" id="ebay_payment_immediate"{% if product.defaults.ebay_payment_immediate == 1 %} checked{% endif %} />
    581                 </div>
    582               </div>
    583               <div class="form-group">
    584                 <label class="col-sm-2 control-label">{{ entry_payment }}</label>
    585                 <div class="col-sm-10">
    586                   {% set paypal = false %}
    587                   {% for payments in product.payments %}
    588                     {% if payment.ebay_name == 'PayPal' %}
    589                       {% set paypal = true %}
    590                     {% else %}
    591                       <p><input type="checkbox" name="payments[{{ payment.ebay_name }}]" value="1"{% if product.defaults.ebay_payment_types[payment.ebay_name] == 1 %} checked="checked"{% endif %} /> - {{ payment.local_name }}</p>
    592                     {% endif %}
    593                   {% endfor %}
    594                 </div>
    595               </div>
    596               {% if paypal == true %}
    597               <div class="form-group">
    598                 <label class="col-sm-2 control-label">PayPal</label>
    599                 <div class="col-sm-10">
    600                   <div class="input-group">
    601                     <span class="input-group-addon"><input type="checkbox" name="payments[PayPal]" value="1" {% if product.defaults.ebay_payment_types["PayPal"] == 1 %} checked="checked"{% endif %} /></span>
    602                     <input type="text" class="form-control" name="paypal_email" value="{{ product.defaults.paypal_address }}" placeholder="{{ text_paypal }}"/>
    603                   </div>
    604                 </div>
    605               </div>
    606               {% endif %}
    607               <div class="form-group">
    608                 <label class="col-sm-2 control-label">{{ entry_payment_instruction }}</label>
    609                 <div class="col-sm-10">
    610                   <textarea name="payment_instruction" class="form-control" rows="3" id="payment_instruction">{{ product.defaults.payment_instruction }}</textarea>
    611                 </div>
    612               </div>
    613             </div>
    614             <div id="tab-listing-shipping" class="tab-pane">
    615               <div class="well well-lg">
    616                 <div class="row">
    617                   <label class="col-sm-2 control-label">{{ entry_profile_load }}<br />
    618                     <span id="profile-shipping-loading" style="display: none;"><a class="btn btn-info" disabled="disabled"><i class="fa fa-cog fa-lg fa-spin"></i></a></span></label>
    619                   <div class="col-sm-10">
    620                     <div class="input-group"> <span class="input-group-addon" id="profile-shipping-icon"><i class="fa fa-lg fa-file-text"></i></span>
    621                       <select name="profile_shipping" id="profile-shipping-input" class="form-control">
    622                         <option value="def">{{ text_select }}</option>
    623                         {% for profile in product.profiles_shipping %}
    624                         <option value="{{ profile.ebay_profile_id }}">{{ profile.name }}</option>
    625                         {% endfor %}
    626                       </select>
    627                     </div>
    628                   </div>
    629                 </div>
    630               </div>
    631               <div class="form-group">
    632                 <label class="col-sm-2 control-label">{{ entry_item_postcode }}</label>
    633                 <div class="col-sm-10">
    634                   <input type="text" name="postcode" id="postcode" class="form-control" />
    635                   <span class="help-block">{{ text_item_postcode_help }}</span> </div>
    636               </div>
    637               <div class="form-group">
    638                 <label class="col-sm-2 control-label">{{ entry_item_location }}</label>
    639                 <div class="col-sm-10">
    640                   <input type="text" name="location" id="location" class="form-control" />
    641                   <span class="help-block">{{ text_item_location_help }}</span> </div>
    642               </div>
    643               <div class="form-group">
    644                 <label class="col-sm-2 control-label">{{ entry_despatch_country }}</label>
    645                 <div class="col-sm-10">
    646                   <select name="country" id="country" class="form-control">
    647                     {% for countries in setting.countries %}
    648                       <option value="{{ country.code }}">{{ country.name }}</option>
    649                     {% endfor %}
    650                   </select>
    651                   <span class="help-block">{{ text_despatch_country_help }}</span> </div>
    652               </div>
    653               <div class="form-group">
    654                 <label class="col-sm-2 control-label">{{ entry_despatch_time }}</label>
    655                 <div class="col-sm-10">
    656                   <select name="dispatch_time" id="dispatch_time" class="form-control">
    657                     {% for dispatch_time in setting.dispatch_times %}
    658                     <option value="{{ dispatch_time.DispatchTimeMax }}">{{ dispatch_time.Description }}</option>
    659                     {% endfor %}
    660                   </select>
    661                 </div>
    662               </div>
    663               <div class="form-group">
    664                 <label class="col-sm-2 control-label">{{ entry_shipping_getitfast }}</label>
    665                 <div class="col-sm-10">
    666                   <input type="hidden" name="get_it_fast" value="0" />
    667                   <input type="checkbox" name="get_it_fast" value="1" id="get_it_fast" />
    668                 </div>
    669               </div>
    670               {% if setting.listing_restrictions.eligible_for_pickup_dropoff == 1 %}
    671               <div class="form-group" id="eligible_for_pickup_dropoff_container">
    672                 <label class="col-sm-2 control-label">{{ entry_shipping_pickupdropoff }}</label>
    673                 <div class="col-sm-10">
    674                   <input type="hidden" name="eligible_for_pickup_dropoff" value="0" />
    675                   <input type="checkbox" name="eligible_for_pickup_dropoff" value="1" id="eligible_for_pickup_dropoff" />
    676                 </div>
    677               </div>
    678               {% endif %}
    679               {% if setting.listing_restrictions.eligible_for_pickup_instore == 1 %}
    680               <div class="form-group">
    681                 <label class="col-sm-2 control-label">{{ entry_shipping_pickupinstore }}</label>
    682                 <div class="col-sm-10">
    683                   <input type="hidden" name="eligible_for_pickup_instore" value="0" />
    684                   <input type="checkbox" name="eligible_for_pickup_instore" value="1" id="eligible_for_pickup_instore" />
    685                 </div>
    686               </div>
    687               {% endif %}
    688               {% if setting.listing_restrictions.global_shipping == 1 %}
    689               <div class="form-group" id="global_shipping_container">
    690                 <label class="col-sm-2 control-label">{{ entry_shipping_global_shipping }}</label>
    691                 <div class="col-sm-10">
    692                   <input type="hidden" name="global_shipping" value="0" />
    693                   <input type="checkbox" name="global_shipping" value="1" id="global_shipping" />
    694                 </div>
    695               </div>
    696               {% endif %}
    697               {% if product.defaults.cod_surcharge == 1 %}
    698                 <div class="form-group">
    699                   <label class="col-sm-2 control-label">{{ entry_shipping_cod }}</label>
    700                   <div class="col-sm-10">
    701                     <input type="text" name="cod_fee" id="cod_fee" class="form-control" />
    702                   </div>
    703                 </div>
    704               {% endif %}
    705               <div class="form-group">
    706                 <label class="col-sm-2 control-label">{{ entry_shipping_type_nat }}</label>
    707                 <div class="col-sm-10">
    708                   <select name="data[national][shipping_type]" class="form-control" id="shipping-type-national">
    709                     {% if setting.shipping_types.flat == 1 %}<option value="flat"{% if data.national.shipping_type == "flat" %} selected{% endif %}>{{ text_shipping_flat }}</option>{% endif %}
    710                     {% if setting.shipping_types.calculated == 1 %}<option value="calculated"{% if data.national.shipping_type == "calculated" %} selected{% endif %}>{{ text_shipping_calculated }}</option>{% endif %}
    711                     {% if setting.shipping_types.freight == 1 %}<option value="freight"{% if data.national.shipping_type == "freight" %} selected{% endif %}>{{ text_shipping_freight }}</option>{% endif %}
    712                    </select>
    713                 </div>
    714               </div>
    715               <div class="form-group">
    716                 <label class="col-sm-2 control-label"><span data-toggle="tooltip" title="{{ help_shipping_promotion_discount }}">{{ entry_shipping_promotion_discount }}</span></label>
    717                 <div class="col-sm-10">
    718                   <input type="hidden" name="promotional_shipping_discount" value="0" />
    719                   <input type="checkbox" name="promotional_shipping_discount" value="1" id="promotional_shipping_discount" />
    720                 </div>
    721               </div>
    722               <div id="national-container-flat" style="display:none;" class="shipping-national-container">
    723                 <div class="form-group">
    724                   <div class="col-sm-2">
    725                     <div class="row">
    726                       <div class="col-sm-12 text-right">
    727                         <p>
    728                           <label class="control-label text-right">{{ entry_shipping_nat }}</label>
    729                         </p>
    730                       </div>
    731                     </div>
    732                     <div class="row">
    733                       <div class="col-sm-12 text-right">
    734                         <p><a class="btn btn-primary" onclick="addShipping('national', 'flat');" id="add-national-flat"><i class="fa fa-plus-circle"></i> {{ button_add }}</a></p>
    735                       </div>
    736                     </div>
    737                   </div>
    738                   <div class="col-sm-10">
    739                     <div class="row">
    740                       <div class="col-sm-12" id="options-national-flat"></div>
    741                     </div>
    742                   </div>
    743                 </div>
    744               </div>
    745               <div id="national-container-calculated" style="display:none;" class="shipping-national-container">
    746                 <div class="form-group">
    747                   <label class="col-sm-2 control-label">{{ entry_shipping_handling_nat }}</label>
    748                   <div class="col-sm-10">
    749                     <input type="text" name="data[national][calculated][handling_fee]" id="national-handling-fee" class="form-control" />
    750                   </div>
    751                 </div>
    752                 <div class="form-group">
    753                   <div class="col-sm-2">
    754                     <div class="row">
    755                       <div class="col-sm-12 text-right">
    756                         <p>
    757                           <label class="control-label text-right">{{ entry_shipping_nat }}</label>
    758                         </p>
    759                       </div>
    760                     </div>
    761                     <div class="row">
    762                       <div class="col-sm-12 text-right">
    763                         <p><a class="btn btn-primary" onclick="addShipping('national', 'calculated');" id="add-national-calculated"><i class="fa fa-plus-circle"></i> {{ button_add }}</a></p>
    764                       </div>
    765                     </div>
    766                   </div>
    767                   <div class="col-sm-10">
    768                     <div class="row">
    769                       <div class="col-sm-12" id="options-national-calculated"></div>
    770                     </div>
    771                   </div>
    772                 </div>
    773               </div>
    774               <div id="national-container-freight" style="display:none;" class="shipping-national-container">
    775                 <div class="form-group">
    776                   <label class="col-sm-2 control-label">{{ entry_shipping_in_desc }}</label>
    777                   <div class="col-sm-10">
    778                     <input type="hidden" name="data[national][freight][in_description]" value="0" />
    779                     <input type="checkbox" name="data[national][freight][in_description]" value="1" />
    780                   </div>
    781                 </div>
    782               </div>
    783               <div class="form-group">
    784                 <label class="col-sm-2 control-label">{{ entry_shipping_type_int }}</label>
    785                 <div class="col-sm-10">
    786                   <select name="data[international][shipping_type]" class="form-control" id="shipping-type-international">
    787                     {% if setting.shipping_types.flat == 1 %}<option value="flat"{% if data.international.shipping_type == "flat" %} selected{% endif %}>{{ text_shipping_flat }}</option>{% endif %}
    788                     {% if setting.shipping_types.calculated == 1 %}<option value="calculated"{% if data.international.shipping_type == "calculated" %} selected{% endif %}>{{ text_shipping_calculated }}</option>{% endif %}
    789                   </select>
    790                 </div>
    791               </div>
    792               <div class="form-group">
    793                 <label class="col-sm-2 control-label"><span data-toggle="tooltip" title="{{ help_shipping_promotion_discount_international }}">{{ entry_shipping_promotion_discount_international }}</span></label>
    794                 <div class="col-sm-10">
    795                   <input type="hidden" name="promotional_shipping_discount_international" value="0" />
    796                   <input type="checkbox" name="promotional_shipping_discount_international" value="1" id="promotional_shipping_discount_international" />
    797                 </div>
    798               </div>
    799               <div id="international-container-flat" style="display:none;" class="shipping-international-container">
    800                 <div class="form-group">
    801                   <div class="col-sm-2">
    802                     <div class="row">
    803                       <div class="col-sm-12 text-right">
    804                         <p>
    805                           <label class="control-label text-right">{{ entry_shipping_intnat }}</label>
    806                         </p>
    807                       </div>
    808                     </div>
    809                     <div class="row">
    810                       <div class="col-sm-12 text-right">
    811                         <p><a class="btn btn-primary" onclick="addShipping('international', 'flat');" id="add-international-flat"><i class="fa fa-plus-circle"></i> {{ button_add }}</a></p>
    812                       </div>
    813                     </div>
    814                   </div>
    815                   <div class="col-sm-10">
    816                     <div class="row">
    817                       <div class="col-sm-12" id="options-international-flat"></div>
    818                     </div>
    819                   </div>
    820                 </div>
    821               </div>
    822               <div id="international-container-calculated" style="display:none;" class="shipping-international-container">
    823                 <div class="form-group">
    824                   <label class="col-sm-2 control-label">{{ entry_shipping_handling_int }}</label>
    825                   <div class="col-sm-10">
    826                     <input type="text" name="data[international][calculated][handling_fee]" id="international-handling-fee" class="form-control" />
    827                   </div>
    828                 </div>
    829                 <div class="form-group">
    830                   <div class="col-sm-2">
    831                     <div class="row">
    832                       <div class="col-sm-12 text-right">
    833                         <p>
    834                           <label class="control-label text-right">{{ entry_shipping_intnat }}</label>
    835                         </p>
    836                       </div>
    837                     </div>
    838                     <div class="row">
    839                       <div class="col-sm-12 text-right">
    840                         <p><a class="btn btn-primary" onclick="addShipping('international', 'calculated');" id="add-international-calculated"><i class="fa fa-plus-circle"></i> {{ button_add }}</a></p>
    841                       </div>
    842                     </div>
    843                   </div>
    844                   <div class="col-sm-10">
    845                     <div class="row">
    846                       <div class="col-sm-12" id="options-international-calculated"></div>
    847                     </div>
    848                   </div>
    849                 </div>
    850               </div>
    851               <div class="well">
    852                 <div class="row form-group">
    853                   <div class="col-sm-3">
    854                     <label class="control-label">{{ text_unit }}</label>
    855                     <select name="package[unit]" class="form-control" id="measure-unit">
    856                       {% for measurement_types in setting.measurement_types %}
    857                         <option value="{{ measurement_key }}"{% if product.defaults.ebay_measurement == measurement_key %} selected{% endif %}>{{ measurement_value }}</option>
    858                       {% endfor %}
    859                     </select>
    860                   </div>
    861                   <div class="col-sm-6">
    862                     <div class="row">
    863                       <div class="col-sm-6">
    864                         <label class="control-label">{{ text_weight_major }}</label>
    865                         <div class="input-group col-xs-12">
    866                           <input type="text" name="package[weight_major]" class="form-control" value="{{ product.weight_major }}">
    867                           <span class="input-group-addon" id="weight-major-text"></span> </div>
    868                       </div>
    869                       <div class="col-sm-6">
    870                         <label class="control-label">{{ text_weight_minor }}</label>
    871                         <div class="input-group col-xs-12">
    872                           <input type="text" name="package[weight_minor]" class="form-control" value="{{ product.weight_minor }}">
    873                           <span class="input-group-addon" id="weight-minor-text"></span> </div>
    874                       </div>
    875                     </div>
    876                   </div>
    877                   {% if setting.package_type is not empty %}
    878                     <div class="col-sm-3">
    879                       <label class="control-label">{{ text_package }}</label>
    880                       <select name="package[package]" class="form-control">
    881                         {% for package_type in setting.package_type %}
    882                         <option value="{{ package_type.code }}"{% if package_type.default == 1 %} selected{% endif %}>{{ package_type.description }}</option>
    883                         {% endfor %}
    884                       </select>
    885                     </div>
    886                   {% endif %}
    887                 </div>
    888                 <div class="row form-group">
    889                   <div class="col-sm-3">
    890                     <label class="control-label">{{ text_depth }}</label>
    891                     <div class="input-group col-xs-12">
    892                       <input type="text" name="package[depth]" class="form-control" value="{{ product.height }}">
    893                       <span class="input-group-addon size-unit-text"></span>
    894                     </div>
    895                   </div>
    896                   <div class="col-sm-3">
    897                     <label class="control-label">{{ text_length }}</label>
    898                     <div class="input-group col-xs-12">
    899                       <input type="text" name="package[length]" class="form-control" value="{{ product.length }}">
    900                       <span class="input-group-addon size-unit-text"></span>
    901                     </div>
    902                   </div>
    903                   <div class="col-sm-3">
    904                     <label class="control-label">{{ text_width }}</label>
    905                     <div class="input-group col-xs-12">
    906                       <input type="text" name="package[width]" class="form-control" value="{{ product.width }}">
    907                       <span class="input-group-addon size-unit-text"></span>
    908                     </div>
    909                   </div>
    910                   <div class="col-sm-3">
    911                     <label class="control-label">{{ text_shape }}</label>
    912                     <select name="package[irregular]" class="form-control">
    913                       <option value="0">{{ text_no }}</option>
    914                       <option value="1">{{ text_yes }}</option>
    915                     </select>
    916                   </div>
    917                 </div>
    918               </div>
    919             </div>
    920             <div id="tab-listing-returns" class="tab-pane">
    921               <div class="well well-lg">
    922                 <div class="row">
    923                   <label class="col-sm-2 control-label">{{ entry_profile_load }}<br />
    924                   <span id="profile-returns-loading" style="display: none;"><a class="btn btn-info" disabled="disabled"><i class="fa fa-cog fa-lg fa-spin"></i></a></span>
    925                   </label>
    926                   <div class="col-sm-10">
    927                     <div class="input-group"> <span class="input-group-addon" id="profile-return-icon"><i class="fa fa-lg fa-file-text"></i></span>
    928                       <select name="profile_return" id="profile-return-input" class="form-control">
    929                         <option value="def">{{ text_select }}</option>
    930                         {% for profile in product.profiles_returns %}
    931                           <option value="{{ profile.ebay_profile_id }}">{{ profile.name }}</option>
    932                         {% endfor %}
    933                       </select>
    934                     </div>
    935                   </div>
    936                 </div>
    937               </div>
    938               {% if setting.returns.accepted is not empty %}
    939               <div class="form-group">
    940                 <label class="col-sm-2 control-label">{{ text_return_accepted }}</label>
    941                 <div class="col-sm-10">
    942                   <select name="returns_accepted" id="returns_accepted" class="form-control">
    943                     {% for returns_option in setting.returns.accepted %}
    944                       <option value="{{ returns_option.ReturnsAcceptedOption }}">{{ returns_option.Description }}</option>
    945                     {% endfor %}
    946                   </select>
    947                 </div>
    948               </div>
    949               {% endif %}
    950               {% if setting.returns.within is not empty %}
    951               <div class="form-group">
    952                 <label class="col-sm-2 control-label">{{ text_return_days }}</label>
    953                 <div class="col-sm-10">
    954                   <select name="returns_within" id="returns_within" class="form-control">
    955                     {% for returns_option in setting.returns.within %}
    956                       <option value="{{ returns_option.ReturnsWithinOption }}">{{ returns_option.Description }}</option>
    957                     {% endfor %}
    958                   </select>
    959                 </div>
    960               </div>
    961               {% endif %}
    962               {% if setting.returns.paidby is not empty %}
    963               <div class="form-group">
    964                 <label class="col-sm-2 control-label">{{ text_return_scosts }}</label>
    965                 <div class="col-sm-10">
    966                   <select name="returns_shipping" id="returns_shipping" class="form-control">
    967                     {% for returns_option in setting.returns.paidby %}
    968                       <option value="{{ returns_option.ShippingCostPaidByOption }}">{{ returns_option.Description }}</option>
    969                     {% endfor %}
    970                   </select>
    971                 </div>
    972               </div>
    973               {% endif %}
    974               {% if setting.returns.refund is not empty %}
    975               <div class="form-group">
    976                 <label class="col-sm-2 control-label">{{ text_return_type }}</label>
    977                 <div class="col-sm-10">
    978                   <select name="returns_option" id="returns_option" class="form-control">
    979                     {% for returns_option in setting.returns.refund %}
    980                       <option value="{{ returns_option.RefundOption }}">{{ returns_option.Description }}</option>
    981                     {% endfor %}
    982                   </select>
    983                 </div>
    984               </div>
    985               {% endif %}
    986               {% if setting.returns.description == true %}
    987               <div class="form-group">
    988                 <label class="col-sm-2 control-label">{{ text_return_policy }}</label>
    989                 <div class="col-sm-10">
    990                   <textarea name="return_policy" class="form-control" rows="3" id="return_policy"></textarea>
    991                 </div>
    992               </div>
    993               {% endif %}
    994               {% if setting.returns.restocking_fee is not empty %}
    995               <div class="form-group">
    996                 <label class="col-sm-2 control-label">{{ text_return_restock }}</label>
    997                 <div class="col-sm-10">
    998                   <select name="returns_restocking_fee" id="returns_restocking_fee" class="form-control">
    999                     {% for returns_option in setting.returns.restocking_fee %}
   1000                       <option value="{{ returns_option.RestockingFeeValueOption }}">{{ returns_option.Description }}</option>
   1001                     {% endfor %}
   1002                   </select>
   1003                 </div>
   1004               </div>
   1005               {% endif %}
   1006             </div>
   1007             <div class="well">
   1008               <div class="row">
   1009                 <div class="col-sm-12 text-right"> <a class="btn btn-primary" id="button-verify"><span>{{ text_verify }}</span></a> </div>
   1010               </div>
   1011             </div>
   1012           </div>
   1013         </form>
   1014       </div>
   1015       <div class="panel-body" style="display: none;" id="page-review">
   1016         <div class="alert alert-info" id="listing-fee-container"></div>
   1017         <div class="well">
   1018           <div class="row">
   1019             <div class="col-sm-6 text-left"> <a class="btn btn-primary" target="_BLANK" id="button-preview" style="display:none;"><i class="fa fa-external-link fa-lg"></i> {{ text_preview }}</a> <a class="btn btn-primary" id="button-edit"><i class="fa fa-pencil fa-lg"></i> {{ text_review_edit }}</a> </div>
   1020             <div class="col-sm-6 text-right"> <a class="btn btn-primary" id="button-save"><i class="fa fa-save fa-lg"></i> {{ button_save }}</a> </div>
   1021           </div>
   1022         </div>
   1023       </div>
   1024       <div class="panel-body" style="display: none;" id="page-complete">
   1025         <div class="alert alert-success alert-dismissible">{{ text_created_msg }}: <span id="item-number"></span></div>
   1026         <div class="well">
   1027           <div class="row">
   1028             <div class="col-sm-6 text-left"> <a class="btn btn-primary" id="button-view" target="_BLANK"><i class="fa fa-external-link fa-lg"></i> {{ button_view }}</a> <a class="btn btn-primary" href="{{ product.edit_link }}"><i class="fa fa-pencil fa-lg"></i> {{ button_edit }}</a> </div>
   1029             <div class="col-sm-6 text-right"> <a class="btn btn-primary" href="{{ cancel }}"><i class="fa fa-reply fa-lg"></i> {{ text_return }}</a> </div>
   1030           </div>
   1031         </div>
   1032       </div>
   1033       <div class="panel-body" style="display: none;" id="page-failed">
   1034         <div class="alert alert-danger alert-dismissible">
   1035           <h5>{{ text_failed_title }}</h5>
   1036           <p>{{ text_failed_msg1 }}</p>
   1037           <ul>
   1038             <li>{{ text_failed_li1 }}</li>
   1039             <li>{{ text_failed_li2 }}</li>
   1040             <li>{{ text_failed_li3 }}</li>
   1041           </ul>
   1042           <p>{{ text_failed_contact }}</p>
   1043         </div>
   1044       </div>
   1045     </div>
   1046   </div>
   1047 </div>
   1048   <link href="view/javascript/codemirror/lib/codemirror.css" rel="stylesheet" />
   1049   <link href="view/javascript/codemirror/theme/monokai.css" rel="stylesheet" />
   1050   <script type="text/javascript" src="view/javascript/codemirror/lib/codemirror.js"></script> 
   1051   <script type="text/javascript" src="view/javascript/codemirror/lib/xml.js"></script> 
   1052   <script type="text/javascript" src="view/javascript/codemirror/lib/formatting.js"></script> 
   1053   
   1054 <script type="text/javascript" src="view/javascript/summernote/summernote.js"></script>
   1055 <link href="view/javascript/summernote/summernote.css" rel="stylesheet" />
   1056 <script type="text/javascript" src="view/javascript/summernote/summernote-image-attributes.js"></script>
   1057 <script type="text/javascript" src="view/javascript/summernote/opencart.js"></script>
   1058 <script type="text/javascript"><!--
   1059   function updateReserveMessage(elementId, total) {
   1060       var reserve = total - $('#qty_'+elementId).val();
   1061       $('#qty_reserve_'+elementId).text(reserve);
   1062   }
   1063 
   1064   function getSuggestedCategories() {
   1065         var qry = $('#name').val();
   1066         $.ajax({
   1067             url: 'index.php?route=extension/openbay/ebay/getSuggestedCategories&user_token={{ user_token }}&qry='+qry,
   1068             type: 'GET',
   1069             dataType: 'json',
   1070             success: function(data) {
   1071                 if (data.error == false) {
   1072                     var html_inj = '';
   1073                         if (data.data) {
   1074                             html_inj += '<p><input type="radio" name="suggested" value="" id="suggested_default" checked="checked"/> <strong>{{ text_none }}</strong></p>';
   1075 
   1076                             data.data = $.makeArray(data.data);
   1077 
   1078                             $.each(data.data, function(key,val) {
   1079                                 if (val.percent != 0) {
   1080                                     html_inj += '<p><input type="radio" class="suggested_category" name="suggested" value="'+val.id+'" /> ('+val.percent+'% match) '+val.name+'</p>';
   1081                                 }
   1082                             });
   1083 
   1084                             $('#category-suggested-row').fadeIn();
   1085                         }
   1086 
   1087                         $('#suggested-cats').html(html_inj);
   1088                         $('input[name=suggested]').bind('change', function() {
   1089 
   1090                         if ($(this).val() != '') {
   1091                             categorySuggestedChange($(this).val());
   1092                         }
   1093                     });
   1094 
   1095                   $('.suggested_category').bind('click', function() {
   1096                     $('#category-selections-row').hide();
   1097 
   1098                     $('input[name=popular]').removeAttr('checked');
   1099 
   1100                     if($('#category-popular-row').length != 0) {
   1101                       $('#category-popular-row').hide();
   1102                     }
   1103 
   1104                     $('#popular_default').prop('checked', true);
   1105                   });
   1106 
   1107                   $('.popular-category').bind('click', function() {
   1108                     $('#category-selections-row').hide();
   1109 
   1110                     $('input[name=suggested]').removeAttr('checked');
   1111 
   1112                     if($('#category-suggested-row').length != 0) {
   1113                       $('#category-suggested-row').hide();
   1114                     }
   1115 
   1116                     $('#suggested_default').prop('checked', true);
   1117                   });
   1118 
   1119                   $('#suggested_default').bind('click', function() {
   1120                     $('#category-selections-row').show();
   1121 
   1122                     if($('#category-suggested-row').length != 0) {
   1123                       $('#category-suggested-row').show();
   1124                     }
   1125 
   1126                     if($('#category-popular-row').length != 0) {
   1127                       $('#category-popular-row').show();
   1128                     }
   1129 
   1130                     $('#show-feature-element').hide();
   1131                     $('#product-catalog-container').hide();
   1132                     $('#feature-content').empty();
   1133                     $('#specifics').empty();
   1134                     $('input[name=popular]').removeAttr('checked');
   1135                     $('#popular_default').prop('checked', true);
   1136                   });
   1137                 } else {
   1138                     alert(data.msg);
   1139                 }
   1140             },
   1141             error: function (xhr, ajaxOptions, thrownError) {
   1142               if (xhr.status != 0) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); }
   1143             }
   1144         });
   1145     }
   1146 
   1147   function categoryFavChange(id) {
   1148         loadCategories(1, true);
   1149         $('#final-category').val(id);
   1150         getCategoryFeatures(id);
   1151     }
   1152 
   1153   function categorySuggestedChange(id) {
   1154         loadCategories(1, true);
   1155         $('#final-category').val(id);
   1156         getCategoryFeatures(id);
   1157     }
   1158 
   1159   function loadCategories(level, skip) {
   1160         level = parseInt(level);
   1161 
   1162         $('#show-feature-element').hide();
   1163         $('#product-catalog-container').hide();
   1164         $('#feature-content').empty();
   1165         $('#specifics').empty();
   1166         $('.category-select-group').removeClass('has-success');
   1167 
   1168         if (level == 1) {
   1169             var parent = '';
   1170         } else {
   1171             var previous_level = level - 1;
   1172             var parent = $('#category-select-' + previous_level).val();
   1173             $('#popular_default').attr('checked', true);
   1174         }
   1175 
   1176         var count_i = level;
   1177 
   1178         while(count_i <= 6) {
   1179             $('#category-select-' + count_i + '-container').hide();
   1180             $('#category-select-' + count_i).empty();
   1181             count_i++;
   1182         }
   1183 
   1184         $('#category-select-' + previous_level + '-loading').html('<i class="fa fa-check fa-lg"></i>');
   1185         $('#category-select-' + level).prop('disabled', true);
   1186         $('#category-select-' + level + '-loading').html('<i class="fa fa-cog fa-lg fa-spin"></i>');
   1187         $('#category-select-' + level + '-container').show();
   1188 
   1189         $.ajax({
   1190             url: 'index.php?route=extension/openbay/ebay/getCategories&user_token={{ user_token }}&parent='+parent,
   1191             type: 'POST',
   1192             dataType: 'json',
   1193             success: function(data) {
   1194                 if (data.items != null) {
   1195                     $('#category-select-' + level).empty().append('<option disabled selected>{{ text_select }}</option>');
   1196 
   1197                     data.cats = $.makeArray(data.cats);
   1198 
   1199                     $.each(data.cats, function(key, val) {
   1200                         if (val.CategoryID != parent) {
   1201                             $('#category-select-' + level).append('<option value="'+val.CategoryID+'">'+val.CategoryName+'</option>');
   1202                         }
   1203                     });
   1204 
   1205                     if (skip != true) {
   1206                         $('#final-category').val('');
   1207                     }
   1208 
   1209                   $('#category-select-' + level + '-loading').html('<i class="fa fa-angle-right fa-lg" ></i>');
   1210                   $('#category-select-' + level).prop('disabled', false);
   1211                 } else {
   1212                     $('#category-select-' + level + '-container').hide();
   1213                     if (data.error) {
   1214                         alert(data.error);
   1215                         $('#button-verify').hide();
   1216                         $('#content').prepend('<div class="alert alert-warning">{{ error_category_sync }}</div>');
   1217                         $('#page-listing, .heading').hide();
   1218                     } else {
   1219                         $('#final-category').val($('#category-select-' + previous_level).val());
   1220                         //$('#category-select-' + level + '-loading').html('<i class="fa fa-check fa-lg"></i>');
   1221                         $('.category-select-group').addClass('has-success');
   1222                         getCategoryFeatures($('#category-select-'+previous_level).val());
   1223                     }
   1224                 }
   1225             },
   1226             error: function (xhr, ajaxOptions, thrownError) {
   1227               if (xhr.status != 0) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); }
   1228             }
   1229         });
   1230     }
   1231 
   1232   function getCategoryFeatures(cat) {
   1233         itemFeatures(cat);
   1234 
   1235         $('#duration-container').show();
   1236         $('#duration-input').empty().prop('disabled', true);
   1237         $('.duration-select-group').removeClass('has-success');
   1238         $('#duration-loading').html('<i class="fa fa-cog fa-lg fa-spin"></i>');
   1239 
   1240         $('#compatibility-content').empty();
   1241         $('#listing-compatibility').hide();
   1242 
   1243         $('#condition-container').show();
   1244         $('#condition-input').empty().prop('disabled', true);
   1245         $('.condition-select-group').removeClass('has-success');
   1246         $('#condition-loading').html('<i class="fa fa-cog fa-lg fa-spin"></i>');
   1247 
   1248         $('#vrm-input-container').remove();
   1249         $('#vin-input-container').remove();
   1250 
   1251         $('#product_identifier_container').hide();
   1252         $('.product_identifier_required').val('0');
   1253 
   1254         $.ajax({
   1255             url: 'index.php?route=extension/openbay/ebay/getCategoryFeatures&user_token={{ user_token }}&category='+cat,
   1256             type: 'GET',
   1257             dataType: 'json',
   1258             success: function(data) {
   1259                 if (data.error == false) {
   1260                     var html_inj = '';
   1261                     listingDuration(data.data.durations);
   1262 
   1263                     if (typeof data.data.global_shipping_enabled !== undefined && data.data.global_shipping_enabled === true) {
   1264                       $('#global_shipping_container').show();
   1265                     } else {
   1266                       $('#global_shipping_container').hide();
   1267                       $('#global_shipping').prop('checked', false);
   1268                     }
   1269 
   1270                     if (typeof data.data.pickup_dropoff_enabled !== undefined && data.data.pickup_dropoff_enabled === true) {
   1271                       $('#eligible_for_pickup_dropoff_container').show();
   1272                     } else {
   1273                       $('#eligible_for_pickup_dropoff_container').hide();
   1274                       $('#eligible_for_pickup_dropoff').prop('checked', false);
   1275                     }
   1276 
   1277                     if (data.data.maxshipping != false) {
   1278                         $('#maxShippingAlert').append(data.data.maxshipping).show();
   1279                     }
   1280 
   1281                     if (data.data.conditions && data.data.conditions != '') {
   1282                       data.data.conditions = $.makeArray(data.data.conditions);
   1283 
   1284                       html_inj += '<option disabled selected></option>';
   1285 
   1286                       $.each(data.data.conditions, function(key, val) {
   1287                           html_inj += '<option value='+val.id+'>'+val.name+'</option>';
   1288                       });
   1289 
   1290                       $('#condition-input').empty().html(html_inj).show().prop('disabled', false);
   1291                       $('#condition-loading').html('<i class="fa fa-angle-right fa-lg"></i>');
   1292                     } else {
   1293                       $('#condition-container').hide();
   1294                     }
   1295 
   1296                     if (data.data.item_compatibility.enabled == 1) {
   1297                       $('#listing-compatibility').show();
   1298                       $('#compatibility-loading').show();
   1299                       getCompatibilityNames(cat);
   1300                     }
   1301 
   1302                   if (data.data.vrm_identifier === true) {
   1303                     html_inj = '<div class="form-group" id="vrm-input-container">';
   1304                     html_inj += '<label class="col-sm-2 control-label">{{ entry_vrm }}</label>';
   1305                     html_inj += '<div class="col-sm-10">';
   1306                     html_inj += '<input class="form-control" type="text" size="85" placeholder="{{ entry_vrm }}" name="vrm">';
   1307                     html_inj += '</div>';
   1308                     html_inj += '</div>';
   1309                     $('#tab-listing-description').prepend(html_inj);
   1310                   }
   1311 
   1312                   if (data.data.vin_identifier === true) {
   1313                     html_inj = '<div class="form-group" id="vin-input-container">';
   1314                     html_inj += '<label class="col-sm-2 control-label">{{ entry_vin }}</label>';
   1315                     html_inj += '<div class="col-sm-10">';
   1316                     html_inj += '<input class="form-control" type="text" size="85" placeholder="{{ entry_vin }}" name="vrm">';
   1317                     html_inj += '</div>';
   1318                     html_inj += '</div>';
   1319                     $('#tab-listing-description').prepend(html_inj);
   1320                   }
   1321 
   1322                   if (data.data.ean_identifier_requirement != '') {
   1323                     $('#product_identifier_container').show();
   1324                     $('#product_identifier_ean_container').show();
   1325 
   1326                     if (data.data.ean_identifier_requirement == 'Required') {
   1327                       $('#identifier_ean_required').val(1);
   1328                     }
   1329                   }
   1330 
   1331                   if (data.data.isbn_identifier_requirement != '') {
   1332                     $('#product_identifier_container').show();
   1333                     $('#product_identifier_isbn_container').show();
   1334 
   1335                     if (data.data.isbn_identifier_requirement == 'Required') {
   1336                       $('#identifier_isbn_required').val(1);
   1337                     }
   1338                   }
   1339 
   1340                   if (data.data.upc_identifier_requirement != '') {
   1341                     $('#product_identifier_container').show();
   1342                     $('#product_identifier_upc_container').show();
   1343 
   1344                     if (data.data.upc_identifier_requirement == 'Required') {
   1345                       $('#identifier_upc_required').val(1);
   1346                     }
   1347                   }
   1348                 } else {
   1349                     if (data.msg == null) {
   1350                         alert('{{ error_features }}');
   1351                     } else {
   1352                         alert(data.msg);
   1353                     }
   1354                 }
   1355             },
   1356             error: function (xhr, ajaxOptions, thrownError) {
   1357               if (xhr.status != 0) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); }
   1358             }
   1359         });
   1360     }
   1361 
   1362   function getCompatibilityNames(category_id) {
   1363     $.ajax({
   1364       url: 'index.php?route=extension/openbay/ebay/getPartsCompatibilityOptions&user_token={{ user_token }}&category_id='+category_id,
   1365       type: 'GET',
   1366       dataType: 'json',
   1367       success: function(data) {
   1368         var compatibility_html = '<input type="hidden" id="compatibility-data-count" value="'+data.options_count+'" />';
   1369         var compatibility_option_1 = '';
   1370 
   1371         $.each(data.options, function(option_key, option_value) {
   1372           compatibility_html += '<div class="form-group"  id="compatibility-data-'+option_value.sequence+'-container">';
   1373             compatibility_html += '<label class="col-sm-2 control-label pull-left">'+option_value.display_name+'</label>';
   1374             compatibility_html += '<input type="hidden" id="compatibility-data-'+option_value.sequence+'-sequence" value="'+option_value.sequence+'" />';
   1375             compatibility_html += '<input type="hidden" id="compatibility-data-'+option_value.sequence+'-name" value="'+option_value.name+'" />';
   1376             compatibility_html += '<div class="col-sm-8">';
   1377               compatibility_html += '<div class="input-group">';
   1378                 compatibility_html += '<span class="input-group-addon" id="compatibility-data-' + option_value.sequence + '-loading-icon"><i class="fa fa-angle-right fa-lg" ></i></span>';
   1379                 compatibility_html += '<select id="compatibility-data-'+option_value.sequence+'" class="form-control compatibility-data" disabled></select>';
   1380               compatibility_html += '</div>';
   1381             compatibility_html += '</div>';
   1382           compatibility_html += '</div>';
   1383 
   1384           if (option_value.sequence == 1) {
   1385             compatibility_option_1 = option_value.name;
   1386           }
   1387         });
   1388 
   1389         $('#compatibility-loading').hide();
   1390         $('#compatibility-content').html(compatibility_html).show();
   1391         getCompatibilityValues(category_id, compatibility_option_1, 1);
   1392       },
   1393       error: function (xhr, ajaxOptions, thrownError) {
   1394         if (xhr.status != 0) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); }
   1395       }
   1396     });
   1397   }
   1398 
   1399   function getCompatibilityValues(category_id, option_name, sequence_id) {
   1400     var property_filter = [];
   1401     var property_filter_obj = [];
   1402 
   1403     if (parseInt(sequence_id) > 1) {
   1404       var sequence_id_count_loop = parseInt(sequence_id) - parseInt(1);
   1405 
   1406       $('#compatibility-data-' + sequence_id_count_loop + '-loading-icon').html('<i class="fa fa-check fa-lg"></i>');
   1407 
   1408       // get all of the parent filter choices
   1409       while (sequence_id_count_loop >= 1) {
   1410         property_filter_obj = {
   1411           'property_filter_name' : $('#compatibility-data-'+sequence_id_count_loop+'-name').val(),
   1412           'property_filter_value' : $('#compatibility-data-'+sequence_id_count_loop).val()
   1413         };
   1414 
   1415         property_filter.push(property_filter_obj);
   1416 
   1417         sequence_id_count_loop--;
   1418       }
   1419     }
   1420 
   1421     $('#compatibility-data-' + sequence_id + '-loading-icon').html('<i class="fa fa-cog fa-lg fa-spin"></i>');
   1422 
   1423     $.ajax({
   1424       url: 'index.php?route=extension/openbay/ebay/getPartsCompatibilityValues&user_token={{ user_token }}&category_id='+category_id+'&option_name='+option_name,
   1425       type: 'POST',
   1426       data: { "filters" : property_filter },
   1427       dataType: "json",
   1428       before: function() {
   1429         $('#compatibility-data-' + sequence_id).empty().prop('disabled', true).show();
   1430         $('#compatibility-data-' + sequence_id + '-container').show();
   1431       },
   1432       success: function(data) {
   1433         $('#compatibility-data-' + sequence_id).append('<option disabled selected>{{ text_select }}</option>');
   1434 
   1435         $.each(data.options.values, function(option_key, option_value) {
   1436           $('#compatibility-data-' + sequence_id).append('<option>'+option_value+'</option>');
   1437         });
   1438 
   1439         $('#compatibility-data-' + sequence_id).prop('disabled', false);
   1440         $('#compatibility-data-' + sequence_id + '-loading-icon').html('<i class="fa fa-angle-right fa-lg" ></i>');
   1441       },
   1442       error: function (xhr, ajaxOptions, thrownError) {
   1443         if (xhr.status != 0) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); }
   1444       }
   1445     });
   1446   }
   1447 
   1448   $('#identifier_not_required').on("click", function() {
   1449     var not_required_text = "{{ setting.product_details.product_identifier_unavailable_text }}";
   1450 
   1451     if ($('#identifier_not_required:checked').length == 1) {
   1452       if ($('#identifier_ean_required').val() == 1) {
   1453         $('#identifier_ean').val(not_required_text);
   1454       }
   1455       if ($('#identifier_isbn_required').val() == 1) {
   1456         $('#identifier_isbn').val(not_required_text);
   1457       }
   1458       if ($('#identifier_upc_required').val() == 1) {
   1459         $('#identifier_upc').val(not_required_text);
   1460       }
   1461     } else {
   1462       if ($('#identifier_ean_required').val() == 1) {
   1463         $('#identifier_ean').val($('#identifier_ean_original').val());
   1464       }
   1465       if ($('#identifier_isbn_required').val() == 1) {
   1466         $('#identifier_isbn').val($('#identifier_isbn_original').val());
   1467       }
   1468       if ($('#identifier_upc_required').val() == 1) {
   1469         $('#identifier_upc').val($('#identifier_upc_original').val());
   1470       }
   1471     }
   1472   });
   1473 
   1474   $(document).on("change", '.compatibility-data', function() {
   1475     $('#compatibility-content-add').hide();
   1476 
   1477     var category_id = $('#final-category').val();
   1478     var element_base_id = $(this).attr('id');
   1479     var sequence_id = $('#'+element_base_id+'-sequence').val();
   1480     var sequence_id_count = parseInt(sequence_id) + parseInt(1);
   1481     var option_name = $('#compatibility-data-' + sequence_id_count + '-name').val();
   1482 
   1483     // get the total number of value options
   1484     var total_name_count = $('#compatibility-data-count').val();
   1485     total_name_count = parseInt(total_name_count);
   1486     var sequence_id_count_loop = parseInt(sequence_id_count);
   1487 
   1488     // hide the ones after the one that has just been changed and empty the data
   1489     while (sequence_id_count_loop <= total_name_count) {
   1490       $('#compatibility-data-'+sequence_id_count_loop).empty().prop('disabled', true);
   1491       sequence_id_count_loop++;
   1492     }
   1493 
   1494     if (total_name_count >= sequence_id_count) {
   1495       getCompatibilityValues(category_id, option_name, sequence_id_count);
   1496     } else {
   1497       $('#compatibility-data-' + sequence_id_count + '-loading-icon').html('<i class="fa fa-check fa-lg"></i>');
   1498       // this is the final step and all options are chosen - show the add button
   1499       $('#compatibility-content-add').show();
   1500     }
   1501   });
   1502 
   1503   var compatibility_row = 0;
   1504 
   1505   $(document).on("click", '#compatibility-button-add', function() {
   1506     var total_name_count = $('#compatibility-data-count').val();
   1507     total_name_count = parseInt(total_name_count);
   1508 
   1509     var sequence_id_count_loop = 1;
   1510     var sequence_options = [];
   1511     var inj_html = '';
   1512 
   1513     inj_html += '<tr id="compatibility-row' + compatibility_row + '">';
   1514       while (sequence_id_count_loop <= total_name_count) {
   1515         inj_html += '<input type="hidden" name="compatibility_data[' + compatibility_row + '][' + sequence_id_count_loop + '][name]" value="' + $('#compatibility-data-' + sequence_id_count_loop + '-name').val() + '" />';
   1516         inj_html += '<input type="hidden" name="compatibility_data[' + compatibility_row + '][' + sequence_id_count_loop + '][value]" value="' + $('#compatibility-data-' + sequence_id_count_loop).val() + '" />';
   1517         inj_html += '<td>' + $('#compatibility-data-' + sequence_id_count_loop).val() + '</td>';
   1518         sequence_id_count_loop++;
   1519       }
   1520       inj_html += '<td class="text-right"><button class="btn btn-danger" title="" type="button" onclick="$(\'#compatibility-row' + compatibility_row + '\').remove();"><i class="fa fa-trash-o"></i></button></td>';
   1521     inj_html += '</tr>';
   1522 
   1523     $('#compatibility-table').append(inj_html);
   1524     $('#compatibility-options').show();
   1525 
   1526     compatibility_row++;
   1527   });
   1528 
   1529   $('#button-catalog-search').bind('click', function() {
   1530         var qry = $('#catalog-search').val();
   1531         var cat = $('#final-category').val();
   1532 
   1533         if (cat <= 0) {
   1534             alert('{{ error_choose_category }}');
   1535             return;
   1536         }
   1537 
   1538         if (qry == '') {
   1539             alert('{{ error_search_text }}');
   1540             return;
   1541         }
   1542 
   1543         var html = '';
   1544 
   1545         $.ajax({
   1546             url: 'index.php?route=extension/openbay/ebay/searchEbayCatalog&user_token={{ user_token }}',
   1547             type: 'POST',
   1548             dataType: 'json',
   1549             data: { category_id: cat, page: 1,  search: qry },
   1550             beforeSend: function() {
   1551                 $('#product-catalog-container').empty().show();
   1552                 $('#button-catalog-search').empty().html('<i class="fa fa-cog fa-lg fa-spin"></i>').attr('disabled','disabled');
   1553                 $('#catalog-search-alert').remove();
   1554             },
   1555             success: function(data) {
   1556                 if (data.error == false) {
   1557                     if (data.results == 0) {
   1558                         $('#product-catalog-container').before('<div class="alert alert-warning" id="catalog-search-alert">{{ error_catalog_data }}</div>');
   1559                     } else {
   1560                         data.products = $.makeArray(data.products);
   1561 
   1562                         $.each(data.products, function(key, val) {
   1563                           html = '<div class="col-sm-3">';
   1564                             html += '<div class="well">';
   1565                               html += '<div class="row">';
   1566                                 html += '<div class="col-sm-12 text-left"><input type="radio" name="catalog_epid" value="'+val.productIdentifier.ePID+'" /></div>';
   1567                               html += '</div>';
   1568                               html += '<div class="row">';
   1569                                 html += '<div class="col-sm-12 text-center" style="height:125px;">';
   1570                                 if (typeof(val.stockPhotoURL) != "undefined" && val.stockPhotoURL !== null) {
   1571                                   html += '<img class="img-thumbnail" src="'+val.stockPhotoURL.thumbnail.value+'" style="height:96px;"/>';
   1572                                 } else {
   1573                                   html += '<span class="img-thumbnail"><i class="fa fa-camera fa-5x"></i></span>';
   1574                                 }
   1575                                 html += '</div>';
   1576                               html += '</div>';
   1577                               html += '<div class="row">';
   1578                                 html += '<div class="col-sm-12 text-center" style="min-height:70px;">'+val.productDetails.value.text.value+'</div>';
   1579                               html += '</div>';
   1580                             html += '</div>';
   1581                           html += '</div>';
   1582 
   1583                           $('#product-catalog-container').append(html);
   1584                         });
   1585                     }
   1586                 } else {
   1587                     if (data.msg == null) {
   1588                         alert('{{ error_catalog_load }}');
   1589                     } else {
   1590                         alert(data.msg);
   1591                     }
   1592                 }
   1593 
   1594                 $('#button-catalog-search').show();
   1595             },
   1596             complete: function() {
   1597               $('#button-catalog-search').empty().removeAttr('disabled').html('<i class="fa fa-search"></i> {{ button_search }}');
   1598             },
   1599             error: function (xhr, ajaxOptions, thrownError) {
   1600             if (xhr.status != 0) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); }
   1601           }
   1602         });
   1603     });
   1604 
   1605   function listingDuration(data) {
   1606     var lang              = new Array();
   1607     var default_duration  = "{{ product.defaults.listing_duration }}";
   1608     var html_inj          = '';
   1609 
   1610     lang["Days_1"]      = '{{ text_listing_1day }}';
   1611     lang["Days_3"]      = '{{ text_listing_3day }}';
   1612     lang["Days_5"]      = '{{ text_listing_5day }}';
   1613     lang["Days_7"]      = '{{ text_listing_7day }}';
   1614     lang["Days_10"]     = '{{ text_listing_10day }}';
   1615     lang["Days_30"]     = '{{ text_listing_30day }}';
   1616     lang["GTC"]         = '{{ text_listing_gtc }}';
   1617 
   1618     data = $.makeArray(data);
   1619 
   1620     html_inj += '<option disabled selected>{{ text_select }}</option>';
   1621 
   1622     $.each(data, function(duration_key, duration_value) {
   1623       html_inj += '<option value="' + duration_value + '" ' + (duration_value == default_duration ? ' selected="selected"' : '') + '>'+lang[duration_value]+'</option>';
   1624     });
   1625 
   1626     $('#duration-input').empty().html(html_inj).show().prop('disabled', false);
   1627     $('#duration-loading').html('<i class="fa fa-angle-right fa-lg"></i>');
   1628   }
   1629 
   1630   function itemFeatures(category_id) {
   1631     $.ajax({
   1632       url: 'index.php?route=extension/openbay/ebay/getEbayCategorySpecifics&user_token={{ user_token }}&category_id=' + category_id + '&product_id={{ product.product_id }}',
   1633       type: 'GET',
   1634       dataType: 'json',
   1635       beforeSend: function() {
   1636           $('#feature-content').show();
   1637           $('#feature-loading').show();
   1638           $('#show-feature-element').show();
   1639           $('#show-feature-element-preload').hide();
   1640       },
   1641       success: function(data) {
   1642         if (data.error == false) {
   1643           $('#feature-content').empty();
   1644           $('.option-specifics-').empty().hide();
   1645 
   1646           var html_inj = '';
   1647           var html_inj2 = '';
   1648           var specific_count = 0;
   1649           var show_other = 0;
   1650           var show_other_value = '';
   1651 
   1652           if (data.data) {
   1653             $.each(data.data, function(option_specific_key, option_specific_value) {
   1654               html_inj2 = '';
   1655               html_inj += '<div class="form-group">';
   1656                 html_inj += '<label class="col-sm-2 control-label">'+option_specific_value.name+'</label>';
   1657                 html_inj += '<div class="col-sm-10">';
   1658                   if (("options" in option_specific_value) && (option_specific_value.validation.max_values == 1)) {
   1659                     // matched_value_key in option_specific_value
   1660                     if ("matched_value_key" in option_specific_value) {
   1661                       $.each(option_specific_value.options, function(option_key, option) {
   1662                         if (option_specific_value.matched_value_key == option_key) {
   1663                           html_inj2 += '<option value="' + option + '" selected>' + option + '</option>';
   1664                         } else {
   1665                           html_inj2 += '<option value="' + option + '">' + option + '</option>';
   1666                         }
   1667                       });
   1668                     } else {
   1669                       html_inj2 += '<option disabled selected></option>';
   1670 
   1671                       $.each(option_specific_value.options, function(option_key, option) {
   1672                         html_inj2 += '<option value="' + option + '">' + option + '</option>';
   1673                       });
   1674                     }
   1675 
   1676                     show_other = false;
   1677                     show_other_value = '';
   1678 
   1679                     if (option_specific_value.validation.selection_mode == 'FreeText') {
   1680                       if (option_specific_value.unmatched_value != '') {
   1681                         html_inj2 += '<option value="Other" selected>{{ text_other }}</option>';
   1682                         show_other = true;
   1683                         show_other_value = option_specific_value.unmatched_value;
   1684                       } else {
   1685                         html_inj2 += '<option value="Other">{{ text_other }}</option>';
   1686                       }
   1687                     }
   1688 
   1689                     html_inj += '<div class="row">';
   1690                       html_inj += '<div class="col-sm-7">';
   1691                         html_inj += '<select name="feat[' + option_specific_value.name + ']" class="form-control" id="spec_sel_' + specific_count + '" onchange="toggleSpecOther(' + specific_count + ');">' + html_inj2 + '</select>';
   1692                       html_inj += '</div>';
   1693 
   1694                         if (show_other == true) {
   1695                           html_inj += '<div class="col-sm-5" id="spec_' + specific_count + '_other">';
   1696                         } else {
   1697                           html_inj += '<div class="col-sm-5" id="spec_' + specific_count + '_other" style="display:none;">';
   1698                         }
   1699                         html_inj += '<input placeholder="{{ text_other }}" type="text" name="featother[' + option_specific_value.name + ']" class="form-control" value="' + show_other_value + '"/>';
   1700                       html_inj += '</div>';
   1701                     html_inj += '</div>';
   1702                   } else if (("options" in option_specific_value) && (option_specific_value.validation.max_values > 1)) {
   1703                     html_inj += '<div class="row">';
   1704                       $.each(option_specific_value.options, function(option_key, option) {
   1705                         html_inj += '<div class="col-sm-2">';
   1706                           html_inj += '<label class="checkbox-inline">';
   1707                             html_inj += '<input type="checkbox" name="feat[' + option_specific_value.name + '][]" value="' + option + '" /> ' + option;
   1708                           html_inj += '</label>';
   1709                         html_inj += '</div>';
   1710                       });
   1711                     html_inj += '</div>';
   1712                   } else {
   1713                     html_inj += '<div class="row">';
   1714                       html_inj += '<div class="col-sm-7">';
   1715                         html_inj += '<input type="text" name="feat[' + option_specific_value.name + ']" class="form-control" value="' + option_specific_value.unmatched_value + '" />';
   1716                       html_inj += '</div>';
   1717                     html_inj += '</div>';
   1718                   }
   1719                 html_inj += '</div>';
   1720               html_inj += '</div>';
   1721 
   1722               specific_count++;
   1723             });
   1724 
   1725             $('#feature-content').append(html_inj);
   1726           } else {
   1727             $('#feature-content').text('None');
   1728           }
   1729         } else {
   1730           if (data.error == null) {
   1731             alert('{{ error_features }}');
   1732           } else {
   1733             alert(data.error);
   1734           }
   1735         }
   1736 
   1737         $('#feature-loading').hide();
   1738       },
   1739       error: function (xhr, ajaxOptions, thrownError) {
   1740         if (xhr.status != 0) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); }
   1741       }
   1742     });
   1743     }
   1744 
   1745   function toggleSpecOther(id) {
   1746     if ($('#spec_sel_'+id).val() == 'Other') {
   1747         $('#spec_'+id+'_other').show();
   1748     } else {
   1749         $('#spec_'+id+'_other').hide();
   1750     }
   1751   }
   1752 
   1753   $('#shipping-type-national').bind('change', function() {
   1754     changeNationalType();
   1755   });
   1756 
   1757   $('#shipping-type-international').bind('change', function() {
   1758     changeInternationalType();
   1759   });
   1760 
   1761   function changeNationalType() {
   1762     var shipping_type = $('#shipping-type-national').val();
   1763 
   1764     $('.shipping-national-container').hide();
   1765     $('#national-container-'+shipping_type).fadeIn();
   1766   }
   1767 
   1768   function changeInternationalType() {
   1769     var shipping_type = $('#shipping-type-international').val();
   1770 
   1771     $('.shipping-international-container').hide();
   1772     $('#international-container-'+shipping_type).fadeIn();
   1773   }
   1774 
   1775   $('#profile-shipping-input').change(function() {
   1776     profileShippingUpdate();
   1777   });
   1778 
   1779   function profileShippingUpdate() {
   1780     if ($('#profile-shipping-input').val() != 'def') {
   1781       $('#profile-shipping-icon').html('<i class="fa fa-cog fa-lg fa-spin"></i>');
   1782       $('#profile-shipping-input').attr('disabled', 'disabled');
   1783 
   1784       $.ajax({
   1785         type:'GET',
   1786         dataType: 'json',
   1787         url: 'index.php?route=extension/openbay/ebay_profile/profileGet&user_token={{ user_token }}&ebay_profile_id='+$('#profile-shipping-input').val(),
   1788         success: function(data) {
   1789           setTimeout(function() {
   1790             $('#location').val(data.data.location);
   1791             $('#postcode').val(data.data.postcode);
   1792             $('#dispatch_time').val(data.data.dispatch_time);
   1793             if (typeof(data.data.national.calculated) != "undefined") {
   1794               $('#national-handling-fee').val(data.data.national.calculated.handling_fee);
   1795             }
   1796             if (typeof(data.data.international.calculated) != "undefined") {
   1797               $('#international-handling-fee').val(data.data.international.calculated.handling_fee);
   1798             }
   1799             if (typeof data.data.country !== undefined && data.data.country) {
   1800               $('#country').val(data.data.country);
   1801             }
   1802             if (typeof data.data.eligible_for_pickup_dropoff !== undefined && data.data.eligible_for_pickup_dropoff == 1) {
   1803               $('#eligible_for_pickup_dropoff').prop('checked', true);
   1804             }
   1805             if (typeof data.data.eligible_for_pickup_instore !== undefined && data.data.eligible_for_pickup_instore == 1) {
   1806               $('#eligible_for_pickup_instore').prop('checked', true);
   1807             }
   1808             if (typeof data.data.global_shipping !== undefined && data.data.global_shipping == 1) {
   1809               $('#global_shipping').prop('checked', true);
   1810             }
   1811             if (typeof data.data.promotional_shipping_discount !== undefined && data.data.promotional_shipping_discount == 1) {
   1812               $('#promotional_shipping_discount').prop('checked', true);
   1813             }
   1814             if (typeof data.data.promotional_shipping_discount_international !== undefined && data.data.promotional_shipping_discount_international == 1) {
   1815               $('#promotional_shipping_discount_international').prop('checked', true);
   1816             }
   1817             if (data.data.get_it_fast == 1) {
   1818               $('#get_it_fast').prop('checked', true);
   1819             } else {
   1820               $('#get_it_fast').prop('checked', false);
   1821             }
   1822             $('#options-national-flat').html(data.html.national_flat);
   1823             $('#options-international-flat').html(data.html.international_flat);
   1824             $('#options-national-calculated').html(data.html.national_calculated);
   1825             $('#options-international-calculated').html(data.html.international_calculated);
   1826             $('#profile-shipping-icon').html('<i class="fa fa-lg fa-file-text"></i>');
   1827             $('#profile-shipping-input').removeAttr('disabled');
   1828             $('#shipping-type-national').val(data.html.national.type);
   1829             $('#shipping-type-international').val(data.html.international.type);
   1830             changeNationalType();
   1831             changeInternationalType();
   1832           }, 1000);
   1833         },
   1834         error: function (xhr, ajaxOptions, thrownError) {
   1835           if (xhr.status != 0) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); }
   1836         }
   1837       });
   1838     }
   1839   }
   1840 
   1841   function addShipping(id, type) {
   1842     if (id == 'national') {
   1843       var loc = '0';
   1844     } else {
   1845       var loc = '1';
   1846     }
   1847 
   1848     var count = $('#' + type + '_count_' + id).val();
   1849     count = parseInt(count);
   1850 
   1851     $.ajax({
   1852       url: 'index.php?route=extension/openbay/ebay/getShippingService&user_token={{ user_token }}&loc=' + loc + '&type=' + type,
   1853       beforeSend: function(){
   1854         $('#add-' + id + '-' + type).empty().html('<i class="fa fa-cog fa-lg fa-spin"></i>').attr('disabled','disabled');
   1855       },
   1856       type: 'GET',
   1857       dataType: 'json',
   1858       success: function(data) {
   1859         html = '';
   1860         html += '<div class="well" id="' + id + '_' + type + '_' + count + '">';
   1861         html += '<div class="row form-group">';
   1862         html += '<div class="col-sm-1 text-right">';
   1863         html += '<label class="control-label">{{ text_shipping_service }}<label>';
   1864         html += '</div>';
   1865         html += '<div class="col-sm-11">';
   1866         html += '<select name="data[' + id + '][' + type + '][service_id][' + count + ']" class="form-control">';
   1867         $.each(data.service, function(key, val) {
   1868           html += '<option value="' + key + '">' + val.description + '</option>';
   1869         });
   1870         html += '</select>';
   1871         html += '</div>';
   1872         html += '</div>';
   1873         if (id == 'international') {
   1874           html += '<div class="row form-group">';
   1875           html += '<div class="col-sm-1 text-right">';
   1876           html += '<label class="control-label">{{ text_shipping_zones }}</label>';
   1877           html += '</div>';
   1878           html += '<div class="col-sm-10">';
   1879           html += '<label class="checkbox-inline">';
   1880           html += '<input type="checkbox" name="data[' + id + '][' + type + '][shipto][' + count + '][]" value="Worldwide" />';
   1881           html += ' {{ text_shipping_worldwide }}';
   1882           html += '</label>';
   1883         {% for shipping_international_zones in data.shipping_international_zones %}
   1884             html += '<label class="checkbox-inline">';
   1885             html += '<input type="checkbox" name="data[' + id + '][' + type + '][shipto][' + count + '][]" value="{{ zone.shipping_location }}" />';
   1886             html += ' {{ zone.description }}';
   1887             html += '</label>';
   1888           {% endfor %}
   1889           html += '</div>';
   1890           html += '</div>';
   1891         }
   1892         html += '<div class="row form-group">';
   1893         if (type != 'calculated') {
   1894           html += '<div class="col-sm-1 text-right">';
   1895           html += '<label class="control-label">{{ text_shipping_first }}</label>';
   1896           html += '</div>';
   1897           html += '<div class="col-sm-3">';
   1898           html += '<input type="text" name="data[' + id + '][' + type + '][price][' + count + ']" class="form-control" value="0.00" class="form-control" />';
   1899           html += '</div>';
   1900           html += '<div class="col-sm-2 text-right">';
   1901           html += '<label class="control-label">{{ text_shipping_add }}</label>';
   1902           html += '</div>';
   1903           html += '<div class="col-sm-3">';
   1904           html += '<input type="text" name="data[' + id + '][' + type + '][price_additional][' + count + ']" class="form-control" value="0.00" />';
   1905           html += '</div>';
   1906         }
   1907         html += '<div class="col-sm-3 pull-right text-right">';
   1908         html += '<a onclick="removeShipping(\'' + id + '\',\'' + count + '\',\''+type+'\');" class="btn btn-danger"><i class="fa fa-minus-circle"></i> {{ button_delete }}</a>';
   1909         html += '</div>';
   1910         html += '</div>';
   1911         html += '</div>';
   1912 
   1913         $('#options-' + id + '-' + type).append(html);
   1914         $('#add-' + id + '-' + type).empty().html('<i class="fa fa-plus-circle"></i> {{ button_add }}').removeAttr('disabled');
   1915       },
   1916       error: function (xhr, ajaxOptions, thrownError) {
   1917         $('#add-shipping-'+id).empty().html('<i class="fa fa-plus-circle"></i> {{ button_add }}').removeAttr('disabled');
   1918         if (xhr.status != 0) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); }
   1919       }
   1920     });
   1921 
   1922     $('#' + type + '_count_' + id).val(count + 1);
   1923   }
   1924 
   1925   function removeShipping(id, count, type) {
   1926     $('#' + id + '_' + type + '_' + count).remove();
   1927   }
   1928 
   1929   $('#button-verify').bind('click', function() {
   1930     var err = 0;
   1931 
   1932     $('.listing-error').remove();
   1933 
   1934     if ($('.checkbox-ebay-image:checked').length > 0) {
   1935       var main_image = $('[name=main_image]:checked').val();
   1936       var check_main_selected = '#image-checkbox-' + main_image.toString();
   1937 
   1938       if (!$(check_main_selected).is(':checked')) {
   1939         $('#page-listing').prepend('<div class="alert alert-warning listing-error">{{ error_main_image }}</div>');
   1940         err = 1;
   1941       }
   1942     } else {
   1943       $('#page-listing').prepend('<div class="alert alert-warning listing-error">{{ error_no_images }}</div>');
   1944       err = 1;
   1945     }
   1946 
   1947     if ($('#final-category').val() == '') {
   1948       $('#page-listing').prepend('<div class="alert alert-warning listing-error">{{ error_choose_category }}</div>');
   1949       err = 1;
   1950     }
   1951 
   1952     if ($('#auction_duration').val() == '') {
   1953         err = 1;
   1954         alert('{{ error_duration }}');
   1955     }
   1956 
   1957     if ($('#gallery_height').val() == '' || $('#gallery_width').val() == '' || $('#thumb_height').val() == '' || $('#thumb_width').val() == '') {
   1958         err = 1;
   1959         alert('{{ error_image_size }}');
   1960     }
   1961 
   1962     if ($('#sku').val() == '') {
   1963         err = 1;
   1964         alert('{{ error_sku }}');
   1965     }
   1966 
   1967     if ($('#name').val() == '') {
   1968         err = 1;
   1969         alert('{{ error_name }}');
   1970     }
   1971 
   1972     if ($('#name').val().length > 75) {
   1973         err = 1;
   1974         alert('{{ error_name_length }}');
   1975     }
   1976 
   1977     if ($('#location').val() == '' && $('#postcode').val() == '') {
   1978         err = 1;
   1979         alert('{{ error_item_location }}');
   1980     }
   1981 
   1982     if ($('#dispatch_time').val() == '') {
   1983         err = 1;
   1984         alert('{{ error_dispatch_time }}');
   1985     }
   1986 
   1987     if ($('#count_national').val() == 0) {
   1988         err = 1;
   1989         alert('{{ error_shipping_national }}');
   1990     }
   1991 
   1992     if ($('#duration-input').val() == '') {
   1993         err = 1;
   1994         alert('{{ error_listing_duration }}');
   1995     }
   1996 
   1997     {% if addon.openstock is not empty and addon.openstock == true and product.options is not empty %}
   1998         var hasOptions = "yes";
   1999     {% else %}
   2000         var hasOptions = "no";
   2001 
   2002         if ($('#qty').val() < 1) {
   2003             err = 1;
   2004             alert('{{ error_stock }}');
   2005         }
   2006     {% endif %}
   2007 
   2008     if (err == 0) {
   2009         $.ajax({
   2010             type:'POST',
   2011             dataType: 'json',
   2012             url: 'index.php?route=extension/openbay/ebay/verify&user_token={{ user_token }}&options='+hasOptions,
   2013             data: $("#form").serialize(),
   2014             beforeSend: function() {
   2015               $('#button-save').hide();
   2016               $('#button-preview').hide();
   2017               $('#listing-fee-container').hide();
   2018               $('#button-verify').empty().html('<i class="fa fa-cog fa-lg fa-spin"></i>').attr('disabled','disabled');
   2019             },
   2020             success: function(data) {
   2021                 if (data.error != true) {
   2022                     $('#page-listing').hide();
   2023 
   2024                     if (data.data.Errors) {
   2025                       data.Errors = $.makeArray(data.Errors);
   2026                       $.each(data.data.Errors, function(key, val) {
   2027                         $('#page-review').prepend('<div class="alert alert-danger alert-dismissible">'+val+'</div>');
   2028                       });
   2029                     }
   2030 
   2031                     if (data.data.Ack != 'Failure') {
   2032                       var fee_total = parseFloat(0.00);
   2033                       var currency = '';
   2034                       var html = '';
   2035 
   2036                       data.data.Fees = $.makeArray(data.data.Fees);
   2037 
   2038                       $.each(data.data.Fees, function(key, val) {
   2039                         if (val.Fee != 0.0 && val.Name != 'ListingFee') {
   2040                           fee_total = fee_total + parseFloat(val.Fee);
   2041                         }
   2042                         currency = val.Cur;
   2043                       });
   2044                       html += '<h5>{{ text_review_costs }}: '+currency+' '+fee_total.toFixed(2)+'</h5>';
   2045 
   2046                       $('#listing-fee-container').html(html).show();
   2047                       $('#button-preview').attr('href', data.data.link).show();
   2048                       $('#button-save').show();
   2049                     }
   2050 
   2051                     $('#page-review').show();
   2052                 } else {
   2053                     alert(data.msg);
   2054                 }
   2055             },
   2056             complete: function () {
   2057               $('#button-verify').empty().html('{{ text_verify }}').removeAttr('disabled');
   2058             },
   2059             error: function (xhr, ajaxOptions, thrownError) {
   2060             if (xhr.status != 0) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); }
   2061           }
   2062         });
   2063     } else {
   2064       return;
   2065     }
   2066     });
   2067 
   2068   $('#button-save').bind('click', function() {
   2069       var hasOptions = "{% if addon.openstock == true and product.options is not empty %}yes{% else %}no{% endif %}";
   2070 
   2071       $.ajax({
   2072         type:'POST',
   2073         dataType: 'json',
   2074         url: 'index.php?route=extension/openbay/ebay/listItem&user_token={{ user_token }}&options='+hasOptions,
   2075         data: $("#form").serialize(),
   2076         beforeSend: function() {
   2077           $('#button-save').empty().html('<i class="fa fa-cog fa-lg fa-spin"></i>').attr('disabled','disabled');
   2078           $('#button-view').hide();
   2079         },
   2080         success: function(data) {
   2081           if (data.error == true) {
   2082             alert(data.msg);
   2083           } else {
   2084             if (data.data.Errors) {
   2085               data.data.Errors = $.makeArray(data.data.Errors);
   2086 
   2087               $.each(data.data.Errors, function(key, val) {
   2088                 $('#page-failed').prepend('<div class="alert alert-danger alert-dismissible">'+val+'</div>');
   2089                 $('#page-complete').prepend('<div class="alert alert-danger alert-dismissible">'+val+'</div>');
   2090               });
   2091             }
   2092 
   2093             if (data.data.Failed == true) {
   2094               $('#page-failed').show();
   2095             } else {
   2096               $('#item-number').text(data.data.ItemID);
   2097 
   2098               if (data.data.view_link != '') {
   2099                 $('#button-view').attr('href', data.data.view_link).show();
   2100                 $('#button-view').show();
   2101               }
   2102 
   2103               $('#page-complete').show();
   2104               $('#cancel_button').hide();
   2105             }
   2106           }
   2107         },
   2108         complete: function () {
   2109           $('#button-save').show();
   2110           $('#button-save-loading').hide();
   2111           $('#page-review').hide();
   2112           $('#button-save').empty().html('{{ button_save }}').removeAttr('disabled');
   2113         },
   2114         error: function (xhr, ajaxOptions, thrownError) {
   2115           if (xhr.status != 0) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); }
   2116         }
   2117       });
   2118     });
   2119 
   2120   $('#button-edit').bind('click', function() {
   2121         $('.alert-danger').remove();
   2122         $('#page-review').hide();
   2123         $('#page-listing').show();
   2124     });
   2125 
   2126   function toggleRad(id) {
   2127     if ($("#image-checkbox-"+id).is(':checked')) {
   2128       $("#image-radio-"+id).removeAttr('disabled');
   2129     } else {
   2130       $("#image-radio-"+id).attr('disabled', 'disabled');
   2131     }
   2132   }
   2133 
   2134   function updatePrice() {
   2135     var taxEx = $('#taxEx').val();
   2136     var rate = $('#taxRate').val();
   2137     var taxInc = taxEx * ((rate /100)+1);
   2138     $('#taxInc').val(parseFloat(taxInc).toFixed(2));
   2139   }
   2140 
   2141   function updateVarPrice() {
   2142     var rate = $('#taxRate').val();
   2143     var taxEx = '';
   2144     var id = '';
   2145     var taxInc = '';
   2146 
   2147     $.each($('.varPriceExCount'), function() {
   2148       id = $(this).val();
   2149       taxEx = $('#varPriceEx_'+id).val();
   2150       taxInc = taxEx * ((rate /100)+1);
   2151       $('#varPriceInc_'+id).val(parseFloat(taxInc).toFixed(2));
   2152     });
   2153   }
   2154 
   2155   function updateVarPriceFromEx(id) {
   2156     var taxEx = $('#varPriceEx_'+id).val();
   2157     var rate = $('#taxRate').val();
   2158     var taxInc = taxEx * ((rate /100)+1);
   2159     $('#varPriceInc_'+id).val(parseFloat(taxInc).toFixed(2));
   2160   }
   2161 
   2162   function updatePriceFromEx() {
   2163     var taxEx = $('#taxEx').val();
   2164     var rate = $('#taxRate').val();
   2165     var taxInc = taxEx * ((rate /100)+1);
   2166     $('#taxInc').val(parseFloat(taxInc).toFixed(2));
   2167   }
   2168 
   2169   function updateVarPriceFromInc(id) {
   2170     var taxInc = $('#varPriceInc_'+id).val();
   2171     var rate = $('#taxRate').val();
   2172     var taxEx = taxInc / ((rate /100)+1);
   2173     $('#varPriceEx_'+id).val(parseFloat(taxEx).toFixed(2));
   2174   }
   2175 
   2176   function updatePriceFromInc() {
   2177     var taxInc = $('#taxInc').val();
   2178     var rate = $('#taxRate').val();
   2179     var taxEx = taxInc / ((rate /100)+1);
   2180     $('#taxEx').val(parseFloat(taxEx).toFixed(2));
   2181   }
   2182 
   2183   $('#popular_default').click(function() {
   2184     $('#category-selections-row').show();
   2185 
   2186     if($('#category-suggested-row').length != 0) {
   2187       $('#category-suggested-row').show();
   2188     }
   2189 
   2190     if($('#category-popular-row').length != 0) {
   2191       $('#category-popular-row').show();
   2192     }
   2193 
   2194     $('#show-feature-element').hide();
   2195     $('#product-catalog-container').hide();
   2196     $('#feature-content').empty();
   2197     $('#specifics').empty();
   2198     $('input[name=suggested]').removeAttr('checked');
   2199     $('#suggested_default').prop('checked', true);
   2200   });
   2201 
   2202   $('input[name=popular]').bind('change', function() {
   2203     if ($(this).val() != '') {
   2204       categoryFavChange($(this).val());
   2205     }
   2206   });
   2207 
   2208   $('#check-all-template-images').bind('change', function() {
   2209     if ($('#check-all-template-images').is(':checked')) {
   2210       $('.check-template-image').prop('checked', true);
   2211     } else {
   2212       $('.check-template-image').removeAttr('checked');
   2213     }
   2214   });
   2215 
   2216   $('#check-all-ebay-images').bind('change', function() {
   2217     if ($('#check-all-ebay-images').is(':checked')) {
   2218       $('.checkbox-ebay-image').prop('checked', true);
   2219     } else {
   2220       $('.checkbox-ebay-image').removeAttr('checked');
   2221     }
   2222   });
   2223 
   2224   $('#profile-generic-input').change(function() {
   2225     profileGenericUpdate();
   2226   });
   2227 
   2228   $('#profile-return-input').change(function() {
   2229     profileReturnUpdate();
   2230   });
   2231 
   2232   $('#profile-theme-input').change(function() {
   2233     profileThemeUpdate();
   2234   });
   2235 
   2236   function profileReturnUpdate() {
   2237       if ($('#profile-return-input').val() != 'def') {
   2238         $('#profile-return-icon').html('<i class="fa fa-cog fa-lg fa-spin"></i>');
   2239         $('#profile-return-input').attr('disabled', 'disabled');
   2240 
   2241           $.ajax({
   2242               type:'GET',
   2243               dataType: 'json',
   2244               url: 'index.php?route=extension/openbay/ebay_profile/profileGet&user_token={{ user_token }}&ebay_profile_id='+$('#profile-return-input').val(),
   2245               success: function(data) {
   2246                   setTimeout(function() {
   2247                       if ($('#returns_accepted').length) {
   2248                           $('#returns_accepted').val(data.data.returns_accepted);
   2249                       }
   2250                       if ($('#returns_option').length) {
   2251                           $('#returns_option').val(data.data.returns_option);
   2252                       }
   2253                       if ($('#returns_within').length) {
   2254                           $('#returns_within').val(data.data.returns_within);
   2255                       }
   2256                       if ($('#returns_policy').length) {
   2257                           $('#returns_policy').val(data.data.returns_policy);
   2258                       }
   2259                       if ($('#returns_shipping').length) {
   2260                           $('#returns_shipping').val(data.data.returns_shipping);
   2261                       }
   2262                       if ($('#returns_restocking_fee').length) {
   2263                           $('#returns_restocking_fee').val(data.data.returns_restocking_fee);
   2264                       }
   2265 
   2266                     $('#profile-return-icon').html('<i class="fa fa-lg fa-file-text"></i>');
   2267                     $('#profile-return-input').removeAttr('disabled');
   2268                   }, 1000);
   2269               },
   2270               error: function (xhr, ajaxOptions, thrownError) {
   2271               if (xhr.status != 0) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); }
   2272             }
   2273           });
   2274       }
   2275   }
   2276 
   2277   function profileThemeUpdate() {
   2278   if ($('#profile-theme-input').val() != 'def') {
   2279       $('#profile-theme-icon').html('<i class="fa fa-cog fa-lg fa-spin"></i>');
   2280       $('#profile-theme-input').attr('disabled', 'disabled');
   2281 
   2282       $.ajax({
   2283           type:'GET',
   2284           dataType: 'json',
   2285           url: 'index.php?route=extension/openbay/ebay_profile/profileGet&user_token={{ user_token }}&ebay_profile_id='+$('#profile-theme-input').val(),
   2286           success: function(data) {
   2287               setTimeout(function() {
   2288                   $('#gallery_height').val(data.data.ebay_gallery_height);
   2289                   $('#gallery_width').val(data.data.ebay_gallery_width);
   2290                   $('#thumb_height').val(data.data.ebay_thumb_height);
   2291                   $('#thumb_width').val(data.data.ebay_thumb_width);
   2292 
   2293                   if (data.data.ebay_gallery_plus == 1) {
   2294                       $('#gallery_plus').prop('checked', true);
   2295                   } else {
   2296                       $('#gallery_plus').removeAttr('checked');
   2297                   }
   2298 
   2299                   if (data.data.ebay_supersize == 1) {
   2300                       $('#gallery_super').prop('checked', true);
   2301                   } else {
   2302                       $('#gallery_super').removeAttr('checked');
   2303                   }
   2304 
   2305                   if (data.data.ebay_img_ebay == 1) {
   2306                       $('.checkbox-ebay-image').prop('checked', true);
   2307                       $('#check-all-ebay-images').prop('checked', true);
   2308                   }
   2309 
   2310                   if (data.data.ebay_img_template == 1) {
   2311                       $('.check-template-image').prop('checked', true);
   2312                       $('#check-all-template-images').prop('checked', true);
   2313                   }
   2314 
   2315                   if ($.inArray('ebay_template_id', data.data)) {
   2316                       $('#template_id').val(data.data.ebay_template_id);
   2317                   }
   2318 
   2319                   $('#profile-theme-icon').html('<i class="fa fa-lg fa-file-text"></i>');
   2320                 $('#profile-theme-input').removeAttr('disabled');
   2321               }, 1000);
   2322           },
   2323           error: function (xhr, ajaxOptions, thrownError) {
   2324           if (xhr.status != 0) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); }
   2325         }
   2326       });
   2327   }
   2328 }
   2329 
   2330   function profileGenericUpdate() {
   2331       if ($('#profile-generic-input').val() != 'def') {
   2332           $('#profile-generic-icon').html('<i class="fa fa-cog fa-lg fa-spin"></i>');
   2333           $('#profile-generic-input').attr('disabled', 'disabled');
   2334 
   2335           $.ajax({
   2336               type:'GET',
   2337               dataType: 'json',
   2338               url: 'index.php?route=extension/openbay/ebay_profile/profileGet&user_token={{ user_token }}&ebay_profile_id='+$('#profile-generic-input').val(),
   2339               success: function(data) {
   2340                   setTimeout(function() {
   2341                       if (data.data.private_listing == 1) {
   2342                           $('#private_listing').prop('checked', true);
   2343                       } else {
   2344                           $('#private_listing').removeAttr('checked');
   2345                       }
   2346 
   2347                     $('#profile-generic-icon').html('<i class="fa fa-lg fa-file-text"></i>');
   2348                     $('#profile-generic-input').removeAttr('disabled');
   2349                   }, 1000);
   2350               },
   2351               error: function (xhr, ajaxOptions, thrownError) {
   2352               if (xhr.status != 0) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); }
   2353             }
   2354           });
   2355       }
   2356   }
   2357 
   2358   function removeVariationImage(grp_id, id, number) {
   2359       $('#option_image_'+grp_id+'_'+id+'_'+number).remove();
   2360 
   2361       var count = $('#option_image_count_'+grp_id).val() - 1;
   2362 
   2363       $('#option_image_count_'+grp_id).val(count);
   2364   }
   2365 
   2366   function addVariationImage(grp_id, id) {
   2367       var count = parseInt($('#option_image_count_'+grp_id).val()) + 1;
   2368       $('#option_image_count_'+grp_id).val(count);
   2369 
   2370       var html = '';
   2371 
   2372       html += '<tr id="option_image_'+grp_id+'_'+id+'_'+count+'">';
   2373         html += '<td>';
   2374           html += '<a href="" id="thumb-image' + count + '" data-toggle="image" class="img-thumbnail">';
   2375             html += '<img src="{{ no_image }}"/>';
   2376           html += '</a>';
   2377           html += '<input type="hidden" name="option_image['+grp_id+']['+id+'][images][]" id="input-image' + count + '" value="" />';
   2378         html += '</td>';
   2379         html += '<td>';
   2380           html += '<button type="button" onclick="removeVariationImage('+grp_id+', '+id+', '+count+');" data-toggle="tooltip" title="{{ button_remove }}" class="btn btn-danger"><i class="fa fa-minus-circle"></i></button>';
   2381         html += '</td>';
   2382       html += '</tr>';
   2383 
   2384       $('#option_images_'+id).append(html);
   2385   }
   2386 
   2387   function confirmAction(url) {
   2388     if (confirm("{{ text_confirm_action }}")) {
   2389       window.location = url;
   2390     }
   2391   }
   2392 
   2393   $('#option_image_group').change(function() {
   2394     $('.option-group-img').hide();
   2395 
   2396     if ($(this).val() != 'def') {
   2397       $('.option-group-img-tr').show();
   2398       $('#option-group-img-'+$(this).val()).show();
   2399       $('#option-image-group-name').val($(this).find("option:selected").text());
   2400     } else {
   2401       $('#option-image-group-name').val('');
   2402       $('.option-group-img-tr').hide();
   2403     }
   2404   });
   2405 
   2406   $(document).ready(function() {
   2407     loadCategories(1);
   2408     getSuggestedCategories();
   2409     updatePrice();
   2410     updateVarPrice();
   2411     changeNationalType();
   2412     changeInternationalType();
   2413     updateUnit();
   2414 
   2415     {% if product.profiles_returns_def > 0 %}
   2416         $('#profile-return-input').val({{ product.profiles_returns_def }});
   2417         profileReturnUpdate();
   2418     {% endif %}
   2419 
   2420     {% if product.profiles_generic_def > 0 %}
   2421         $('#profile-generic-input').val({{ product.profiles_generic_def }});
   2422         profileGenericUpdate();
   2423     {% endif %}
   2424 
   2425     {% if product.profiles_shipping_def > 0 %}
   2426         $('#profile-shipping-input').val({{ product.profiles_shipping_def }});
   2427         profileShippingUpdate();
   2428     {% endif %}
   2429 
   2430     {% if product.profiles_theme_def > 0 %}
   2431         $('#profile-theme-input').val({{ product.profiles_theme_def }});
   2432         profileThemeUpdate();
   2433     {% endif %}
   2434 
   2435    // $('#description-field').summernote({height: 300});
   2436   });
   2437 
   2438   $('#measure-unit').bind('change', function() {
   2439     updateUnit();
   2440   });
   2441 
   2442   function updateUnit() {
   2443     var unit_type = $('#measure-unit').val();
   2444 
   2445     if (unit_type == 'English') {
   2446       $('.size-unit-text').text('inches');
   2447       $('#weight-major-text').text('Lbs');
   2448       $('#weight-minor-text').text('Oz');
   2449     } else {
   2450       $('.size-unit-text').text('cm');
   2451       $('#weight-major-text').text('Kgs');
   2452       $('#weight-minor-text').text('Grams');
   2453     }
   2454   }
   2455 //--></script>
   2456 {{ footer }}