Rechercher un médecin | Fotona (2024)

'; } else { if ( i === -1) { $('#clinic-detail-title').html(loc.naziv); lnk = 'javascript:void(setDetailPos())'; s = '

'; // s += '

' + loc.naziv + '

'; } else { s = '

'; s += '

' + loc.naziv + '

'; } if ( i === -1 ) { // s += '

' + loc.naziv + '

'; s += '

' + '' + '

'; } if ( i !== -1 && TMD.clinicFinder.simpleInfo ) { // simple info for small screen heights s += '

' + '' + loc.naslov_ulica + ', ' + loc.naslov_kraj +'

'; } else { // full info for comfortable heights s += '

' + '' + '' + TMD.clinicFinder.tr.keys['distance_info'] + ' ' + Math.max(Math.round(loc.razdalja / TMD.clinicFinder.du), 1) + ' ' + TMD.clinicFinder.tr.keys['distance_unit'] + '' +'

'; if (loc.email) { s += '

' + '' + loc.email + '

'; } else { s += '

'; } if (loc.pozivnast) { s += '

' +'+' + loc.pozivnast + ' ' + loc.telefon + '

'; } else { s += '

'; } if (loc.web) { let link = loc.web; if ( link.slice(0,4).toLowerCase() !== 'http' ) { link = 'http://' + link; } s += '

' +'' + loc.web.replace(/^https?:\/\//i, '').replace(/\/$/, '') + '

'; } else { s += '

'; } } if ( i === -1) { // no } else { if ( !TMD.clinicFinder.simpleInfo ) { s += '

' + TMD.clinicFinder.tr.keys['map_info'] + '

'; } s += '

' + TMD.clinicFinder.tr.keys['details_info'] + '

'; } s += '

'; } return s; } function renderTreats(loc, i) { let s = '

'; if ( loc.tretmaji && loc.tretmaji.length ) { let trt = []; let rng = []; let dev = []; $.each(loc.tretmaji, function(i, t) { dev[t.pid] = t.commname; // + ' ' + t.model; rng[t.range] = TMD.clinicFinder.rangeD[t.range].rangeD; trt[t.tid] = { tid: t.tid, dev: dev[t.pid], rng: rng[t.range], rid: t.range, // trt: ( t.tretma2 && t.tretma2.length > 1? t.tretma2 : t.tretma ) + (t.tretma2_desc && t.tretma2_desc.length > 1? ' (' + t.tretma2_desc + ')' : ''), trt: t.tretma } }); trt.sort(function(a, b) { const r = a.rng.localeCompare(b.rng); if ( r === 0 ) { const d = a.dev.localeCompare(b.dev); if ( d === 0 ) { return a.trt.localeCompare(b.trt); } else { return d; } } else { return r; } }); // s += '

' + TMD.clinicFinder.tr.keys['treatments'] + '

'; s += '

' + TMD.clinicFinder.tr.keys['treatments'] + '

'; let r = '', li = []; $.each(trt, function(i, t) { if ( t && t.tid ) { if ( t.rng !== r ) { if ( li.length > 0 ) { // s += '

  • ' + li.join('
  • ') + '

'; s += '

' li = [...new Set(li)].sort(); for (var i = 0; i < li.length; i++) { s += '

' + li[i] + '

' } s += '

' } s += '

' + TMD.clinicFinder.tr.keys['range_' + t.rid] + '

'; r = t.rng; li = []; } li.push(t.trt); } }); if ( li.length > 0 ) { // s += '

  • ' + li.join('
  • ') + '

'; s += '

' li = [...new Set(li)].sort(); for (var i = 0; i < li.length; i++) { s += '

' + li[i] + '

' } s += '

' } dev.sort(function(a, b) { return a.localeCompare(b); }); s += '

' + TMD.clinicFinder.tr.keys['devices'] + '

'; li = [] $.each(dev, function(i, d) { if (d) { li.push(d); } }); // s += '

  • ' + li.join('
  • ') + '

'; s += '

' for (var i = 0; i < li.length; i++) { s += '

' + li[i] + '

'; } s += '

' } s += '

