{"version":3,"sources":["../assets/scripts/main.js","../assets/scripts/app.js","../assets/scripts/viewController.js","../assets/scripts/nodeController.js","../assets/scripts/issueTrackerController.js","../assets/scripts/searchController.js","../assets/scripts/urlService.js","../assets/scripts/nodeInfoService.js","../assets/scripts/filters.js"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["// jQuery('.navbar-offcanvas').addClass('in');\nvar breakpoint = 992;\nvar bannerPause = true;\nvar bannerInterval = 20;\nvar socialShareDisabled = false;\nvar rotateBanner;\nvar banerInt = 0;\nvar navbarLg = 140;\nvar navbarSm = 90;\nvar endLogoScale = 50;\nvar startLogoScale = 0;\nvar logoHeightLg = 75;\nvar logoHeightSm = 48;\nvar logoMarginTopLg = 20;\nvar logoMarginTopSm = 6;\nvar menuFade = false;\nvar endMenuFade = 20;\nvar startMenuFade = 0;\nvar menuFontLg = 16;\nvar menuFontSm = 16*0.9;\nvar searchTopLg = -65;\nvar searchTopSm = -30;\nvar inArr = {};\n\nvar waitForFinalEvent = (function () {\n var timers = {};\n return function (callback, ms, uniqueId) {\n if (!uniqueId) {\n uniqueId = \"Don't call this twice without a uniqueId\";\n }\n if (timers[uniqueId]) {\n clearTimeout (timers[uniqueId]);\n }\n timers[uniqueId] = setTimeout(callback, ms);\n };\n})();\n\nvar m = new Date().getTime();\n\nif(localStorage.getItem('home.banner')){\n\t$('#sog-banner').css({display:'none'});\n\t// $(\"#banner-toggle.out\").trigger('click');\n}\n\njQuery(document).ready(function(){\n\n\tcontentBkgd();\n\tscrollParam();\n\tetcDisplay();\n\tif(socialShareDisabled)socialShareDisable();\n\n\tif(jQuery(\"#sog-banner\").length > 0){\n\t\tvar d = jQuery.Deferred(), \n\t\tp=d.promise();\n\t\tp.then(bannerInit).then(localSettings);\n\t\td.resolve();\n\t}\n\t\n\tmenuControls();\n\t// menuDataControls();\n\thideDetails();\n\n\tif($('#tabs-menu').length > 0){\n\t\t$('#tabs-menu').tabCollapse({\n\t\t\ttabsClass: 'hidden-sm hidden-xs',\n\t \taccordionClass: 'visible-sm visible-xs'\n\t\t});\n\t}\n\t// jQuery('.navbar-offcanvas').addClass('in');\n\t// jQuery('.navbar-offcanvas').addClass('canvas-slid');\n\t// jQuery('.row-offcanvas-right').addClass('active');\n\t\n\taddScrollToAnchors();\n\tscrollToTopBtn();\n\tsetTimeout(function(){fixedNavbar();},500);//trigger after admin_menu\n\tactiveTabs();\n window.onscroll = function() {\n \tfixedNavbar();\n \tmenuControls();\n \tscrollToTopBtn();\n };\n addThemeFormElements();\t \n\n $('[data-lightbox=\"tour-website\"]').on( \"click\", function(){lightboxOptions(); });\n});\n\njQuery(window).bind('resize orientationchange', function() {\n\t// document.body.clientWidth = document.body.clientWidth;\n\n\twaitForFinalEvent(function(){\n \tcontentBkgd();\n \tscrollParam();\n \tfixedNavbar();\n \tmenuControls();\n \tcloseMenu();\n \tif(jQuery(\"#sog-banner\").length > 0){bannerControlsOn();}\n\t\t// if(jQuery('.entry-content > #social').size() > 0){positionSocial();}\n \t\n \t// jQuery('.nav-collapse').collapse('hide');\n \tjQuery('.navbar-offcanvas').removeClass('in');\n\t\tjQuery('#navbar-spacer').hide();\n }, 500, m);\n});\n\nfunction contentBkgd(){\n\tif(jQuery(\"#content-wrap\").length === 0){return;}\n\tvar contentMin = jQuery(window).height()-jQuery(\"#content-wrap\").offset().top-jQuery(\"body >footer\").height()-20;\n\tif(jQuery(\"#content-wrap\").height() jQuery(window).height()){\n\t\tvar h = jQuery(window).height()-jQuery(\".navbar\").height(); \n\t\t// jQuery(\"#nav\").css({\"overflow\":\"scroll\",\"height\":h});\n \t}else{\n \t\t// jQuery(\"#nav\").css({\"overflow\":\"auto\",\"height\":\"auto\"});\n \t}\n \t// console.log(menuHeight+\" = \"+jQuery(\".navbar-offcanvas\").height()+\" + \"+jQuery(\".navbar\").height());\n}\n\nfunction scrollParam(){\n\t//save scroll parameters\n\tvar height = jQuery(document).height();\n\tvar footer = jQuery(\"body > footer\").height();\n\t\n\tvar pad = jQuery(\"#content-wrap\").outerHeight(true) - jQuery(\"#content\").outerHeight(true); \n\n\t// jQuery(\"#content\").css({\"padding-bottom\":pad});\n\t\n\tjQuery(\".scrollable\").each(function(){\n\n\t\tvar h = height+jQuery(\"#\"+this.id+\"-read-more\").outerHeight(true);\n\t\t\n\t\tvar top = jQuery(this).offset().top;\n\t\ttop -= (jQuery(\".navbar\").css(\"position\") == \"fixed\")?jQuery(\".navbar\").height():0;\n\t\tvar r = h-top;\n\t\tvar spacerHeight = (jQuery(window).height()>r)?jQuery(window).height()-r:0;\n\n\t\t// var h2 = jQuery(this).outerHeight(true)+jQuery(\"#\"+this.id+\"-read-more\").innerHeight();\t\t\n\n\t\tjQuery(\"#\"+this.id+\" #scroll\").text(top);\n\t\tjQuery(\"#\"+this.id+\" #spacer\").text(spacerHeight);\n\t\t\n\t\t// jQuery(this).css({border:\"1px dashed green\"});\n\n\t\t// if(jQuery(window).height()>r){\n\t\t\t// jQuery(\"#print-script\").html(\n\t\t\t// \tjQuery(\"#print-script\").html()+\"

\"+\n\t\t\t// \tthis.id+\"
\"+\n\t\t\t// \tjQuery(\"#content\").outerHeight(true)\n\t\t\t// \t// jQuery(window).height()+\" - \"+r +\"(\"+height+\" + \"+jQuery(\"#\"+this.id+\"-read-more\").height()+\" - \"+top+\") = \"+spacerHeight\n\t\t\t// \t// jQuery(this).outerHeight(true)+\" + \"+jQuery(\"#\"+this.id+\"-read-more\").innerHeight()+\" = \"+h2\n\t\t\t// );\n\t\t\t// jQuery(\"#\"+this.id+\" #spacer\").text(300);\n\t\t// }\n\t});\n}\n\nfunction addScrollToAnchors(){\n\tjQuery('a[href^=\"#\"]').bind('click.smoothscroll',function (e) {\n e.preventDefault();\n var target = this.hash;\n jQuerytarget = jQuery(target);\n\t jQuery(\"html, body\").animate({ scrollTop: jQuerytarget.offset().top - navbarSm - 4 }, 600);\n });\n}\n\nfunction etcDisplay(){\n\tjQuery('.etc').on(\"click\",function(){\n\t\tvar c = jQuery(this).attr(\"class\").split(\" \");\n\t\t// jQuery(\"#\"+c[0]+\" .etc-icon\").slideToggle();\n\t\tjQuery(\"#\"+c[0]+\" .etc-icon\").toggleClass(\"hide\");\n\t\t// jQuery(\".social .hide\")\n\t\t\n\t\treturn false;\n\t});\n}\n\nfunction renderCaptcha(){\n\tvar widgetId1;\n\tvar onloadCallback = function() {\n\t widgetId1 = grecaptcha.render('recaptcha', {\n\t 'sitekey' : '6LcmVf8SAAAAAIMHDAfzhd4xuShnFw1T1rQBNizD',\n\t 'theme': 'light',\n\t });\n\n\t};\n}\n\nfunction bannerInit(){\n\t\n\tvar deferred = $.Deferred();\n\n\t// setTimeout(function(){\n\t\t// console.log('waiting');\n\t\t// console.log(\"bannerInit: \",deferred.state());\n\t\tvar img = [];\n\t\t\n\t\t$(\"#load-img .sog-banner\").each(function(){img.push($(this).attr(\"src\"));});\n\n\t\trotateBanner = (!bannerPause)?setInterval(function(){\n\n\t\t \tvar nextImage = (banerInt < img.length-1)?img[banerInt+1]:img[0];\n\t\t \tbanerInt += 1;\n\t\t \t\n\t \t$(\"#sog-banner\").fadeOut(\"slow\",function(){\n\t \t$(this).css(\"background-image\",\"url(\"+nextImage+\")\").fadeIn(\"slow\");\n\t });\n\n\t }, bannerInterval*1000):null;\n\t\t\n\t\t$(\"#banner-controls\").prependTo($(\".sog-body\"));\n\t \n\t bannerControlsOn();\n\n\t deferred.resolve(\"from bannerInit\");\n\n\t// },2000);\n\t// console.log('bannerInit');\n\treturn deferred.promise();\n}\n\nfunction bannerControlsOn(){\n\tvar navbarHeightMin = (breakpoint > $(window).width())?25:80;\n \n $(\"#banner-skip\").off().on(\"click\",function(){\n\t\tvar skipBanner = $(\".sog-body\").offset().top - 10 - ((breakpoint > $(window).width())?60:80)-((jQuery(\"#admin-menu\").length > 0)?jQuery(\"#admin-menu\").height():0);\n \t$(\"html, body\").animate({ scrollTop:skipBanner}, 800);\n \t// console.log(\"skipBanner: \"+skipBanner+\" - \"+((jQuery(\"#admin-menu\").length > 0)?jQuery(\"#admin-menu\").height():0)+\" - \"+jQuery(\"#admin-menu\").height());\n });\n\n // $(\"#banner-info\").off().on(\"click\",function(){\n // \tconsole.log(\"launch light box with caption msg\");\n // });\n\t\n\tvar ln = 800;\n\n $(\"#banner-toggle.out\").off().on(\"click\",function(){\n \t// console.log(\"hide\");\n \tclearInterval(rotateBanner);\n\t\t$(function () {\n\t\t $(\"#sog-banner\").slideUp({ duration: ln, queue: false});\n\t\t\t$(\"html, body\").animate({scrollTop:navbarHeightMin}, { duration: ln, queue: false });\n\t\t $(\"#banner-info\").fadeOut({ duration: ln, queue: false});\n\t\t $(\"#banner-skip\").fadeOut({ duration: ln, queue: false, \n\t \t\tcomplete:\n\t\t\t \tfunction(){\n\t\t\t\t \t$(\"#banner-toggle\").removeClass(\"out\").addClass(\"in\");\n\t\t\t\t\t\tbannerControlsOn();\n\t\t\t\t\t\tscrollToTopBtn();\n\t\t\t\t\t\tlocalStorage.setItem('home.banner',0);\n\t\t\t\t\t\t// console.log('close banner');\n\t\t\t\t\t}\n\t\t\t});\n\t\t});\n\n });\n\n $(\"#banner-toggle.in\").off().on(\"click\",function(){\n \t// console.log(\"show\");\n\t\t$(function () {\n\t\t $(\"#sog-banner\").slideDown({ duration: ln, queue: false });\n\t\t $(\"html, body\").animate({scrollTop:0}, { duration: ln, queue: false });\n\t\t $(\"#banner-info\").fadeIn({ duration: ln, queue: false});\n\t\t $(\"#banner-skip\").fadeIn({ duration: ln, queue: false, \n\t\t \t\tcomplete:\n\t\t\t\t \tfunction(){\n\t\t\t\t\t\t\t$(\"#banner-skip\").removeClass(\"hidden\");\n\t\t\t\t\t\t\t$(\"#banner-toggle\").removeClass(\"in\").addClass(\"out\");\n\t\t\t\t\t\t\tbannerInit();\n\t\t\t\t\t\t\tbannerControlsOn();\n\t\t\t\t\t\t\tscrollToTopBtn();\n\t\t\t\t\t\t\tlocalStorage.removeItem('home.banner');\n\t\t\t\t\t\t}\n\t\t\t\t});\n\t\t});\n });\n}\n\nfunction localSettings(){\n\tif(localStorage.getItem('home.banner')){\n\t\t// console.log('click');\n \t$(\"#banner-toggle.out\").trigger('click');\n }else{\n \t// console.log('show');\n\t\t$('#sog-banner').css({display:''});\n\t\t$('#banner-info').css({display:''});\n\t}\n\treturn;\n}\n\nfunction scrollToTopBtn(){\n\tvar navbarHeightMin = ($(\"#sog-banner\").length > 0 && $(\"#sog-banner\").css(\"display\") == \"none\")?((breakpoint > $(window).width())?25:80):0;\n\tvar top = ($(\"#sog-banner\").length > 0 && $(\"#sog-banner\").css(\"display\") == \"none\")?$(\".sog-body\").offset().top - $(\".navbar\").height():0;\n\n\tjQuery('#toTop').off().on(\"click\",function(){\n\t\tjQuery(\"html, body\").animate({ scrollTop: navbarHeightMin }, 600);\n\t\treturn false;\n\t});\n\n\tif(200 > jQuery(this).scrollTop() || ($(\"#sog-banner\").length > 0 && $(\"#sog-banner\").css(\"display\") == \"none\" && top >= jQuery(this).scrollTop())){\n\t\tjQuery('#toTop').fadeOut();\n\t}else{\n\t\tjQuery('#toTop').fadeIn();\n\t}\n}\n\nfunction fixedNavbar(){\n\tvar top;\n\tvar menuTop;\n\tif( breakpoint > $(window).width()){\n\t\t$(\".navbar-container\").height(60);\n\t\ttop = ($('#admin-menu').length > 0)?$(\"#admin-menu\").height():0;\n\t\t// $(\".navbar\").css({\"top\":top});\n\t\t\n\t\t// if($('.admin-menu').length > 0){\n\t\t// \t$(\"html body\").css({\"margin-top\":$(\"#admin-menu\").height()+\" !important\"});\n\t\t// \tconsole.log($(\"#admin-menu\").height());\n\t\t// }\n\n\t\tmenuTop = ($('#admin-menu').length > 0)?$(\"#admin-menu\").height()+$(\".navbar-container\").height()+2:$(\".navbar-container\").height()+2;\n\t\t$(\".navbar-offcanvas\").css({\"top\":menuTop});\n\t\t\n\t\t// $(\"#main-menu-row\").css({\"top\":menuTop});\n\t\t$(\".navbar-logo\").css({marginTop:logoMarginTopSm});\n\t\t$(\".navbar-logo svg\").height(logoHeightSm);\n\n\n\t\t// $(\"#sog-banner\").css({'position':'static'});\n\t\t// $(\"body\").css({'padding-top':60});\n\t\n\t}else if($(window).scrollTop() >= navbarLg - navbarSm){\n\t\t\n\t\t// $(\"#sog-banner\").css({'position':'fixed','top':navbarSm});\n\t\t// $(\"body\").css({'padding-top':600});\n\n\t\t$(\".navbar-container\").height(navbarSm);\n\t\t$(\".navbar-logo\").css({marginTop:logoMarginTopSm});\n\t\t$(\".navbar-logo svg\").height(logoHeightSm);\n\t\t$(\"#nav ul li\").css({\"font-size\":menuFontSm});\n\t\t$(\".navbar-search\").css({\"top\":searchTopSm});\n\t\t\n\t\ttop = ($('#admin-menu').length > 0)?$(\"#admin-menu\").height():0;\n\t\t// $(\".navbar\").css({\"top\":top});\n\n\t\t$(\".navbar-offcanvas\").css({\"top\":\"auto\"});\n\t\tmenuTop = ($('#admin-menu').length > 0)?$(\".navbar-container\").height()+$(\"#admin-menu\").height():$(\".navbar-container\").height()+2;\n\t\tif($('#admin-menu').length > 0){$(\"body\").css({\"margin-top\":$(\"#admin-menu\").height()});}\n\t\t$(\"#main-menu-row\").css({\"top\":menuTop});\n\t\n\t\t// $(\"#main-menu-row\").addClass(\"active\");\n\t\t$(\"#main-menu-row\").css({\"background-color\":\"rgba(255, 255, 255, 1.0)\",\"border-bottom\":\"2px solid #E3E3E3\"});\n\t\n\t}else if(navbarLg - navbarSm > $(window).scrollTop() && $(window).scrollTop() >= 0){\n\n\t\t// $(\"#sog-banner\").css({'position':'static'});\n\t\t// $(\"body\").css({'padding-top':140});\n\n\t\ttop = ($('#admin-menu').length > 0)?$(\"#admin-menu\").height():0;\n\t\t// $(\".navbar\").css({\"top\":top});\n\n\t\tvar navbar = navbarLg - $(window).scrollTop();\n\t\t$(\".navbar-container\").height(navbar);\n\t\t\n\t\t$(\".navbar-offcanvas\").css({\"top\":\"auto\"});\n\t\tmenuTop = ($('#admin-menu').length > 0)?$(\".navbar-container\").height()+$(\"#admin-menu\").height():$(\".navbar-container\").height()+0;\n\t\tif($('#admin-menu').length > 0){$(\"body\").css({\"margin-top\":$(\"#admin-menu\").height()});}\n\t\t$(\"#main-menu-row\").css({\"top\":menuTop});\n\t\t\n\t\t// console.log(\"menuTop: \"+menuTop);\n\n\t\tif($(window).scrollTop() >= endLogoScale){\n\t\t\t$(\".navbar-logo\").css({marginTop:logoMarginTopSm});\n\t\t\t$(\".navbar-logo svg\").height(logoHeightSm);\n\t\t\t$(\"#nav ul li\").css({\"font-size\":menuFontSm});\n\t\t\t$(\"#main-menu-row\").css({\"background-color\":\"rgba(255, 255, 255, 1.0)\",\"border-bottom\":\"2px solid #E3E3E3\"});\n\n\t\t}else if(endLogoScale > $(window).scrollTop() && $(window).scrollTop() > startLogoScale){\n\t\t\tvar scrollProgress = (($(window).scrollTop() - startLogoScale)/(endLogoScale-startLogoScale));\n\t\t\t// console.log(scrollProgress);\n\n\t\t\tvar logoMarginTop = logoMarginTopLg - (logoMarginTopLg - logoMarginTopSm)*scrollProgress;\n\t\t\t$(\".navbar-logo\").css({marginTop:logoMarginTop});\n\t\t\t\n\t\t\tvar logo = logoHeightLg - (logoHeightLg - logoHeightSm)*scrollProgress;\n\t\t\t$(\".navbar-logo svg\").height(logo);\n\t\t\t\n\t\t\tvar menuFontSize = menuFontLg - (menuFontLg - menuFontSm)*scrollProgress;\n\t\t\t$(\"#nav ul li\").css({\"font-size\":menuFontSize});\n\t\t\t\n\t\t\tvar searchTopSize = searchTopLg - (searchTopLg - searchTopSm)*scrollProgress;\n\t\t\t$(\".navbar-search\").css({\"top\":searchTopSize});\n\n\t\t\tif($('#sog-banner').length > 0){\n\t\t\t\tif($('#sog-banner').css('display') == 'none'){scrollProgress = 1.0;}\n\t\t\t\t$(\"#main-menu-row\").css({\"background-color\":\"rgba(255, 255, 255, \"+scrollProgress+\")\"});\n\t\t\t}else{\n\t\t\t\t$(\"#main-menu-row\").css({\"background-color\":\"rgba(255, 255, 255, 1.0)\",\"border-bottom\":\"2px solid #E3E3E3\"});\n\t\t\t}\n\n\t\t}else if(startLogoScale >= $(window).scrollTop()){\n\t\t\t$(\".navbar-logo\").css({marginTop:logoMarginTopLg});\n\t\t\t$(\".navbar-logo svg\").height(logoHeightLg);\n\t\t\t$(\"#nav ul li\").css({\"font-size\":menuFontLg});\n\t\t\t$(\".navbar-search\").css({\"top\":searchTopLg});\n\n\t\t\tif($('#sog-banner').length > 0){\n\t\t\t\t$(\"#main-menu-row\").css({\"background-color\":\"rgba(255, 255, 255, \"+(($('#sog-banner').css('display')=='none')?1.0:0.0)+\")\",\"border-bottom\":(($('#sog-banner').css('display')=='none')?\"2px solid #E3E3E3\":\"none\")});\n\t\t\t}else{\n\t\t\t\t$(\"#main-menu-row\").css({\"background-color\":\"rgba(255, 255, 255, 1.0)\",\"border-bottom\":\"2px solid #E3E3E3\"});\n\t\t\t}\n\t\t}\n\t\tif(menuFade){\n\t\t\tif($(window).scrollTop() >= endMenuFade){\n\t\t\t\t$(\".navbar-offcanvas\").fadeTo(0,0);\n\t\t\t}else if(endMenuFade > $(window).scrollTop() && $(window).scrollTop() >= startMenuFade){\n\t\t\t\tvar menuOpacity = (1 - ( ($(window).scrollTop()-startMenuFade) * (1/(endMenuFade-startMenuFade)) ) );\n\t\t\t\t$(\".navbar-offcanvas\").fadeTo(0,menuOpacity);\n\t\t\t}else if(startMenuFade > $(window).scrollTop()){\n\t\t\t\t$(\".navbar-offcanvas\").fadeTo(0,1);\n\t\t\t}\n\t\t}\t\t\n\t}\n}\n\nfunction menuControls(){\n\t// console.log($(window).width());\n var w = $(window).width();\n\tvar tOut;\n $('#nav ul').off().on(\"mouseover\",\n function () {\n \tvar el = this;\n \t// console.log($(el).attr('id'));\n \tif(!inArr[$(el).attr('id')]){\n\t\t\t\tinArr[$(el).attr('id')] = true;\n\t\t setTimeout(function(){\n\t\t \tif(inArr[$(el).attr('id')]){\n\t\t\t \tif(w > breakpoint){\n\t\t\t\t $(\".menu-row\").stop(true, true).fadeIn(\"slow\");\n\t\t\t\t \t$(\"#sog-banner .layer\").stop(true, true).fadeIn(\"slow\");\n\t\t\t\t \t$(\"#banner-skip, #banner-controls\").fadeOut(200);\n\t\t\t \t}\n\t\t\t }\n\t\t },200);\n\t\t // console.log(inArr);\n\t\t }\n }\n );\n \n $('#main-menu-row').on(\"mouseover\",\n function () {\n \t \tinArr[$(this).attr('id')] = true;\n }\n );\n\n $('#nav ul').on(\"mouseout\",\n function () {\n \t inArr[$(this).attr('id')] = false;\n \tif(w > breakpoint){\n\t\t\t setTimeout(function(){ \n\t\t if(!inArr[\"main-menu\"] && !inArr[\"main-menu-row\"] && !inArr[\"navbar-icon-user\"] && !inArr[\"navbar-icon-search\"]){\n\t\t \tcloseMenu();\n\t\t }\n\t\t \t},100);\n \t\t}\n \t}\n );\n\n $(\"#main-menu-row\").on(\"mouseout\",\n function () {\n\t\t inArr[$(this).attr('id')] = false;\n\t\t if(w > breakpoint){\n\t\t\t \tsetTimeout(function(){ \n\t\t if(!inArr[\"main-menu\"] && !inArr[\"main-menu-row\"]){ \n\t\t \tcloseMenu();\n\t\t \t// $(\"#main-menu-row\").stop(true, true).fadeOut(\"slow\")\n\t\t \t// $(\"#nav ul li\").css({\"box-shadow\":\"none\"});\n\t\t \t// $(\"#sog-banner .layer\").stop(true, true).fadeOut(\"slow\");\n\t\t }\n\n\t\t \t},100);\n \t}\n }\n );\n\n\t$('#nav ul li').each(function(){\n\t\tvar replace = $(this).attr('class').replace(/(menu-[0-9]*)/,'');\n\t\tvar contentId = $(this).attr('class').replace(replace,'');\n\n\t\t$(this).off().on(\"mouseover\",\n\t function () {\n\t \tvar w = $(window).width();\n\t \tif(w > breakpoint){\n\t\t\t\t\t$(\"#nav ul li\").css({\"box-shadow\":\"none\"});\n\t\t\t $(this).css({\"box-shadow\":\"inset 0 -2px 0 0px #AAAAAA\"});\n\t\t\t if(inArr.active != contentId){\n\t\t\t \t$(\"#main-menu-row .container\").fadeOut(200,function(){\n\t\t\t \t\t$(\"#main-menu-row>.container>ul>li\").css({\"display\":\"none\"});\n\t\t\t \t\t$(\"#\"+contentId).css({\"display\":\"inline\"});\n\t\t\t \t\t$(\"#main-menu-row .container\").fadeIn(200);\n\t\t\t \t});\n\t\t\t \tinArr.active = contentId;\n\t\t\t }\n\t\t\t }else{\n\t\t\t }\n\t\t\t \n\t\t\t // setTimeout(function(){ \n\t\t\t\t// \tif(!inArr[$(\"#nav ul\").attr('id')]){\n\t\t\t\t// \t $(\"#banner-skip, #banner-controls\").fadeOut(400);\n\t\t\t\t// \t}\n\t\t\t\t// },200);\n\t\t\t\n\t\t\t // console.log(contentId);\n\t \t}\n\t );\n\t});\n // $(\"#main-menu-row\").css({\"display\":\"inline\"});\n // $(\"#main-menu-row\").css({\"background-color\":\"rgba(255, 255, 255, 1.0)\",\"border-bottom\":\"2px solid #E3E3E3\"});\n // $(\"#main-menu-row>div>ul>li:nth-child(8)\").css({\"display\":\"inline\"});\n}\n\nfunction closeMenu(){\n\n\tif(inArr.active !== null){\n\t\t// console.log(\"closeMenu\");\n\t\tinArr.active = null;\n\t\t$(\"#nav ul li\").css({\"box-shadow\":\"none\"});\n\t\t$(function () {\n\t\t\t$(\"#main-menu-row\").stop(true, true).fadeOut(400);\n\t\t\t$(\"#main-menu-row\").removeClass(\"scrollActive\");\n\t\t\t$(\"#main-menu-row>.container>ul>li\").css({\"display\":\"none\"});\n\t\t\t$(\"#sog-banner .layer\").stop(true, true).fadeOut(400);\n\t\t\t$(\"#banner-skip, #banner-controls\").fadeIn(400);\n\t\t\t// console.log(\"closeMenu\");\n\t\t});\n\t}\n}\n\nfunction activeTabs(){\n\t$('#tabNav a').click(function (e) {\n\t e.preventDefault();\n\t $(this).tab('show');\n\t});\n}\n\nfunction localStorageQuery (regex,action,el,attr,value) {\n var i, results = [];\n for (i in localStorage) {\n \t// console.log('i: '+i);\n if ( localStorage.hasOwnProperty(i) ) {\n if ( i.match(regex) ) {\n if(action === 'delete'){\n \tlocalStorage.removeItem(i);\n }else{\n\t value = JSON.parse(localStorage.getItem(i));\n\t results.push({key:i,val:value});\n\t }\n }\n }\n }\n // console.log(results);\n return results;\n}\n\nfunction addThemeFormElements(){\n\t$('label').css({'display':'block'});\n\t$('input[type=\"text\"],input[type=\"email\"],input[type=\"phone\"],input[type=\"number\"],textarea').addClass('form-control');\n\t$('input[type=\"submit\"]').addClass('btn btn-default');\n\t$('.field.webform').find('select').addClass('form-control');\n\t$('.field.webform').find('input[type=\"submit\"]').addClass('form-control');\n\t$('.webform-container-inline').removeClass('webform-container-inline').find('div').css({'display':'inline'});\n\t$('.webform-calendar').hide();\n\t$('select').addClass('selectpicker');\n\t$('.selectpicker').selectpicker();\n}\n\nfunction hideDetails(){\n\t$('.expand-all.off').off().on('click',function(){\n\t\t$('.hide_details').find('.body').slideDown();\n\t\t$(this).addClass('on');\n\t\t$(this).removeClass('off');\n\t\thideDetails();\n\t});\n\n\t$('.expand-all.on').off().on('click',function(){\n\t\t$('.hide_details').find('.body').slideUp();\n\t\t$(this).addClass('off');\n\t\t$(this).removeClass('on');\n\t\thideDetails();\n\t});\n\n\t$('.hide_details').each(function(){\n\t\t$(this).find('.title').off().on('click',function(faq){\n\t\t\t$(this).parent().find('.body').slideToggle();\n\t\t\t// faq.find('.body').css({'border':'1px solid orange'});\n\t\t});\n\t});\n}\n\nfunction socialShareDisable(){\n\t$('.social').find('.share').find('li').find('a').off()\n\t.on('click.myDisable', function(e) { e.preventDefault(); })\n\t.on('click',function(){\n\t\tif($('.alert.alert-danger').length === 0)$('.row.entityContent').prepend('
Social sharing is currently disabled.
');\n\t\t\n\t\tvar scroll = $('.alert.alert-danger').offset().top-$('.navbar').height()-10;\n\t\t$('html,body').animate({scrollTop: scroll},600);\t\n\t\t\n\t});\n}\n\nfunction lightboxOptions(){\n\t// if($('.lb-image').length === 0)return;\n\t\n\tconsole.log($('.lb-image').attr('src'));\n\tif($('.lb-outerContainer').find('iframe').length === 0){\n\t\t$('.lb-outerContainer').prepend(\"\");\n\t}\n\t$('.lb-image').addClass('hide');\n\t$('.lb-details').addClass('hide');\n\t$('.lb-closeContainer').css({'margin':'75px -65px 0 0'});\n\t$('.lb-nav').remove();\n}\n\nfunction msieversion() {\n\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf(\"MSIE \");\n\n // if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\\:11\\./)) // If Internet Explorer, return version number\n // alert(parseInt(ua.substring(msie + 5, ua.indexOf(\".\", msie))));\n // else // If another browser, return 0\n // alert('otherbrowser');\n\n return (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\\:11\\./))?true:false;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","var expandTiles = false;\nvar tracker = false;\n\nif(typeof(Storage) === \"undefined\") {\n\talert('This browser does not support web storage.');\n // Sorry! No Web Storage support..\n}\n// localStorage.clear();\n\nvar app = angular.module('sog', ['infinite-scroll','ngRoute','angulartics','angulartics.google.analytics']);","var viewCtrl = function($scope, $filter, $timeout, ViewData, urlService, $location, $analytics) {\n\tvar _this = this;\n\t_this.urlService = urlService;\n\tvar page = _this.urlService.getPage();\n\tvar reload = true;\n\n\t$scope.page = page;\n\n\t$scope.viewData = new ViewData();\n\t\n\t$scope.filter = {};\n\n\tif(expandTiles){\n\t\t$scope.$watch(\n\t\t\tfunction () { return $('.tile').not('.tile.expand').length; },\n\t\t\tfunction (newValue, oldValue) {\n\t\t\t if (newValue !== oldValue) {\n\t\t\t // code goes here\n\t\t\t // console.log('added more tiles');\n\t\t\t // $.when()\n\t\t\t // .then($scope.viewData.expandTile())\n\t\t\t // .then($scope.$apply());\n\t\t\t $scope.viewData.expandTile();\n\t\t\t }\n\t\t\t}\n\t\t);\n\t}\n\n\t$scope.onChange = function (){\n\t\t$scope.viewData.done = false;\n\t\t\n\t\t//get path and api urls\n\t\tvar uri = _this.urlService.generateUrls($scope);\n\t\t\n\t\t//fire next page with data api corresponding to selected filters\n\t\t$scope.viewData.nextPage(uri.api);\n\n\t\t//update location.href\n\t\t$location.path(uri.path);\n\n\t\t//report new path to google analytics\n\t\tvar url = '/'+$location.absUrl().split('/').splice(3).join('/');\n\t\t$analytics.pageTrack(url);\n\t};\n\n\t$scope.nextPage = function (){\n\t\tvar uri = _this.urlService.generateUrls($scope);\n\t\t$scope.viewData.nextPage(uri.api);\n\n\t};\n\n\t$scope.sort = function (value){\n\t\tif($('#view').attr('data-title') === 'Courses' && value === 'field_offering_date_value') $scope.filter.content_type = 'course_offering';\n\t\tif(value === 'field_keywords'){\n\t\t\t$scope.filter = [];\n\t\t\t// $scope.filter.length = 0;\n\t\t\t$scope.display_option('list');\n\t\t\tsetTimeout(function(){$('.selectpicker').selectpicker('refresh');},100);\n\t\t}\n\t\t$scope.filter.sort_by = value;\n\t\t$scope.onChange();\n\t\tsetTimeout(function(){$('.selectpicker').selectpicker('refresh');},100);\n\t};\n\t\n\t$scope.order = function (value){\n\t\t$scope.filter.sort_order = value;\n\t\t$scope.onChange();\n\t\tsetTimeout(function(){$('.selectpicker').selectpicker('refresh');},100);\n\t};\n\n\tvar fetchDataDelay = 500; // milliseconds\n var fetchDataTimer;\n\n $scope.keyUp = function(){\n \tvar page = _this.urlService.getPage();\n \tvar searchStr = localStorage.getItem(page+'.filter.search');\n \tif($scope.filter.search === '' && searchStr !== null)$scope.onSearch();\n };\n\n $scope.onSearch = function (){\n \t// console.log('$scope.search: '+$scope.filter.search);\n \t// $('.sort_options,.display_options').addClass('hidden');\n \t$scope.filter.sort_by = ($scope.filter.search !== '')?'score':$('#view').attr('data-sort-by');\n \t$scope.filter.sort_order = ($scope.filter.search !== '')?'desc':$('#view').attr('data-sort-order');\n \t\n \t// console.log('$scope.filter.sort_by: '+$scope.filter.sort_by+'\\n$scope.filter.sort_order: '+$scope.filter.sort_order);\n \n $timeout.cancel(fetchDataTimer);\n fetchDataTimer = $timeout(function () {\n \t\t$scope.onChange();\n }, fetchDataDelay);\n };\n\n\t$scope.display_option = function(type){\n\t\tif($scope.filter.sort_by === 'field_keywords' && type !== 'list') return;\n\t\t$scope.display = type;\n\t\tlocalStorage.setItem(page+'.display',$scope.display);\n\t};\n\n\t$scope.display_image = function(){\n\t\t$scope.image = ($scope.image===false)?true:false;\n\t\tlocalStorage.setItem(page+'.image',$scope.image);\n\t};\n\n\t$scope.keyUpFactor = function(key){\n\t\t// console.log(key);\n\t\tvar val = parseInt($scope.viewData.testVars[key].factor);\n\t\tval = (isNaN(val))?0:val;\n\t\t$scope.viewData.testVars[key].factor = val;\n\t\t$scope.viewData.tally();\n\t\t\n\t\tvar page = _this.urlService.getPage();\n\t\tlocalStorage.setItem(page+'.test.'+key,val);\n\t};\n\n\t$scope.displayRules = false;\n\t$scope.displayRules = (localStorage.getItem(page+'.displayRules'))?true:false;\n\t\n\t$scope.display_rules = function(key){\n\t\tif($scope.displayRules === false){\n\t\t\t$scope.displayRules = true;\n\t\t\tlocalStorage.setItem(page+'.displayRules',1);\n\t\t}else{\n\t\t\t$scope.displayRules = false;\n\t\t\tlocalStorage.removeItem(page+'.displayRules');\n\t\t}\n\t};\n\n\t$scope.join_with_or = function(){\n\t\tvar page = _this.urlService.getPage();\n\t\tif($scope.viewData.joinWithOr === false){\n\t\t\t$scope.viewData.joinWithOr = true;\n\t\t\tlocalStorage.setItem(page+'.joinWithOr',1);\n\t\t}else{\n\t\t\t$scope.viewData.joinWithOr = false;\n\t\t\tlocalStorage.removeItem(page+'.joinWithOr');\n\t\t}\n\t\t// console.log($scope.viewData.joinWithOr+' '+ localStorage.getItem(page+'.filter.search'));\n\t\tif(localStorage.getItem(page+'.filter.search')) $scope.onSearch(page);\n\t};\n\n\t$scope.resetFilters = function(){\n\t\t$scope.filter.length = 0;\n\t\t$scope.filter = [];\n\t\t$scope.filter.sort_by = $('#view').attr('data-sort-by');\n\t\t$scope.filter.sort_order = $('#view').attr('data-sort-order');\n\t\t$scope.display = (localStorage.getItem(page+'.display'))?localStorage.getItem(page+'.display'):(($('#view').attr('data-display').length>0)?$('#view').attr('data-display'):\"tile\");\n\t\t$scope.image = (localStorage.getItem(page+'.image'))?((localStorage.getItem(page+'.image')==='true')?true:false):(($('#view').attr('data-image') === 'false')?false:true);\n\t};\n\t\n\t$scope.pathVarsToScope = function(){\n\t\t$scope.resetFilters();\n\t\tvar filter = [];\n \tvar ct = $filter('content_types');\n\n \tvar path = $location.path().split('/');\n\n\t\tfor(var i=0;i '+value);\n\t\t\tif(key && value) $scope.filter[key] = value;\n\t\t}\n\t\t\n\t\tif($scope.filter.sort_by === 'field_keywords') $scope.display_option('list');\n\n\t\tsetTimeout(function(){$('.selectpicker').selectpicker('refresh');},100);\n\t};\n\n\t$scope.resetFilters();\n\n\t$scope.$on('$locationChangeSuccess', function () {\n\t\t// Close large drop down nav menu \n\t\tif (typeof closeMenu == 'function') closeMenu();\n\t\t\n\t\t// Catch path changes from nav menu\twhich do not reload page due to AngularJS\n\t\t$scope.pathVarsToScope();\n\n\t\t// $scope.nextPage();\n\t\t$scope.onChange();\n\t});\t\n\n\t$(document).ready(function(){\n\t\t\n\t\t$scope.pathVarsToScope();\n\t\tif($('#view').attr('data-path') === '/publications' && $location.path().indexOf('/featured/') === -1){\n\t\t setTimeout(function(){\n\t\t \t$(\"html, body\").animate({ scrollTop: $('#searchPublications').offset().top - navbarSm - 4 }, 600);\n\t\t },500);\n\t\t}\n\t\t// if(expandTiles){\n\t // \t\t$(window).on('popstate', function(e) {\n\t // \t\t\te.preventDefault();\n\t\t// \t\t// console.log('Back button was pressed.');\n\t\t// \t\t// console.log(history.state);\n\t\t// \t\tthis.back = true;\n\t\t// \t\t// console.log(history.state);\n\t\t// \t\t// console.log(history.state.url+' === '+$(\"#view\").attr(\"data-path\"));\n\t\t// \t\tif(history.state.url === $(\"#view\").attr(\"data-path\")){\n\t\t// \t\t\tconsole.log('close');\n\t\t// \t\t\t$('.tile.expand').find('.closeBtn').find('svg').trigger(\"click\");\n\t\t// \t\t}else{\n\t\t// \t\t\tconsole.log('open');\n\t\t// \t \t$(\"[data-path='\"+history.state.url+\"']\").trigger(\"click\");\n\t\t// \t }\n\t\t// });\n\t\t// }\n\t});\n\n\t\n};\n\napp.controller('ViewController', viewCtrl)\n.config(function($locationProvider){\n\t$locationProvider.hashPrefix('!');\n\t//Did not use html5Mode(true) because node url's would match \n\t//This would work if you implement expandTile to bring node content into collection page in the form of an expanded tile\n\t//$locationProvider.html5Mode(true).hashPrefix('!');\n});\n\napp.factory('ViewData', function($http, $location, infoService, urlService) {\n\t// localStorage.set('')\n\tvar apiOrig,pageNum;\n\tthis.urlService = urlService;\n\tvar page = this.urlService.getPage();\n\t\n\tvar ViewData = function() {\n\n\t\tthis.api = '';\n\t\tthis.items = [];\n\t\tthis.results = 0;\n\t\tthis.busy = false;\n\t\tthis.done = false;\n\t\tthis.pageNum = 0;\n\t\tthis.infoService = infoService;\n\t\tthis.template = false;\n\t\tthis.back = false;\n\t\tthis.search = false;\n\t\tthis.total = 0;\n\t\tthis.joinWithOr = (localStorage.getItem(page+'.joinWithOr'))?true:false;\n\n\t\tthis.subset = [];\n\t\tthis.subset.items = [];\n\t\tthis.subset.busy = false;\n\t\tthis.subset.position = 0;\n\t\tthis.subset.prevActive = false;\n\t\tthis.subset.nextActive = false;\n\n\t\tthis.testVars = {\n\t\t\t// 'legal_summary': \t\t\t{'title':'Legal Summary','factor':3},\n\t\t\t'microsite_landing_page': \t{'title':'Microsite Landing Page','factor':3},\n\t\t\t'basic_page': \t\t\t\t{'title':'Basic Page','factor':2},\n\t\t\t'book': \t\t\t\t\t{'title':'Book','factor':2},\n\t\t\t'course': \t\t\t\t\t{'title':'Course','factor':2},\n\t\t\t'blog': \t\t\t\t\t{'title':'Blog','factor':2},\n\t\t\t'blog_post': \t\t\t\t{'title':'Blog Post','factor':2},\n\t\t\t'bulletin': \t\t\t\t{'title':'Bulletin','factor':2},\n\t\t\t'other': \t\t\t\t\t{'title':'Other *','factor':1}\n\t\t};\n\n\t\tangular.forEach(this.testVars,function(value,key){\n\t\t\tif(localStorage.getItem(page+'.test.'+key))value.factor = localStorage.getItem(page+'.test.'+key);\n\t\t});\n\t};\n\n\tViewData.prototype.tally = function() {\n\t\tvar tally=0;\n\t\tfor (var i=0; i 0 && $(this).position().top != $(this).prev().position().top)return false;\n\t tilesPerRow++;\n\t\t});\n\t\t\n\t\t// console.log('tilesPerRow: '+tilesPerRow);\n\t\t// if(tilesPerRow === 0)return;\n\n\t\t$('.tile').not('.faculty-and-staff').not('.tile.expand').find('a').on('click.myDisable', function(e) { e.preventDefault(); });\n\t\t// $('a').off('click.myDisable');\n\n\t\t$('.tile').not('.faculty-and-staff').off().on('click',function(){\n\t\t\tvar tile = this;\n\n\t\t\t// $('.tile.expand').slideUp(400,function(){\n\t\t\t\t$('.tile.expand').remove();\n\t\t\t\t// console.log(\"close done\");\n\t\t\t// });\n\t\t\n\t\t\tpos = $('.tile').index(tile)+1;\n\t\t\trow = Math.ceil(pos/tilesPerRow);\n\t\t\tend = row*tilesPerRow; \n\n\t\t\tvar lastTile = ($('.tile:nth-child('+end+')').length > 0)?$('.tile:nth-child('+end+')'):$('.tile:nth-child('+$('.tile').length+')');\n\t\t\tlastTile.after('
');\n\n\t\t\tvar scroll = $(tile).offset().top + $(tile).height() + parseInt($(tile).css('margin-bottom')) - (($(\".navbar\").height() > 90)?90:$(\".navbar\").height());\n\t\t\t$(\"html, body\").animate({ scrollTop: scroll}, 'slow');\n\n\t\t\t$('.tile.expand').slideDown('slow',function(){\n\t\t\t\tvar url = '/expand-tile/'+$(tile).attr('data-nid');\n\t\t\t\tvar path = $(tile).attr('data-path');\n\t\t\t\t\n\t\t\t\t// _this.template = url;\n\t\t\t\t_this.infoService.getNode(url).then(function(data){\n\n\t\t\t\t\tvar el = $('.tile.expand').find('.wrapper');\n\t\t\t\t\t// var curHeight = el.height();\n\t\t\t\t\tel.html(data.data).css('height', 'auto');\n\t\t\t\t\t// console.log(path);\n\t\t\t\t\t\n\t\t\t\t\tconsole.log('tabs: '+$('#tabs-menu').length);\n\t\t\t\t\tif($('#tabs-menu').length > 0){\n\t\t\t\t\t\t$('#tabs-menu').tabCollapse({\n\t\t\t\t\t\t\ttabsClass: 'hidden-sm hidden-xs',\n\t\t\t\t\t \taccordionClass: 'visible-sm visible-xs'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tif(!this.back){\n\t\t\t\t\t\tif (typeof (history.pushState) != \"undefined\") {\n\t\t\t\t var obj = { page: $(tile).attr('data-title'), url: $(tile).attr('data-path') };\n\t\t\t\t history.pushState(obj, obj.page, obj.url);\n\t\t\t\t // console.log('save: '+obj.url);\n\t\t\t\t } else {\n\t\t\t\t console.log(\"Browser does not support HTML5.\");\n\t\t\t\t }\n\t\t\t\t }else{\n\t\t\t\t \t// console.log('BACK');\n\t\t\t\t }\n\t\t\t\t this.back = false;\n\t\t\t\t\t// $location.path(path);//angular path change\n\n\n\t\t\t\t\thideDetails();\n\t\t\t\t\tsocialShareDisable();\n\t\t\t\t\t\n\t\t\t\t\t// $(\"html, body\").animate({ scrollTop: $(\".tile.expand\").offset().top - (($(\".navbar\").height() > 90)?90:$(\".navbar\").height()) }, 'slow');\n\n\t\t\t\t\t$('.tile.expand').find('.closeBtn').find('svg').off().on('click',function(){//.css({'cursor':'pointer'})\n\n\t\t\t\t\t\t$(\"html, body\").animate({ scrollTop: $(tile).offset().top-$(\".navbar\").height()-20}, 'slow');\n\t\t\t\t\t\t$('.tile.expand').slideUp('slow',function(){\n\t\t\t\t\t\t\t$('.tile.expand').remove();\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif(!this.back){\n\t\t\t\t\t\t\t\tif (typeof (history.pushState) != \"undefined\") {\n\t\t\t\t\t\t var obj = { page: $('#view').attr('data-title'), url: $('#view').attr('data-path') };\n\t\t\t\t\t\t history.pushState(obj, obj.page, obj.url);\n\t\t\t\t\t\t // console.log('save: '+obj.url);\n\t\t\t\t\t\t } else {\n\t\t\t\t\t\t console.log(\"Browser does not support HTML5.\");\n\t\t\t\t\t\t }\n\t\t\t\t\t\t }else{\n\t\t\t\t\t\t \t// console.log('BACK');\n\t\t\t\t\t\t }\n\t\t\t\t\t\t});\n\n\n\t\t\t\t\t});\n\t\t\t\t},function(){\n\t\t\t\t\t// console.log('fail');\n\t\t\t\t\tlocation.href = path;\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\t$('.tile').not('.faculty-and-staff').css({'cursor':'pointer'});\n\t};\n\n\tViewData.prototype.subsetActive = function(option){\n\t\t// var page = this.urlService.getPage();\n\t\tthis.subset.active = option;\n\t\tvar currentPath = $location.path();\n\t\tvar path = currentPath.split('/');\n\t\tvar value;\n\n\t\t// default\n\t\t// if(option === 'New Publications') value = 'new-publications';\n\t\tif(option === 'Forthcoming Titles') value = 'forthcoming-titles';\n\t\tif(option === 'Updates and Supplements') value = 'updates-and-supplements';\n\t\tvar pos = $.inArray('featured', path);\n\t\tif(option === 'New Publications'){\n\t\t\tif(pos > -1) path.splice(pos,2);\n\t\t\t$location.path(path.join('/'));\n\t\t}else if(pos > -1){\n\t\t\tpath[pos+1] = value;\n\t\t\t$location.path(path.join('/'));\n\t\t}else{\n\t\t\t$location.path(currentPath+'/featured/'+value);\n\t\t}\n\n\n\t\tlocalStorage.setItem(page+'.filter.subset',option);\n\t\tthis.subset.position = 0;\n\t\t$('.marquee').find('.window').animate({\n scrollLeft: 0\n }, 500,'swing');\n\n\t\tvar count = 0;\n\t\tangular.forEach(this.subset.items, function(item){\n\t\t count += item.field_publication_subset.indexOf(option) !== -1 ? 1 : 0;\n\t\t});\n\n\t\tthis.subset.activeTally = count;\n\t};\n\n\tViewData.prototype.subsetOver = function() {\n\t\t// console.log(this.subset.activeTally);\n\t\tif(this.subset.activeTally <= 1) return;\n\t\tvar el = $('.marquee').find('.window');\n\t\tvar pos = parseInt(el.width()/el.find('.tile').width());\n\t\t\n\t\tif(this.subset.position > 0){\n\t\t\t$('.marquee').find('.prev').stop().fadeTo(200,1.0);\n\t\t\tthis.subset.prevActive = true;\n\t\t}\n\n\t\tif(this.subset.position < this.subset.activeTally-pos){\n\t\t\t$('.marquee').find('.next').stop().fadeTo(200,1.0);\n\t\t\tthis.subset.nextActive = true;\n\t\t}\n\t};\n\n\tViewData.prototype.subsetOut = function() {\n\t\t$('.marquee').find('.prev, .next').stop().fadeTo(200,0.0);\n\t};\n\n\tViewData.prototype.subsetPrev = function() {\n\t\tif(this.subset.position === 0) return;\n\t\tvar el = $('.marquee').find('.window>.wrapper');\n\t\tl = $('.marquee').find('.window').scrollLeft();\n\t\t// w = el.find('.tile').width()+30;\n\t\tw = $('.marquee').find('.window').width();\n\t\tif(msieversion())w -= 30;\n\t\ts = l-w;\n\t\tif(l.wrapper');\n\t\tl = $('.marquee').find('.window').scrollLeft();\n\t\t// w = el.find('.tile').width()+30;\n\t\tw = $('.marquee').find('.window').width();\n\t\t\n\t\tif(msieversion())w -= 30;\n\t\ts = l+w;\n\t\tif( s>el.width() )s = el.width();\n\t\t// console.log(s);\n\t\t$('.marquee').find('.window').animate({\n scrollLeft: s\n }, 500,'swing');\n \n var pos = parseInt(w/el.find('.tile').width());\n this.subset.position += pos;\n if(this.subset.position > 0){\n \t$('.marquee').find('.prev').stop().fadeTo(200,1.0);\n\t this.subset.prevActive = true;\n\t }\n\n if(this.subset.position >= this.subset.activeTally-2){\n \t$('.marquee').find('.next').stop().fadeTo(200,0);\n\t this.subset.nextActive = false;\n\t }\n\t};\n\n\tViewData.prototype.nextPage = function(api) {\n\t\t\n\t\tif(typeof api === 'undefined'){console.log('no api url');return;}\n\n\t\tif (this.busy || this.done) return;\n\n\t\tvar limit = parseInt($('#tile_limit').attr('data-limit'));\n\n\t\tvar itemsPerPage = (page === 'search-test')?10:12;\n\t\t\n\t\tif(api.data === this.api){\n\t\t\tpageNum = parseInt(this.items.length/itemsPerPage);\n\t\t\tif(this.pageNum === pageNum)return;\n\t\t\tthis.pageNum = pageNum;\n\t\t}else{\n\t\t\tthis.pageNum = 0;\n\t\t\tthis.items.length = 0;\n\t\t}\n\t\t\n\t\tthis.api = api.data;\n\t\t\n\t\tthis.busy = true;\n\n\t\tthis.searchStr = ( localStorage.getItem(page+'.filter.search') )?1:0;\n\t\t\n\t\tapi.data += ((api.slice(-1) === '/')?'?':'&')+\"page=\"+this.pageNum;\n\n\n\t\tvar m = api.data.match(/\\/search(-test){0,1}\\//g);\n\t\tif(m !== 'undefined' && m !== null && api.data.indexOf('keys=') === -1){\n\t\t\tthis.items.length = 0;\n\t\t\tthis.busy = false;\n\t\t}else{\n\t\t\tif(page === 'search-test' && this.joinWithOr === true)api = api.replace(/\\+/g,'+OR+');\n\t\t\t\n\n\t\t\tif(api.subset && this.subset.items.length === 0){\n\t\t\t\tthis.subset.busy = true;\n\t\t\t\tthis.subset.active = (localStorage.getItem(page+'.filter.subset'))?localStorage.getItem(page+'.filter.subset'):$('#subset').attr('data-active');\n\n\t\t\t\t// console.log(api.subset);\n\t\t\t\t$http.get(api.subset).success(function(data) {\n\t\t\t\t var items = data;\n\t\t\t\t if(this.subset.items.length > 0)return;\n\t\t\t\t for (var i = 0; i < items.length; i++) {\n\t\t\t\t items[i].image = (items[i].field_image_gallery && items[i].field_image_gallery !== '')?items[i].field_image_gallery:items[i].image;\n\t\t\t\t\titems[i].image = (items[i].field_microsite_banner && items[i].field_microsite_banner !== '')?items[i].field_microsite_banner:items[i].image;\n\t\t\t\t\titems[i].image = (items[i].field_cover_image_1 && items[i].field_cover_image_1 !== '')?items[i].field_cover_image_1:items[i].image;\n\t\t\t\t\titems[i].image = (items[i].field_cover_image && items[i].field_cover_image !== '')?items[i].field_cover_image:items[i].image;\n\t\t\t\t\titems[i].image = (items[i].field_image && items[i].field_image !== '')?items[i].field_image:items[i].image;\t\t\t\t\t\n\t\t\t\t\titems[i].image = (items[i].image)?items[i].image.replace(/\\/files\\//g,'/files/styles/large/public/'):'';\n\n\t\t\t\t\titems[i].type_key = items[i].type.replace(/\\s/g,\"_\").toLowerCase();\n\t\t\t\t\titems[i].field_publication_subset = items[i].field_publication_subset.split(', ');\n\t\t\t\t this.subset.items.push(items[i]);\n\t\t\t\t }\n\t\t\t\t this.subset.busy = false;\n\t\t\t\t this.subsetActive(this.subset.active);\n\n\t\t\t\t}.bind(this)).error(function(){\n\t\t\t\t\t// $('#subset').html('

This site is experiencing a technical issue

The information for this page has failed to load.
');\n\t\t\t\t});\n\t\t\t}\n\t\t\t\n\t\t\tif(api.results && this.pageNum === 0){\n\t\t\t\t// console.log(api.results);\n\t\t\t\t$http.get(api.results).success(function(data) {\n\t\t\t\t\t// console.log(data);\n\t\t\t\t\tthis.results = (data.length > 1)?data.length:((data.length === 1)?data[0].nid:0);\n\t\t\t\t}.bind(this)).error(function(){\n\t\t\t\t\t// $('#view').html('

This site is experiencing a technical issue

The information for this page has failed to load.
');\n\t\t\t\t});\n\t\t\t}\n\t\t\t\n\t\t\t// console.log(api.data);\n\t\t\t$http.get(api.data).success(function(data) {\n\t\t\t var items = data;\n\n\t\t\t for (var i = 0; i < items.length; i++) {\n\t\t\t items[i].image = (items[i].field_image_gallery && items[i].field_image_gallery !== '')?items[i].field_image_gallery:items[i].image;\n\t\t\t\titems[i].image = (items[i].field_microsite_banner && items[i].field_microsite_banner !== '')?items[i].field_microsite_banner:items[i].image;\n\t\t\t\titems[i].image = (items[i].field_cover_image_1 && items[i].field_cover_image_1 !== '')?items[i].field_cover_image_1:items[i].image;\n\t\t\t\titems[i].image = (items[i].field_cover_image && items[i].field_cover_image !== '')?items[i].field_cover_image:items[i].image;\n\t\t\t\titems[i].image = (items[i].field_image && items[i].field_image !== '')?items[i].field_image:items[i].image;\n\n\t\t\t\titems[i].image = (items[i].image)?items[i].image.replace(/\\/files\\//g,'/files/styles/large/public/'):'';\n\t\t\t\tif(items[i].type_key)items[i].type_key = items[i].type.replace(/\\s/g,\"_\").toLowerCase();\n\t\t\t // this.total += parseInt(items[i].test);\n\t\t\t this.items.push(items[i]);\n\t\t\t // if(i+1 === itemsPerPage)break;\n\t\t\t if(page === 'search-test' && i+1 === itemsPerPage){\n\t\t\t \tthis.done = true;\n\t\t\t \tbreak;\n\t\t\t }\n\t\t\t }\n\t\t\t this.tally();\n\t\t\t this.busy = false;\n\n\t\t\t if(items.length < itemsPerPage) this.done = true;\n\n\t\t\t //end infinitePage for keywords\n\t\t\t if(items.length > itemsPerPage) this.done = true;\n\n\t\t\t if (limit !== 0 && this.items.length >= limit) this.done = true;\n\n\t\t\t}.bind(this)).error(function(){\n\t\t\t\t$('#view').html('

This site is experiencing a technical issue

The information for this page has failed to load.
');\n\t\t\t});\n\n\t\t}\n\t\t$(\"#content-wrap\").css({\"height\":\"auto\"});\n\t};\n\n\treturn ViewData;\n});\n","var nodeCtrl = function($scope, $location, $timeout, $anchorScroll, nodeDataFactory, urlService, $analytics) {\n\tvar tabs = [];\n\tvar _this = this;\n\t_this.urlService = urlService;\n\n\t$('[name=\"search\"]').each(function(){\n\t\ttabs[tabs.length] = $(this).attr('data-base');\n\t});\n\n\t$scope.node = new nodeDataFactory(tabs);\n\n\t// this.infoService = infoService;\n\t// this.init();\n\t\n\tvar nid = $(\"#node\").attr(\"data-nid\");\n\tif(nid === \"\")return;\n\t\n\t$scope.node.getInfo(nid);\n\n\t$scope.onChange = function (base){\n\t\t$scope.reloadTab = base;\n\t\t_this.urlService.updateFilterValues($scope);\n\t};\n\n\tvar fetchDataDelay = 500; // milliseconds\n var fetchDataTimer;\n\n $scope.onSearch = function (base){\n $timeout.cancel(fetchDataTimer);\n fetchDataTimer = $timeout(function () {\n \t\t$scope.onChange(base);\n }, fetchDataDelay);\n };\n\n $scope.keyUp = function(base){\n \tvar page = _this.urlService.getPage();\n \t// console.log(page+'.'+base+'.filter.search');\n \tvar searchStr = localStorage.getItem(page+'.'+base+'.filter.search');\n \tif($scope[ base ].filter.search === '' && searchStr !== null)$scope.onSearch(base);\n };\n\n\t$scope.display = \"list\";\n\t$scope.image = ($('#view').attr('data-image') === 'false')?false:true;\n\n\t$scope.display_option = function(type){\n\t\t$scope.display = type;\n\t};\n\n\t$scope.display_image = function(){\n\t\t$scope.image = ($scope.image===false)?true:false;\n\t};\n\n\t$scope.updateTab = function(tab){\n\t\t$scope.tab = (!tab)?'':tab;\n\t\t$location.path(tab);\n\n\t\t//report new path to google analytics\n\t\tvar url = '/'+$location.absUrl().split('/').splice(3).join('/');\n\t\t$analytics.pageTrack(url);\n\t};\n\n\t$scope.pathVarsToScope = function(){\n \tvar path = $location.path().split('/');\n\t\t$scope.tab = (path[1])?path[1]:'';\n\t};\n\n\t$scope.pathVarsToScope();\n\n\t$(document).ready(function(){\n\n\t\tfor(i=0;i 0){\n\t\t setTimeout(function(){\n\t\t \tjQuery(\"html, body\").animate({ scrollTop: jQuery('#'+hash).offset().top - navbarSm - 4 }, 600);\n\t\t },1000);\n\t\t}\n\n\t});\n\n};\n\napp.controller('NodeController', nodeCtrl)\n.config(function($locationProvider){\n\t$locationProvider.hashPrefix('!');\n// \t$locationProvider.html5Mode(true).hashPrefix('!');\n});\n\napp.factory('nodeDataFactory', function($http, infoService, urlService) {\n\tvar nodeDataFactory = function(tabs) {\n\t\tthis.infoService = infoService;\n\t\tthis.urlService = urlService;\n\t\t// this.tabs = tabs;\n\n\t};\n\n\tnodeDataFactory.prototype.filters = function() {\n\t\tvar _this = this;\n\t\tvar options = [];\n\t\tvar base,o;\n\t\tif($('select[data-base]').length > 0){\n\t\t\t$.each($('select[data-base]'),function(){\n\t\t\t\tbase = $(this).attr('data-base');\n\t\t\t\t_this[base] = [];\n\t\t\t\t_this[base].filter = [];\n\t\t\t\t_this[base].filter[$(this).attr('data-field').replace(/\\[\\]/g,'')] = [];\n\n\t\t\t\t// _this[base].filter[$(this).attr('data-field').replace(/\\[\\]/g,'')].push('bkc');\n\t\t\n\t\t\t\toptions = $(this).attr('data-options').split(',');\n\t\t\t\tfor(i=0;i 0){\n\t\t\tvar filter,filters,p,base,str_fields;\n\t\t\tvar _this = this;\n\t\t\tvar page = _this.urlService.getPage();\n\t\t\tvar f = [];\n\n\t\t\t$.each($('.field[data-field=\"'+field+'\"]'),function(){\n\t\t\t\tbase = field;//$(this).attr('data-base');\n\t\t\t\tfilters = $(this).attr('data-filter').split(',');\n\n\t\t\t\tif($(this).find(\".filter input[type=text]\").length > 0){\n\t\t\t\t\t$.each($(this).find(\".filter input[type=text]\"),function(){\n\t\t\t\t\t\tstr_fields = $(this).attr('data-fields').split(',');\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tfor(i=0;i -1)?'search':field;\n\t\t\t\t\tkey = page+((base)?'.'+base:'')+'.filter.'+field;\n\t\t\t\t\tstoredVal = localStorage.getItem(key);\n\t\t\t\t\t// console.log(name+'='+storedVal+'in array? '+$.inArray(name+'='+storedVal,f));\n\t\t\t\t\tif(storedVal){\n\t\t\t\t\t\tif($.inArray(filters[i].split('=')[0]+'='+storedVal,f) > -1)continue;\n\t\t\t\t\t\tf[f.length] = filters[i].split('=')[0]+'='+storedVal.replace(/\\s/g,'+');\n\t\t\t\t\t}else{\n\t\t\t\t\t\tf[f.length] = filters[i].replace(/\\s/g,'+');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfilter = $(this).attr('data-base')+'/all/?'+f.join('&');\n\n\t\t\t\t// 2015.08.20 join all search strings with OR per Todd's request \n\t\t\t\tfilter = filter.replace(/\\+/g,'+OR+');\n\n\t\t\t\tparams = {'field':$(this).attr('data-field')};\n\t\t\t\t// console.log($(this).attr('data-base')+'Reload');\n\n\t\t\t\t_this[$(this).attr('data-base')+'Reload'].busy = true;\n\t\t\t\t\n\t\t\t\t_this.infoService.getInfo(filter,params)\n\t\t\t\t.then(function(data){\n\t\t\t\t\t// console.log(data);\n\t\t\t\t\t_this[data.config.field] = data.data;\n\t\t\t\t\t_this[data.config.field+'Reload'].busy = false;\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t};\n\n\tnodeDataFactory.prototype.getInfo = function(id) {\n\t\tvar tab,filters,filter,params,key,base,name,f,str_fields,storedVal,field;\n\t\tvar _this = this;\n\t\tvar page = _this.urlService.getPage();\n\n\t\tif($(\"#node\").attr(\"data-type\") == 'profile'){\n\t\t\n\t\t\t// _this.infoService.getProfile(id)\n\t\t\t// .then(function(data){\n\t\t\t// \tconsole.log(data.data[0]);\n\t\t\t// \t_this.profile = data.data[0];\n\t\t\t// });\n\n\t\t\tif($('#node').find('.field[data-base]').length > 0){\n\t\t\t\t$.each($('#node').find('.field[data-base]'),function(){\n\t\t\t\t\t// if($(this).attr('data-base') === ''){console.log($(this).html());return;}\n\t\t\t\t\tif($(this).attr('data-filter') === ''){console.log('View requires data-filter.');return;}\n\t\t\t\t\t// console.log('data-filter: '+$(this).attr('data-filter'));\n\n\t\t\t\t\tbase = $(this).attr('data-base');\n\n\t\t\t\t\tfilters = $(this).attr('data-filter').split(',');\n\t\t\t\t\tf = [];\n\n\t\t\t\t\tif($(this).find(\".filter input[type=text]\").length > 0){\n\t\t\t\t\t\t$.each($(this).find(\".filter input[type=text]\"),function(){\n\t\t\t\t\t\t\tstr_fields = $(this).attr('data-fields').split(',');\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tfor(i=0;i -1)?'search':field;\n\t\t\t\t\t\tkey = page+((base)?'.'+base:'')+'.filter.'+field;\n\t\t\t\t\t\tstoredVal = localStorage.getItem(key);\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(storedVal){\n\t\t\t\t\t\t\tif($.inArray(filters[i].split('=')[0]+'='+storedVal,f) > -1)continue;\n\t\t\t\t\t\t\tf[f.length] = filters[i].split('=')[0]+'='+storedVal.replace(/\\s/g,'+');\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tf[f.length] = filters[i].replace(/\\s/g,'+');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfilter = $(this).attr('data-base')+(($.inArray($(this).attr('data-base'),['courses','publications','blogs','resources']) > -1)?'/all':'')+'/?'+f.join('&');\n\t\t\t\t\t\n\t\t\t\t\t// 2015.08.20 join all search strings with OR per Todd's request \n\t\t\t\t\tfilter = filter.replace(/\\+/g,'+OR+');\n\n\t\t\t\t\tparams = {'field':$(this).attr('data-field')};\n\t\t\t\t\t// console.log(params);\n\t\t\t\t\t_this[base+'Reload'] = [];\n\t\t\t\t\t_this[base+'Reload'].busy = true;\n\t\t\t\t\t// _this[$(this).attr('data-field')+'Reload'].busy = true;\n\n\t\t\t\t\t_this.infoService.getInfo(filter,params)\n\t\t\t\t\t.then(function(data){\n\t\t\t\t\t\t// console.log(data);\n\t\t\t\t\t\t_this[data.config.field] = data.data;\n\t\t\t\t\t\t_this[data.config.field+'Reload'].busy = false;\n\t\t\t\t\t});\t\t\t\t\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n\t\n\treturn nodeDataFactory;\n});","var trackerCtrl = function($scope, $http, $filter, $q) {\n\tvar intro = 'Add a comment to this issue here:';\n\tvar divider = '----------------';\n\n\t$scope.issues = [];\n\t$scope.i = null;\n\t$scope.team = ['Bradley','Dan','Stephen','Stefanie','Group'];\n\t$scope.userFilter = null;\n\t$scope.assignedToFilter = null;\n\n $(document).ready(function(){\n\t\tif(tracker){\n\t\t\tgetIssues();\n\t\t}else{\n\t\t\t$('.release').hide();\n\t\t\t$('.known').hide();\n\t\t\t$('#issueTracker').find('.report').off().removeAttr('ng-click').on('click',function(){window.open('https://sog-helpdesk.sog.unc.edu/');});\n\t\t\t$('#issueTracker').css({'display':'block'});\n\t\t}\n\n\t\t// $('[data-toggle=\"popover\"]').popover();\n\t\t$('#issueTracker').find('.title').find('.release').off().on('click',function(){location.href='/resources/microsites/sog-website-release-notes';});\n\t\t$('#issueTracker').find('.title').find('.known').off().on('click',function(){location.href='/resources/microsites/sog-website-known-issues';});\n\t});\n\n\t$scope.open = function(){\n\t\t$('#issueTracker').find('.body').slideDown(1000);\t\n\t\t$('#issueTracker').find('.body').find('textarea').val('');\n\t\t$('#issueTracker').find('.body').find('textarea').focus();\n\t\t$('#issueTracker').find('.closeBtn').removeClass('hidden');\n\t};\n\n\t$scope.close = function(){\n\t\t$('#issueTracker').find('.body').find('textarea').val('');\n\t\t$('#issueTracker').find('.body').slideUp('slow');\n\t\t$('#issueTracker').find('.closeBtn').addClass('hidden');\t\n\t};\n\n\t$scope.cancel = function(){\n\t\t$scope.i = null;\n\t\t$scope.msg = '';\n\t\t$('.issues').find('.issue').removeClass('active');\n\t};\n\n\t$scope.results = function(){\n\t\tif($scope.issues.length !== 0){\n\t\t\t$('#issueTracker').find('.log>.issues').slideToggle('slow');\n\t\t\t$('#issueTracker').find('.filters').toggleClass('hidden');\n\t\t}\n\t};\n\n\t$scope.viewAll = function(){\n\t\t// not complete -> sql in module\n\t\t// $http.post('/issue-tracker', {'digest':'1'}\n\t\t// ).success(function(data, status, headers, config) {\n\t\t// \t$scope.digest.items = data;\n\n\t\t// }).error(function(data, status, headers, config) {\n\t\t// \tconsole.log('fail');\n\t\t// });\n\t};\n\n\t$scope.loadMsg = function(issue){\n\t\tfor(var i=0;i<$scope.issues.length;i++){\n\t\t\tif($scope.issues[i].id === issue.id)break;\n\t\t}\n\t\t$('.issues').find('.issue').removeClass('active');\n\t\t$('.issues').find('[data-mid=\"'+issue.id+'\"]').addClass('active');\n\n\t\tvar m = issue.messages;\n\t\tvar log = intro+'\\n\\n\\n\\n';\n\t\t\n\t\tangular.forEach(m,function(value,key){\n\t\t\tlog += divider+'\\n';\n\t\t\tlog += 'Previous message received on ';\n\t\t\tlog += $filter('date')(value.timestamp*1000, \"yyyy.MM.dd hh:mm a\", \"-0500\")+'\\n';\n\t\t\tlog += value.msg+'\\n\\n\\n';\n\t\t});\n\t\tlog += divider+'\\n';\n\t\tlog += \"Originated from \"+issue.url+'\\n';\n\t\t$scope.i = i;\n\t\t$scope.msg = log;\n\t\t\n\t\t$scope.assignedTo = issue.assignedTo;\n\t\t// console.log($scope.assignedTo +' = '+issue.assignedTo);\n\t\tsetTimeout(function(){$('.selectpicker').selectpicker('refresh');},100);\n\t\t\n\n\t\t$http.post('/issue-tracker', {'id':issue.id,'status':'2'}\n\t\t).success(function(data, status, headers, config) {\n\t\t\t$scope.issues[i].status = '2';\n\t\t}).error(function(data, status, headers, config) {\n\t\t\tconsole.log('fail');\n\t\t});\n\t};\n\n\t$scope.assign = function(){\n\t\tvar assignedTo = ($scope.assignedTo)?$scope.assignedTo:\"\";\n\t\t$http.post('/issue-tracker', {'id':$scope.issues[$scope.i].id,'assignedTo':assignedTo}\n\t\t).success(function(data, status, headers, config) {\t\t\t\n\t\t\t$scope.issues[$scope.i].assignedTo = $scope.assignedTo;\n\t\t}).error(function(data, status, headers, config) {\n\t\t\tconsole.log('fail');\n\t\t});\n\t};\n\n\t$scope.from = function(item){\n\t\treturn (!$scope.userFilter || ($scope.userFilter && $scope.userFilter.uid === item.uid))?item:null; \n\t};\n\n\t$scope.assigned = function(item){\n\t\treturn (!$scope.assignedToFilter || ($scope.assignedToFilter === item.assignedTo))?item:null; \n\t};\n\n\t$scope.delete = function(issue){\n\t\tfor(var i=0;i<$scope.issues.length;i++){\n\t\t\tif($scope.issues[i].id === issue.id)break;\n\t\t}\n\t\tvar txt;\n\t\tvar r = confirm(\"Are you sure you would like to delete this issue?\");\n\t\tif (!r)return;\n\t\t$http.post('/issue-tracker', {'id':$scope.issues[i].id,'status':'0'}\n\t\t).success(function(data, status, headers, config) {\n\t\t\t$scope.issues.splice(i,1);\n\t\t\t$scope.i = null;\n\t\t\t$scope.msg = '';\n\t\t}).error(function(data, status, headers, config) {\n\t\t\tconsole.log('failed delete');\n\t\t});\n\t};\n\n\t$scope.hide = function(issue){\n\t\tfor(var i=0;i<$scope.issues.length;i++){\n\t\t\tif($scope.issues[i].id === issue.id)break;\n\t\t}\n\t\tvar txt;\n\t\tvar r = confirm(\"Are you sure you would like to hide this issue? The issuer will still see this issue in their issue tracker. If the issuer replies this issue will show up again in your administrative issue tracker.\");\n\t\tif (!r)return;\n\t\t$http.post('/issue-tracker', {'id':$scope.issues[i].id,'status':'3'}\n\t\t).success(function(data, status, headers, config) {\n\t\t\t$scope.issues.splice(i,1);\n\t\t\t$scope.i = null;\n\t\t\t$scope.msg = '';\n\t\t}).error(function(data, status, headers, config) {\n\t\t\tconsole.log('failed hide');\n\t\t});\n\t};\n\n\t$scope.submit = function(){\n\t\tif ($scope.msg){\n\t\t\tvar msg = ($scope.i !== null)?$scope.msg.split(divider).shift().split('\\n').slice(1,Number.MAX_VALUE).join(''):$scope.msg;\n\t\t\tif(!msg)return;\n\t\t\tvar n = ($scope.i === null)?true:false;\n\t\t\tvar entry = {};\n\t\t\tentry.mid = ($scope.i !== null)?$scope.issues[$scope.i].id:'';\n\t \tentry.msg = msg;\n\t \tentry.url = location.href;\n\t \t// console.log(entry);\n\t\t\t$http.post('/issue-tracker', entry\n\t\t\t).success(function(data, status, headers, config) {\n\t\t\t\t// console.log(data);\n\t\t\t\tif($scope.i === null){\n\t\t\t\t\t\n\t\t\t\t\t$scope.issues.unshift(data[0]);\n\t\t\t\t\t$scope.i = 0;\n\t\t\t\t\t$scope.issues[$scope.i].messages=[];\n\t\t\t\t}\n\t\t\t\tentry.timestamp = data[0].timestamp;\n\t\t\t\tentry.url = data[0].url;\n\t\t\t\t$scope.issues[$scope.i].messages.unshift(entry);\n\t\t\t\t$('#issueTracker').find('.issueStatus').text('Thank you for your input.');\n\t\t\t\tif(!n){\n\t\t\t\t\t$scope.loadMsg($scope.issues[$scope.i]);\n\t\t\t\t}else{\n\t\t\t\t\t$scope.cancel();\n\t\t\t\t}\n\t\t\t\t$(\"#issueTracker\").find('.issueStatus').text(\"Submission received. Thank you for your input.\");\n\t\t\t\t$(\"#issueTracker\").find('.issueStatus').slideToggle();\n\t\t\t\tsetTimeout(\n\t\t\t\t\tfunction(){\n\t\t\t\t\t\t$(\"#issueTracker\").find('.issueStatus').slideToggle(function(){\n\t\t\t\t\t\t\t$(\"#issueTracker\").find('.issueStatus').text(\"\");\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t5000);\n\t\t\t}).error(function(data, status, headers, config) {\n\t\t\t\tconsole.log('fail');\n\t\t\t});\n\t\t}\n\t};\n\n\tfunction getIssues(){\n\t\t$http.get('/issue-tracker'\n\t\t).success(function(data, status, headers, config) {\n\t\t\tif(data.length === 0){\n\t\t\t\t$('#issueTracker').css({'display':'block'});\n\t\t\t}else{\n\t\t\t\tvar promise = [];\n\t\t\t\tangular.forEach(data,function(value,key){\n\t\t\t\t\tpromise.push(getMessages(value.id));\n\t\t\t\t});\n\t\t\t\t$q.all(promise).then(function(msgs){\n\t\t\t\t\tvar i=0;\n\t\t\t\t\tangular.forEach(data,function(value,key){\n\t\t\t\t\t\tvalue.messages = msgs[i];\n\t\t\t\t\t\ti+=1;\n\t\t\t\t\t});\n\t\t\t\t\t$scope.issues = data;\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t \t$('.selectpicker').selectpicker('refresh');\n\t\t\t\t\t \t$('#issueTracker').css({'display':'block'});\n\t\t\t\t\t},100);\n\t\t\t\t});\n\t\t\t}\n\t\t}).error(function(data, status, headers, config) {\n\t\t\tconsole.log('fail');\n\t\t});\n\t}\n\n\tfunction getMessages(mid){\n\t\treturn $q(function(resolve,reject){\n\t\t\t$http.post('/issue-tracker',{'mid':mid}\n\t\t\t).success(function(data, status, headers, config) {\n\t\t\t\tresolve(data);\n\t\t\t}).error(function(data, status, headers, config) {\n\t\t\t\treject('promise failed');\n\t\t\t});\n\t\t});\n\t}\n};\n\napp.controller('IssueTrackerController', trackerCtrl);","var searchCtrl = function($scope) {\n\t$scope.searchStr = '';\n\n\t$scope.submit = function(){\t\n\t\tif($scope.searchStr) location.href = '/search/#!/search/'+$scope.searchStr;\n\t};\n\n};\n\napp.controller('SearchController', searchCtrl);","// 2015-09-17 bradley cummins\n// loadFilterValues() and updateFilterValues() used with nodeController on profile pages.\n// Originally filter selections were collected w jQuery and stored in localStorage for all \n// api generated views. Shortly after launch we switched to an AngularJS path approach so \n// the state of the app could be shared via url (copy/paste, bookmark google webwasters sitemap, \n// etc). \n\n// When you can I would recommend changing nodeController to the AngularJS path approach as well.\n// For example, http://sog.unc.edu/about/faculty-and-staff/frayda-s-bluestein#courses/online-modules/search/local-government\n\n(function() {\n\n var UrlService = function($location,$filter){\n\n UrlService.prototype.getPage = function(){\n var d = window.location.pathname.split('/');\n var page = (d[1]==='about' || d[1]==='giving')?d[2]:d[1];\n return (page === '')?'home':page;\n };\n \n UrlService.prototype.loadFilterValues = function(filterData){\n var _this = this;\n var page = _this.getPage();\n\n var key,value,uri,base,select,mValue,valueKey,obj,v,u;\n if($(\".filter.select\").length > 0){ \n $.each($(\".filter.select\"),function(){\n mValue = [];\n select = $(this).find('select');\n base = select.attr('data-base');\n \n uri = $(this).find('.filter-option>span').attr('data-field');\n uri = (!uri)?select.attr('name'):uri;\n uri = uri.replace(/\\[\\]/g,'');\n\n if(uri.split(',').length > 1){\n //select consists of more than one vocabulary\n v = uri.split(',');\n value = null;\n for(u in v){\n //select not multiple only select one value -> need to troubleshoot in case role and topic have same tid\n key = page+(($('#node').length > 0 && base)?'.'+base:'')+\".filter.\"+v[u];\n value = (!value)?localStorage.getItem(key):value;\n // console.log(key+' : '+localStorage.getItem(key));\n }\n }else{\n key = page+(($('#node').length > 0 && base)?'.'+base:'')+\".filter.\"+uri;\n value = localStorage.getItem(key);\n // console.log('solo: '+key+' : '+value);\n\n // if(uri === 'sort_by' && val[i] === 'score' && !localStorage.getItem(page+'.filter.search'))val[i]=$('#view').attr('data-sort-by');console.log(val[i]);\n }\n \n if(select.attr('multiple') && filterData[uri] && value !== null){\n value = value.split(',');\n for(i=0;i 0){ \n $.each($(\".filter input[type=text]\"),function(){\n if(typeof $(this).attr('name') === typeof undefined)return;//ignore bootstrap-select search box in select filters\n base = $(this).attr('data-base');\n uri = $(this).attr('name');\n // key = page+\".filter.\"+uri;\n key = page+((base && $('#node').length > 0)?'.'+base:'')+'.filter.'+uri;\n value = localStorage.getItem(key);\n\n if(value){$(this).val(localStorage.getItem(key));}\n });\n }\n };\n\n UrlService.prototype.updateFilterValues = function($scope){\n\n $('.no-results').addClass('hidden');\n var url,uri,value,select,mValue,valueKey,key,key2,change,storedVal,input,u,p,m;\n var filter=[];\n var page = this.getPage();\n if(page === '')return;\n\n // console.log($scope);\n var filterData = ($scope.viewData)?$scope.viewData.filter:$scope.node.filter;\n\n if($(\".filter.select\").length > 0){ \n $.each($(\".filter.select\"),function(){\n select = $(this).find('select');\n base = select.attr('data-base');\n\n uri = $(this).find('.filter-option>span').attr('data-field');\n uri = (!uri)?select.attr('name'):uri;\n uri = uri.replace(/\\[\\]/g,'');\n value = select.val();\n\n mValue = [];\n key = page+(($('#node').length > 0 && base)?'.'+base:'')+'.filter.'+uri;\n storedVal = localStorage.getItem(key);\n // console.log(key+' : '+value+' : '+storedVal);\n\n if(!value || value === ''){\n if(uri.split(',').length > 1){\n uri = uri.split(',');\n for(u in uri){\n // console.log('a: '+uri[u]);\n key = page+(($('#node').length > 0 && base)?'.'+base:'')+'.filter.'+uri[u];\n localStorage.removeItem(key);\n }\n }else{\n if(!$scope.viewData && storedVal && storedVal !== ''){\n change = base;\n // console.log('key: '+key+', storedVal: '+storedVal);\n }\n localStorage.removeItem(key);\n }\n return;\n }\n \n if(filterData && select.attr('multiple')){\n // console.log(filterData);\n valueKey = (select.attr('data-option-value-key'))?select.attr('data-option-value-key'):'value';\n for(i=0;i 0 && base)?'.'+base:'')+'.filter.'+v[u]);\n }\n }\n localStorage.setItem(key, value);\n }\n\n });\n }\n\n if($(\".filter.text\").length > 0){\n $.each($(\".filter.text\"),function(){ \n input = $(this).find('input[type=text]');\n if(typeof input.attr('name') === typeof undefined)return;//ignore bootstrap-select search box in select filters\n base = input.attr('data-base');\n uri = input.attr('name');\n value = input.val();\n key = page+((base && $('#node').length > 0)?'.'+base:'')+'.filter.'+uri;\n // console.log('key: '+key+'\\nvalue: '+value);\n if(value === ''){\n if(localStorage.getItem(key) !== null)change = base;\n localStorage.removeItem(key);\n return;\n }else{\n change = base;\n localStorage.setItem(key, value);\n localStorage.setItem(page+'.filter.sort_by','score');\n localStorage.setItem(page+'.filter.sort_order','desc');\n }\n });\n }\n if($scope.viewData){\n $scope.viewData.nextPage(0);\n }else{\n // console.log('reload '+change);\n $scope.node.reloadView($scope.reloadTab);\n }\n return;\n };\n\n UrlService.prototype.generateUrls = function($scope){\n var page = this.getPage();\n var filters = [];\n var uri = [];\n var name,value,s;\n var ct = $filter('content_types');\n var path = [];\n var search = [];\n var sort = [];\n var keywords = false;\n\n $.each($(\"[ng-model^='filter.']\"),function(i,filter){\n key = $(this).attr('ng-model').substring(7);\n value = $scope.filter[key];\n \n if(page === 'search') localStorage.setItem('search.filter.search',value);\n\n if(typeof value === 'undefined' || value === ''){\n\n }else if(key === 'content_type'){\n path[path.length] = ct(value,{'input':'machine_name','output':'path'});\n }else if(key === 'search'){\n search[search.length] = key;\n search[search.length] = value;\n }else if(key === 'sort_by'){\n if(value !== $('#view').attr('data-sort-by')){\n switch (value){\n case \"field_first_name_value_1\":\n s = \"first-name\";\n break;\n case \"field_offering_date_value\":\n s = \"offering-date\";\n break;\n case \"changed\":\n s = \"last-updated\";\n break;\n case \"created\":\n s = \"published\";\n break;\n case \"field_keywords\":\n s = \"fields-of-expertise\";\n break;\n default:\n s = value;\n }\n\n sort[sort.length] = 'by';\n sort[sort.length] = s;\n if(value === 'field_keywords'){ \n keywords = true;\n return;\n }\n }\n }else if(key === 'sort_order'){\n if(value !== $('#view').attr('data-sort-order')){\n sort[sort.length] = 'order';\n sort[sort.length] = value;\n }\n }else{\n if(!$scope.options[key][value]){\n return;\n }else if(key === 'field_profile_types'){\n path[path.length] = 'types';\n path[path.length] = value;\n path[path.length] = $scope.options[key][value].value.toLowerCase().replace(/\\s/g,'-');\n }else if(key === 'field_group'){\n path[path.length] = 'groups';\n path[path.length] = value;\n path[path.length] = $scope.options[key][value].value.toLowerCase().replace(/\\s/g,'-');\n }else if(key === 'roles'){\n path[path.length] = 'public-officials';\n path[path.length] = value;\n path[path.length] = $scope.options[key][value].value.toLowerCase().replace(/\\s/g,'-');\n }else if(key === 'topics'){\n path[path.length] = key;\n path[path.length] = value;\n path[path.length] = $scope.options[key][value].value.toLowerCase().replace(/\\s/g,'-');\n }else if(key === 'field_author'){\n path[path.length] = 'authors';\n path[path.length] = value;\n path[path.length] = $scope.options[key][value].value.toLowerCase().replace(/\\s/g,'-');\n }else if(key === 'field_blog_reference'){\n path[path.length] = 'blogs';\n path[path.length] = value;\n path[path.length] = $scope.options[key][value].value.toLowerCase().replace(/\\s/g,'-');\n }\n }\n\n if(typeof value === 'undefined' || value === null || value === '')return;\n\n if($('#view').find('[ng-model]').length === 0)return;\n\n //roles and topics select filters consist of two taxonomies so need to get appropriate drupal contextual key for selection\n name = (!$('[ng-model=\"filter.'+key+'\"]').attr('name'))?$scope.options[key][value].type:$('[ng-model=\"filter.'+key+'\"]').attr('name');\n \n // 2015.08.20 join all search strings with OR per Todd's request \n if(page !== 'search-test' )value = value.replace(/\\s/g,'+OR+');\n \n if(key === 'content_type' && value === 'landing_page'){\n filters[filters.length] = 'content_type[]=landing_page';\n filters[filters.length] = 'field_type_value[]=Microsites';\n return;\n }else if(key === 'content_type' && value === 'centers_and_services'){\n filters[filters.length] = 'content_type[]=landing_page';\n filters[filters.length] = 'field_type_value[]=Centers';\n filters[filters.length] = 'field_type_value[]=Services';\n return;\n }\n\n filters[filters.length] = name+'='+value;\n });\n \n var subset = [];\n if($scope.viewData.subset.active){\n // default\n // if($scope.viewData.subset.active === 'New Publications'){ subset[subset.length] = 'featured'; subset[subset.length] = 'new-publications';}\n if($scope.viewData.subset.active === 'Forthcoming Titles'){ subset[subset.length] = 'featured'; subset[subset.length] = 'forthcoming-titles';}\n if($scope.viewData.subset.active === 'Updates and Supplements'){ subset[subset.length] = 'featured'; subset[subset.length] = 'updates-and-supplements';}\n }\n \n var p = ($scope.filter.sort_by !== 'score' )?path.concat(search).concat(sort).concat(subset).join('/'):path.concat(search).concat(subset).join('/');\n uri.path = p;\n uri.api = [];\n uri.api.data = '/data/'+page+((keywords)?'/keywords':'')+'?'+filters.join('&');\n if(!keywords) uri.api.results = '/data/'+page+'/results?'+filters.join('&');\n if($('#subset').length > 0) uri.api.subset = '/data/'+page+'/subset';\n \n return uri;\n\n };\n \n };\n \n var app = angular.module('sog');\n app.service('urlService', ['$location','$filter',UrlService]);\n\n}());","(function() {\n\n var app = angular.module('sog');\n\n var InfoService = function($http, $q) {\n this.$http = $http;\n this.$q = $q;\n };\n\n InfoService.$inject = ['$http', '$q'];\n\n InfoService.prototype.getInfo = function(filter,params) {\n // console.log('/data/'+filter);\n return this.$http.get('/data/'+filter,params);\n };\n\n InfoService.prototype.getNode = function(uri) {\n // console.log(uri);\n return this.$http.get(uri);\n };\n\n InfoService.prototype.getProfile = function(id) {\n // console.log('/data/faculty-and-staff/'+id);\n return this.$http.get('/data/faculty-and-staff/'+id);\n };\n \n app.service('infoService', InfoService);\n\n}());","app.filter('domain', function() {\n return function(input) {\n \treturn input ? input.replace(/http:\\/\\/sog.unc.dev\\//,\"http://dev.sog.unc.edu/\") : null;\n };\n});\n\n\napp.filter('class', function() {\n return function(input) {\n \tvar className = '';\n \tswitch (input) {\n\t // case \"Microsite landing page\":\n\t\t // className = \"bulletin\";\n\t\t // break;\n\t\t\n\t}\n\treturn input.replace(/\\s/g,\"_\");\n };\n});\n\napp.filter('escape', function() {\n return window.encodeURIComponent;\n});\n\napp.filter('trustHtml', function($sce) {\n return function(val) {\n return $sce.trustAsHtml(val);\n };\n});\n\napp.filter('miliseconds', function() {\n return function(input) {\n return input*1000;\n };\n});\n\napp.filter('datePluralize', function() {\n return function(input) {\n if(!input)return;\n var m = input.match(/,/g);\n return (m !== 'undefined' && m !== null)?input.match(/,/g).length:0;\n };\n});\n\napp.filter('capitalize', function() {\n return function(input) {\n // console.log(input);\n switch (input) {\n case \"Centers and Services\":\n break;\n default:\n input = (input) ? input.replace(/([^\\W_]+[^\\s-]*) */g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1);}) : '';\n }\n return input;\n };\n});\n\n\napp.filter('content_type_singular', function() {\n return function(input) {\n if(input)input = input.replace(/\\_/g,\" \");\n switch (input) {\n case \"faq\":\n input = \"FAQ\";\n break;\n case \"faq collection\":\n input = \"FAQ Collection\";\n break;\n case \"Microsite landing page\":\n input = \"Microsite\";\n break;\n case \"landing page\":\n input = \"Microsites\";\n break;\n case \"Basic page\":\n input = \"Page\";\n break;\n case \"course offering\":\n input = \"Upcoming Courses\";\n break;\n case \"webinar event\":\n input = \"Webinars\";\n break;\n }\n\n return input;\n };\n});\n\napp.filter('content_type_plural', function() {\n return function(input) {\n switch (input) {\n case \"centers_and_services\":\n input = \"Centers and Services\";\n break;\n case \"content_org\":\n input = \"Content Organizations\";\n break;\n case \"faq\":\n input = \"FAQs\";\n break;\n case \"faq_collection\":\n input = \"FAQ Collections\";\n break;\n case \"landing_page\":\n input = \"Microsites\";\n break;\n case \"basic_page\":\n input = \"Pages\";\n break;\n case \"course_offering\":\n input = \"Upcoming Courses\";\n break;\n case \"legal_summary\":\n input = \"Legal Summaries\";\n break;\n case \"legal_summ_coll\":\n input = \"Legal Summary Collections\";\n break;\n case \"webinar_series\":\n input = \"Webinar Series\";\n break;\n case \"webinar_event\":\n input = \"Webinars\";\n break;\n default:\n input = input.replace(/\\_/g,\" \");\n input += (input.slice(-1) !== 's')?'s':'';\n }\n\n return input;\n };\n});\n\napp.filter('unique', function() {\n return function(input, key) {\n if(typeof input == \"undefined\")return;\n\n var unique = {};\n var uniqueList = [];\n for(var i = 0; i < input.length; i++){\n // console.log('input[i]: '+input[i]);\n if(typeof unique[input[i][key]] == \"undefined\"){\n unique[input[i][key]] = \"\";\n uniqueList.push(input[i]);\n }\n }\n // console.log(uniqueList);\n return uniqueList;\n };\n});\n\n\napp.filter('standardizeName',function(){\n return function(input) {\n input = input.replace(/\\s/g,\"_\").toLowerCase();\n return input;\n };\n});\n\n\nvar content_types = '{'+\n '\"announcement\":{\"label\":\"Announcement\",\"label_plural\":\"Announcements\",\"path\":\"announcements\"},'+\n '\"article\":{\"label\":\"Article\",\"label_plural\":\"Articles\",\"path\":\"articles\"},'+\n '\"page\":{\"label\":\"Page\",\"label_plural\":\"Pages\",\"path\":\"pages\"},'+\n '\"blog\":{\"label\":\"Blog\",\"label_plural\":\"Blogs\",\"path\":\"blogs\"},'+\n '\"blog_post\":{\"label\":\"Blog Post\",\"label_plural\":\"Blog Posts\",\"path\":\"blog-posts\"},'+\n '\"book\":{\"label\":\"Book\",\"label_plural\":\"Books\",\"path\":\"books\"},'+\n '\"book_chapter\":{\"label\":\"Book Chapter\",\"label_plural\":\"Book Chapters\",\"path\":\"book-chapters\"},'+\n '\"bulletin\":{\"label\":\"Bulletin\",\"label_plural\":\"Bulletins\",\"path\":\"bulletins\"},'+\n '\"content_org\":{\"label\":\"Content Organization\",\"label_plural\":\"Content Organizations\",\"path\":\"content-organizations\"},'+\n '\"centers_and_services\":{\"label\":\"Centers and Services\",\"label_plural\":\"Centers and Services\",\"path\":\"centers-and-services\"},'+\n '\"course\":{\"label\":\"Course\",\"label_plural\":\"Courses\",\"path\":\"courses\"},'+\n '\"course_list\":{\"label\":\"Course List\",\"label_plural\":\"Course Lists\",\"path\":\"course-lists\"},'+\n '\"course_material\":{\"label\":\"Course Material\",\"label_plural\":\"Course Materials\",\"path\":\"course-materials\"},'+\n '\"course_offering\":{\"label\":\"Course Offering\",\"label_plural\":\"Course Offerings\",\"path\":\"course-offerings\"},'+\n '\"faq\":{\"label\":\"FAQ\",\"label_plural\":\"FAQs\",\"path\":\"faqs\"},'+\n '\"faq_collection\":{\"label\":\"FAQ Collection\",\"label_plural\":\"FAQ Collections\",\"path\":\"faq-collections\"},'+\n '\"legal_summary\":{\"label\":\"Legal Summary\",\"label_plural\":\"Legal Summaries\",\"path\":\"legal-summaries\"},'+\n '\"legal_summ_coll\":{\"label\":\"Legal Summary Collection\",\"label_plural\":\"Legal Summary Collections\",\"path\":\"legal-summary-collections\"},'+\n '\"listserv\":{\"label\":\"Listserv\",\"label_plural\":\"Listservs\",\"path\":\"listservs\"},'+\n '\"media\":{\"label\":\"Media\",\"label_plural\":\"Media\",\"path\":\"media\"},'+\n '\"landing_page\":{\"label\":\"Microsite\",\"label_plural\":\"Microsites\",\"path\":\"microsites\"},'+\n '\"news\":{\"label\":\"News\",\"label_plural\":\"News\",\"path\":\"news\"},'+\n '\"online_module\":{\"label\":\"Online Module\",\"label_plural\":\"Online Modules\",\"path\":\"online-modules\"},'+\n '\"profile\":{\"label\":\"Profile\",\"label_plural\":\"Profiles\",\"path\":\"profiles\"},'+\n '\"report\":{\"label\":\"Report\",\"label_plural\":\"Reports\",\"path\":\"reports\"},'+\n '\"publication_series\":{\"label\":\"Resource Series\",\"label_plural\":\"Resource Series\",\"path\":\"resource-series\"},'+\n '\"tool\":{\"label\":\"Tool\",\"label_plural\":\"Tools\",\"path\":\"tools\"},'+\n '\"warehouse_document\":{\"label\":\"Warehouse Document\",\"label_plural\":\"Warehouse Documents\",\"path\":\"warehouse-documents\"},'+\n '\"webform\":{\"label\":\"Webform\",\"label_plural\":\"Webforms\",\"path\":\"webforms\"},'+\n '\"webinar_event\":{\"label\":\"Webinar\",\"label_plural\":\"Webinars\",\"path\":\"webinars\"},'+\n '\"webinar_series\":{\"label\":\"Webinar series\",\"label_plural\":\"Webinar Series\",\"path\":\"webinar-series\"}'+\n '}';\n\nvar obj = JSON.parse(content_types);\n\napp.filter('content_types', function() {\nreturn function(input, type){\n var output;\n \n if(type.input === 'machine_name' && obj[input]) {\n output = obj[input][type.output];\n \n }else if(type.input === 'path'){\n angular.forEach(obj,function(value,key){\n\n if(input === value[type.input]){\n output = (type.output === 'machine_name')?key:value[type.input];\n return;\n }\n\n });\n\n }\n\n return output;\n };\n});\n"],"sourceRoot":"/source/"}