{{trans('website.labels.shipping-address')}}   ({{trans('website.labels.select-shipping-postbox')}})

{{Form::label('shipment_country', trans('website.fields.country').":")}} *
{{Form::select('shipment_country', $shipment->orderCountries->map(function($orderCountry) use ($language) { return ['code' => $orderCountry->code, 'title' => $orderCountry->title($language->id)]; })->keyBy('code')->lists('title', 'code'), Session::get('order.shipment_country'))}}
{{$errors->order->first('shipment_country', '
:message
')}}
{{Form::label('shipment_city', trans('website.fields.city').":")}} *
{{Form::select('shipment_city', $shipment_postbox_city_options, in_array(Session::get('order.shipment_city'), $shipment_postbox_city_options) ? Session::get('order.shipment_city') : null)}}
{{$errors->order->first('shipment_city', '
:message
')}}
{{Form::label('shipment_street', trans('website.fields.street').":")}} *
{{Form::select('shipment_street', $shipment_postbox_street_options, in_array(Session::get('order.shipment_street'), $shipment_postbox_street_options) ? Session::get('order.shipment_street') : null)}} {{HTML::image('img/loading.gif', null, ['class' => 'loading streets'])}}
{{$errors->order->first('shipment_street', '
:message
')}}
@section('scripts') @parent var map = null; var post_box = null; var zoom = 16; var infos = []; var markers = []; var post_boxes = []; var url = '{{route('postbox-streets')}}'; var labels = {{json_encode(array_merge(range('A', 'Z'), range('0', '99')))}}; $(document).ready(function() { $('form select[name="shipment_city"]').on('change', function(event) { infos = []; markers = []; var city = $(this).val(); var street = null; $('.loading.streets').addClass('active'); $('form select[name=shipment_street]').attr('readonly', true); $.ajax({ url: url, type: 'GET', data: {city:city}, success: function(response) { post_boxes = response.post_boxes; street = $('form select[name=shipment_street]').val(); $('form select[name=shipment_street]').attr('readonly', false); $('form select[name=shipment_street]').find('option').remove(); $.each(post_boxes, function(index, value) { $('form .loading.streets').removeClass('active'); $('form select[name=shipment_street]').append($('').val(value['street']).html(value['street'])); }); post_box = post_boxes.filter(function(post_box) { return post_box['street'] == street; }); if (!post_box.length) { post_box = Object.keys(post_boxes).length ? [post_boxes[Object.keys(post_boxes)[0]]] : []; } $('form select[name="shipment_street"]').val(post_box[0]['street']); if (post_box.length) { map = new google.maps.Map(document.getElementById('map'), { map: '1owC8dTxizmzd3fxkAm7VZRGiQ-E', center: {lat: parseFloat(post_box[0]['gpsn']), lng: parseFloat(post_box[0]['gpse'])}, zoom: 13, scrollwheel: false, mapTypeControl: false, zoomControl: true, zoomControlOptions: { position: google.maps.ControlPosition.RIGHT_BOTTOM }, streetViewControl: true, fullscreenControl: true }); $.each(post_boxes, function(key, value) { var info = new google.maps.InfoWindow({content: '
' + value['name'] + '

' + value['street'] + ', ' + value['postcode'] + ' ' + city + '

' + String(value['opening_hours']).replace(/;/g, '
') + '

'}); var marker = new google.maps.Marker({position: {lat: parseFloat(value['gpsn']), lng: parseFloat(value['gpse'])}, label: { text: String(labels[key]), color: "#ffffff", fontWeight: "bold"}, title: value['name'], map: map}); marker.addListener('click', function() { if (!$('form select[name="shipment_street"] option[value="' + value['street'] + '"]').is(':selected')) { $.each(infos, function(index, info) { info.close(); }); $('form select[name="shipment_street"]').val(value['street']).change(); } info.open(map, marker); }); infos.push(info); markers.push(marker); }); } } }); }); $('form select[name="shipment_street"]').on('change', function(event) { var city = $('form select[name="shipment_city"]').val(); var street = $('form select[name="shipment_street"]').val(); var post_box = post_boxes.filter(function(post_box) { return post_box['street'] == street; }); if (post_box.length) { map.setCenter({lat: parseFloat(post_box[0]['gpsn']), lng: parseFloat(post_box[0]['gpse'])}); map.setZoom(16); } }); if ($('form select[name="shipment_city"]').val()) { $('form select[name="shipment_city"]').trigger('change'); } }); @stop