'; return s; } function renderLocation(clinic) { clearTimeout(TMD.clinicFinder.loaderTimeout); $('#map_over').removeClass('op-1'); if (clinic) { // render detail if ( TMD.clinic && TMD.clinic.ok && TMD.clinic.data.locations && TMD.clinic.data.locations.length ) { const loc = TMD.clinic.data.locations[0]; $('#clinic-detail').data('cid', parseInt(clinic, 10)); $('#clinic-detail-body1').html( renderContacts(loc, -1) ); $('#clinic-detail-body2').html( renderTreats(loc, -1) ); TMD.clinicFinder.ga('clinic_finder', 'show_detail', loc.naziv + ' / detail', loc.clinicid); // set height if ( TMD.clinicFinder.wh === null ) { console.log('*** WH is null ***'); TMD.clinicFinder.wh = 500; } var dh = TMD.clinicFinder.wh - $('#cfd-row-1').outerHeight() - $('#cfd-row-2').outerHeight(); var db = $('#clinic-detail-body1').outerHeight(); var detH = dh - db - 10; if ( detH < 70 ) { // $('#map-detail').css({ height: detH + 'px', opacity: 0 }); } else { // $('#map-detail').css({ height: detH + 'px', opacity: 1 }); } $('#map-detail').css('height', Math.min(dh, 500) + 'px'); // $('#clinic-detail-body2').css('height', dh + 'px'); const ll = { lat: loc.lat, lng: loc.lon }; TMD.clinicFinder.mapDetail.setCenter(ll); TMD.clinicFinder.mapDetail.setZoom(16); // 17 TMD.clinicFinder.markerDetail.position = ll; // URL history var w = window; if ( parent ) { w = parent; } if ( w.history.pushState ) { var newurl = w.location.protocol + "//" + w.location.host + w.location.pathname + '?clinic=' + loc.clinicid + '-' + unidecodeFix(unidecode(loc.naziv)) + '&lang=' + TMD.clinicFinder.tr.lang; w.history.pushState({ path: newurl }, '', newurl); } $('#clinic-detail').modal('show'); } } else { // render found locatins const MAX = 100; var s = []; if (TMD.clinicFinder.locations.length > 0) { var notifyMax = false; var inRange = false; if ( TMD.clinicFinder.global === 1 ) { inRange = true; s.push( renderContacts(TMD.clinicFinder.locations[0], 0) ); if ( TMD.clinicFinder.globalLoc === null ) { // clone all TMD.clinicFinder.globalLoc = TMD.clinicFinder.locations.map((loc) => loc); } TMD.clinicFinder.locations = TMD.clinicFinder.globalLoc.filter((loc) => { if ( TMD.clinicFinder.globalRange === 0 ) { return true; } else { if ( !loc.tretmaji ) { console.log('No TREATs', loc); } return ( loc.tretmaji && loc.tretmaji.some((t) => t.range === TMD.clinicFinder.globalRange) ); } }); $('[data-global-range="' + TMD.clinicFinder.globalRange + '"]').text( $('[data-global-range="' + TMD.clinicFinder.globalRange + '"]').data('text') + ' ' + TMD.clinicFinder.locations.length );console.log('Total: {%s} - range: {%s} {%s}', TMD.clinicFinder.globalLoc.length, TMD.clinicFinder.globalRange, TMD.clinicFinder.locations.length) } else { inRange = ( TMD.clinicFinder.locations[0].razdalja <= TMD.clinicFinder.distance ); // filter out ut to MAX in distance or top N regardless $.each(TMD.clinicFinder.locations, function(i, l) { if ( (i >= MAX) || (inRange && l.razdalja > TMD.clinicFinder.distance) || (!inRange && i > 3) ) { TMD.clinicFinder.locations.splice(i); if ( i >= MAX ) { notifyMax = true; } return false; } }); $.each(TMD.clinicFinder.locations, function(i, loc) { if (i >= MAX ) { return false } s.push( renderContacts(loc, i) ); }); } if ( notifyMax ) { $('#loc-notification').html(TMD.clinicFinder.tr.keys['loc_found_max']); } else { $('#loc-notification').html((TMD.clinicFinder.tr.keys['loc_found'] + '').replace('{0}', ( TMD.clinicFinder.locations.length ))); } } else { $('#loc-notification').html(TMD.clinicFinder.tr.keys['loc_none_found']); } // set content $("#id-loc-result").html(s.join('')); // -- widget detail close $('#id-loc-result .doctor .icon-x').on('click', function(e) { e.preventDefault(); detailsClose(false); return false; }); // wire if ( window.TMD.clinicFinder.type === 100 ) { // app // - swiper if ( TMD.clinicFinder.swiper ) { TMD.clinicFinder.swiper.destroy(true, true); } TMD.clinicFinder.swiper = new Swiper("#id-swiper", { loop: false, grabCursor: true, //cssMode: true, //autoHeight: true, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, slidesPerView: 1, spaceBetween: 16, breakpoints: { 768: { slidesPerView: 2, spaceBetween: 16, }, 1024: { slidesPerView: 3, spaceBetween: 16, }, 1200: { slidesPerView: 4, spaceBetween: 16, }, 1400: { slidesPerView: 5, spaceBetween: 16, }, }, }); if ( TMD.clinicFinder.swiper ) { TMD.clinicFinder.swiper.slideTo(0, 100); } } else { // widget } // GA $('[data-ga]').off('click').on('click', function(e) { // DEBUG: console.log('GA', dbg_cnt++); TMD.clinicFinder.ga('clinic_finder', $(this).data('ga'), $(this).closest('[data-container]').find('[data-clinic-title]').text().trim() + ' / ' + $(this).closest('[data-container]').data('container') , $(this).closest('[data-container]').data('cid') ); }); // - click div to select $("#id-loc-result [data-index]").on('click', function(e) { activateLocation( $(this).data('index'), null, false ); }); // - click address to zoom $('[data-map="zoom"]').on('click', function(e) { e.preventDefault(); activateLocation( $(this).data('index'), true, false ); return false; }); // - see location details $('#id-loc-result [data-clinic]').on('click', function(e) { e.preventDefault(); const cid = this.dataset.clinic; getLocationData(cid); }); // map markers setMarkers(true, !inRange); } // if (clinic) } // renderLocation(){ // dbg counter let dbg_cnt = 0; // repaintTreatmentSelect function repaintTreatmentSelect(v) { const disp = []; v.map(e => disp.push( $('#id-treatment option[value="' + e + '"]').text() )); const sorted = [...disp].sort(); const uniq = [...new Set(sorted)]; $('#id-treatment ~ .dropdown-toggle').prop('title', uniq.join(', ')); if ( ( window.TMD.clinicFinder.type === 100 ) ) { // $('#id-treatment ~ .dropdown-toggle .filter-option-inner-inner').html('' + uniq.length + '' + uniq.join('') + ''); $('#id-treatment ~ .dropdown-toggle .filter-option-inner-inner').html('' + uniq.join('') + ''); } else { var $treatment = $('select.sel-treatment'); var $multiselectContainer = $('.multiselect-container'); $multiselectContainer.html( '

