To learn what our patients experience when they visit our dental offices in Granite City and Highland, Illinois, please browse our reviews. It is easy to see why our loyal patients choose Dr. Laney Schuman and Midwest Family Dentistry PC for all of their dental needs. We encourage you to contact our dental office today to learn more and to schedule your next visit with our dentist.

Highland

Granite City

The requested content cannot be loaded.
Please try again later.

',closeBtn:'',next:'',prev:''},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0,openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1,isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=t(a)?f(a).get():[a]),f.each(a,function(e,c){var k={},g,h,j,m,l;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),t(c)?(k={href:c.data("fancybox-href")||c.attr("href"),title:c.data("fancybox-title")||c.attr("title"),isDom:!0,element:c},f.metadata&&f.extend(!0,k,c.metadata())):k=c);g=d.href||k.href||(q(c)?c:null);h=d.title!==v?d.title:k.title||"";m=(j=d.content||k.content)?"html":d.type||k.type;!m&&k.isDom&&(m=c.data("fancybox-type"),m||(m=(m=c.prop("class").match(/fancybox\.(\w+)/))?m[1]:null));q(g)&&(m||(b.isImage(g)?m="image":b.isSWF(g)?m="swf":"#"===g.charAt(0)?m="inline":q(c)&&(m="html",j=c)),"ajax"===m&&(l=g.split(/\s+/,2),g=l.shift(),l=l.shift()));j||("inline"===m?g?j=f(q(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):k.isDom&&(j=c):"html"===m?j=g:!m&&(!g&&k.isDom)&&(m="inline",j=c));f.extend(k,{href:g,type:m,content:j,title:h,selector:l});a[e]=k}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==v&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1!==b.trigger("onCancel")&&(b.hideLoading(),b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(),b.coming=null,b.current||b._afterZoomOut(a))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(!b.isOpen||!0===a?(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut()):(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&&(b.player.timer=setTimeout(b.next,b.current.playSpeed))},c=function(){d();p.unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};if(!0===a||!b.player.isActive&&!1!==a){if(b.current&&(b.current.loop||b.current.index=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==v&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,k;c&&(k=b._getPosition(d),a&&"scroll"===a.type?(delete k.position,c.stop(!0,!0).animate(k,200)):(c.css(k),e.pos=f.extend({},e.dim,k)))},update:function(a){var d=a&&a.type,e=!d||"orientationchange"===d;e&&(clearTimeout(B),B=null);b.isOpen&&!B&&(B=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),B=null)},e&&!s?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,s&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"),b.trigger("onUpdate")),b.update())},hideLoading:function(){p.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('
').click(b.cancel).appendTo("body");p.bind("keydown.loading",function(a){if(27===(a.which||a.keyCode))a.preventDefault(),b.cancel()});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}))},getViewport:function(){var a=b.current&&b.current.locked||!1,d={x:n.scrollLeft(),y:n.scrollTop()};a?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=s&&r.innerWidth?r.innerWidth:n.width(),d.h=s&&r.innerHeight?r.innerHeight:n.height());return d},unbindEvents:function(){b.wrap&&t(b.wrap)&&b.wrap.unbind(".fb");p.unbind(".fb");n.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(n.bind("orientationchange.fb"+(s?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&p.bind("keydown.fb",function(e){var c=e.which||e.keyCode,k=e.target||e.srcElement;if(27===c&&b.coming)return!1;!e.ctrlKey&&(!e.altKey&&!e.shiftKey&&!e.metaKey&&(!k||!k.type&&!f(k).is("[contenteditable]")))&&f.each(d,function(d,k){if(1h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();if(0!==c&&!j&&1g||0>k)b.next(0>g?"up":"right");d.preventDefault()}}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d,e){if(e&&b.helpers[d]&&f.isFunction(b.helpers[d][a]))b.helpers[d][a](f.extend(!0,{},b.helpers[d].defaults,e),c)});p.trigger(a)}},isImage:function(a){return q(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(a){return q(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c;a=l(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&&(d.padding=[c,c,c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1,mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive=!0;if("image"===c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio=!0);"iframe"===c&&s&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(s?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,w(d.padding[a]))});b.trigger("onReady");if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href");"image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width=this.width/b.opts.pixelRatio;b.coming.height=this.height/b.opts.pixelRatio;b._afterLoad()};a.onerror=function(){this.onload=this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming,d=f(a.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",s?"auto":a.iframe.scrolling).attr("src",a.href);f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);s||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload||b._afterLoad()},_preloadImages:function(){var a=b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload,e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,k,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());b.unbindEvents();e=a.content;c=a.type;k=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin,outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("
").html(e).find(a.selector):t(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('
').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder",!1)}));break;case "image":e=a.tpl.image.replace("{href}",g);break;case "swf":e='',h="",f.each(a.swf,function(a,b){e+='';h+=" "+a+'="'+b+'"'}),e+='"}(!t(e)||!e.parent().is(a.inner))&&a.inner.append(e);b.trigger("beforeShow");a.inner.css("overflow","yes"===k?"scroll":"no"===k?"hidden":k);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(b.isOpened){if(d.prevMethod)b.transitions[d.prevMethod]()}else f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,k=b.skin,g=b.inner,h=b.current,c=h.width,j=h.height,m=h.minWidth,u=h.minHeight,n=h.maxWidth,p=h.maxHeight,s=h.scrolling,q=h.scrollOutside?h.scrollbarWidth:0,x=h.margin,y=l(x[1]+x[3]),r=l(x[0]+x[2]),v,z,t,C,A,F,B,D,H;e.add(k).add(g).width("auto").height("auto").removeClass("fancybox-tmp");x=l(k.outerWidth(!0)-k.width());v=l(k.outerHeight(!0)-k.height());z=y+x;t=r+v;C=E(c)?(a.w-z)*l(c)/100:c;A=E(j)?(a.h-t)*l(j)/100:j;if("iframe"===h.type){if(H=h.content,h.autoHeight&&1===H.data("ready"))try{H[0].contentWindow.document.location&&(g.width(C).height(9999),F=H.contents().find("body"),q&&F.css("overflow-x","hidden"),A=F.outerHeight(!0))}catch(G){}}else if(h.autoWidth||h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(C),h.autoHeight||g.height(A),h.autoWidth&&(C=g.width()),h.autoHeight&&(A=g.height()),g.removeClass("fancybox-tmp");c=l(C);j=l(A);D=C/A;m=l(E(m)?l(m,"w")-z:m);n=l(E(n)?l(n,"w")-z:n);u=l(E(u)?l(u,"h")-t:u);p=l(E(p)?l(p,"h")-t:p);F=n;B=p;h.fitToView&&(n=Math.min(a.w-z,n),p=Math.min(a.h-t,p));z=a.w-y;r=a.h-r;h.aspectRatio?(c>n&&(c=n,j=l(c/D)),j>p&&(j=p,c=l(j*D)),cz||y>r)&&(c>m&&j>u)&&!(19n&&(c=n,j=l(c/D)),g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height();else c=Math.max(m,Math.min(c,c-(a-z))),j=Math.max(u,Math.min(j,j-(y-r)));q&&("auto"===s&&jz||y>r)&&c>m&&j>u;c=h.aspectRatio?cu&&j
').appendTo(b.coming?b.coming.parent:a.parent);this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this;a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(n.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay",function(a){if(f(a.target).hasClass("fancybox-overlay"))return b.isActive?b.close():d.close(),!1});this.overlay.css(a.css).show()},close:function(){var a,b;n.unbind("resize.overlay");this.el.hasClass("fancybox-lock")&&(f(".fancybox-margin").removeClass("fancybox-margin"),a=n.scrollTop(),b=n.scrollLeft(),this.el.removeClass("fancybox-lock"),n.scrollTop(a).scrollLeft(b));f(".fancybox-overlay").remove().hide();f.extend(this,{overlay:null,fixed:!1})},update:function(){var a="100%",b;this.overlay.width(a).height("100%");I?(b=Math.max(G.documentElement.offsetWidth,G.body.offsetWidth),p.width()>b&&(a=p.width())):p.width()>n.width()&&(a=p.width());this.overlay.width(a).height(p.height())},onReady:function(a,b){var e=this.overlay;f(".fancybox-overlay").stop(!0,!0);e||this.create(a);a.locked&&(this.fixed&&b.fixed)&&(e||(this.margin=p.height()>n.height()?f("html").css("margin-right").replace("px",""):!1),b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){var e,c;b.locked&&(!1!==this.margin&&(f("*").filter(function(){return"fixed"===f(this).css("position")&&!f(this).hasClass("fancybox-overlay")&&!f(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin")),e=n.scrollTop(),c=n.scrollLeft(),this.el.addClass("fancybox-lock"),n.scrollTop(e).scrollLeft(c));this.open(a)},onUpdate:function(){this.fixed||this.update()},afterClose:function(a){this.overlay&&!b.coming&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(a){var d=b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(q(e)&&""!==f.trim(e)){d=f('
'+e+"
");switch(c){case "inside":c=b.skin;break;case "outside":c=b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),I&&d.width(d.width()),d.wrapInner(''),b.current.margin[2]+=Math.abs(l(d.css("margin-bottom")))}d["top"===a.position?"prependTo":"appendTo"](c)}}};f.fn.fancybox=function(a){var d,e=f(this),c=this.selector||"",k=function(g){var h=f(this).blur(),j=d,k,l;!g.ctrlKey&&(!g.altKey&&!g.shiftKey&&!g.metaKey)&&!h.is(".fancybox-wrap")&&(k=a.groupAttr||"data-fancybox-group",l=h.attr(k),l||(k="rel",l=h.get(0)[k]),l&&(""!==l&&"nofollow"!==l)&&(h=c.length?f(c):e,h=h.filter("["+k+'="'+l+'"]'),j=h.index(this)),a.index=j,!1!==b.open(h,a)&&g.preventDefault())};a=a||{};d=a.index||0;!c||!1===a.live?e.unbind("click.fb-start").bind("click.fb-start",k):p.undelegate(c,"click.fb-start").delegate(c+":not('.fancybox-item, .fancybox-nav')","click.fb-start",k);this.filter("[data-fancybox-start=1]").trigger("click");return this};p.ready(function(){var a,d;f.scrollbarWidth===v&&(f.scrollbarWidth=function(){var a=f('
').appendTo("body"),b=a.children(),b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});if(f.support.fixedPosition===v){a=f.support;d=f('
').appendTo("body");var e=20===d[0].offsetTop||15===d[0].offsetTop;d.remove();a.fixedPosition=e}f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")});a=f(r).width();J.addClass("fancybox-lock-test");d=f(r).width();J.removeClass("fancybox-lock-test");f("").appendTo("head")})})(window,document,jQuery);(function(d){function e(a){var b=a||window.event,c=[].slice.call(arguments,1),f=0,e=0,g=0,a=d.event.fix(b);a.type="mousewheel";b.wheelDelta&&(f=b.wheelDelta/120);b.detail&&(f=-b.detail/3);g=f;b.axis!==void 0&&b.axis===b.HORIZONTAL_AXIS&&(g=0,e=-1*f);b.wheelDeltaY!==void 0&&(g=b.wheelDeltaY/120);b.wheelDeltaX!==void 0&&(e=-1*b.wheelDeltaX/120);c.unshift(a,f,e,g);return(d.event.dispatch||d.event.handle).apply(this,c)}var c=["DOMMouseScroll","mousewheel"];if(d.event.fixHooks)for(var h=c.length;h;)d.event.fixHooks[c[--h]]=d.event.mouseHooks;d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],e,false);else this.onmousewheel=e},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],e,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery);(function ($) { "use strict"; var F = $.fancybox, format = function( url, rez, params ) { params = params || ''; if ( $.type( params ) === "object" ) { params = $.param(params, true); } $.each(rez, function(key, value) { url = url.replace( '$' + key, value || '' ); }); if (params.length) { url += ( url.indexOf('?') > 0 ? '&' : '?' ) + params; } return url; }; F.helpers.media = { defaults : { youtube : { matcher : /(youtube\.com|youtu\.be|youtube-nocookie\.com)\/(watch\?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*)).*/i, params : { autoplay : 1, autohide : 1, fs : 1, rel : 0, hd : 1, wmode : 'opaque', enablejsapi : 1 }, type : 'iframe', url : '//www.youtube.com/embed/$3' }, vimeo : { matcher : /(?:vimeo(?:pro)?.com)\/(?:[^\d]+)?(\d+)(?:.*)/, params : { autoplay : 1, hd : 1, show_title : 1, show_byline : 1, show_portrait : 0, fullscreen : 1 }, type : 'iframe', url : '//player.vimeo.com/video/$1' }, metacafe : { matcher : /metacafe.com\/(?:watch|fplayer)\/([\w\-]{1,10})/, params : { autoPlay : 'yes' }, type : 'swf', url : function( rez, params, obj ) { obj.swf.flashVars = 'playerVars=' + $.param( params, true ); return '//www.metacafe.com/fplayer/' + rez[1] + '/.swf'; } }, dailymotion : { matcher : /dailymotion.com\/video\/(.*)\/?(.*)/, params : { additionalInfos : 0, autoStart : 1 }, type : 'swf', url : '//www.dailymotion.com/swf/video/$1' }, twitvid : { matcher : /twitvid\.com\/([a-zA-Z0-9_\-\?\=]+)/i, params : { autoplay : 0 }, type : 'iframe', url : '//www.twitvid.com/embed.php?guid=$1' }, twitpic : { matcher : /twitpic\.com\/(?!(?:place|photos|events)\/)([a-zA-Z0-9\?\=\-]+)/i, type : 'image', url : '//twitpic.com/show/full/$1/' }, instagram : { matcher : /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i, type : 'image', url : '//$1/p/$2/media/?size=l' }, google_maps : { matcher : /maps\.google\.([a-z]{2,3}(\.[a-z]{2})?)\/(\?ll=|maps\?)(.*)/i, type : 'iframe', url : function( rez ) { return '//maps.google.' + rez[1] + '/' + rez[3] + '' + rez[4] + '&output=' + (rez[4].indexOf('layer=c') > 0 ? 'svembed' : 'embed'); } } }, beforeLoad : function(opts, obj) { var url = obj.href || '', type = false, what, item, rez, params; for (what in opts) { if (opts.hasOwnProperty(what)) { item = opts[ what ]; rez = url.match( item.matcher ); if (rez) { type = item.type; params = $.extend(true, {}, item.params, obj[ what ] || ($.isPlainObject(opts[ what ]) ? opts[ what ].params : null)); url = $.type( item.url ) === "function" ? item.url.call( this, rez, params, obj ) : format( item.url, rez, params ); break; } } } if (type) { obj.href = url; obj.type = type; obj.autoHeight = false; } } };}(jQuery)); var bpApp = { extendObject: function(sourceObj, targetObj) { if(typeof sourceObj === 'object' && typeof targetObj === 'object') { for(var property in sourceObj) { if(sourceObj.hasOwnProperty(property) && typeof targetObj[property] === 'undefined') { targetObj[property] = sourceObj[property]; } } return targetObj; } return false; }, extendClass: function(sourceClass, targetClass) { var source = (typeof sourceClass === 'function')? sourceClass.prototype : sourceClass, target = (typeof targetClass === 'function')? targetClass.prototype : targetClass; if(typeof source === 'object' && typeof target === 'object') { var obj = this.createObject(source); this.extendObject(source, obj); for(var prop in target) { if(target.hasOwnProperty(prop) && typeof obj[prop] === 'undefined') { obj[prop] = target[prop]; } } return obj; } return false; }, createObject: function(object) { if(typeof Object.create !== 'fucntion') { var obj = function(){}; obj.prototype = object; return new obj(); } else { return Object.create(object); } }, createCallBack: function(obj, method, argArray) { if(typeof method === 'function') { argArray = argArray || []; return function() { return method.apply(obj, argArray); }; } else { return false; } } }; bpApp.htmlBuilder = function(){}; bpApp.htmlBuilder.prototype = { constructor: bpApp.htmlBuilder, create: function(nodeName, attrObject, container, prepend) { var filterProperty = function(prop) { switch(prop) { case 'class': prop = 'className'; break; } return prop; }; var removePrefix = function(prop) { if(typeof prop !== 'undefined') { if(prop.substring(0, 2) === 'on') { prop = prop.substring(2); } } return prop; }; var obj = document.createElement(nodeName); if(typeof attrObject === 'object') { for(var prop in attrObject) { var propName = filterProperty(prop); if(prop === 'innerHTML') { obj.innerHTML = attrObject[prop]; } else if(prop.substring(0, 5) === 'data-') { jQuery(obj).data(prop, attrObject[prop]); } else { if(typeof attrObject[prop] !== 'undefined' && attrObject[prop] != '') { if(typeof attrObject[prop] === 'function') { propName = removePrefix(propName); jQuery(obj).on(propName, attrObject[prop]); } else { obj[propName] = attrObject[prop]; } } } } } try { if(prepend == true) { this.prepend(container, obj); } else { this.append(container, obj); } } catch(e) { this.error(e, obj); } return obj; }, append: function(parent, child) { if(typeof parent === "undefined") { parent = document.body; } else if(typeof parent === 'string') { parent = document.getElementById(parent); } if(typeof parent === 'object') { parent.appendChild(child); } }, prepend: function(parent, child) { if(typeof parent === "undefined") { parent = document.body; } else if(typeof parent === 'string') { parent = document.getElementById(parent); } if(typeof parent === 'object') { parent.insertBefore(child, parent.firstChild); } }, createObject: function(object, id, tmpClass, text, container, prepend) { var attr = { id: id, 'className': tmpClass, innerHTML: text }; var obj = this.create(object, attr, container, prepend); return (obj.id)? obj.id : obj; }, createButton: function(type,id,tmpClass,text,callBackFn,container,prepend) { var attr = { id: id, 'className': tmpClass, innerHTML: text }; if(typeof callBackFn == 'function') { attr.onclick = callBackFn; } var obj = this.create(type, attr, container, prepend); return (obj.id)? obj.id : obj; }, createLink: function(type,id,tmpClass,text,url,container,prepend) { var attr = { id: id, 'className': tmpClass, innerHTML: text }; if(url !== null) { attr.href = url; } var obj = this.create(type, attr, container, prepend); return (obj.id)? obj.id : obj; }, createIframe: function(id, className, src, container, prepend) { var attr = { id: id, 'className': className }; if(typeof src !== 'undefined') { attr.src = src; } attr.width = '100%'; attr.height = '100%'; attr.frameBorder = "0"; return this.create('iframe', attr, container, prepend); }, createImage: function(id, tmpClass, src, alt, container, prepend) { var attr = { id: id, 'className': tmpClass }; if(typeof alt !== 'undefined') { attr.alt = alt; } if(typeof src !== 'undefined') { attr.src = src; } var obj = this.create('img', attr, container, prepend); return (obj.id)? obj.id : obj; } }; var removeClassAndHide = function(obj, animationClass){ obj.style.display = 'none'; removeAnimationClass(obj, animationClass); }; var removeAnimationClass = function(obj, animationClass){ jQuery(obj).removeClass(animationClass); bpApp.animate.animating.remove(obj); }; bpApp.animate = { animating: { objects: [], add: function(object, className, timer) { this.stopPreviousAnimations(object); this.addObject(object, className, timer); }, addObject: function(object, className, timer) { if(object) { var animation = { object: object, className: className, timer: timer }; this.objects.push(animation); } }, remove: function(object) { var objectIndex = this.removeObject(object); }, removeObject: function(object, removeClass) { if(object) { var animating = this.checkAnimating(object); if(animating !== false) { var animations = animating; for(var i = 0, maxLength = animations.length; i < maxLength; i++) { var animation = animations[i]; this.stopTimer(animation); if(removeClass) { jQuery(animation.object).removeClass(animation.className); } var indexNumber = jQuery.inArray(animation, this.objects); if(indexNumber >= 0) { this.objects.splice(indexNumber, 1); } } } } }, stopTimer: function(animation) { if(animation) { var timer = animation.timer; window.clearTimeout(timer); } }, checkAnimating: function(obj) { var animationArray = []; for(var i = 0, maxLength = this.objects.length; i < maxLength; i++) { var animation = this.objects[i]; if(animation.object === obj) { animationArray.push(animation); } } return (animationArray.length >= 1)? animationArray : false; }, stopPreviousAnimations: function(obj) { this.removeObject(obj, 1); }, reset: function() { this.objects = []; } }, setupSelectingObject: function(object) { return (typeof object === 'string')? document.getElementById(object) : object; }, hide: function(object, animationClass, duration) { var obj = this.setupSelectingObject(object); jQuery(obj).addClass(animationClass); var callBack = bpApp.createCallBack(null, removeClassAndHide, [obj, animationClass]); var timer = window.setTimeout(callBack, duration); this.animating.add(obj, animationClass, timer); }, show: function(object, animationClass, duration) { var obj = this.setupSelectingObject(object); jQuery(obj).addClass(animationClass); obj.style.display = 'block'; var callBack = bpApp.createCallBack(null, removeAnimationClass, [obj, animationClass]); var timer = window.setTimeout(callBack, duration); this.animating.add(obj, animationClass, timer); }, set: function(object, animationClass, duration) { var obj = this.setupSelectingObject(object); jQuery(obj).addClass(animationClass); var callBack = bpApp.createCallBack(null, removeAnimationClass, [obj, animationClass]); var timer = window.setTimeout(callBack, duration); this.animating.add(obj, animationClass, timer); } };bpApp.slideShow = function(container, defaultPathUrl, setAsBg) { this.number = (typeof bpApp.slideShow.number === 'undefined')? bpApp.slideShow.number = 0 : (++bpApp.slideShow.number); this.id = 'bp_spotlight_' + this.number; this.defaultPathUrl = (defaultPathUrl)? defaultPathUrl : '/slideshow/'; this.setAsBg = (setAsBg)? setAsBg : false; this.animationMode = 'fade'; this.lastSelectedOption = null; this.onNumber = null; this.optionsArray = []; this.timer = null; this.container = container; }; bpApp.slideShow.prototype = bpApp.extendClass(bpApp.htmlBuilder, { constructor: bpApp.slideShow, addKeyboardSupport: function() { var self = this; jQuery(document).on('keydown', function(e){ self.keyPress(e); }); }, keyPress: function(e) { var keyCode = e.keyCode; switch(keyCode) { case 37: this.selectPreviousOption(); break; case 39: this.selectNextOption(); break; } }, addOption: function(option) { var number = this.optionsArray.length; option.optionNumber = number; option.nameId = this.id + '_option_number_' + number; option.crumbId = this.id + '_crumb_number_' + number; option.selected = 'no'; this.optionsArray.push(option); this.createCrumb(option); var panel = this.createOptionPanel(option,this.container); }, resetContainer: function() { var container = document.getElementById(this.container); container.innerHTML = ''; }, setup: function(optionsArray) { this.resetContainer(); this.setupControlPanel(); this.setupOptions(optionsArray); this.addKeyboardSupport(); }, setupControlPanel: function() { var self = this; var button = this.createButton('a', '', 'arrow arrow_left', '', function(){ self.selectPreviousOption(); }, this.container); var button = this.createButton('a', '', 'arrow arrow_right', '', function(){ self.selectNextOption(); }, this.container); var numberContainer = this.createObject('div', this.id + '_crumb_container', 'number_crumb_container', '', this.container); var slideTab = this.createObject('div', this.id + '_slide_tab', 'slideTab', '', numberContainer); }, setupOptions: function(optionsArray) { var maxLength = optionsArray.length; if(maxLength > 0) { var tmpNumber = 0; for(var i = 0; i < maxLength; i++) { var tmpOption = optionsArray[i]; this.addOption(tmpOption); } } this.selectNewPanel(); }, createOptionPanel: function(tmpOption, container) { if(tmpOption && tmpOption.url) { container = this.createLink('a','','','',tmpOption.url,container); } var spotlightContainer = this.createObject('div', tmpOption.nameId, 'splash_container', '', container); var area = document.getElementById(spotlightContainer); area.onmouseover = bpApp.createCallBack(this, this.stopTimer); area.onmouseout = bpApp.createCallBack(this, this.startTimer); area.style.display = 'none'; var imageURL = tmpOption.image; if(this.setAsBg == true) { if(imageURL) { area.style.backgroundImage = 'url(' + wpThemeUrl + this.defaultPathUrl + imageURL + ')'; } } else { if(imageURL) { var imageContainer = this.createObject('div','','image_container','',spotlightContainer); var image = this.createImage('','',wpThemeUrl + this.defaultPathUrl + imageURL,tmpOption.alt,imageContainer); } } var articleContainer = this.createObject('article', '', 'content_container ' + tmpOption.className, '', spotlightContainer); var animation = this.getAnimation(); var sectionContainer = this.createObject('section', '', 'spotlight dark ' + animation, '', articleContainer); var h2 = this.createObject('h2', '', 'title_text blue', tmpOption.title, sectionContainer); var text = this.createObject('div', '', 'light', tmpOption.content, sectionContainer); }, getAnimation: function() { var animations = ['pullLeftIn','pullRightIn']; var animationNumber = Math.round(Math.random() * (animations.length - 1)); return animations[animationNumber]; }, createCrumb: function(tmpOption) { var self = this; var crumbContainer = this.id + '_crumb_container'; var optionClass = this.getCrumbClass(tmpOption); var option = this.createButton('div', tmpOption.crumbId, optionClass, tmpOption.crumbContent, function(){ self.selectOption(tmpOption); }, crumbContainer); }, getCrumbClass: function(tmpOption) { if(tmpOption.selected === 'yes') { return 'option selected'; } else { return 'option'; } }, selectNewPanel: function() { if(this.onNumber < (this.optionsArray.length - 1) && this.onNumber != null) { this.onNumber++; } else { this.onNumber = 0; } this.selectOptionByNumber(this.onNumber); }, getPanelClass: function(lastNum, currentNum) { var animation = { selecting: 'same', removing: '' }; var mode = this.animationMode || 'fade'; if(mode === 'left_right') { if(currentNum > lastNum) { animation.removing = 'pullLeft'; animation.selecting = 'pullRightIn'; } else if(currentNum < lastNum) { animation.removing = 'pullRight'; animation.selecting = 'pullLeftIn'; } } else { animation.removing = 'fadeOut'; animation.selecting = 'fadeIn'; } return animation; }, getPanelAnimations: function() { var selection = this.getSelectedOption(); var panelNumber = selection.optionNumber; var lastPanelNumber = (typeof this.lastSelectedOption !== 'undefined')? jQuery.inArray(this.lastSelectedOption, this.optionsArray): 0; return this.getPanelClass(lastPanelNumber, panelNumber); }, selectPanel: function(tmpOption) { var animations = this.getPanelAnimations(); for(var i = 0, maxLength = this.optionsArray.length; i < maxLength; i++) { var option = this.optionsArray[i], nameId = option.nameId, panel = document.getElementById(nameId); if(tmpOption.nameId === nameId) { panel.style.zIndex = 2; panel.style.position = (this.setAsBg === true)? 'absolute' : 'relative'; bpApp.animate.show(panel, animations.selecting, 1000); } else { if(this.lastSelectedOption && this.lastSelectedOption.nameId === nameId) { panel.style.zIndex = 1; panel.style.position = 'absolute'; panel.style.top = '0px'; bpApp.animate.hide(panel, animations.removing, 1000); } } var crumbId = option.crumbId; if(typeof crumbId !== 'undefined') { var crumbClass = this.getCrumbClass(option), crumb = document.getElementById(crumbId); if(crumb) { crumb.className = crumbClass; } } } }, getNextOption: function() { var lastSelectedOption = (this.lastSelectedOption !== null)? this.lastSelectedOption.optionNumber : 0; var nextOptionNumber = ++lastSelectedOption; if(nextOptionNumber < this.optionsArray.length) { return this.optionsArray[nextOptionNumber]; } else { return this.optionsArray[0]; } }, selectNextOption: function() { var nextOption = this.getNextOption(); if(nextOption) { this.selectOption(nextOption); } }, getPreviousOption: function() { var lastSelectedOption = (this.lastSelectedOption !== null)? this.lastSelectedOption.optionNumber : 0; var previousOptionNumber = --lastSelectedOption; if(previousOptionNumber >= 0) { return this.optionsArray[previousOptionNumber]; } else { return this.optionsArray[(this.optionsArray.length - 1)]; } }, selectPreviousOption: function() { var previousOption = this.getPreviousOption(); if(previousOption) { this.selectOption(previousOption); } }, setLastSelectedOption: function(option) { this.lastSelectedOption = option; }, unselectOption: function(tmpOption) { for(var j = 0, maxLength = this.optionsArray.length; j < maxLength; j++) { var option = this.optionsArray[j]; if(option !== tmpOption) { if(option.selected === 'yes') { option.selected = 'no'; } } } }, moveSlideTab: function(e) { var offset = jQuery(e).position(); var slideTab = jQuery('#' + this.id + '_slide_tab').css('left', offset.left + 'px'); }, selectOption: function(tmpOption) { this.stopTimer(); var object = document.getElementById(tmpOption.nameId); var slideTab = document.getElementById(tmpOption.crumbId); if(slideTab) { this.moveSlideTab(slideTab); } if(tmpOption.selected === 'no') { tmpOption.selected = 'yes'; this.onNumber = jQuery.inArray(tmpOption, this.optionsArray); } else { tmpOption.selected = 'no'; } this.unselectOption(tmpOption); this.selectPanel(tmpOption); this.setLastSelectedOption(tmpOption); this.startTimer(); }, selectOptionByNumber: function(number) { for(var i = 0, maxLength = this.optionsArray.length; i < maxLength; i++) { if(i == number) { var tmpOption = this.optionsArray[i]; var selection = tmpOption; } } if(selection) { this.selectOption(selection); } }, getSelectedOption: function() { for(var j = 0, maxLength = this.optionsArray.length; j < maxLength; j++) { var option = this.optionsArray[j]; if(option.selected === 'yes') { return option; } } return false; }, startTimer: function() { var self = this; this.stopTimer(); this.timer = window.setTimeout(function(){ self.selectNewPanel(); }, 7000); }, stopTimer: function() { window.clearTimeout(this.timer); }}); var spotlightPanel = bpApp.slideShow; bpApp.videoPanel = function(video, callbackFunction, container){ this.number = (typeof bpApp.videoPanel.number === 'undefined')? bpApp.videoPanel.number = 0 : (++bpApp.videoPanel.number); this.id = 'video_panel_' + this.number; this.video = video; this.callbackFunction = callbackFunction; this.container = container; }; bpApp.videoPanel.prototype = bpApp.extendClass( bpApp.htmlBuilder, { constructor: bpApp.videoPanel, remove: function() { var panel = document.getElementById(this.id); if(panel) { panel.parentNode.removeChild(panel); } panel = document.getElementById(this.id + '_shadow'); if(panel) { panel.parentNode.removeChild(panel); } }, createPanel: function() { var panel = this.createObject('div', this.id, 'panel video-panel slideIn', '', this.container); var title = this.createObject('div', this.id + '_title_container', 'title-container', '', this.id); var titleLabel = this.createObject('h1', '', 'title title-text left dark', this.video.title, title); var container = this.createObject('div', '', 'body-container', '', this.id); var self = this; window.setTimeout(function(){ self.createIframe(self.id + '_iframe', '', self.video.source, container); }, 500); var buttons = this.createObject('div', this.id + '_button_container', 'button-container', '', this.id); var button1 = this.createButton('button', this.id + '_button_1', 'bttn bttn-decline', 'Close', function(){ self.decline(); }, buttons); }, setup: function() { this.createPanel(); }, decline: function() { this.display(); }, display: function() { this.toggleDisplay(); }, createShadow: function() { var self = this; var backdrop = this.createButton('div', this.id + '_shadow','panel-shadow video-shadow fadeIn','', function(){ self.decline(); }, document.body); this.createButton('button', '', 'bttn top close', '', '', backdrop); }, toggleMode: null, toggleDisplay: function() { var obj = document.getElementById(this.id); if(!obj.style.display || obj.style.display === 'none') { obj.style.display = 'block'; this.toggleMode = 'block'; this.createShadow(); } else { obj.style.display = 'none'; this.toggleMode = 'none'; this.remove(); } } }); jQuery(function() { if(wpPageID == 2) { bpMain.setupSlideshow1(); } bpMain.setupFancyBox(); bpMain.setupMobileNav(); bpMain.setupAutoScroll(); bpMain.addVideoPanels();}); var bpMain = { setupSlideshow1: function() { var optionsArray = new Array( { title: 'Comfort, Communication & Compassion', content: 'Appointment Request', className: '', image: '1.jpg', alt: '', url: '' }, { title: 'Comfort, Communication & Compassion', content: 'Appointment Request', className: '', image: '2.jpg', alt: '', url: '' }, { title: 'Comfort, Communication & Compassion', content: 'Appointment Request', className: '', image: '3.jpg', alt: '', url: '' } ); var spotlight1 = new spotlightPanel('slides'); spotlight1.setup(optionsArray); }, setupFancyBox: function() { jQuery(".pics").fancybox(); jQuery(".videos").click(function() { jQuery.fancybox({ 'padding' : 0, 'autoScale' : false, 'transitionIn' : 'none', 'transitionOut' : 'none', 'title' : this.title, 'width' : 680, 'height' : 495, 'href' : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'), 'type' : 'swf', 'swf' : { 'wmode' : 'transparent', 'allowfullscreen' : 'true' } }); return false; }); }, setupNivoSlider: function() { jQuery('#slider').nivoSlider({ effect: 'random', slices: 15, boxCols: 8, boxRows: 4, animSpeed: 500, pauseTime: 5000, startSlide: 0, directionNav: true, controlNav: false, controlNavThumbs: false, pauseOnHover: true, manualAdvance: false, prevText: 'Prev', nextText: 'Next', randomStart: false, beforeChange: function(){}, afterChange: function(){}, slideshowEnd: function(){}, lastSlide: function(){}, afterLoad: function(){} }); }, setupMobileNav: function() { jQuery(".mobilenav .menu-item-has-children > a").append(''); jQuery(".mobilenav .menu-item-has-children").on("mouseenter click", function(){ if(jQuery(this).hasClass("active")){ jQuery(this).removeClass("active").find(".sub-menu").first().hide(); } else { jQuery(this).addClass("active").find(".sub-menu").first().show(); } return false; }); jQuery(".mobilenav .sub-menu li:not(.menu-item-has-children)").click( function(event){ event.stopPropagation(); } ); }, addVideoPanels: function(attrName) { attrName = attrName || 'data-video-src'; var self = this; var elements = jQuery('[' + attrName + ']').each(function(index, element) { element = jQuery(element); var src = element.attr('data-video-src'); if(src) { var title = element.attr('data-title'); element.on('click', function() { self.viewVideo(title, src); }); } }); }, viewVideo: function(title, src) { var vid = { title: title, source: src }; var panel = new bpApp.videoPanel(vid, '', document.body); panel.setup(); panel.display(); }, setupAutoScroll: function() { var exceptions = ['myModal']; jQuery('a[href*="#"]:not([href="#"])').click(function() { if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { if(exceptions.indexOf(this.hash.slice(1)) == -1) { var target = jQuery(this.hash); target = target.length ? target : jQuery('[id=' + this.hash.slice(1) +']'); if (target.length) { jQuery('html,body').animate({ scrollTop: target.offset().top }, 800); return false; } } } }); }};