' + uniq.join('

') + '

' ); $('select.sel-treatment ~ .cselectpicker-button .filter-option-inner-inner').text( uniq.join(', ')); $multiselectContainer.on('click', '.icon', function() { var t = $(this).parent().text(); $(this).parent().remove(); $treatment.find('option').each(function(i, e) { if ( e.innerText == t ) { $(e).prop('selected', false); } }); $treatment.selectpicker('refresh'); }); } } // wireUp function wireUp() { // ranges to dictionary if (TMD.clinicFinder.ranges) { const rng = {}; $.each(TMD.clinicFinder.ranges, function(i, r) { rng[r.rid] = { range: r.range, range2: r.range2, rangeD: (r.range2?.length > 1? r.range2 : r.range) } }); TMD.clinicFinder.rangeD = rng; } // init distance // $('#id-distance').val(50); // search again on dist / treatment change var setLocationTO; var setSelectVal = false; $('#id-location').on('focus', function() { this.select(); }); $('#id-distance').on('change', setLocation); if ( window.TMD.clinicFinder.type === 1 ) { // widget $('#id-location').on('focus', function() { this.select(); }); $('.map-finder input[type="submit"]').on('click', function(e) { e.preventDefault(); setLocation(); return false; }); } // app $('#id-treatment').on('changed.bs.select', (ev, clickedIndex, isSelected, prev) => { // un-focus $('#id-treatment ~ .dropdown-menu .form-control').blur(); // pojdi skozi originalni select, najdi vse z istim tekstom, poberi value in ga postavi/pobriši bs-select const v = prev; if ( clickedIndex !== null ) { const s = $('#id-treatment option:eq(' + clickedIndex + ')') if ( s.length > 0 ) { $('#id-treatment option').each((i, e) => { if ( e.innerText === s[0].innerText ) { const index = v.indexOf(e.value); if ( isSelected === true ) { if ( index === -1 ) { v.push(e.value); } } else if ( isSelected === false ) { if (index > -1) { v.splice(index, 1); } } } }); setSelectVal = true; $('#id-treatment').selectpicker('val', v); if ( v.length > 0 ) { repaintTreatmentSelect(v); } else { $('#id-treatment ~ .dropdown-toggle .filter-option-inner-inner').text(TMD.clinicFinder.tr.keys['treatment_select'].split('|')[1]); $('#id-treatment ~ .dropdown-toggle').prop('title', ''); } } } else { // deselectAll? if ( isSelected === null ) { if ( !setSelectVal ) { $('#id-treatment ~ .dropdown-menu input[type="search"]').val(''); $('#id-treatment ~ .dropdown-toggle').prop('title', ''); $('#id-treatment').selectpicker('refresh'); $('#id-treatment ~ .dropdown-toggle .filter-option-inner-inner').text(TMD.clinicFinder.tr.keys['treatment_select'].split('|')[1]); } } setSelectVal = false; } }).on('change', () => { // zakasnjen update clearTimeout(setLocationTO); setLocationTO = setTimeout(setLocation, 650); }); // focus search hack $('#id-treatment ~ .dropdown-menu .form-control').attr({ 'aria-selected': false, 'tabindex': -1 }); var blurState = false; $('.bs-searchbox .form-control').on('focus', function() { if (!blurState) { $(this).blur(); blurState = true; } }); $('.selectpicker').on('hide.bs.select', function() { blurState = false; }); // details modal close $('#clinic-detail').on('hidden.bs.modal', () => { var url = './'; if ( window.TMD.clinicFinder.query ) { url = './?' + window.TMD.clinicFinder.query; } w.history.pushState({ url: url, title: 'Clinic Finder' }, null, url ); }); // swap view $('[data-swap]').on('click', function(e) { e.preventDefault(); if ( $(this).data('swap') === 'map' ) { // swap views? if ( $('#cf-row-4').hasClass('ty-100') ) { var y = $('#cf-row-3').height(); $('#cf-row-3').addClass('ty-100'); $('#cf-row-4').removeClass('ty-100').css('transform', 'translateY(-' + y + 'px)'); $('button[data-swap="map"]').removeClass('btn-secondary'); $('button[data-swap="list"]').addClass('btn-secondary'); } } else { if ( $('#cf-row-3').hasClass('ty-100') ) { $('#cf-row-3').removeClass('ty-100'); $('#cf-row-4').addClass('ty-100').css('transform', ''); $('button[data-swap="list"]').removeClass('btn-secondary'); $('button[data-swap="map"]').addClass('btn-secondary'); } } }); // history change var w = window; if ( parent ) { w = parent; } if ( window.TMD.clinicFinder.type === 100 ) { w.addEventListener("popstate", function(e) { var c = getQueryVariable('clinic'); var p = getQueryVariable('pos'); //DEBUG: console.log('POP STATE', c, p, e.state); detailsClose(false); if ( c ) { getLocationData(c); } }); } } var setHeightTO = null; var setHeightInit = false; var setHeight = function(now) { // only for app if ( window.TMD.clinicFinder.type !== 100 ) { return false; } var action = function() { var h = 100; var wh = window.innerHeight; var ww = window.innerWidth; if ( parent && parent.document ) { var wh = parent.innerHeight; var hh = $('header', parent.document).outerHeight(); // console.log('wh:%s, hh:%s', wh, hh) //$('main', parent.document).css('margin-top', hh + 'px'); // rešeno s CSS (main.css) wh -= hh; if ( ww > 991 ) { // !setHeightInit ) { setHeightInit = true; parent.document.querySelector('#clinic-finder').height = wh; // console.log('>991', wh); } else { parent.document.querySelector('#clinic-finder').height = wh + $('#clinic-detail-body2').outerHeight(); } } TMD.clinicFinder.wh = wh; // console.log('ww×wh: %s×%s', ww, wh); // if ( wh < 634 ) { // if ( wh < 434 ) { // if ( ( wh < 540 && ww < 992 ) || ( wh < 478 ) ) { if ( ( wh < 550 && ww < 992 ) || ( wh < 478 ) ) { // move map offscreen h = wh - $('#cf-row-1').height() - $('#cf-row-2').height() - 10; $('#cf-row-3').removeClass('ty-100'); // $('#id-swiper, #id-loc-result').css('height', h + 'px'); $('#cf-row-4').addClass('ty-100').css('transform', ''); // $('#map').css({ 'height': (h-10) + 'px' }); $('#map-swap').addClass('op-1'); // $('[data-map="zoom"]').show(); $('#div-swiper-box').css('height', (h-70) + 'px'); $('#map').css('height', (h-40) + 'px'); /* if ( wh < 498 ) { $('#div-swiper-box').css('height', (240+(wh-498)) + 'px'); } else { $('#div-swiper-box').css('height', '240px'); } */ // correct container h $('#cf-global-app').css('height', ( $('#cf-row-1').height() + $('#cf-row-2').height() + $('#cf-row-3').height() + 48) + 'px' ); } else { // map onscreen $('#map-swap').removeClass('op-1'); // TMD.clinicFinder.simpleInfo = ( wh < 634 ); if ( TMD.clinicFinder.simpleInfo ) { $('#div-swiper-box').css('height', '100px'); } else { $('#div-swiper-box').css('height', '240px'); } h = wh - $('#cf-row-1').height() - $('#cf-row-2').height() - $('#cf-row-3').height() - 10; // $('#map').css('height', h + 'px') // $('#map').css({ 'height': (h-10) + 'px' }); $('#map').css({ 'height': (h+4) + 'px' }); $('#cf-row-3').removeClass('ty-100'); // $('#id-swiper, #id-loc-result').css('height', ''); $('#cf-row-4').removeClass('ty-100').css('transform', ''); // $('[data-map="zoom"]').hide(); // correct container h $('#cf-global-app').css('height', ( $('#cf-row-1').height() + $('#cf-row-2').height() + $('#cf-row-3').height() + $('#cf-row-4').height() + 80 ) + 'px' ); } $('#cf-row-4').removeClass('op-0'); }; if ( now === 1 ) { action(); } else { clearTimeout(setHeightTO); setHeightTO = setTimeout(action, 500); } }; function initUI() { // restyle parent /* $('main .container h1', parent.document).remove(); $('main .container', parent.document).addClass('container-fluid').removeClass('container'); // .css('background', '#0f0f11'); $('main .container-fluid .row:eq(0)', parent.document).css({ 'margin-left':'-30px', 'margin-right':'-30px' }); $('main', parent.document).css({ 'overflow':'hidden' }); $('main #clinic-finder', parent.document).css({ 'margin-left':'0', 'margin-right':'0' }); */ // translate $('[data-tran]').each(function(i, e) { if (TMD.clinicFinder.tr.keys[e.dataset.tran]) { if ( e.dataset.tranType ) { if ( e.dataset.tranType === 'placeholder' ) { e.placeholder = TMD.clinicFinder.tr.keys[e.dataset.tran]; } else if ( e.dataset.tranType === 'label' ) { e.label = TMD.clinicFinder.tr.keys[e.dataset.tran]; } else if ( e.dataset.tranType === 'value' ) { e.value = TMD.clinicFinder.tr.keys[e.dataset.tran]; } else if ( e.dataset.tranType === 'selectpicker' ) { var t_A = (TMD.clinicFinder.tr.keys[e.dataset.tran] + '|*|*|*|*').split('|'); e.dataset.deselectAllText = t_A[0]; e.dataset.noneSelectedText = t_A[1]; e.dataset.noneResultsText = t_A[2]; } } else { e.innerHTML = TMD.clinicFinder.tr.keys[e.dataset.tran]; } } }); // - distance unit if ( TMD.clinicFinder.tr.keys['distance_unit'] ) { if ( TMD.clinicFinder.tr.keys['distance_unit'] !== 'km' ) { TMD.clinicFinder.du = 1.609344; // km for 1 mile } $('#id-distance > option').each(function(i, e) { e.innerText = parseInt(e.innerText, 10) + ' ' + TMD.clinicFinder.tr.keys['distance_unit']; }); } // langs? if ( TMD.clinicFinder.tr.ln && TMD.clinicFinder.tr.ln.length && TMD.clinicFinder.tr.ln.length > 0 ) { $.each(TMD.clinicFinder.tr.ln, function(i, e) { var e2 = e; if (e2 === 'en') { e2 = 'gb'; } $('#lang-btns ul.dropdown-menu').append('

  • ' + e + '
  • '); }); $('#lang-btns').addClass('on'); } // treatmens selectpicker $('#id-treatment').html( TMD.clinicFinder.tr.treatsOpts ); // post trans // - app var dstpiker = $('select.dist-selectpicker').selectpicker(); // breaks widget: vdstpiker.data('selectpicker').findLis = function() { console.log('find lis D'); }; var selpiker = $('select.treat-selpicker').selectpicker(); // breaks widget: selpiker.data('selectpicker').findLis = function() { console.log('find lis s'); }; // - widget var $treatment = $('select.sel-treatment'); if ($treatment.length > 0) { selpiker = $treatment.selectpicker({ styleBase: 'btn cselectpicker-button', width: '100%', size: 6 }) } // $('.bs-actionsbox') $('.bs-actionsbox > .btn-group').prepend(''); $('.bs-actionsbox > .btn-group .bs-close').on('click', function(e) { e.preventDefault(); selpiker.selectpicker('toggle'); }); // show fade in $('#cf-global-app').addClass('op-1'); } // titling $('#clinic-detail').on('shown.bs.modal', function() { document.title = $('#clinic-detail-title').text() + ' | Fotona'; }).on('hide.bs.modal', function() { document.title = TMD.clinicFinder.tr.keys['cf_title'] + ' | Fotona'; }); // loaders... $('head').append( $('

    ').attr('href', '/inc/clinic-finder/global/line-awesome/css/line-awesome.min.css') ); if ( window.TMD.clinicFinder.type === 100 ) { // $('head').append( $('

    ').attr('href', '/inc/clinic-finder/global/bs-select/css/bootstrap-select.min.css') ); $('head').append( $('

    ').attr('href', '/inc/clinic-finder/global/swiper/swiper-bundle.min.css') ); // $.getScript('/inc/clinic-finder/global/bs-select/js/bootstrap-select.min.js', function() { // }); $.getScript('/inc/clinic-finder/global/swiper/swiper-bundle.min.js', function() { TMD.clinicFinder.loaded = true; $(window).on('resize orientationchange load', setHeight); setHeight(1); initUI(); }); } else { $.getScript('/inc/clinic-finder/global/bs-select/js/bootstrap-select.min.js', function() { TMD.clinicFinder.loaded = true; initUI(); }); } // local debug if ( document.location.hostname.indexOf('.int.tmd') > 2 ) { $('#cf-main-content').addClass('show'); } if ( document.location.hostname.indexOf('edit.fotona') > -1 ) { var present = parseInt(getQueryVariable('present')); if ( present && present >= 1 && present <= 5) { TMD.clinicFinder.global = 1; $('body').append( `

    `); $('[data-global-range]').on('click', (e) => { TMD.clinicFinder.globalRange = $(e.currentTarget).data('globalRange'); window.scrollTo(0, 0); if ( $('#map').data('moved') ) { // moved } else { $('#map').data('moved', true).prependTo('body').css({ position: 'absolute', height: '100svh', 'z-index': 999, top: 0, right: 0, bottom: 0, left: 0, }) } renderLocation(); }); let msize = 32; $('[data-icosize]').on('click', (e) => { if ( $(e.currentTarget).data('icosize') === '+' ) { msize += 4; } else { msize -= 4; } if ( msize < 3 || msize > 68 ) { msize = 32; } $('#map .loc-marker').css({ 'width': msize + 'px', 'height': msize + 'px' }); }); } } }); // TMD.boot.push(fn ())

    Rechercher un médecin | Fotona (2024)

    References

    Top Articles
    Latest Posts
    Article information

    Author: Rubie Ullrich

    Last Updated:

    Views: 6619

    Rating: 4.1 / 5 (72 voted)

    Reviews: 87% of readers found this page helpful

    Author information

    Name: Rubie Ullrich

    Birthday: 1998-02-02

    Address: 743 Stoltenberg Center, Genovevaville, NJ 59925-3119

    Phone: +2202978377583

    Job: Administration Engineer

    Hobby: Surfing, Sailing, Listening to music, Web surfing, Kitesurfing, Geocaching, Backpacking

    Introduction: My name is Rubie Ullrich, I am a enthusiastic, perfect, tender, vivacious, talented, famous, delightful person who loves writing and wants to share my knowledge and understanding with you.