From aa2a28286825f0cef7b754f6c53f0089c4bc6d01 Mon Sep 17 00:00:00 2001 From: goldsmithslab <> Date: Sun, 15 Sep 2013 15:57:56 +0100 Subject: [PATCH 1/3] adding project light javascript --- web/javascripts/custom.js | 1156 ++++++++++++++ .../libs/ios-orientationchange-fix.js | 56 + web/javascripts/libs/jquery-min.js | 4 + web/javascripts/libs/modernizr.js | 1384 +++++++++++++++++ 4 files changed, 2600 insertions(+) create mode 100644 web/javascripts/custom.js create mode 100644 web/javascripts/libs/ios-orientationchange-fix.js create mode 100644 web/javascripts/libs/jquery-min.js create mode 100644 web/javascripts/libs/modernizr.js diff --git a/web/javascripts/custom.js b/web/javascripts/custom.js new file mode 100644 index 0000000..3b71013 --- /dev/null +++ b/web/javascripts/custom.js @@ -0,0 +1,1156 @@ +//create singleton to namespace js +if (!projectlight) { + var projectlight = {}; +} + +//set up initial page variables - cached Jquery variables +projectlight.init = function(){ + + //temporary debugging element to allow developer to see exact screen width during development + $("body").append("

") + + //caching variables to refer to DOM elements in code + projectlight.$window = $(window); + projectlight.$wrap = $(".campl-wrap"); + projectlight.$rows = $(".campl-row"); + + //header items + projectlight.$globalHdrCtrl = $("#global-header-controls"); + projectlight.$siteSearchBtn = $("#site-search-btn"); + projectlight.$quicklinks = $(".campl-quicklinks"); + + //navigation items + projectlight.$globalNavOuter = $(".campl-global-navigation-outer"); + projectlight.$globalNavLI = $(".campl-global-navigation li"); + + //instantiate footer columns on page load + projectlight.$localFooter = $('.campl-local-footer'); + projectlight.$globalFooter = $('.campl-global-footer'); + + projectlight.$localFooterColumns = projectlight.$localFooter.find('.campl-column3'); + projectlight.$globalFooterColumns = projectlight.$globalFooter.find('.campl-column3'); + + //set namespaced variable to determine layout of menu + //using modernizr to detect if media query is valid and has been triggered + if(Modernizr.mq('only screen and (max-width: 767px)')){ + projectlight.mobileLayout = true; + + //call function to remove uniform column height in footers for mobile layout + projectlight.removeGlobalNavigationColumnHeight(); + projectlight.removeNavigationColumnHeight(); + projectlight.removeSectionListChildrenColumnHeight(); + projectlight.removeContentColumnHeight(); + projectlight.removeFooterColumnsHeight(); + + }else{ + projectlight.mobileLayout = false; + + //call function to create uniform column height in footers for desktop/tablet users + projectlight.setGlobalNavigationColumnHeight(); + projectlight.setNavigationColumnHeight(); + projectlight.setSectionListChildrenColumnHeight(); + projectlight.setContentColumnHeight(); + projectlight.setFooterColumnsHeight(); + } + + //if media queries are not supported set a fixed width container to prevent fluid layout breaking in IE and other browsers which do no support MQ + if(!Modernizr.mq('only all')){ + projectlight.$wrap.addClass("campl-fixed-container"); + } + + //dynamically append Global navigation controls for javascript + projectlight.$globalHdrCtrl.prepend('View menu'); + projectlight.$siteSearchBtn.prepend('Search'); + projectlight.$quicklinks.prepend('Quick links') + projectlight.$globalNavOuter.append('Close') + + //cache variables for DOM elements + projectlight.$searchDrawer = $('.campl-search-drawer') + projectlight.$navigationDrawer = $('.campl-global-navigation-drawer') + + //INSTANTIATE QUICKLINKS DROP DOWN MENU + // header quicklinks + projectlight.$quicklinks.find('ul').hide(); + + //get campl-quicklinks-list from page and clone into new container underneath the button inside quicklinks container + $('.campl-quicklinks-list').clone().appendTo(projectlight.$quicklinks).addClass("column12 clearfix"); + + $(".campl-open-quicklinks").bind('click', function(e){ + //shut other open panels nav and search + projectlight.$searchDrawer.removeClass("campl-search-open"); + projectlight.$navigationDrawer.removeClass("campl-navigation-open"); + projectlight.$globalNavOuter.removeClass("campl-drawer-open"); + //deselect any previously clicked links + projectlight.$globalNavLI.removeClass("campl-selected"); + + projectlight.$quicklinks.toggleClass("campl-quicklinks-open"); + e.preventDefault(); + }) + + + //open search bound click event to open search bar drawer in page + $("#open-search").bind('click', function(e){ + //shut other open panels nav and quicklinks + projectlight.$navigationDrawer.removeClass("campl-navigation-open"); + projectlight.$globalNavOuter.removeClass("campl-drawer-open"); + projectlight.$quicklinks.removeClass("campl-quicklinks-open"); + $("body").removeClass("campl-navigation-open"); + projectlight.localNav.hideMenu(); + //deselect any previously clicked links + projectlight.$globalNavLI.removeClass("campl-selected"); + + projectlight.$searchDrawer.toggleClass("campl-search-open"); + e.preventDefault(); + }) + + //ensure drop down closes if you click outside of it. Binding click event to entire page + $('html').bind('click', function(e){ + if(!$(e.target).hasClass("campl-open-quicklinks") && !$(e.target).hasClass("campl-icon-dropdown") && !$(e.target).hasClass("campl-quicklinks-txt")){ + projectlight.$quicklinks.removeClass("campl-quicklinks-open"); + } + }) + + //Bound click event to global nav button for mobile users to allow them to open the navigation in side drawer + $("#open-menu").bind('click', function(e){ + //shut other open panels search and quicklinks + projectlight.$searchDrawer.removeClass("campl-search-open"); + projectlight.$quicklinks.removeClass("campl-quicklinks-open"); + projectlight.localNav.hideMenu(); + //close main navigation drawer + projectlight.$globalNavOuter.removeClass("campl-drawer-open"); + //deselect any previously clicked links + projectlight.$globalNavLI.removeClass("campl-selected"); + + $("body").toggleClass("campl-navigation-open"); //added class to body instead so whole page can be moved to the right + e.preventDefault(); + }) + + $(".campl-close-menu").bind('click', function(e){ + //close main navigation drawer + $(e.target).parent().removeClass("campl-drawer-open"); + //remove selected class from nav item clicked + $(".campl-global-navigation li").removeClass("campl-selected") + e.preventDefault(); + + }) + + + //bound click event to primary navigation items for desktop view to allow users to browse the navigation in a megadropdown + //the campl-no-drawer items are links that click straight through to a page instead of opening a mega dropdown + $(".campl-global-navigation a").not(".campl-no-drawer").bind('click', function(e){ + var linkClicked = $(e.target); + linkClicked.parent().addClass("campl-selected"); + var $drawer = $(linkClicked.attr('href')); + + //shut other open panels search and quicklinks + projectlight.$searchDrawer.removeClass("campl-search-open"); + projectlight.$quicklinks.removeClass("campl-quicklinks-open"); + + //if the navigation is open, and the drawer showing is the same as the link clicked then close drawer and close navigation container + if($drawer.hasClass("campl-drawer-open")){ + projectlight.$globalNavLI.removeClass("campl-selected"); + projectlight.$navigationDrawer.removeClass("campl-navigation-open"); + projectlight.$globalNavOuter.removeClass("campl-drawer-open"); + }else{ + //else show close existing drawer and show new drawer, keep open navigation container + + //close any other drawers that are open + projectlight.$globalNavOuter.not($drawer).removeClass("campl-drawer-open"); + //deselect any previously clicked links + projectlight.$globalNavLI.not(linkClicked.parent()).removeClass("campl-selected"); + + //toggle the open drawer class + projectlight.$navigationDrawer.addClass("campl-navigation-open"); + $drawer.toggleClass("campl-drawer-open"); + } + + e.preventDefault(); + }) + + //Show page elements which have been hidden to handle FOUC + projectlight.$globalHdrCtrl.show(); + + //fake last psuedo class to help layout in IE8. This removes the double borders from nested LI + //which was visually confusing + $(".campl-section-list-children ul").each(function(){ + $(this).find("li").last().addClass("campl-last") + }) + +} + + +projectlight.setGlobalNavigationColumnHeight = function(){ + //for each section, get children, measure height of each, set height of each child + $(".campl-global-navigation-outer").each(function(){ + var $childrenOfList = $(this).find(".campl-global-navigation-container"); + var maxColumnHeight = Math.max($childrenOfList.eq(0).height(), $childrenOfList.eq(1).height(), $childrenOfList.eq(2).height()); + + //why is the col height 0 here? + // console.log(maxColumnHeight) + //hardcoded to 300 for time being + $childrenOfList.css({'min-height':300} ) + }) +} + +projectlight.removeGlobalNavigationColumnHeight = function(){ + $('.campl-global-navigation-container').removeAttr("style"); +} + +projectlight.setSectionListChildrenColumnHeight = function(){ + //for each section list, get section-list-children, measure height of each, set height of each child + $(".campl-section-list-row").each(function(){ + var $childrenOfList = $(this).find(".campl-section-list-children"); + var maxColumnHeight = Math.max($childrenOfList.eq(0).height(), $childrenOfList.eq(1).height(), $childrenOfList.eq(2).height()); + $childrenOfList.css({'min-height':maxColumnHeight} ) + }) +} + +projectlight.removeSectionListChildrenColumnHeight = function(){ + $('.campl-section-list-children').removeAttr("style"); +} + +projectlight.setNavigationColumnHeight = function(){ + //reset all values to begin with to ensure layout is changing on ipad orientation change + $('.campl-global-navigation li a').removeAttr("style"); + + var maxColumnHeight = Math.max($('.campl-global-navigation li a').eq(0).height(), $('.campl-global-navigation li a').eq(1).height(), $('.campl-global-navigation li a').eq(2).height()); + $('.campl-global-navigation li a').css({'min-height':maxColumnHeight} ) +}; + +//force main content column min-height to the same height as the navigation column +projectlight.setContentColumnHeight = function(){ + + //reset before adding further height + $('.campl-tertiary-navigation, .campl-secondary-content, .campl-main-content').removeAttr("style"); + var maxColumnHeight = Math.max($('.campl-secondary-content').height(), $('.campl-tertiary-navigation').height(), $(".campl-main-content").height()); + + + if($('.campl-tertiary-navigation').length > 0){ + $('.campl-tertiary-navigation, .campl-secondary-content, .campl-main-content').css({'min-height':maxColumnHeight+50} ) + //uneven height distribution on nav and sec columns + }else{ + $('.campl-tertiary-navigation, .campl-secondary-content, .campl-main-content').css({'min-height':maxColumnHeight} ) + $('.campl-secondary-content').css({'min-height':maxColumnHeight +50} ) + } + + + if($('.campl-secondary-content').hasClass("campl-recessed-secondary-content")){ + + //this seems to be different for a section landing than for event listing??? + $('.campl-secondary-content').css({'min-height':maxColumnHeight + ((maxColumnHeight /100)*36.6) +50} ) + } + + + $('.campl-secondary-content').show(); +}; + +projectlight.removeNavigationColumnHeight = function(){ + //had to remove style attribute, as setting height back to auto would not work + $('.campl-global-navigation li a').removeAttr("style"); +}; + +projectlight.removeContentColumnHeight = function(){ + //had to remove style attribute, as setting height back to auto would not work + $('.campl-tertiary-navigation, .campl-secondary-content, .campl-main-content').removeAttr("style"); + $('.campl-secondary-content, .campl-main-content').show(); +}; + +projectlight.setFooterColumnsHeight = function(){ + var highestglobalFooter = Math.max(projectlight.$globalFooterColumns.eq(0).height(), projectlight.$globalFooterColumns.eq(1).height(),projectlight.$globalFooterColumns.eq(2).height(),projectlight.$globalFooterColumns.eq(3).height()) + var highestLocalFooter = Math.max(projectlight.$localFooterColumns.eq(0).height(), projectlight.$localFooterColumns.eq(1).height(),projectlight.$localFooterColumns.eq(2).height(),projectlight.$localFooterColumns.eq(3).height()) + + projectlight.$localFooterColumns.height(highestLocalFooter); + projectlight.$globalFooterColumns.height(highestglobalFooter); +}; + +projectlight.removeFooterColumnsHeight = function(){ + projectlight.$localFooter.height("auto"); + projectlight.$localFooterColumns.height("auto"); + projectlight.$globalFooterColumns.height("auto"); +}; + + + + +projectlight.initTables = function(){ + /* FULLY EXPANDED RESPONSIVE TABLE SOLUTION */ + //responsive table solution + var $tableContainer = $(".campl-responsive-table"); + + //cycle through all responsive tables on page to instantiate open link + $tableContainer.each(function (i) { + var $table = $(this).find("table"); + var summary = ""; + + //hide table + $table.hide(); //might have to use positioning to prevent it being hidden from screen readers + + //suck out caption and summary to display above link + var openTable = "
Click to open table " + $table.find("caption").text() + ""+ summary + "
" + + //insert button to open table in page + $(this).prepend(openTable); + + //create collapse button and hide until table is opened + $(this).find('.campl-open-responsive-table').append("Collapse table"); + + $('.campl-collapse-table').hide(); + + //collapse table and restore open link to user + $(this).find('.campl-collapse-table').bind("click", function(e){ + var $tableContainer = $(e.target).parent().parent(); + $tableContainer.removeClass("campl-expanded-table"); + $table.removeClass("campl-full-width-table").hide(); + //show appropriate open link + $(e.target).parent().find('.campl-open-responsive-table-link').show(); + //hide collapse link + $(e.target).hide(); + e.preventDefault(); + }) + + + //open table on bind click event + $(this).find(".campl-open-responsive-table-link").bind("click", function(e){ + $(e.target).parent().parent().addClass("campl-expanded-table"); + $table.addClass("campl-full-width-table"); + $table.show(); + //show appropriate close link + $(e.target).parent().find('.campl-collapse-table').show(); + //hide open link + $(e.target).hide(); + e.preventDefault(); + }); + + }) + + /* VERTICAL STACKING TABLE */ + var $verticalTable = $(".campl-vertical-stacking-table"); + + //cycle through every vertical table on the page and insert table headers into table cells for mobile layout + $verticalTable.each(function (i) { + //for vertical stacking tables need to read the text value of each TH in turn and assign to the headers array + var $tableHeaders = $(this).find('thead').find("th"); + + var headerTextArray = []; + //insert th value into every data set row in order + //each loop to push into data array + $tableHeaders.each(function (i) { + headerTextArray.push($(this).text()); + }); + + //for every row, insert into td append before text in td insert span to handle styling of header and data + var $verticalTableRows = $(this).find("tr"); + + $verticalTableRows.each(function (i) { + //need to find all children of the table rows, (and not just table data cells) + var $tableCells = $(this).children(); + $tableCells.each(function (i) { + $(this).prepend(""+headerTextArray[i]+"") + }) + + }) + + }) + +} + +/** LOCAL NAVIGATION CONTROLS updated code taken from sony.com **/ +//this controls both the dropdowns and graphical style of the desktop navigation and the sliding panels of the mobile navigation +projectlight.localNav=(function(){ + var $openMenu,$navigation,$navContainer,$topUL,$topListItems,$allListItems,$links,$secondLevelListitems,$allMenuLists,n,$allNavLinks,menuPosition=0,m; + return{ + init:function(u){ + $navigation = $(".campl-local-navigation"); + + //only run if there is navigation available in the page + if($navigation.length > 0){ + //need to remove btn from IE7 and IE8 - feature detection for media queries + if(Modernizr.mq('only all')){ + $navigation.prepend('') + $openMenu = $("#menu-btn a"); + + //bind click event to button to open menu for mobile + $openMenu.click(function(){ + var $linkClicked = $(this); + + //close main nav drawer or search panel if open + $("body").removeClass("campl-navigation-open"); + projectlight.$searchDrawer.removeClass("campl-search-open"); + + if($linkClicked.parent().hasClass("campl-closed")){ + displayMenu("show") + }else{ + displayMenu("hide") + } + return false + }); + } + //call function to instantiate children and title structure + setupNavigation(); + } + }, + hideMenu:function(){ + $openMenu = $("#menu-btn a"); + $navContainer = $(".campl-local-navigation-container"); + $openMenu.parent().removeClass("campl-open").addClass("campl-closed"); + $navContainer.css({left:-9999}); + }, + resetLocalNavigation:function(){ + //remove all sub classes + $navContainer = $(".campl-local-navigation-container"), + $allListItems = $navContainer.find("li"); + $allListItems.removeClass("campl-sub"); + + //reset sub classes onto correct items + if(projectlight.mobileLayout){ + $allListItems.has('ul').addClass("campl-sub"); + }else{ + $allListItems.not($allListItems.find("li")).has('ul').addClass("campl-sub"); + } + } + }; + function setupNavigation(){ + + $navContainer = $navigation.children(".campl-local-navigation-container"), + $topUL = $navContainer.children("ul"); + $topListItems = $topUL.children("li"); + $allListItems = $topUL.find("li"); + + $secondLevelListitems = $topListItems.children("li"); + $allMenuLists = $topListItems.find("ul"); + $dropdownListItems = $topListItems.find("li"); + $allNavLinks = $allMenuLists.find("a"); + + $currentPageListitem = $navigation.find(".campl-current-page"); + currentSectionNo = 0; + + m=$topUL.height(); + + //need to dynamically append sub class to elements that have children + $allListItems.has('ul').addClass("campl-sub") + + //this needs to be added to browsers with media queries only to prevent IE7 adding gap above items with children in desktop layout + //for all the list items that have children append forward indicator arrow + if(Modernizr.mq('only all')){ + $('.campl-sub').children("a").css({"position":"relative"}).append("") + } + //dynamically mark top level list items + $topListItems.addClass("campl-top") + + + //for each list item with a class of sub, clone the link and prepend it to the top of the nested UL beneath + //this will act as the overview link in the top level and the UL title in the mobile navigation + + //for each UL walk up the DOM to find the title of the UL in the section above, prepend this link as the back button to the section before for + //the mobile navigation + $navigation.find(".campl-sub").each(function(){ + var $childUl = $(this).children("ul"); + $childUl.prepend('
  • '+$(this).children("a").text()+'
  • '); + if($(this).hasClass('campl-top')){ + $childUl.prepend(''); + }else{ + + $childUl.prepend(''); + } + + }) + + + //reset menu structure after title links have been appended to ensure they are always created for full mobile structure + //desktop menu only needs to go one level deep + $allListItems.removeClass("campl-sub"); + if(projectlight.mobileLayout){ + $allListItems.has('ul').addClass("campl-sub"); + }else{ + $allListItems.not($allListItems.find("li")).has('ul').addClass("campl-sub"); + } + + //declare array of links after title link has been created + $links = $topListItems.find("a"); + + //set current class to first level navigation so mobile menu can always open at least + //one level of menu. This style makes the UL visible + $topUL.addClass("campl-current"); + + + //hover classes not required for mobile and tablet layouts + //hover event should only trigger from top level items not children of top level + $topListItems.hover( + function(){ + if(!projectlight.mobileLayout){ + $(this).addClass("campl-hover") + } + },function(){ + if(!projectlight.mobileLayout){ + $(this).removeClass("campl-hover") + } + }); + + + //Bound click event for all links inside the local navigation. + //handles moving forwards and backwards through pages or opening dropdown menu + $links.click(function(e){ + var $linkClicked = $(this), + $listItemClicked = $linkClicked.parent(); + + if($listItemClicked.hasClass("campl-title") && Modernizr.mq('only screen and (max-width: 767px)')){ + e.preventDefault(); + }else{ + if($listItemClicked.hasClass("campl-sub")){ + //slide mobile or tablet menu forward + if(projectlight.mobileLayout){ + slideMenu("forward"); + $listItemClicked.addClass("campl-current") + }else{ + if($listItemClicked.hasClass("campl-top") && $linkClicked.hasClass("campl-clicked")){ + //toggle open navigation if top level without sub level link clicked + closeSubNavigation(); + }else{ + //display sub menu for the desktop view for the item clicked + showSubNavigation($linkClicked, e) + } + } + e.preventDefault(); + }else{ + if($listItemClicked.hasClass("campl-back-link")){ + slideMenu("back"); + $linkClicked.parent().parent().parent().addClass("campl-previous"); + $linkClicked.parent().parent().addClass("campl-previous"); + return false + } + } + } + + }); + + //ensure dropdown or sliding panels are set to the correct width if the page changes and also on first load + $(window).resize(function(){ + setMenuWidth(); + }); + if(projectlight.mobileLayout){ + setMenuWidth(); + } + } + + //sets the width of the sub menus, for either the desktop dropdown, + //or to ensure the mobile sliding panels stretch to fill the whole screen + function setMenuWidth(){ + + var widthOfMenu = 480; + + if(Modernizr.mq('only screen and (max-width: 767px)')){ + widthOfMenu = $(window).width() + + $topUL.width(widthOfMenu); + $allMenuLists.width(widthOfMenu).css("left",widthOfMenu); + if($openMenu.parent().hasClass("campl-open")){ + $navContainer.css("left",-(menuPosition*widthOfMenu)) + } + //should be adding mobile state to dom elem + $navContainer.addClass("campl-mobile"); + }else{ + + //this resets the mobile structure by removing all the unwanted classes + //so the show/hide will work for the desktop dropdown menu + if($navContainer.hasClass("campl-mobile")){ + $openMenu.parent().removeClass("campl-open").addClass("campl-closed"); + $navContainer.find(".campl-current").removeClass("campl-current"); + $navContainer.attr("style","").removeAttr("style"); + $topUL.attr("style","").removeAttr("style"); + $allMenuLists.attr("style","").removeAttr("style") + } + } + } + //shows the desktop dropdown menus by positioning them on or off screen + function displayMenu(actionSent){ + if(actionSent == "show"){ + + //Walk up through DOM to determine nested level + var $currentUL = $currentPageListitem.parent(); + currentSectionNo = 0; + if($currentPageListitem.length > 0){ + if($currentPageListitem.parent().length > 0){ + //do while this is UL + while ($currentUL[0].tagName === "UL") + { + $currentUL.addClass("campl-current")// this displays hidden nav sections + if($currentUL.parent()[0].tagName === "LI" ){ + $currentUL.parent().addClass("campl-current") //need to add current to full path, UL and LI + } + $currentUL = $currentUL.parent().parent(); + currentSectionNo ++; + } + //set current menu position depending on which nested level the active page is on + menuPosition = currentSectionNo-1; + $navContainer.children("ul").removeClass("campl-current") + } + }else{ + menuPosition = 0 + } + + //get current menu width + if(Modernizr.mq('only screen and (min-width: 768px)')){ + widthOfMenu=480; + }else{ + widthOfMenu=$(window).width(); + } + + //set left position depending which level to open menu at + $navContainer.css({left:-(menuPosition*widthOfMenu)}); + + $openMenu.parent().removeClass("campl-closed").addClass("campl-open"); + }else{ + if(actionSent == "hide"){ + $openMenu.parent().removeClass("campl-open").addClass("campl-closed"); + $navContainer.css({left:-9999}); + + //need to force top container to go away. Ghost block seemed to be staying on screen even + //though CSS should have removed it, this hack forces it to be hidden then removes the display + //style to allow it to be controlled by the CSS again + $navContainer.find(".campl-current").removeClass("campl-current").hide(); + $navContainer.find(':hidden').css("display", "") + + //reset menu back to opening position + menuPosition = currentSectionNo-1; + } + } + } + //shows the sliding menus for the mobile navigation + function slideMenu(directionToSlide){ + var widthOfMenu, + currentLeftPos=$navContainer.css("left"); + currentLeftPos=parseInt(currentLeftPos.replace("px","")); + + if(Modernizr.mq('only screen and (min-width: 768px)')){ + widthOfMenu=480; + }else{ + widthOfMenu=$(window).width() + } + + if(directionToSlide === "forward"){ + menuPosition++; + $navContainer.stop().animate({left:currentLeftPos-widthOfMenu},300,function(){}) + }else{ + if(directionToSlide === "back"){ + menuPosition--; + $navContainer.stop().animate({left:currentLeftPos+widthOfMenu},300,function(){ + $navContainer.find(".campl-previous").removeClass("campl-previous").removeClass("campl-current"); + }) + } + } + } + //controls mulitple levels of dropdown navigation depending on hover and clicked classes being set + //nb: we have altered from the original sony code by only allowing users to open one level or + //dropdown menu in the desktop view + function showSubNavigation(linkClicked, event){ + var $linkClicked = $(linkClicked), + $listItemClicked = $linkClicked.parent(), + $ListItemSiblings = $listItemClicked.siblings(), + y; + + if($linkClicked.hasClass("campl-clicked")){ + $listItemClicked.removeClass("campl-hover"); + $linkClicked.removeClass("campl-clicked"); + + //list items beneath current with hover set + y = $listItemClicked.find(".campl-hover"); + $clickedChildren = x.find(".clicked"); + y.removeClass("campl-hover"); + $clickedChildren.removeClass("campl-clicked") + }else{ + $listItemClicked.addClass("campl-hover"); + $linkClicked.addClass("campl-clicked"); + + //for each of the list items siblings remove hover and clicked classes + $ListItemSiblings.each(function(){ + var $sibling = $(this); + if($sibling.children("a").hasClass("campl-clicked")){ + y = $sibling.find(".campl-hover"); + $clickedChildren = $sibling.find(".campl-clicked"); + $sibling.removeClass("campl-hover"); + y.removeClass("campl-hover"); + $clickedChildren.removeClass("campl-clicked") + } + }) + } + event.preventDefault(); + } + + //close button resets all open classes and returns the navigation back to a full closed state + function closeSubNavigation(){ + var $hoveredListItems =$topUL.find(".campl-hover"), + $linksClicked = $topUL.find(".campl-clicked"); + + $hoveredListItems.removeClass("campl-hover"); + $linksClicked.removeClass("campl-clicked"); + $secondLevelListitems.css("left",-9999) + } + +})(); //end of nav - self calling function + + +//carousel instantiation +projectlight.createCarousel = function(){ + var carousel = {}; + + // set up initial carousel values and autoplay, hide other slides + carousel.init = function(){ + this.carouselContainer = $("#carousel"); + this.slides = this.carouselContainer.find("ul"); + this.currentSlide = 1; + this.maxSlides = this.slides.children().length; + this.animating = false; + this.endPos = 0; + + // need to determine width of carousel, container and slide item depending on screen size + this.carouselWidth = this.carouselContainer.width(); + + // need to dynamically set width of slides Ul (length of all slides plus the cloned item) and left position (length off each side * currentSlide) + if (this.maxSlides > 1) { + this.slides.css({'width': (this.carouselWidth*(this.maxSlides+2))+this.carouselWidth+'px', 'left': '-' + (this.carouselWidth * this.currentSlide)+'px'}); + } + + + // calculate lookup position table + this.lookupPos = []; + + for(var cc = 0; cc < this.maxSlides; cc++){ + this.lookupPos.push(-cc * parseInt(this.carouselContainer.innerWidth(), 10)); + } + + if (this.maxSlides > 1) { + this.carouselContainer.removeClass('campl-banner') + //create next and back buttons for carousel + this.createCarouselControls(); + + //append pagination indicator + this.createPaginationIndicator(); + + // Clone first and last slides and append it to the slideshow to mimic infinite carousel functionality + var clonedFirstSlide = this.slides.find('li:first-child').clone(); + this.slides.append(clonedFirstSlide); + var clonedLastSlide = this.slides.find('li:nth-child('+this.maxSlides+')').clone(); + this.slides.prepend(clonedLastSlide); + + this.slide = this.slides.find("li") + + // click event on carousel direction controls + this.carouselControls.bind('click', this.activateDirectionButtons) + + //set width of each slide to ensure image is scaling to match fluid grid + this.slides.children().css({width:this.carouselWidth}) + + projectlight.resetCarousel(); + + this.autoPlaying = true; + this.startAutoPlay(); + + + + }else{ + this.carouselContainer.addClass('campl-banner') + } + + this.carouselContainer.find("li").show(); + + //instantiate caption and content text variables for handling truncation across all slides and cloned slides + //has to happen after cloning so all slides are properly controlled by the truncation during resize event + projectlight.$slideCaption = $(".campl-slide-caption-txt"); + projectlight.$carouselContent = $(".campl-carousel-content p"); + + projectlight.carouselContentItems = []; + projectlight.slideCaptionItems = []; + + //store array of original strings to replace when at full size + projectlight.$slideCaption.each(function(){ + projectlight.slideCaptionItems.push($(this).text()) + }) + + projectlight.$carouselContent.each(function(){ + projectlight.carouselContentItems.push($(this).text()) + }) + + //truncate homepage carousel content if page is thinner than tablet view but not on mobile view + if(Modernizr.mq('only screen and (min-width: 768px) and (max-width: 1000px)')){ + projectlight.$slideCaption.each(function(){ + $(this).text($.trim($(this).text()).substring(0, 50).split(" ").slice(0, -1).join(" ") + "...") + }) + + projectlight.$carouselContent.each(function(){ + $(this).text($.trim($(this).text()).substring(0, 35).split(" ").slice(0, -1).join(" ") + "...") + }) + + } + } + + carousel.createPaginationIndicator = function(){ + carousel.slides.children().each(function(i){ + var slideNo = i+1 + $(this).find(".campl-slide-caption").append(""+ slideNo + " of " + carousel.maxSlides + "") + }) + } + + //append control buttons unobtrusively if there is more than one slide in carousel + carousel.createCarouselControls = function(){ + + var carouselControls = document.createElement('ul'); + carouselControls.className = 'campl-unstyled-list clearfix campl-carousel-controls'; + carouselControls.id = 'carousel-controls'; + + var previouslistItem = document.createElement('li'); + previouslistItem.className = "campl-previous-li"; + var previouslink = document.createElement('a'); + var previousArrowSpan = document.createElement('span'); + previousArrowSpan.className = "campl-arrow-span"; + previouslink.className = "ir campl-carousel-control-btn campl-previous"; + var previouslinkText = document.createTextNode('previous slide'); + previouslink.setAttribute('href', '#'); + previouslink.appendChild(previousArrowSpan); + previouslink.appendChild(previouslinkText); + previouslistItem.appendChild(previouslink); + carouselControls.appendChild(previouslistItem); + + var nextlistItem = document.createElement('li'); + nextlistItem.className = "campl-next-li"; + var nextlink = document.createElement('a'); + var nextArrowSpan = document.createElement('span'); + nextArrowSpan.className = "campl-arrow-span"; + nextlink.className = "ir campl-carousel-control-btn campl-next"; + var nextlinkText = document.createTextNode('next slide'); + nextlink.setAttribute('href', '#'); + nextlink.appendChild(nextArrowSpan); + nextlink.appendChild(nextlinkText); + nextlistItem.appendChild(nextlink); + carouselControls.appendChild(nextlistItem); + + this.carouselContainer.append(carouselControls); + this.carouselControls = $('#carousel-controls a'); + this.prev = this.carouselControls.eq(0); + this.next = this.carouselControls.eq(1); + + }; + + //bound click event for carousel navigation controls + carousel.activateDirectionButtons = function(e){ + carousel.stopAutoPlay(); + var buttonClicked; + if(e.target.tagName === "SPAN"){ + buttonClicked = $(e.target.parentNode); + }else{ + buttonClicked = $(e.target.parentNode).find("a"); + } + + // detect which button has been clicked from event delegation + call animate slides and pass direction val + if(buttonClicked.hasClass('campl-previous')){ + carousel.animateSlides('left'); + } + if(buttonClicked.hasClass('campl-next')){ + carousel.animateSlides('right'); + } + e.preventDefault(); + }; + + + //autplay function sets time out which is called repeatedly from the animation completed call back + carousel.startAutoPlay = function(){ + this.slides.queue(function() { + carousel.timer = window.setTimeout(function() { + carousel.animateSlides('right'); + }, 6000); + }) + carousel.slides.dequeue(); + }; + + // stops play for reset purposes + carousel.stopAutoPlay = function(){ + this.autoPlaying = false; + window.clearTimeout(this.timer); + this.slides.queue("fx", []); + }; + + //controls the slide number of the current slide, distance to scroll and animation function with callback + carousel.animateSlides = function(directionToScroll){ + // check to see if gallery is not currently being animated + if(this.slides.filter(':animated').length === 0){ + var endPos = 0; + // get current left position of slides and remove measurement notation + var startPos = parseInt(this.slides.css('left')); + + + if(directionToScroll !== undefined){ + if(directionToScroll === 'left'){ + if(carousel.currentSlide <= 1){ + carousel.currentSlide = carousel.maxSlides; + }else{ + carousel.currentSlide = carousel.currentSlide - 1; + } + endPos = startPos + carousel.carouselContainer.innerWidth(); + }else{ + if(carousel.currentSlide >= carousel.maxSlides){ + carousel.currentSlide = 1; + endPos = 0; + }else{ + carousel.currentSlide = carousel.currentSlide + 1; + } + endPos = startPos - carousel.carouselContainer.innerWidth(); + } + } + + this.slides.animate({left: endPos}, 2500, function(){ + //after carousel has finished moving + if(carousel.currentSlide === carousel.maxSlides){ + carousel.slides.css({left:(-carousel.maxSlides * carousel.carouselContainer.innerWidth())+'px'}); + }else if(carousel.currentSlide === 1){ + //set the position of the slides to be back to the beginning + carousel.slides.css({left: -carousel.carouselContainer.innerWidth()+'px'}); + + } + if(carousel.autoPlaying === true){ + carousel.startAutoPlay(); + } + }); + + } + + } + + + + // Reset carousel + projectlight.resetCarousel = function(){ + + carousel.stopAutoPlay(); + + // need to determine width of carousel, container and slide item depending on screen size + carousel.carouselWidth = carousel.carouselContainer.width(); + + // reset width and position of slides when page is changed + // need to dynamically set width of slides Ul (length of all slides plus the cloned item) and left position (length off each side * currentSlide) + if (carousel.maxSlides > 1) { + carousel.slides.css({'width': (carousel.carouselWidth*(carousel.maxSlides+2))+carousel.carouselWidth+'px', 'left': '-' + (carousel.carouselWidth * carousel.currentSlide)+'px'}); + } + + // reset width and position of slides when page is changed + carousel.slides.children().css({width:carousel.carouselWidth}) + + // calculate lookup position table + carousel.lookupPos = []; + + for(var cc = 0; cc < carousel.maxSlides; cc++){ + carousel.lookupPos.push(-cc * parseInt(carousel.carouselContainer.innerWidth(), 10)); + } + + //carousel.updateControlActivation(); + // carousel.startAutoPlay(); + + } + + projectlight.stopCarousel = function(){ + carousel.stopAutoPlay(); + }; + + projectlight.startCarousel = function(){ + carousel.stopAutoPlay(); + carousel.startAutoPlay(); + }; + + + carousel.init(); + +} + +//only mark external links inside of the main content area as denoted by the campl-skipTo ID +projectlight.markExternalLinks = function(){ + if (jQuery.browser.msie) { + $("#content a[href*='cam.ac.uk']").not(".campl-carousel a[href*='http://']").addClass("campl-external").attr({ + "title": $(this).attr("title")+" (Link to an external website)" + }) + }else{ + $('#content a').not(".campl-carousel a").filter(function(){ + return this.hostname && !this.hostname.match(/cam.ac.uk/gi); + }).addClass("campl-external").attr({ + "title": $(this).attr("title")+" (Link to an external website)" + }) + } +} + + +//DOM ready +$(function() { + + //instantiate all the DOM elements which require javascript rendering + projectlight.init(); + projectlight.initTables(); + projectlight.localNav.init(); + projectlight.markExternalLinks(); + + //remove click event from local nav children selected items + + $(".campl-vertical-breadcrumb-children .campl-selected a").bind("click", function(e){ + e.preventDefault() + }) + + //instantiate calendar + if(document.getElementById('calendar')){ + $("#calendar").Zebra_DatePicker({ + always_visible: $('.calendar-container'), + format: 'dd mm yyyy', + direction: true, + always_show_clear:false, + disabled_dates: ['15 09 2012'] + }); + } + + //Change event for mobile navigation list selector + if(document.getElementById('navigation-select')){ + $("#navigation-select").bind("change", function(e){ + window.location = $(this).val() + }) + } + + + $(".campl-notifications-panel").each(function(){ + var $thisElem = $(this); + $thisElem.append("Close panel"); + $thisElem.find('.campl-close-panel').bind("click", function(e){ + $(e.target).parent().remove(); + e.preventDefault(); + }) + }) + + + //bound click events for twitter bootstrap pills and tab elements + $('#navTabs a').click(function (e) { + e.preventDefault(); + $(this).tab('show'); + }) + + $('#navPills a').click(function (e) { + e.preventDefault(); + $(this).tab('show'); + }) + + $('#searchTabs a').click(function (e) { + e.preventDefault(); + $(this).tab('show'); + }) + + + + //instantiate height of buttons for mobile users, on carousel object + if(document.getElementById('carousel')){ + projectlight.createCarousel(); + //wait for DOM ready to resize buttons for mobile + if(Modernizr.mq('only screen and (max-width: 767px)')){ + $(".campl-carousel-controls a").height($(".image-container").height()) + }else{ + $(".campl-carousel-controls a").attr("style", "") + } + } + + + //resize event handles changing flag layout to determine if user mode is mobile or not + //If the mode has changed the re-rendering or reset functions will be called to change the page layout + projectlight.$window.resize(function() { + + if(document.getElementById('carousel')){ + projectlight.resetCarousel(); + + //truncate homepage carousel content if page is thinner + if(Modernizr.mq('only screen and (min-width: 768px) and (max-width: 1000px)')){ + + //carousel height is remaining as if text isn't being truncated + + projectlight.$slideCaption.each(function(i){ + $(this).text($.trim(projectlight.slideCaptionItems[i]).substring(0, 50).split(" ").slice(0, -1).join(" ") + "...") + }) + + projectlight.$carouselContent.each(function(i){ + $(this).text($.trim(projectlight.carouselContentItems[i]).substring(0, 35).split(" ").slice(0, -1).join(" ") + "...") + }) + }else{ + + projectlight.$slideCaption.each(function(i){ + $(this).text(projectlight.slideCaptionItems[i]); + }) + + projectlight.$carouselContent.each(function(i){ + $(this).text(projectlight.carouselContentItems[i]); + }) + } + + } + + //commented out debugging to help developers see page width during development + //$("#pagewidth").html($(window).width()); + + + //check size of columns on resize event and remove incase of mobile layout + if(Modernizr.mq('only all')){ + //if mobile layout is triggered in media queries + if(Modernizr.mq('only screen and (max-width: 767px)')){ + //if layout moves from desktop to mobile layout + if(!projectlight.mobileLayout){ + //set current state flag + projectlight.mobileLayout = true; + //reset main nav to un-open state + projectlight.$navigationDrawer.removeClass("campl-navigation-open"); + projectlight.$globalNavOuter.removeClass("campl-drawer-open"); + projectlight.$searchDrawer.removeClass("campl-search-open"); + //deselect any previously clicked links + projectlight.$globalNavLI.removeClass("campl-selected"); + + //reset nav menus + projectlight.localNav.resetLocalNavigation(); + projectlight.localNav.hideMenu(); + } + + // if media queries are supported then remove columns on mobile layout + projectlight.removeGlobalNavigationColumnHeight(); + projectlight.removeNavigationColumnHeight(); + projectlight.removeContentColumnHeight(); + projectlight.removeSectionListChildrenColumnHeight(); + projectlight.removeFooterColumnsHeight(); + + //set height of carousel buttons + $(".campl-carousel-controls a").height($(".image-container").height()) + + projectlight.mobileLayout = true; + }else{ //desktop layout code + //if page width moves from mobile layout to desktop + if(projectlight.mobileLayout){ + //set current state flag + projectlight.mobileLayout = false; + + //reset nav menus + //hide dropdowns if open + projectlight.localNav.resetLocalNavigation(); + projectlight.localNav.hideMenu(); + //close global nav drawer + $("body").removeClass("campl-navigation-open"); + } + projectlight.setGlobalNavigationColumnHeight(); + projectlight.setNavigationColumnHeight(); + projectlight.setContentColumnHeight(); + projectlight.setSectionListChildrenColumnHeight(); + projectlight.setFooterColumnsHeight(); + + //remove fixed height on carousel buttons + //set height of carousel buttons + $(".campl-carousel-controls a").attr("style", "") + + projectlight.mobileLayout = false; + } + } + }) + + + +}) + + + + + + + diff --git a/web/javascripts/libs/ios-orientationchange-fix.js b/web/javascripts/libs/ios-orientationchange-fix.js new file mode 100644 index 0000000..84a8113 --- /dev/null +++ b/web/javascripts/libs/ios-orientationchange-fix.js @@ -0,0 +1,56 @@ +/*! A fix for the iOS orientationchange zoom bug. + Script by @scottjehl, rebound by @wilto. + MIT License. +*/ +(function(w){ + + // This fix addresses an iOS bug, so return early if the UA claims it's something else. + var ua = navigator.userAgent; + if( !( /iPhone|iPad|iPod/.test( navigator.platform ) && /OS [1-5]_[0-9_]* like Mac OS X/i.test(ua) && ua.indexOf( "AppleWebKit" ) > -1 ) ){ + return; + } + + var doc = w.document; + + if( !doc.querySelector ){ return; } + + var meta = doc.querySelector( "meta[name=viewport]" ), + initialContent = meta && meta.getAttribute( "content" ), + disabledZoom = initialContent + ",maximum-scale=1", + enabledZoom = initialContent + ",maximum-scale=10", + enabled = true, + x, y, z, aig; + + if( !meta ){ return; } + + function restoreZoom(){ + meta.setAttribute( "content", enabledZoom ); + enabled = true; + } + + function disableZoom(){ + meta.setAttribute( "content", disabledZoom ); + enabled = false; + } + + function checkTilt( e ){ + aig = e.accelerationIncludingGravity; + x = Math.abs( aig.x ); + y = Math.abs( aig.y ); + z = Math.abs( aig.z ); + + // If portrait orientation and in one of the danger zones + if( (!w.orientation || w.orientation === 180) && ( x > 7 || ( ( z > 6 && y < 8 || z < 8 && y > 6 ) && x > 5 ) ) ){ + if( enabled ){ + disableZoom(); + } + } + else if( !enabled ){ + restoreZoom(); + } + } + + w.addEventListener( "orientationchange", restoreZoom, false ); + w.addEventListener( "devicemotion", checkTilt, false ); + +})( this ); \ No newline at end of file diff --git a/web/javascripts/libs/jquery-min.js b/web/javascripts/libs/jquery-min.js new file mode 100644 index 0000000..198b3ff --- /dev/null +++ b/web/javascripts/libs/jquery-min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
    a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
    "+""+"
    ",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
    t
    ",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
    ",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
    ","
    "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
    ").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/web/javascripts/libs/modernizr.js b/web/javascripts/libs/modernizr.js new file mode 100644 index 0000000..9e648a5 --- /dev/null +++ b/web/javascripts/libs/modernizr.js @@ -0,0 +1,1384 @@ +/*! + * Modernizr v2.6.1 + * www.modernizr.com + * + * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton + * Available under the BSD and MIT licenses: www.modernizr.com/license/ + */ + +/* + * Modernizr tests which native CSS3 and HTML5 features are available in + * the current UA and makes the results available to you in two ways: + * as properties on a global Modernizr object, and as classes on the + * element. This information allows you to progressively enhance + * your pages with a granular level of control over the experience. + * + * Modernizr has an optional (not included) conditional resource loader + * called Modernizr.load(), based on Yepnope.js (yepnopejs.com). + * To get a build that includes Modernizr.load(), as well as choosing + * which tests to include, go to www.modernizr.com/download/ + * + * Authors Faruk Ates, Paul Irish, Alex Sexton + * Contributors Ryan Seddon, Ben Alman + */ + +window.Modernizr = (function( window, document, undefined ) { + + var version = '2.6.1', + + Modernizr = {}, + + /*>>cssclasses*/ + // option for enabling the HTML classes to be added + enableClasses = true, + /*>>cssclasses*/ + + docElement = document.documentElement, + + /** + * Create our "modernizr" element that we do most feature tests on. + */ + mod = 'modernizr', + modElem = document.createElement(mod), + mStyle = modElem.style, + + /** + * Create the input element for various Web Forms feature tests. + */ + inputElem /*>>inputelem*/ = document.createElement('input') /*>>inputelem*/ , + + /*>>smile*/ + smile = ':)', + /*>>smile*/ + + toString = {}.toString, + + // TODO :: make the prefixes more granular + /*>>prefixes*/ + // List of property values to set for css tests. See ticket #21 + prefixes = ' -webkit- -moz- -o- -ms- '.split(' '), + /*>>prefixes*/ + + /*>>domprefixes*/ + // Following spec is to expose vendor-specific style properties as: + // elem.style.WebkitBorderRadius + // and the following would be incorrect: + // elem.style.webkitBorderRadius + + // Webkit ghosts their properties in lowercase but Opera & Moz do not. + // Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+ + // erik.eae.net/archives/2008/03/10/21.48.10/ + + // More here: github.com/Modernizr/Modernizr/issues/issue/21 + omPrefixes = 'Webkit Moz O ms', + + cssomPrefixes = omPrefixes.split(' '), + + domPrefixes = omPrefixes.toLowerCase().split(' '), + /*>>domprefixes*/ + + /*>>ns*/ + ns = {'svg': 'http://www.w3.org/2000/svg'}, + /*>>ns*/ + + tests = {}, + inputs = {}, + attrs = {}, + + classes = [], + + slice = classes.slice, + + featureName, // used in testing loop + + + /*>>teststyles*/ + // Inject element with style element and some CSS rules + injectElementWithStyles = function( rule, callback, nodes, testnames ) { + + var style, ret, node, + div = document.createElement('div'), + // After page load injecting a fake body doesn't work so check if body exists + body = document.body, + // IE6 and 7 won't return offsetWidth or offsetHeight unless it's in the body element, so we fake it. + fakeBody = body ? body : document.createElement('body'); + + if ( parseInt(nodes, 10) ) { + // In order not to give false positives we create a node for each test + // This also allows the method to scale for unspecified uses + while ( nodes-- ) { + node = document.createElement('div'); + node.id = testnames ? testnames[nodes] : mod + (nodes + 1); + div.appendChild(node); + } + } + + // '].join(''); + div.id = mod; + // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody. + // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270 + (body ? div : fakeBody).innerHTML += style; + fakeBody.appendChild(div); + if ( !body ) { + //avoid crashing IE8, if background image is used + fakeBody.style.background = ""; + docElement.appendChild(fakeBody); + } + + ret = callback(div, rule); + // If this is done after page load we don't want to remove the body so check if body exists + !body ? fakeBody.parentNode.removeChild(fakeBody) : div.parentNode.removeChild(div); + + return !!ret; + + }, + /*>>teststyles*/ + + /*>>mq*/ + // adapted from matchMedia polyfill + // by Scott Jehl and Paul Irish + // gist.github.com/786768 + testMediaQuery = function( mq ) { + + var matchMedia = window.matchMedia || window.msMatchMedia; + if ( matchMedia ) { + return matchMedia(mq).matches; + } + + var bool; + + injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) { + bool = (window.getComputedStyle ? + getComputedStyle(node, null) : + node.currentStyle)['position'] == 'absolute'; + }); + + return bool; + + }, + /*>>mq*/ + + + /*>>hasevent*/ + // + // isEventSupported determines if a given element supports the given event + // kangax.github.com/iseventsupported/ + // + // The following results are known incorrects: + // Modernizr.hasEvent("webkitTransitionEnd", elem) // false negative + // Modernizr.hasEvent("textInput") // in Webkit. github.com/Modernizr/Modernizr/issues/333 + // ... + isEventSupported = (function() { + + var TAGNAMES = { + 'select': 'input', 'change': 'input', + 'submit': 'form', 'reset': 'form', + 'error': 'img', 'load': 'img', 'abort': 'img' + }; + + function isEventSupported( eventName, element ) { + + element = element || document.createElement(TAGNAMES[eventName] || 'div'); + eventName = 'on' + eventName; + + // When using `setAttribute`, IE skips "unload", WebKit skips "unload" and "resize", whereas `in` "catches" those + var isSupported = eventName in element; + + if ( !isSupported ) { + // If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element + if ( !element.setAttribute ) { + element = document.createElement('div'); + } + if ( element.setAttribute && element.removeAttribute ) { + element.setAttribute(eventName, ''); + isSupported = is(element[eventName], 'function'); + + // If property was created, "remove it" (by setting value to `undefined`) + if ( !is(element[eventName], 'undefined') ) { + element[eventName] = undefined; + } + element.removeAttribute(eventName); + } + } + + element = null; + return isSupported; + } + return isEventSupported; + })(), + /*>>hasevent*/ + + // TODO :: Add flag for hasownprop ? didn't last time + + // hasOwnProperty shim by kangax needed for Safari 2.0 support + _hasOwnProperty = ({}).hasOwnProperty, hasOwnProp; + + if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) { + hasOwnProp = function (object, property) { + return _hasOwnProperty.call(object, property); + }; + } + else { + hasOwnProp = function (object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */ + return ((property in object) && is(object.constructor.prototype[property], 'undefined')); + }; + } + + // Adapted from ES5-shim https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js + // es5.github.com/#x15.3.4.5 + + if (!Function.prototype.bind) { + Function.prototype.bind = function bind(that) { + + var target = this; + + if (typeof target != "function") { + throw new TypeError(); + } + + var args = slice.call(arguments, 1), + bound = function () { + + if (this instanceof bound) { + + var F = function(){}; + F.prototype = target.prototype; + var self = new F(); + + var result = target.apply( + self, + args.concat(slice.call(arguments)) + ); + if (Object(result) === result) { + return result; + } + return self; + + } else { + + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + + } + + }; + + return bound; + }; + } + + /** + * setCss applies given styles to the Modernizr DOM node. + */ + function setCss( str ) { + mStyle.cssText = str; + } + + /** + * setCssAll extrapolates all vendor-specific css strings. + */ + function setCssAll( str1, str2 ) { + return setCss(prefixes.join(str1 + ';') + ( str2 || '' )); + } + + /** + * is returns a boolean for if typeof obj is exactly type. + */ + function is( obj, type ) { + return typeof obj === type; + } + + /** + * contains returns a boolean for if substr is found within str. + */ + function contains( str, substr ) { + return !!~('' + str).indexOf(substr); + } + + /*>>testprop*/ + + // testProps is a generic CSS / DOM property test. + + // In testing support for a given CSS property, it's legit to test: + // `elem.style[styleName] !== undefined` + // If the property is supported it will return an empty string, + // if unsupported it will return undefined. + + // We'll take advantage of this quick test and skip setting a style + // on our modernizr element, but instead just testing undefined vs + // empty string. + + // Because the testing of the CSS property names (with "-", as + // opposed to the camelCase DOM properties) is non-portable and + // non-standard but works in WebKit and IE (but not Gecko or Opera), + // we explicitly reject properties with dashes so that authors + // developing in WebKit or IE first don't end up with + // browser-specific content by accident. + + function testProps( props, prefixed ) { + for ( var i in props ) { + var prop = props[i]; + if ( !contains(prop, "-") && mStyle[prop] !== undefined ) { + return prefixed == 'pfx' ? prop : true; + } + } + return false; + } + /*>>testprop*/ + + // TODO :: add testDOMProps + /** + * testDOMProps is a generic DOM property test; if a browser supports + * a certain property, it won't return undefined for it. + */ + function testDOMProps( props, obj, elem ) { + for ( var i in props ) { + var item = obj[props[i]]; + if ( item !== undefined) { + + // return the property name as a string + if (elem === false) return props[i]; + + // let's bind a function + if (is(item, 'function')){ + // default to autobind unless override + return item.bind(elem || obj); + } + + // return the unbound function or obj or value + return item; + } + } + return false; + } + + /*>>testallprops*/ + /** + * testPropsAll tests a list of DOM properties we want to check against. + * We specify literally ALL possible (known and/or likely) properties on + * the element including the non-vendor prefixed one, for forward- + * compatibility. + */ + function testPropsAll( prop, prefixed, elem ) { + + var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1), + props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' '); + + // did they call .prefixed('boxSizing') or are we just testing a prop? + if(is(prefixed, "string") || is(prefixed, "undefined")) { + return testProps(props, prefixed); + + // otherwise, they called .prefixed('requestAnimationFrame', window[, elem]) + } else { + props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' '); + return testDOMProps(props, prefixed, elem); + } + } + /*>>testallprops*/ + + + /** + * Tests + * ----- + */ + + // The *new* flexbox + // dev.w3.org/csswg/css3-flexbox + + tests['flexbox'] = function() { + return testPropsAll('flexWrap'); + }; + + // The *old* flexbox + // www.w3.org/TR/2009/WD-css3-flexbox-20090723/ + + tests['flexboxlegacy'] = function() { + return testPropsAll('boxDirection'); + }; + + // On the S60 and BB Storm, getContext exists, but always returns undefined + // so we actually have to call getContext() to verify + // github.com/Modernizr/Modernizr/issues/issue/97/ + + tests['canvas'] = function() { + var elem = document.createElement('canvas'); + return !!(elem.getContext && elem.getContext('2d')); + }; + + tests['canvastext'] = function() { + return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function')); + }; + + // webk.it/70117 is tracking a legit WebGL feature detect proposal + + // We do a soft detect which may false positive in order to avoid + // an expensive context creation: bugzil.la/732441 + + tests['webgl'] = function() { + return !!window.WebGLRenderingContext; + }; + + /* + * The Modernizr.touch test only indicates if the browser supports + * touch events, which does not necessarily reflect a touchscreen + * device, as evidenced by tablets running Windows 7 or, alas, + * the Palm Pre / WebOS (touch) phones. + * + * Additionally, Chrome (desktop) used to lie about its support on this, + * but that has since been rectified: crbug.com/36415 + * + * We also test for Firefox 4 Multitouch Support. + * + * For more info, see: modernizr.github.com/Modernizr/touch.html + */ + + tests['touch'] = function() { + var bool; + + if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) { + bool = true; + } else { + injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function( node ) { + bool = node.offsetTop === 9; + }); + } + + return bool; + }; + + + // geolocation is often considered a trivial feature detect... + // Turns out, it's quite tricky to get right: + // + // Using !!navigator.geolocation does two things we don't want. It: + // 1. Leaks memory in IE9: github.com/Modernizr/Modernizr/issues/513 + // 2. Disables page caching in WebKit: webk.it/43956 + // + // Meanwhile, in Firefox < 8, an about:config setting could expose + // a false positive that would throw an exception: bugzil.la/688158 + + tests['geolocation'] = function() { + return 'geolocation' in navigator; + }; + + + tests['postmessage'] = function() { + return !!window.postMessage; + }; + + + // Chrome incognito mode used to throw an exception when using openDatabase + // It doesn't anymore. + tests['websqldatabase'] = function() { + return !!window.openDatabase; + }; + + // Vendors had inconsistent prefixing with the experimental Indexed DB: + // - Webkit's implementation is accessible through webkitIndexedDB + // - Firefox shipped moz_indexedDB before FF4b9, but since then has been mozIndexedDB + // For speed, we don't test the legacy (and beta-only) indexedDB + tests['indexedDB'] = function() { + return !!testPropsAll("indexedDB", window); + }; + + // documentMode logic from YUI to filter out IE8 Compat Mode + // which false positives. + tests['hashchange'] = function() { + return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7); + }; + + // Per 1.6: + // This used to be Modernizr.historymanagement but the longer + // name has been deprecated in favor of a shorter and property-matching one. + // The old API is still available in 1.6, but as of 2.0 will throw a warning, + // and in the first release thereafter disappear entirely. + tests['history'] = function() { + return !!(window.history && history.pushState); + }; + + tests['draganddrop'] = function() { + var div = document.createElement('div'); + return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div); + }; + + // FF3.6 was EOL'ed on 4/24/12, but the ESR version of FF10 + // will be supported until FF19 (2/12/13), at which time, ESR becomes FF17. + // FF10 still uses prefixes, so check for it until then. + // for more ESR info, see: mozilla.org/en-US/firefox/organizations/faq/ + tests['websockets'] = function() { + return 'WebSocket' in window || 'MozWebSocket' in window; + }; + + + // css-tricks.com/rgba-browser-support/ + tests['rgba'] = function() { + // Set an rgba() color and check the returned value + + setCss('background-color:rgba(150,255,150,.5)'); + + return contains(mStyle.backgroundColor, 'rgba'); + }; + + tests['hsla'] = function() { + // Same as rgba(), in fact, browsers re-map hsla() to rgba() internally, + // except IE9 who retains it as hsla + + setCss('background-color:hsla(120,40%,100%,.5)'); + + return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla'); + }; + + tests['multiplebgs'] = function() { + // Setting multiple images AND a color on the background shorthand property + // and then querying the style.background property value for the number of + // occurrences of "url(" is a reliable method for detecting ACTUAL support for this! + + setCss('background:url(https://),url(https://),red url(https://)'); + + // If the UA supports multiple backgrounds, there should be three occurrences + // of the string "url(" in the return value for elemStyle.background + + return (/(url\s*\(.*?){3}/).test(mStyle.background); + }; + + + + // this will false positive in Opera Mini + // github.com/Modernizr/Modernizr/issues/396 + + tests['backgroundsize'] = function() { + return testPropsAll('backgroundSize'); + }; + + tests['borderimage'] = function() { + return testPropsAll('borderImage'); + }; + + + // Super comprehensive table about all the unique implementations of + // border-radius: muddledramblings.com/table-of-css3-border-radius-compliance + + tests['borderradius'] = function() { + return testPropsAll('borderRadius'); + }; + + // WebOS unfortunately false positives on this test. + tests['boxshadow'] = function() { + return testPropsAll('boxShadow'); + }; + + // FF3.0 will false positive on this test + tests['textshadow'] = function() { + return document.createElement('div').style.textShadow === ''; + }; + + + tests['opacity'] = function() { + // Browsers that actually have CSS Opacity implemented have done so + // according to spec, which means their return values are within the + // range of [0.0,1.0] - including the leading zero. + + setCssAll('opacity:.55'); + + // The non-literal . in this regex is intentional: + // German Chrome returns this value as 0,55 + // github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632 + return (/^0.55$/).test(mStyle.opacity); + }; + + + // Note, Android < 4 will pass this test, but can only animate + // a single property at a time + // daneden.me/2011/12/putting-up-with-androids-bullshit/ + tests['cssanimations'] = function() { + return testPropsAll('animationName'); + }; + + + tests['csscolumns'] = function() { + return testPropsAll('columnCount'); + }; + + + tests['cssgradients'] = function() { + /** + * For CSS Gradients syntax, please see: + * webkit.org/blog/175/introducing-css-gradients/ + * developer.mozilla.org/en/CSS/-moz-linear-gradient + * developer.mozilla.org/en/CSS/-moz-radial-gradient + * dev.w3.org/csswg/css3-images/#gradients- + */ + + var str1 = 'background-image:', + str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));', + str3 = 'linear-gradient(left top,#9f9, white);'; + + setCss( + // legacy webkit syntax (FIXME: remove when syntax not in use anymore) + (str1 + '-webkit- '.split(' ').join(str2 + str1) + + // standard syntax // trailing 'background-image:' + prefixes.join(str3 + str1)).slice(0, -str1.length) + ); + + return contains(mStyle.backgroundImage, 'gradient'); + }; + + + tests['cssreflections'] = function() { + return testPropsAll('boxReflect'); + }; + + + tests['csstransforms'] = function() { + return !!testPropsAll('transform'); + }; + + + tests['csstransforms3d'] = function() { + + var ret = !!testPropsAll('perspective'); + + // Webkit's 3D transforms are passed off to the browser's own graphics renderer. + // It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in + // some conditions. As a result, Webkit typically recognizes the syntax but + // will sometimes throw a false positive, thus we must do a more thorough check: + if ( ret && 'webkitPerspective' in docElement.style ) { + + // Webkit allows this media query to succeed only if the feature is enabled. + // `@media (transform-3d),(-webkit-transform-3d){ ... }` + injectElementWithStyles('@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}', function( node, rule ) { + ret = node.offsetLeft === 9 && node.offsetHeight === 3; + }); + } + return ret; + }; + + + tests['csstransitions'] = function() { + return testPropsAll('transition'); + }; + + + /*>>fontface*/ + // @font-face detection routine by Diego Perini + // javascript.nwbox.com/CSSSupport/ + + // false positives: + // WebOS github.com/Modernizr/Modernizr/issues/342 + // WP7 github.com/Modernizr/Modernizr/issues/538 + tests['fontface'] = function() { + var bool; + + injectElementWithStyles('@font-face {font-family:"font";src:url("https://")}', function( node, rule ) { + var style = document.getElementById('smodernizr'), + sheet = style.sheet || style.styleSheet, + cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : ''; + + bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0; + }); + + return bool; + }; + /*>>fontface*/ + + // CSS generated content detection + tests['generatedcontent'] = function() { + var bool; + + injectElementWithStyles(['#modernizr:after{content:"',smile,'";visibility:hidden}'].join(''), function( node ) { + bool = node.offsetHeight >= 1; + }); + + return bool; + }; + + + + // These tests evaluate support of the video/audio elements, as well as + // testing what types of content they support. + // + // We're using the Boolean constructor here, so that we can extend the value + // e.g. Modernizr.video // true + // Modernizr.video.ogg // 'probably' + // + // Codec values from : github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845 + // thx to NielsLeenheer and zcorpan + + // Note: in some older browsers, "no" was a return value instead of empty string. + // It was live in FF3.5.0 and 3.5.1, but fixed in 3.5.2 + // It was also live in Safari 4.0.0 - 4.0.4, but fixed in 4.0.5 + + tests['video'] = function() { + var elem = document.createElement('video'), + bool = false; + + // IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224 + try { + if ( bool = !!elem.canPlayType ) { + bool = new Boolean(bool); + bool.ogg = elem.canPlayType('video/ogg; codecs="theora"') .replace(/^no$/,''); + + // Without QuickTime, this value will be `undefined`. github.com/Modernizr/Modernizr/issues/546 + bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,''); + + bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,''); + } + + } catch(e) { } + + return bool; + }; + + tests['audio'] = function() { + var elem = document.createElement('audio'), + bool = false; + + try { + if ( bool = !!elem.canPlayType ) { + bool = new Boolean(bool); + bool.ogg = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,''); + bool.mp3 = elem.canPlayType('audio/mpeg;') .replace(/^no$/,''); + + // Mimetypes accepted: + // developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements + // bit.ly/iphoneoscodecs + bool.wav = elem.canPlayType('audio/wav; codecs="1"') .replace(/^no$/,''); + bool.m4a = ( elem.canPlayType('audio/x-m4a;') || + elem.canPlayType('audio/aac;')) .replace(/^no$/,''); + } + } catch(e) { } + + return bool; + }; + + + // In FF4, if disabled, window.localStorage should === null. + + // Normally, we could not test that directly and need to do a + // `('localStorage' in window) && ` test first because otherwise Firefox will + // throw bugzil.la/365772 if cookies are disabled + + // Also in iOS5 Private Browsing mode, attempting to use localStorage.setItem + // will throw the exception: + // QUOTA_EXCEEDED_ERRROR DOM Exception 22. + // Peculiarly, getItem and removeItem calls do not throw. + + // Because we are forced to try/catch this, we'll go aggressive. + + // Just FWIW: IE8 Compat mode supports these features completely: + // www.quirksmode.org/dom/html5.html + // But IE8 doesn't support either with local files + + tests['localstorage'] = function() { + try { + localStorage.setItem(mod, mod); + localStorage.removeItem(mod); + return true; + } catch(e) { + return false; + } + }; + + tests['sessionstorage'] = function() { + try { + sessionStorage.setItem(mod, mod); + sessionStorage.removeItem(mod); + return true; + } catch(e) { + return false; + } + }; + + + tests['webworkers'] = function() { + return !!window.Worker; + }; + + + tests['applicationcache'] = function() { + return !!window.applicationCache; + }; + + + // Thanks to Erik Dahlstrom + tests['svg'] = function() { + return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect; + }; + + // specifically for SVG inline in HTML, not within XHTML + // test page: paulirish.com/demo/inline-svg + tests['inlinesvg'] = function() { + var div = document.createElement('div'); + div.innerHTML = ''; + return (div.firstChild && div.firstChild.namespaceURI) == ns.svg; + }; + + // SVG SMIL animation + tests['smil'] = function() { + return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate'))); + }; + + // This test is only for clip paths in SVG proper, not clip paths on HTML content + // demo: sruFaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg + + // However read the comments to dig into applying SVG clippaths to HTML content here: + // github.com/Modernizr/Modernizr/issues/213#issuecomment-1149491 + tests['svgclippaths'] = function() { + return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath'))); + }; + + /*>>webforms*/ + // input features and input types go directly onto the ret object, bypassing the tests loop. + // Hold this guy to execute in a moment. + function webforms() { + /*>>input*/ + // Run through HTML5's new input attributes to see if the UA understands any. + // We're using f which is the element created early on + // Mike Taylr has created a comprehensive resource for testing these attributes + // when applied to all input types: + // miketaylr.com/code/input-type-attr.html + // spec: www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary + + // Only input placeholder is tested while textarea's placeholder is not. + // Currently Safari 4 and Opera 11 have support only for the input placeholder + // Both tests are available in feature-detects/forms-placeholder.js + Modernizr['input'] = (function( props ) { + for ( var i = 0, len = props.length; i < len; i++ ) { + attrs[ props[i] ] = !!(props[i] in inputElem); + } + if (attrs.list){ + // safari false positive's on datalist: webk.it/74252 + // see also github.com/Modernizr/Modernizr/issues/146 + attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement); + } + return attrs; + })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' ')); + /*>>input*/ + + /*>>inputtypes*/ + // Run through HTML5's new input types to see if the UA understands any. + // This is put behind the tests runloop because it doesn't return a + // true/false like all the other tests; instead, it returns an object + // containing each input type with its corresponding true/false value + + // Big thanks to @miketaylr for the html5 forms expertise. miketaylr.com/ + Modernizr['inputtypes'] = (function(props) { + + for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) { + + inputElem.setAttribute('type', inputElemType = props[i]); + bool = inputElem.type !== 'text'; + + // We first check to see if the type we give it sticks.. + // If the type does, we feed it a textual value, which shouldn't be valid. + // If the value doesn't stick, we know there's input sanitization which infers a custom UI + if ( bool ) { + + inputElem.value = smile; + inputElem.style.cssText = 'position:absolute;visibility:hidden;'; + + if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) { + + docElement.appendChild(inputElem); + defaultView = document.defaultView; + + // Safari 2-4 allows the smiley as a value, despite making a slider + bool = defaultView.getComputedStyle && + defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' && + // Mobile android web browser has false positive, so must + // check the height to see if the widget is actually there. + (inputElem.offsetHeight !== 0); + + docElement.removeChild(inputElem); + + } else if ( /^(search|tel)$/.test(inputElemType) ){ + // Spec doesn't define any special parsing or detectable UI + // behaviors so we pass these through as true + + // Interestingly, opera fails the earlier test, so it doesn't + // even make it here. + + } else if ( /^(url|email)$/.test(inputElemType) ) { + // Real url and email support comes with prebaked validation. + bool = inputElem.checkValidity && inputElem.checkValidity() === false; + + } else { + // If the upgraded input compontent rejects the :) text, we got a winner + bool = inputElem.value != smile; + } + } + + inputs[ props[i] ] = !!bool; + } + return inputs; + })('search tel url email datetime date month week time datetime-local number range color'.split(' ')); + /*>>inputtypes*/ + } + /*>>webforms*/ + + + // End of test definitions + // ----------------------- + + + + // Run through all tests and detect their support in the current UA. + // todo: hypothetically we could be doing an array of tests and use a basic loop here. + for ( var feature in tests ) { + if ( hasOwnProp(tests, feature) ) { + // run the test, throw the return value into the Modernizr, + // then based on that boolean, define an appropriate className + // and push it into an array of classes we'll join later. + featureName = feature.toLowerCase(); + Modernizr[featureName] = tests[feature](); + + classes.push((Modernizr[featureName] ? '' : 'no-') + featureName); + } + } + + /*>>webforms*/ + // input tests need to run. + Modernizr.input || webforms(); + /*>>webforms*/ + + + /** + * addTest allows the user to define their own feature tests + * the result will be added onto the Modernizr object, + * as well as an appropriate className set on the html element + * + * @param feature - String naming the feature + * @param test - Function returning true if feature is supported, false if not + */ + Modernizr.addTest = function ( feature, test ) { + if ( typeof feature == 'object' ) { + for ( var key in feature ) { + if ( hasOwnProp( feature, key ) ) { + Modernizr.addTest( key, feature[ key ] ); + } + } + } else { + + feature = feature.toLowerCase(); + + if ( Modernizr[feature] !== undefined ) { + // we're going to quit if you're trying to overwrite an existing test + // if we were to allow it, we'd do this: + // var re = new RegExp("\\b(no-)?" + feature + "\\b"); + // docElement.className = docElement.className.replace( re, '' ); + // but, no rly, stuff 'em. + return Modernizr; + } + + test = typeof test == 'function' ? test() : test; + + if (enableClasses) { + docElement.className += ' ' + (test ? '' : 'no-') + feature; + } + Modernizr[feature] = test; + + } + + return Modernizr; // allow chaining. + }; + + + // Reset modElem.cssText to nothing to reduce memory footprint. + setCss(''); + modElem = inputElem = null; + + /*>>shiv*/ + /*! HTML5 Shiv v3.6 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed */ + ;(function(window, document) { + /*jshint evil:true */ + /** Preset options */ + var options = window.html5 || {}; + + /** Used to skip problem elements */ + var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i; + + /** Not all elements can be cloned in IE (this list can be shortend) **/ + var saveClones = /^<|^(?:a|b|button|code|div|fieldset|form|h1|h2|h3|h4|h5|h6|i|iframe|img|input|label|li|link|ol|option|p|param|q|script|select|span|strong|style|table|tbody|td|textarea|tfoot|th|thead|tr|ul)$/i; + + /** Detect whether the browser supports default html5 styles */ + var supportsHtml5Styles; + + /** Name of the expando, to work with multiple documents or to re-shiv one document */ + var expando = '_html5shiv'; + + /** The id for the the documents expando */ + var expanID = 0; + + /** Cached data for each document */ + var expandoData = {}; + + /** Detect whether the browser supports unknown elements */ + var supportsUnknownElements; + + (function() { + try { + var a = document.createElement('a'); + a.innerHTML = ''; + //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles + supportsHtml5Styles = ('hidden' in a); + + supportsUnknownElements = a.childNodes.length == 1 || (function() { + // assign a false positive if unable to shiv + (document.createElement)('a'); + var frag = document.createDocumentFragment(); + return ( + typeof frag.cloneNode == 'undefined' || + typeof frag.createDocumentFragment == 'undefined' || + typeof frag.createElement == 'undefined' + ); + }()); + } catch(e) { + supportsHtml5Styles = true; + supportsUnknownElements = true; + } + + }()); + + /*--------------------------------------------------------------------------*/ + + /** + * Creates a style sheet with the given CSS text and adds it to the document. + * @private + * @param {Document} ownerDocument The document. + * @param {String} cssText The CSS text. + * @returns {StyleSheet} The style element. + */ + function addStyleSheet(ownerDocument, cssText) { + var p = ownerDocument.createElement('p'), + parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement; + + p.innerHTML = 'x'; + return parent.insertBefore(p.lastChild, parent.firstChild); + } + + /** + * Returns the value of `html5.elements` as an array. + * @private + * @returns {Array} An array of shived element node names. + */ + function getElements() { + var elements = html5.elements; + return typeof elements == 'string' ? elements.split(' ') : elements; + } + + /** + * Returns the data associated to the given document + * @private + * @param {Document} ownerDocument The document. + * @returns {Object} An object of data. + */ + function getExpandoData(ownerDocument) { + var data = expandoData[ownerDocument[expando]]; + if (!data) { + data = {}; + expanID++; + ownerDocument[expando] = expanID; + expandoData[expanID] = data; + } + return data; + } + + /** + * returns a shived element for the given nodeName and document + * @memberOf html5 + * @param {String} nodeName name of the element + * @param {Document} ownerDocument The context document. + * @returns {Object} The shived element. + */ + function createElement(nodeName, ownerDocument, data){ + if (!ownerDocument) { + ownerDocument = document; + } + if(supportsUnknownElements){ + return ownerDocument.createElement(nodeName); + } + if (!data) { + data = getExpandoData(ownerDocument); + } + var node; + + if (data.cache[nodeName]) { + node = data.cache[nodeName].cloneNode(); + } else if (saveClones.test(nodeName)) { + node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode(); + } else { + node = data.createElem(nodeName); + } + + // Avoid adding some elements to fragments in IE < 9 because + // * Attributes like `name` or `type` cannot be set/changed once an element + // is inserted into a document/fragment + // * Link elements with `src` attributes that are inaccessible, as with + // a 403 response, will cause the tab/window to crash + // * Script elements appended to fragments will execute when their `src` + // or `text` property is set + return node.canHaveChildren && !reSkip.test(nodeName) ? data.frag.appendChild(node) : node; + } + + /** + * returns a shived DocumentFragment for the given document + * @memberOf html5 + * @param {Document} ownerDocument The context document. + * @returns {Object} The shived DocumentFragment. + */ + function createDocumentFragment(ownerDocument, data){ + if (!ownerDocument) { + ownerDocument = document; + } + if(supportsUnknownElements){ + return ownerDocument.createDocumentFragment(); + } + data = data || getExpandoData(ownerDocument); + var clone = data.frag.cloneNode(), + i = 0, + elems = getElements(), + l = elems.length; + for(;i>shiv*/ + + // Assign private properties to the return object with prefix + Modernizr._version = version; + + // expose these for the plugin API. Look in the source for how to join() them against your input + /*>>prefixes*/ + Modernizr._prefixes = prefixes; + /*>>prefixes*/ + /*>>domprefixes*/ + Modernizr._domPrefixes = domPrefixes; + Modernizr._cssomPrefixes = cssomPrefixes; + /*>>domprefixes*/ + + /*>>mq*/ + // Modernizr.mq tests a given media query, live against the current state of the window + // A few important notes: + // * If a browser does not support media queries at all (eg. oldIE) the mq() will always return false + // * A max-width or orientation query will be evaluated against the current state, which may change later. + // * You must specify values. Eg. If you are testing support for the min-width media query use: + // Modernizr.mq('(min-width:0)') + // usage: + // Modernizr.mq('only screen and (max-width:768)') + Modernizr.mq = testMediaQuery; + /*>>mq*/ + + /*>>hasevent*/ + // Modernizr.hasEvent() detects support for a given event, with an optional element to test on + // Modernizr.hasEvent('gesturestart', elem) + Modernizr.hasEvent = isEventSupported; + /*>>hasevent*/ + + /*>>testprop*/ + // Modernizr.testProp() investigates whether a given style property is recognized + // Note that the property names must be provided in the camelCase variant. + // Modernizr.testProp('pointerEvents') + Modernizr.testProp = function(prop){ + return testProps([prop]); + }; + /*>>testprop*/ + + /*>>testallprops*/ + // Modernizr.testAllProps() investigates whether a given style property, + // or any of its vendor-prefixed variants, is recognized + // Note that the property names must be provided in the camelCase variant. + // Modernizr.testAllProps('boxSizing') + Modernizr.testAllProps = testPropsAll; + /*>>testallprops*/ + + + /*>>teststyles*/ + // Modernizr.testStyles() allows you to add custom styles to the document and test an element afterwards + // Modernizr.testStyles('#modernizr { position:absolute }', function(elem, rule){ ... }) + Modernizr.testStyles = injectElementWithStyles; + /*>>teststyles*/ + + + /*>>prefixed*/ + // Modernizr.prefixed() returns the prefixed or nonprefixed property name variant of your input + // Modernizr.prefixed('boxSizing') // 'MozBoxSizing' + + // Properties must be passed as dom-style camelcase, rather than `box-sizing` hypentated style. + // Return values will also be the camelCase variant, if you need to translate that to hypenated style use: + // + // str.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-'); + + // If you're trying to ascertain which transition end event to bind to, you might do something like... + // + // var transEndEventNames = { + // 'WebkitTransition' : 'webkitTransitionEnd', + // 'MozTransition' : 'transitionend', + // 'OTransition' : 'oTransitionEnd', + // 'msTransition' : 'MSTransitionEnd', + // 'transition' : 'transitionend' + // }, + // transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ]; + + Modernizr.prefixed = function(prop, obj, elem){ + if(!obj) { + return testPropsAll(prop, 'pfx'); + } else { + // Testing DOM property e.g. Modernizr.prefixed('requestAnimationFrame', window) // 'mozRequestAnimationFrame' + return testPropsAll(prop, obj, elem); + } + }; + /*>>prefixed*/ + + + /*>>cssclasses*/ + // Remove "no-js" class from element, if it exists: + docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') + + + // Add the new classes to the element. + (enableClasses ? ' js ' + classes.join(' ') : ''); + /*>>cssclasses*/ + + return Modernizr; + +})(this, this.document); From 4bd6fbe692b5a2384d1eda8b3950d99f2310fed2 Mon Sep 17 00:00:00 2001 From: goldsmithslab <> Date: Sun, 15 Sep 2013 15:58:12 +0100 Subject: [PATCH 2/3] adding project light css --- web/stylesheets/full-stylesheet.css | 2307 +++++++++++++++++++++++++++ web/stylesheets/styleguide.css | 31 + 2 files changed, 2338 insertions(+) create mode 100644 web/stylesheets/full-stylesheet.css create mode 100644 web/stylesheets/styleguide.css diff --git a/web/stylesheets/full-stylesheet.css b/web/stylesheets/full-stylesheet.css new file mode 100644 index 0000000..70015e6 --- /dev/null +++ b/web/stylesheets/full-stylesheet.css @@ -0,0 +1,2307 @@ +/* TABLE OF CONTENTS + * + * 1.0 RESET & BASE STYLES + * 2.0 TYPOGRAPHY + * 3.0 LINK STYLES AND BUTTONS + * 4.0 FORMS + * 5.0 GRID STRUCTURE & LAYOUT COMPONENTS + * 6.0 CUSTOM MODULES + * 7.0 MEDIA QUERIES + * 8.0 COLOUR THEMES + * 9.0 CSS3 ANIMATIONS + * 10.0 PRINT STYLES + * 11.0 FOUC + * 12.0 Z-INDEX REFERENCE + * + * */ + + + +/* 1.0 RESET STYLES (HTML5 ✰ Boilerplate & Normalise reset, & Twitter Bootstrap typography ) --------------------------------------------------------*/ +html { overflow-y: scroll}/* always force a scrollbar in non-IE */ + +article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; } +audio, canvas, video { display: inline-block; } +.lt-ie8 audio, .lt-ie8 canvas, .lt-ie8 video {display: inline; zoom: 1;} +audio:not([controls]) { display: none; } +[hidden] { display: none; } + +/* Lists */ +ul{padding: 0;margin: 0 0 9px 15px;} +ul ul,ul ol,ol ol,ol ul {margin-bottom: 0;} + +ul {list-style: square;} +ol{margin-left:-20px} +.lt-ie8 ol { padding: 0;margin: 0 0 9px 25px; } +li {line-height: 18px;display:list-item} + +ol.campl-numbered { counter-reset: item;padding: 0;margin: 0 0 9px 0;list-style: decimal; } +ol.campl-numbered li { display: block; } + +ol.campl-numbered li:before { +content: counter(item) " "; +counter-increment: item; +font-weight: bold; +padding-right:5px +} + +.campl-unstyled-list{list-style:none;margin:0} +.campl-menu-list{margin-bottom:9px} +.campl-menu-list li{padding:10px;border-bottom:1px solid #999} + +dl {margin-bottom: 18px;} +dt,dd {line-height: 18px;} +dt {font-weight: bold;line-height: 17px;} +dd {margin-left: 9px;} + +/* blockquotes */ +blockquote {padding: 0 0 0 25px;margin: 18px 0;font-style:italic;background:url(../images/interface/bg-blockquote-top.png) no-repeat top left} +blockquote p {margin-bottom: 10px;font-weight: 300;line-height: 22.5px;float:left;padding-right:25px} +blockquote p.campl-quote-mark{background:url(../images/interface/bg-blockquote-bottom.png) no-repeat bottom right;} +blockquote cite {display: block;line-height: 18px;color: #999999;clear:both} +blockquote cite:before {content: '\2014 \00A0';} +q:before,q:after,blockquote:before,blockquote:after {content: ""; content: none;} +blockquote.campl-float-right {margin-left:20px;width:230px;margin-top:0px;} +blockquote.campl-float-right p {padding-right:0px;background:url(../images/interface/bg-blockquote-bottom.png) no-repeat bottom right;} + +/* Misc */ +hr {margin: 5px 0 20px;border: 0;border-top: 1px solid #eeeeee;border-bottom: 1px solid #ffffff;height:1px} +b, strong {font-weight: bold;} +em {font-style: italic;font-weight:normal} +address {display: block;margin-bottom: 18px;font-style: normal;line-height: 18px;} +small {font-size: 85%;} +sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } +sup { top: -0.5em; } +sub { bottom: -0.25em; } +dfn { font-style: italic;font-weight:normal} +ins { background: #ff9; color: #000; text-decoration: none; } +mark { background: #ff0; color: #000; font-style: italic; font-weight: bold; } + +abbr[title] {cursor: help;border-bottom: 1px dotted #999999;} +abbr.initialism {font-size: 90%;text-transform: uppercase;} + +code, kbd, samp, pre {padding: 0 3px 2px;font-family: "Courier New", monospace;font-size: 12px;color: #333333;-webkit-border-radius: 3px;-moz-border-radius: 3px;border-radius: 3px;} +code {padding: 2px 4px;color: #d14;background-color: #f7f7f9;border: 1px solid #e1e1e8;} +pre {display: block;padding: 8.5px;margin: 0 0 9px;font-size: 12.025px;line-height: 18px;word-break: break-all;word-wrap: break-word;white-space: pre; + white-space: pre-wrap;background-color: #f5f5f5;border: 1px solid #ccc;border: 1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius: 4px;-moz-border-radius: 4px; + border-radius: 4px} + +/* images */ +img { border: 0; -ms-interpolation-mode: bicubic; vertical-align: middle; } + +.campl-scale-with-grid {max-width: 100%;height: auto; } +img.campl-float-right{float:right;margin:10px 0 10px 20px;clear:both} +img.campl-float-left{float:left;margin:10px 20px 10px 0;clear:both} + + +svg:not(:root) { overflow: hidden; } +figure { margin: 0; } + +/* re-usable css objects */ +.chromeframe { margin: 0.2em 0; background: #ccc; color: black; padding: 0.2em 0; } + +.ir { display: block; border: 0; text-indent: -999em; overflow: hidden; background-color: transparent; background-repeat: no-repeat; text-align: left; direction: ltr; } +.lt-ie8 .ir{line-height: 0;} +.ir br { display: none; } + +.hidden { display: none !important; visibility: hidden; } +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } +.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; } +.invisible { visibility: hidden; } + +.clearfix:before, .clearfix:after { content: ""; display: table; } +.clearfix:after { clear: both; } +.lt-ie8 .clearfix {zoom: 1; } + +.campl-horizontal-navigation li{float:left} + +.campl-float-right{float:right;clear:both} +.campl-float-left{float:left;clear:both} + +.campl-break-word {word-wrap: break-word;} + +/* 2.0 TYPOGRAPHY ---------------------------------------------------------------------------------------------------*/ +html { font-size: 100%; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; text-size-adjust: 100%;}/*setting -webkit-text-size-adjust: none prevents users resizing with magnify*/ +html, button, input, select, textarea { font-family: verdana, arial, sans-serif; color: #171717; } +h1,h2,h3,h4,h5,h6, .campl-page-title {font-family: inherit;color: inherit;text-rendering: optimizelegibility; margin:0 0 10px 0;vertical-align: baseline;} +.lt-ie8 h1, .lt-ie8 h2, .lt-ie8 h3, .lt-ie8 h4, .lt-ie8 h5, .lt-ie8 h6, .lt-ie8 .campl-page-title{vertical-align: middle} + +::-moz-selection { background: #0066ff; color: #fff; text-shadow: none; } +::selection { background: #0066ff; color: #fff; text-shadow: none; } + +p { margin:0 0 10px 0} + +/* Font families */ + +/* Bold "myriad-pro" 700 normal */ +.campl-highlight-day, .campl-promo-teaser .campl-teaser-title, .campl-current-date{font-family:"myriad-pro", myriad, verdana, arial, sans-serif;font-weight:700;font-style:normal} + +/* Semibold "myriad-pro" 600 normal */ +h2, h3, h4, h5, h6, .campl-global-navigation, .campl-global-navigation-header-container, .campl-global-navigation-container, .campl-local-footer h3, .campl-global-footer h3, +.campl-teaser-title, .campl-listing-title, .campl-vertical-breadcrumb, .campl-btn{font-family:"myriad-pro", myriad, verdana, arial, sans-serif;font-weight:600;font-style:normal} + +/* Regular "myriad-pro" 400 normal*/ +.campl-branding-title, .campl-topic, .campl-global-navigation-tertiary, .campl-local-navigation, .campl-vertical-breadcrumb-navigation{font-family:"myriad-pro", myriad, verdana, arial, sans-serif;font-weight:400;color:#888888} + +/* Regular italic "myriad-pro" 400 italic */ +.campl-title-search-term{font-style: italic;font-weight: 400;} + + +/* Light "myriad-pro" 300 normal */ +h1, .campl-page-header h1, .campl-page-sub-title h2, .campl-secondary-content h2, .campl-main-content-sub-column h2, .campl-slide-caption-txt, .campl-carousel-content p, +.campl-page-title, .campl-sub-title, legend, .campl-primary-cta, .campl-homepage-content h2, .campl-highlight-date, .campl-light-heading{font-family:"myriad-pro", myriad, verdana, arial, sans-serif;font-weight:300;} + + +/* Regular verdana bold */ +.campl-desktop-list-layout, .campl-global-navigation-drawer{font-weight:bold} + +.campl-global-navigation-secondary-with-children p{font-weight:normal} + +/* Georgia "sans serif" normal */ +.campl-datestamp, blockquote{font-family:Georgia, "sans serif"} + + +/* Font sizes*/ +.campl-page-header h1, .campl-carousel-content p, .campl-page-title{font-size: 40px;line-height: 48px;color:#fff;} +.campl-page-sub-title h2, .campl-page-sub-title h1, .campl-sub-title, .campl-highlight-day{font-size: 30px;line-height: 38px; color:#fff;} +.campl-homepage-content h2{font-size: 30px;line-height: 38px; } +h1, .campl-light-heading{font-size: 30px;line-height: 36px;} +h2, .campl-slide-caption-txt, legend, .campl-load-more-btn, blockquote{font-size: 19px;line-height: 25px;} +.campl-nav-tabs, .campl-nav-pills {font-size: 19px;margin-bottom: 18px;font-weight: 200;line-height: 25px;} +h3, .campl-current-date, .campl-highlight-date, .campl-promo-teaser .campl-teaser-title{font-size: 17px;line-height: 23px;} +h4, .campl-branding-title{font-size:15px;line-height: 21px;} +h5, .campl-tertiary-navigation, .campl-enlarged-text, .campl-teaser-title, .campl-primary-cta, .campl-btn, +.campl-local-footer h3, .campl-global-footer h3, .campl-desktop-list-layout, .campl-global-navigation,.campl-global-navigation-header-container, +.campl-global-navigation-container, .campl-local-navigation {font-size:14px;line-height: 20px;} +h6, cite{font-size:13px;line-height: 19px} + +body, label, input, button, select, textarea{font-size: 12px;font-weight: normal;line-height: 18px;vertical-align: baseline; } +.lt-ie8 body, .lt-ie8 label, .lt-ie8 input, .lt-ie8 .campl-highlight, button, .lt-ie8 select, textarea.lt-ie8 {vertical-align: middle} + +.campl-pagination{font-size:11px;line-height: 15px} + +/* resets myriad heading to be verdana */ +.campl-simple-heading, .campl-listing-title{font-family: verdana, arial, sans-serif;font-size:14px;line-height: 20px;font-weight:bold} + + +/* special text treatments */ +.campl-highlight{color:#fff;background:#55a51c;text-transform:uppercase;font-size:11px;font-weight:bold;padding:1px 3px;margin-top:-15px;display:inline-block;margin-bottom:10px} +.campl-highlight-alert{color:#fff;background:#ea7125;text-transform:uppercase;font-size:11px;font-weight:bold;padding:1px 3px;margin-top:-15px;display:inline-block;margin-bottom:10px} +.campl-news-listing .campl-datestamp{color:#777777;background:none;font-weight:normal;font-style:italic;font-size:14px} +.campl-highlight-date{text-transform:uppercase;} +.campl-highlight-day{line-height:30px} +.campl-search-term{background:#fff79f;padding:0 3px;display:inline-block} +.campl-topic{text-transform:uppercase;font-size:11px;background:#fff;color:#171717;padding:0 6px 5px 0;display:inline-block;} + +/* 3.0 LINK STYLES AND BUTTONS (Button styles from twitter bootstrap )--------------------------------------------------------------------------------------*/ +a, .campl-vertical-breadcrumb , .campl-vertical-breadcrumb-navigation, .campl-vertical-breadcrumb-children a{ color: #0072cf; text-decoration:none;border-bottom:0;outline: none;} +a:visited { color: #8a00bc; text-decoration:none;border-bottom:1px dotted #ddbfdc} +a:focus { color: #0072cf; outline: thin dotted;border-bottom:0 } +a:hover { color: #0072cf; text-decoration:underline;border-bottom:0 } +a:hover, a:active { outline: none; } +a:active { color: #0072cf; text-decoration:none;border-bottom:0} + +.campl-global-navigation a, .campl-page-header a, .campl-local-footer a, .campl-global-footer a, .campl-global-navigation-drawer a, .campl-quicklinks a, +.campl-open-quicklinks, .campl-open-quicklinks:focus, .campl-open-quicklinks:hover, .campl-open-quicklinks:visited, +.campl-desktop-list-layout a:focus, .campl-desktop-list-layout a:hover, .campl-desktop-list-layout .campl-selected, +.campl-section-list-heading a, .campl-section-list-heading a:focus, .campl-section-list-heading a:hover, .campl-focus-teaser a, .campl-focus-teaser a:focus, .campl-focus-teaser a:hover{color:#fff;text-decoration:none} + +.campl-quicklinks-list a:focus, .campl-quicklinks-list a:hover, .campl-quicklinks-list a:active{text-decoration:none;background-color:#171717} + +.campl-global-navigation a:focus, .campl-global-navigation a:hover,.campl-global-navigation a:active, .campl-global-navigation .campl-selected a{color:#5a5a5a;text-decoration:none} + +.campl-global-navigation a:visited, .campl-desktop-list-layout a:visited, .campl-close-panel:visited, .campl-section-list-heading a:visited, +.campl-homepage-quicklinks a:visited, .campl-slide-caption a, .campl-quicklinks-list a:visited{border-bottom:0} + +.campl-global-navigation-drawer a:focus, .campl-global-navigation-drawer a:hover, .campl-global-navigation-drawer a:active{text-decoration:underline} + +.campl-btn{background:#e4e4e4;border:1px solid #999;padding:4px 10px 4px 10px;} + +.campl-primary-cta{display:inline-block;background:#171717 url(../images/interface/bg-primary-cta-arrow.png) 100% 50% no-repeat;color:#fff;padding:5px 25px 5px 10px;border:0;text-shadow: none} +.campl-primary-cta:link, .campl-primary-cta:visited{color:#f8f8f8;background:#171717 url(../images/interface/bg-primary-cta-arrow.png) 100% 50% no-repeat;border:0} +.campl-primary-cta:focus, .campl-primary-cta:hover, .campl-primary-cta:active{color:#f8f8f8;background:#454545 url(../images/interface/bg-primary-cta-arrow-over.png) 100% 50% no-repeat;border:0;text-decoration:none} + +.campl-secondary-cta{background:url(../images/interface/bg-secondary-cta-arrow.png) 100% 50% no-repeat; display:inline-block;padding-right:10px } + +.campl-search-listing a, .campl-vertical-breadcrumb a{color:#999999} +.campl-search-listing .campl-listing-title a{color: #0072cf;} +.campl-teaser-title a, .campl-pagination a, .campl-load-more-btn, .campl-load-more-btn:focus, .campl-load-more-btn:hover, .campl-load-more-btn:visited{color:#171717} +.campl-focus-teaser a{color:#fff} + +.campl-btn-download-vcard:link, +.campl-btn-download-vcard:visited{background:#171717 url(../images/interface/icon-profile.png) 5px 50% no-repeat;padding:5px 5px 5px 30px;} +.campl-download-arrow{background:url(../images/interface/bg-download-arrow.png) center right no-repeat;height:11px;width:11px;padding-right:20px;/*position:absolute;top:50%;right:5px;margin-top:-5px*/} + +.campl-btn-download-vcard:focus, .campl-btn-download-vcard:hover, .campl-btn-download-vcard:active{color:#f8f8f8;background-color:#454545} + +/*skip to links for accessibility*/ +.campl-skipTo:link{position:absolute;left:-5000px;top:0;color:#fff;padding:10px} +.campl-skipTo:focus{left:5px;top:5px;color:#fff;display:block;position:relative} + +a.campl-external{background: url("../images/interface/icon-external-link.png") no-repeat 100% 4px; padding-right:15px;} + +/* Load More */ +.campl-load-more-btn{background:#f3f3f3;border:1px solid #cdcdcd;margin-bottom:60px;text-align:center;display:block;padding:10px;} +.campl-load-more-btn:link, .campl-load-more-btn:focus, .campl-load-more-btn:hover, .campl-load-more-btn:visited{border:1px solid #cdcdcd;} + +/* focus links */ +.campl-focus-link{width:33px;height:33px;background:#313131 url(../images/interface/icon-fwd-btn.png) 14px 13px no-repeat;position:absolute;bottom:0;right:0} + +/* Inline links */ +.campl-icon{display:inline-block;background:url(../images/interface/icon-links-sprite.png) no-repeat 0 0;width:20px;height:25px;margin-right:2px;position:relative;top:5px} + +.campl-print-icon{background-position:0 5px} +.campl-lock-icon{background-position: 0 -25px} +.campl-help-icon{background-position: 0 -55px} +.campl-info-icon{background-position: 0 -80px} +.campl-excel-icon{background-position:0 -110px} +.campl-pdf-icon{background-position: 0 -135px} +.campl-word-icon{background-position: 0 -159px} + + +/* 4.0 FORMS --------------------------------------------------------------------------------------------------------*/ + +/* Standard form elements */ +form { margin: 0; } +fieldset { border: 0; margin: 0; padding: 0; } +label { cursor: pointer; display: block;margin-bottom: 5px; } +legend { border: 0; padding: 0; white-space: normal;display: block;width: 100%;padding: 0;margin-bottom: 10px; } +.lt-ie8 legend{margin-left: -7px;} + +button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button;margin-bottom:5px; } +.lt-ie8 button, .lt-ie8 input{overflow: visible;zoom:1;margin: 0 2.5px 5px 2.5px} +button[disabled], input[disabled] { cursor: default;color:#999 } +button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } + +:-moz-placeholder {color: #999999;} +:-ms-input-placeholder {color: #999999;} +::-webkit-input-placeholder {color: #999999;} + +textarea { overflow: auto; vertical-align: top; resize: vertical;height: auto; } +.campl-uneditable-textarea {height: auto;} +.campl-uneditable-input {overflow: hidden;white-space: nowrap;cursor: not-allowed;background-color: #ffffff;border-color: #eee;} + +input:invalid, textarea:invalid { background-color: #f0dddd; } + +.campl-input-block-level {display: block;width: 100%;min-height: 28px;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;-ms-box-sizing: border-box;box-sizing: border-box;} +input,textarea {width: 210px;} +.lt-ie7 input { vertical-align: text-bottom; } +input,textarea,.campl-uneditable-input { margin-left: 0;} + +.campl-input-mini {width: 60px;} +.campl-input-small {width: 90px;} +.campl-input-medium {width: 150px;} +.campl-input-large {width: 210px;} +.campl-input-xlarge {width: 270px;} + +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.campl-uneditable-input {display: inline-block;height: 18px;padding: 4px;margin-bottom: 9px; -webkit-border-radius: 0;} + +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.campl-uneditable-input {background-color: #ffffff;border: 1px solid #cccccc;} + +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.campl-uneditable-input:focus {border-color: rgba(82, 168, 236, 0.8);outline: 0;} + +.lt-ie8 textarea:focus, +.lt-ie8 input[type="text"]:focus, +.lt-ie8 input[type="password"]:focus, +.lt-ie8 input[type="datetime"]:focus, +.lt-ie8 input[type="datetime-local"]:focus, +.lt-ie8 input[type="date"]:focus, +.lt-ie8 input[type="month"]:focus, +.lt-ie8 input[type="time"]:focus, +.lt-ie8 input[type="week"]:focus, +.lt-ie8 input[type="number"]:focus, +.lt-ie8 input[type="email"]:focus, +.lt-ie8 input[type="url"]:focus, +.lt-ie8 input[type="search"]:focus, +.lt-ie8 input[type="tel"]:focus, +.lt-ie8 input[type="color"]:focus, +.lt-ie8 .campl-uneditable-input:focus { outline:thin dotted 1px;} + + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] {cursor: not-allowed;background-color: #eeeeee;border-color: #ddd;} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] {background-color: transparent;} + +input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"] {width: auto;} + +/* select menus */ +select, +input[type="file"] { + height: 28px; + line-height: 28px; +} +/* In IE7, the height of the select element cannot be changed by height, only font-size */ +.lt-ie8 select, +.lt-ie8 input[type="file"]{margin-top: 4px;}/* For IE7, add top margin to align select with labels */ + +select { width: 220px;border: 1px solid #bbb;} +select[multiple],select[size] {height: auto;} +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus {outline: thin dotted #333;outline: 5px auto -webkit-focus-ring-color;outline-offset: -2px;} + +/* radio buttons and checkboxes */ +input[type="radio"], +input[type="checkbox"] {margin: 3px 0;/line-height: normal;cursor: pointer;box-sizing: border-box; padding: 0; } +.lt-ie8 input[type="checkbox"] { vertical-align: baseline;margin-top: 0;width: 13px;height: 13px; } + +.campl-radio,.campl-checkbox {min-height: 18px;padding-left: 18px;} +.campl-radio input[type="radio"],.campl-checkbox input[type="checkbox"] {float: left;margin-left: -18px;} +.campl-controls > .campl-radio:first-child,.campl-controls > .campl-checkbox:first-child {padding-top: 5px;} +.campl-radio.inline,.campl-checkbox.inline {display: inline-block;padding-top: 5px;margin-bottom: 0;vertical-align: middle;} +.campl-radio.inline + .campl-radio.inline,.campl-checkbox.inline + .campl-checkbox.inline {margin-left: 10px;} + +/* containers for holding form elements */ +.campl-control-group {margin-bottom: 9px;} +legend + .campl-control-group {margin-top: 18px;-webkit-margin-top-collapse: separate;} + +.campl-control-group.campl-warning > label, +.campl-control-group.campl-warning .campl-help-block{color: #c09853;} + +.campl-control-group.campl-warning .campl-checkbox, +.campl-control-group.campl-warning .campl-radio, +.campl-control-group.campl-warning input, +.campl-control-group.campl-warning select, +.campl-control-group.campl-warning textarea {color: #c09853;border-color: #c09853;} + +.campl-control-group.campl-warning .campl-checkbox:focus, +.campl-control-group.campl-warning .campl-radio:focus, +.campl-control-group.campl-warning input:focus, +.campl-control-group.campl-warning select:focus, +.campl-control-group.campl-warning textarea:focus {border-color: #a47e3c;} + +.campl-control-group.campl-error > label, +.campl-control-group.campl-error .campl-help-block {color: #b94a48;} + +.campl-control-group.campl-error .campl-checkbox, +.campl-control-group.campl-error .campl-radio, +.campl-control-group.campl-error input, +.campl-control-group.campl-error select, +.campl-control-group.campl-error textarea {color: #b94a48;border-color: #b94a48;} + +.campl-control-group.campl-error .campl-checkbox:focus, +.campl-control-group.campl-error .campl-radio:focus, +.campl-control-group.campl-error input:focus, +.campl-control-group.campl-error select:focus, +.campl-control-group.campl-error textarea:focus {border-color: #953b39;} + +.campl-control-group.campl-success > label, +.campl-control-group.campl-success .campl-help-block {color: #468847;} + +.campl-control-group.campl-success .campl-checkbox, +.campl-control-group.campl-success .campl-radio, +.campl-control-group.campl-success input, +.campl-control-group.campl-success select, +.campl-control-group.campl-success textarea {color: #468847;border-color: #468847;} + +.campl-control-group.campl-success .campl-checkbox:focus, +.campl-control-group.campl-success .campl-radio:focus, +.campl-control-group.campl-success input:focus, +.campl-control-group.campl-success select:focus, +.campl-control-group.campl-success textarea:focus {border-color: #356635;} + +/* form actions for buttons */ +.campl-form-actions {padding: 20px 0;margin:20px 0;border-top: 1px solid #e4e4e4;} +.lt-ie8 .campl-form-actions{zoom: 1;} +.campl-form-actions:before,.campl-form-actions:after {display: table;content: "";} +.campl-form-actions:after {clear: both;} + +/* guidance along side form elements */ +.campl-help-block{color: #555555;display: block;margin-bottom: 9px;} + +/* 6.0 GRID STRUCTURE & LAYOUT COMPONENTS (Grid taken from centage fluid grid framework)----------------------------------------------------*/ +body{margin:0;padding:0; background:#000;width:100%;} + +.campl-row{clear:both;width:100%;} +.lt-ie9 .campl-row, .lt-ie8 .campl-row{min-width:auto} + +.campl-wrap{margin:0 auto;position:relative;clear:both;width:1177px} +.campl-fixed-container{width:1024px}/*to remove fluid container from browsers without media queries */ + +.campl-column, .campl-column1, .campl-column2, .campl-column3, .campl-column4, .campl-column5, .campl-column6, .campl-column7, .campl-column8, .campl-column9, +.campl-column10, .campl-column11, .campl-column12{float: left;margin-right: 0;padding:0 0 0 0;} + +.campl-column1 {width: 8.333333333333334%;} +.campl-column2 {width: 16.666666666666668%;} +.campl-column3 {width: 25%;} +.campl-column4 {width: 33.333333333333336%;} +.campl-column5 {width: 41.66666666666667%;} +.campl-column6 {width: 50%;} +.campl-column7 {width: 58.333333333333336%;} +.campl-column8 {width: 66.66666666666667%;} +.campl-column9 {width: 75%;} +.campl-column10 {width: 83.33333333333334%;} +.campl-column11 {width: 91.66666666666667%;} +.campl-column12 {width: 100%;} + +/* IE fluid widths */ + +.lt-ie8 .campl-column1 {width: 8.133333333333335%;} +.lt-ie8 .campl-column2 {width: 16.46666666666667%;} +.lt-ie8 .campl-column3 {width: 24.8%;} +.lt-ie8 .campl-column4 {width: 33.13333333333333%;} +.lt-ie8 .campl-column5 {width: 41.46666666666667%;} +.lt-ie8 .campl-column6 {width: 49.8%;} +.lt-ie8 .campl-column7 {width: 58.13333333333333%; } +.lt-ie8 .campl-column8 {width: 66.46666666666667%; } +.lt-ie8 .campl-column9 {width: 74.8%;} +.lt-ie8 .campl-column10 {width: 83.13333333333334%} +.lt-ie8 .campl-column11 {width: 91.46666666666667%;} +.lt-ie8 .campl-column12 {width: 99.8%;} + + +/* content containers - structural */ +.campl-content-container{padding:20px;} +.campl-search-container{padding:20px 100px;} + +.campl-no-top-padding, .campl-global-navigation-container, .campl-navigation-list{padding:0 20px 20px 20px} +.campl-top-padding{padding:20px 0 0 0 } + +.campl-bottom-padding, .campl-vertical-teaser-img{padding:0 0 20px 0 } +.campl-side-padding{padding:0 20px} +.campl-vertical-padding, .campl-listing-txt{padding:20px 0} + +.campl-horizontal-teaser-img, .campl-right-padding{padding:0 20px 0 0 } +.campl-horizontal-teaser-txt, .campl-left-padding{padding:0 0 0 20px } + +.campl-no-left-padding{padding:20px 20px 20px 0} + +.campl-listing-img{padding:10px 0 10px 15px } + +.campl-vertical-teaser-txt, .campl-no-padding, .campl-promo-teaser .campl-vertical-teaser-img, .campl-focus-teaser .campl-horizontal-teaser-img, .campl-quicklinks-list{padding:0 0 0 0 } + +.campl-promo-teaser .campl-vertical-teaser-txt{padding:15px} +.campl-focus-teaser .campl-horizontal-teaser-txt{padding:15px 15px 25px 15px} +.campl-promo-teaser .campl-teaser-title{margin-bottom:0} + +.campl-navigation-list h3{padding-bottom:10px;} +.campl-navigation-list li{padding-bottom:5px} + +.campl-event-cta-container{padding:20px 20px 60px 20px;} +.campl-notifications-container{padding:10px 80px;} +.campl-section-list-children{padding:15px 20px 15px} + +/* content containers - decorative */ +.campl-footer-navigation{background: url(../images/interface/bg-footer-navigation.png) 100% 0 repeat-y;} +.campl-footer-navigation.last{background:none} + +.campl-recessed-banner{margin-bottom:-50px} +.campl-recessed-content{padding-top:50px} +.campl-recessed-carousel{margin-bottom:-50px} + +.campl-recessed-content .campl-tertiary-navigation{margin-top:-50px;padding-bottom:50px} + +.campl-recessed-sub-title{margin-bottom:-50px;overflow:auto;} + +.campl-recessed-secondary-content{margin-top:-36.6%} + +.campl-sub-column-right-border{border-right:1px solid #e4e4e4} +.campl-sub-column-left-border{border-left:1px solid #e4e4e4;margin-left:-1px} + +.campl-teaser-divider{margin:0;border-bottom:1px solid #e4e4e4;border-top:0} +.campl-dotted-divider{margin:0;border-bottom:2px dotted #020902;border-top:0} + +.campl-homepage-teaser{border-right:1px solid #e4e4e4} +.campl-alt{border-right:0} + +.campl-heading-container{border-bottom:1px solid #e4e4e4;} + +/* 7.0 CUSTOM MODULES -----------------------------------------------------------------------------------------------*/ + +/* Header */ +.campl-global-header{position:relative;z-index:15} + +.js .campl-open-menu{background:url(../images/interface/btn-open-menu-sprite.png) no-repeat 0 0 ;width:32px;height:33px;float:left;display:none} +.js .campl-open-menu:focus, .js .campl-open-menu:hover, .js .campl-open-menu:active{background-position:0 -33px} + +.campl-main-logo{padding:15px;display:block;float:left} +.campl-main-logo:visited{text-decoration:none;border:0} +.campl-homepage-header .campl-main-logo{display:none} + +.campl-search-drawer{border-top:1px solid #3f3f3f;position:relative;z-index:5} + +/* global site search */ +.campl-search-drawer{display:none} +.campl-site-search {padding:15px 0 15px 15px;float:none} +.campl-icon-search-btn{height:32px;width:32px;background:url(../images/interface/btn-search-sprite-small.png) 0 0 no-repeat;display:none} +.campl-icon-search-btn:focus, .campl-icon-search-btn:hover, .campl-icon-search-btn:active{background-position: 0 -32px} +.campl-search-form-wrapper{background:#2c2c2c;height:32px;padding:0 0 0 10px} +.campl-site-search-form{display:block;padding:15px;} +.campl-site-search-form input{background:transparent; color:#9c9c9c;border:0;float:left;padding: 7px 0;width: 92%;} +.campl-site-search-form input.campl-search-submit{width:22px;padding:0;float:right;height:32px} + + +/* Contextual Search */ +.campl-search-input{background-color: #FFFFFF;border: 0; display: inline-block; -moz-box-sizing: border-box;width: 100%;position: relative;margin-bottom: 0; height: 42px;min-height:42px;} +.lt-ie8 .campl-search-input{margin-left: 0;} +.campl-search-input input{border:0;padding:10px 8px 8px;vertical-align: middle;width:75%;float:left;margin-bottom:0} +.campl-search-input input.campl-search-submit{width:42px;padding:0;float:right;height:43px;-webkit-border-radius: 0;margin-right:0;float:right;margin-right:-1px} + +/* Header search */ +.campl-site-search .campl-search-input{height: 32px;min-height:32px;background-color: #343434;} +.campl-site-search .campl-search-input input{width:65%;padding:7px 0 7px 8px;background-color: #343434;color:#fff} +.campl-site-search .campl-search-input input.campl-search-submit{width:32px;height:32px;padding:0;} + + +/* global quick links */ +.campl-quicklinks{width:100%;margin-top:15px;} +.campl-quicklinks-txt{padding:8px 0 0 8px;display:block;float:left} +.campl-icon-dropdown{height:32px;width:32px;background:url(../images/interface/btn-quicklinks-sprite.png) 0 0 no-repeat;float:right } + +.campl-open-quicklinks:focus .campl-icon-dropdown, .campl-open-quicklinks:hover .campl-icon-dropdown{background-position:0 -42px;} +.campl-open-quicklinks{display:block; + background: #3d3d3d; /* Old browsers */ + background: -moz-linear-gradient(top, #3d3d3d 0%, #292929 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#3d3d3d), color-stop(100%,#292929)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #3d3d3d 0%,#292929 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #3d3d3d 0%,#292929 100%); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, #3d3d3d 0%,#292929 100%); /* IE10+ */ + background: linear-gradient(to bottom, #3d3d3d 0%,#292929 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3d3d3d', endColorstr='#292929',GradientType=0 ); /* IE6-9 */;} + +.js .campl-quicklinks-list{display:none} +.js .campl-quicklinks-open .campl-icon-dropdown{background-position:0 -84px;} +.js .campl-quicklinks-open .campl-quicklinks-list{display:block;z-index:6;position:absolute;background:#2a2a2a;border-top:#000 solid 1px;border-right:0;width:200px } +.js .campl-quicklinks-open li{border-color:#4b4b4b;} + +.js .campl-quicklinks-list a, .js .campl-quicklinks-list a:link, .js .campl-quicklinks-list a:visited{padding:8px 8px 8px 16px;display:block;background-position:6px 50%} + +/*remove padding from other global nav*/ +.js .campl-quicklinks-open .campl-global-navigation-container li{padding:0} + + +/* Homepage quicklinks */ +.campl-homepage-quicklinks{position:relative;right:-60px} +.campl-homepage-quicklinks li a{padding:0 10px 5px 15px;margin-bottom:0;background:url(../images/interface/icon-fwd-btn.png) 0 6px no-repeat;display:block;font-weight:bold} + +/* Homepage Events highlight */ +.campl-highlight-event-item{border-top:1px solid #e4e4e4} +.campl-highlight-date-container{width:55px;float:left;margin:0 10px 5px 0;} +.campl-highlight-date{text-align:center;padding:0px 0 2px 0} +.campl-highlight-day, .campl-highlight-event-link, .campl-highlight-date{display:block} +.campl-highlight-day{position:relative;bottom:-3px} + +.campl-highlight-event-details{padding:5px 0 10px 0} +.campl-highlight-event-link{padding:3px 0 0} + +/* Footer */ +.campl-local-footer, .campl-global-footer{padding:20px 0} +.campl-footer-logo{padding-top:0} +.campl-footer-logo img{padding-bottom:20px} + +/* Global Navigation */ +.campl-global-navigation{border-left:1px solid #2e2e2e;margin-right:15px;float:left} +.campl-home-link-container{display:none} +.campl-global-navigation li a{padding:25px 20px;border-right:1px solid #2e2e2e;display:block;word-wrap: break-word;} +.campl-global-navigation li a:focus, .campl-global-navigation li a:hover, .campl-global-navigation li a:active, +.campl-global-navigation li.campl-selected a{border-left:1px solid #737373;border-right:1px solid #737373;margin-left:-1px;background:#171717;position:relative;z-index:7;} +.campl-global-navigation li.campl-selected a{margin-bottom:-1px;padding-bottom:26px} + +.js .campl-global-navigation-drawer, .js .campl-global-navigation-outer{display:none} +.js .campl-drawer-open, .js .campl-navigation-open{display:block} + +/*mega drop down*/ +.campl-global-navigation-drawer{z-index:4;position:relative;border-top:1px solid #3f3f3f;} +.campl-global-navigation-container li, .campl-global-navigation-container li li{padding:10px 0} +.campl-global-navigation-container.last li{padding:15px 0} +.campl-global-navigation-secondary-with-children li{padding:10px 0 0} +.campl-global-navigation-header-container li{padding:20px 0 20px 20px} +.campl-global-navigation-container li a, .campl-global-navigation-header-container li a{background:url(../images/interface/icon-fwd-btn.png) no-repeat 0 50%;padding-left:10px } + +.campl-global-navigation-tertiary{border:0;} +.campl-global-navigation-header-container .campl-global-navigation-tertiary li{padding-left:20px} +.campl-global-navigation-container p, .campl-global-navigation-tertiary{padding-top:20px;margin-bottom:0} + +.campl-global-navigation-outer{position:relative} +.campl-close-menu{position:absolute;height:30px;top:0;right:0;background:#000 url(../images/interface/icon-close-menu-btn.png) 90% 50% no-repeat;padding:20px 50px 7px 12px;border-left:1px solid #3f3f3f;} + +/* Local Navigation */ + +/* add some basic styling to help non javascript users navigate the site */ +.campl-menu-btn, .campl-menu-indicator{display:none;} +.campl-local-navigation li{margin:0} + +.campl-local-navigation a{display:block;} + +.campl-local-navigation ul ul a{padding-left:40px;} +.campl-local-navigation ul ul ul a{padding-left:60px;} +.campl-local-navigation ul ul ul ul a{padding-left:80px;} + +.js .campl-local-navigation{position:relative;z-index:13} +.js .campl-local-navigation .campl-local-navigation-container { margin: -1px 0 0 0 ;width: auto;} +.js .campl-local-navigation li.campl-back-link, .js .campl-local-navigation li.campl-back-link a{display: none;font-size: 0;height: 0;visibility: hidden;position:absolute} +.js .campl-local-navigation li { display: inline;float: left;margin:0 0 -1px 0} +.js .campl-local-navigation li li{margin:0} +.js .campl-local-navigation li.campl-title{display:none} +.lt-ie8 .campl-local-navigation li {margin:0} +.js .campl-local-navigation a{padding:10px 20px;} +.js .campl-local-navigation li.campl-sub>a{padding:10px 40px 10px 10px;margin:0} +.js .campl-local-navigation li.campl-sub>a{background-image:url(../images/interface/bg-local-navigation-sub-arrow.png);background-repeat:no-repeat;background-position:95% 50% ;} + +.js .campl-local-navigation li > ul {margin-top:-1px} +.js .campl-local-navigation li ul {left: -9999px;position: absolute; width: 235px;z-index:14;} +.js .campl-local-navigation li.campl-hover a{display: block;} + +.js .campl-local-navigation li.campl-hover ul {left: auto;} +.js .campl-local-navigation li.campl-hover ul {display: block;float: none;} +.js .campl-local-navigation li.campl-hover li{float: none;} +.js .campl-local-navigation li.campl-hover li a{display: block;padding:10px 40px 10px 10px} + +.js .campl-local-navigation li.campl-hover ul li ul {left: -9999px;} +.js .campl-local-navigation li.campl-hover ul li.campl-hover ul{left: 235px;top: 0;} + + +/* campl-vertical-breadcrumb - tertiary navigation */ +.campl-tertiary-navigation{position:relative;z-index:11} +.campl-tertiary-navigation-structure{background:#fff;border-bottom:1px solid #e4e4e4;} + +.campl-vertical-breadcrumb li{line-height:16px;position:relative;word-wrap:break-word} +.campl-vertical-breadcrumb a{padding:16px 30px 16px 20px;background:#fafafa url(../images/interface/bg-vertical-breadcrumb-up-arrow.png) no-repeat 95% 50% ;border-bottom:1px solid #e4e4e4;display:block;position:relative;} +.campl-vertical-breadcrumb-indicator{z-index:9;display:block;width:19px;height:10px;background:url(../images/interface/bg-vertical-breadcrumb-indicator-arrow.png) no-repeat 0 0;position:absolute;bottom:-10px;left:20px;} + +.campl-vertical-breadcrumb a:focus, .campl-vertical-breadcrumb a:hover, .campl-vertical-breadcrumb a:active{background:#efefef url(../images/interface/bg-vertical-breadcrumb-up-arrow.png) no-repeat 95% 50%;text-decoration:none} +.campl-vertical-breadcrumb a:focus .campl-vertical-breadcrumb-indicator, +.campl-vertical-breadcrumb a:hover .campl-vertical-breadcrumb-indicator, +.campl-vertical-breadcrumb a:active .campl-vertical-breadcrumb-indicator{background:url(../images/interface/bg-vertical-breadcrumb-indicator-arrow-over.png) no-repeat 0 0;} + +.campl-vertical-breadcrumb-navigation{display:block;padding:5px 20px;font-weight:bold } +.campl-vertical-breadcrumb-navigation .campl-selected > a, +.campl-vertical-breadcrumb-navigation .campl-selected > a:focus, +.campl-vertical-breadcrumb-navigation .campl-selected > a:hover, +.campl-vertical-breadcrumb-navigation .campl-selected > a:visited {color:#171717;} +.campl-vertical-breadcrumb-navigation li{padding:10px 0;border-bottom:1px solid #e4e4e4} +.campl-vertical-breadcrumb-navigation li:last-child{border-bottom:0} + +.campl-vertical-breadcrumb-children{border-bottom:0;margin:10px 0 0; } +.campl-vertical-breadcrumb-children li{padding:5px 5px 5px 0;border-bottom:0;font-weight:normal} +.campl-vertical-breadcrumb-children a{border-bottom:0;background:#fff url(../images/interface/bg-vertical-breadcrumb-right-arrow.png) no-repeat 0 50% ;font-weight:normal;padding:0 0 0 15px} +.campl-vertical-breadcrumb-children a:focus, .campl-vertical-breadcrumb-children a:hover, .campl-vertical-breadcrumb-children a:active{background:#fff url(../images/interface/bg-vertical-breadcrumb-right-arrow.png) no-repeat 0 50%; text-decoration:underline} + +.campl-vertical-breadcrumb-children .campl-selected a{cursor:default} +.campl-vertical-breadcrumb-children .campl-selected a:focus, .campl-vertical-breadcrumb-children .campl-selected a:hover{text-decoration:none} + +/* Breadcrumbs */ +.campl-breadcrumb{color:#fff;padding-bottom:20px} +.campl-breadcrumb li{padding:0 2px 0 17px;background: url(../images/interface/bg-breadcrumb-link.png) 5px 50% no-repeat;white-space:nowrap;} +.campl-breadcrumb li:first-child, .campl-breadcrumb li.first-child{background:none;padding:0} +.campl-breadcrumb .campl-home{background: url(../images/interface/icon-breadcrumb-home.png) 0 0 no-repeat;width:17px; height:17px;padding:0} +.campl-breadcrumb .campl-current{margin:0} +.campl-breadcrumb a:visited, .campl-mobile-parent a:visited{border:0;} + +.campl-mobile-parent{display:none;position:relative;padding:0 0 0 25px;margin-bottom:10px } +.campl-mobile-parent .campl-menu-indicator{left:0} + +/* Page header inside content */ +.campl-page-title{clear:both} +.campl-co-branding-logo{float:left;padding:0 20px 20px 0} +.campl-co-branding-container .campl-page-title{clear:none} +.campl-page-sub-title{position:relative;z-index:0} + +/* Carousel */ +.campl-carousel{background:#fff;text-align:center;position:relative;} +.campl-carousel .campl-carousel-container{position:relative;overflow:hidden;} +.campl-carousel .campl-slides{left:0;margin:0;overflow:hidden;padding:0;position:relative;top:0;} + +.campl-slides, .campl-slide {padding:0;margin:0} +.campl-carousel li{position:relative;float:left;} +.campl-carousel a{overflow:hidden;} + +.campl-carousel-controls{position:absolute;bottom:0;right:0} +.campl-carousel-controls li{width:50px;height:50px;margin-left:1px;} +.campl-carousel-control-btn{width:50px;height:50px;display:block;position:relative;} +.campl-carousel-control-btn .campl-arrow-span{width:25px;height:25px;background-position:0 0;background-repeat:no-repeat;display:block;position:absolute;left:50%;margin-left:-12.5px;top:50%;margin-top:-12.5px } + +.campl-carousel-controls .campl-next .campl-arrow-span {background-image:url(../images/interface/btn-carousel-next.png)} +.campl-carousel-controls .campl-previous .campl-arrow-span{background-image:url(../images/interface/btn-carousel-prev.png)} + +.campl-slide{position:relative} +.campl-slide-caption{background:url(../images/interface/bg-carousel-caption.png) repeat 0 0 ;position:absolute;bottom:0;right:102px;color:#fff;padding:12px 16px 13px;left:20px;text-align:left} + +.campl-slide-caption-txt{margin-right:40px;} +.campl-carousel-pagination{position:absolute;right:16px;bottom:16px} + +/* single banner with caption */ +.campl-banner .campl-slide-caption{right:20px} +.campl-banner .campl-slide-caption-txt{margin-right:0} + + +/* Related links */ +.campl-related-links li {padding:10px 20px 10px 0; border-bottom:1px solid #e4e4e4;margin-bottom:0} + +/* Listing item */ +.campl-listing-item{clear:both;position:relative;border-bottom:1px dotted #000000;margin-bottom:10px} +.campl-listing-item:last-child{border:0} + +/* news listing */ +.campl-news-listing{border-bottom:1px dashed #b5b5b5;} + +/* events */ +.campl-event-details{border:1px solid #e4e4e4;border-width:1px 0 1px 0;} +.campl-event-details-dl{float:left;margin:0;padding:0} +.campl-event-details-dl dt, .campl-event-details-dl dd{float:left;margin:0;padding:5px 10px 5px 0;} + +.campl-events-cta{float:right} +.campl-events-cta li{margin-left:10px} + +/* paging controls */ +.campl-paging{margin-top:-38px} + +.campl-paging-btn{width:38px;height:38px;display:block;position:relative;} +.campl-arrow-span{width:8px;height:11px;background-position:0 0;background-repeat:no-repeat;display:block;position:absolute;left:50%;margin-left:-3px;top:50%;margin-top:-5px } + +.campl-paging-btn:focus, .campl-paging-btn:hover{background:#454545} +.campl-next .campl-arrow-span {background-image:url(../images/interface/icon-fwd-btn-larger.png)} +.campl-previous .campl-arrow-span{background-image:url(../images/interface/icon-back-btn-larger.png)} + +.campl-current-date{color:#fff;line-height:38px;margin:0 39px;position:relative;right:39px;left:0;background:#171717;} +.lt-ie8 .campl-current-date{padding:2px 0 3px 0} +.campl-paging-container{text-align:center;} +.campl-paging .campl-previous-li{float:left;border-right:1px solid #fff} +.campl-paging .campl-next-li{float:right;border-left:1px solid #fff} + +/* search results */ +.campl-filter-navigation{margin-left:-7px;padding:8px 0 5px} +.campl-filter-navigation li{border-right:1px solid #444;line-height:14px;padding:0 7px;font-weight:bold} +.campl-filter-navigation li:last-child{border:0} + +/* teasers */ +.campl-teaser {clear:both} +.campl-teaser p{margin-bottom:20px;} + +.campl-teaser-img-link{position:relative;display:block} +.campl-overlay{width:60px;height:60px;background: url(../images/interface/icon-media-sprite.png) 0 0 no-repeat;position:absolute;bottom:0;right:0;} +.campl-audio-overlay{background-position:-10px -10px} +.campl-video-overlay{background-position:-11px -108px} +.campl-teaser-img-link:focus .campl-audio-overlay, .campl-teaser-img-link:hover .campl-audio-overlay{background-position:-97px -10px} +.campl-teaser-img-link:focus .campl-video-overlay, .campl-teaser-img-link:hover .campl-video-overlay{background-position:-98px -108px} + +.campl-focus-teaser{margin-bottom:20px;position:relative} +.campl-focus-teaser-img{width: 41.6667%;float: left;margin-right: 0;padding: 0;} +.campl-focus-teaser-txt{width: 58.3333%;float: left;margin-right: 0;padding: 0;} + +.lt-ie8 .campl-focus-teaser-img{width: 41.1667%;} +.lt-ie8 .campl-focus-teaser-txt{width: 58.1333%;} + +.campl-vertical-teaser-img{position:relative} +.campl-topic{position:absolute;top:0;left:0;z-index:12} + +/* .pagination */ +.campl-pagination {height: 36px;margin: 18px 0;position:relative;} +.campl-pagination ul {display: inline-block;margin-bottom: 0;margin-left: 0;} +.lt-ie8 .campl-pagination ul {display: inline;zoom: 1} +.campl-pagination li {display: inline;} +.campl-pagination a, .campl-elipsis{float: left;padding: 5px 7px;line-height: 12px;text-decoration: none;border: 1px solid #d6d6d6;margin:0 2px;} +.campl-elipsis{border:0} +.campl-pagination a:hover,.campl-pagination .campl-active a {background-color: #f2f2f2;color:#000000;} + +.campl-pagination .campl-active a {cursor: default;font-weight:bold;} + +.campl-pagination-centered {text-align: center;} + +.campl-pagination-right {text-align: right;} + +.campl-pagination .campl-pagination-btn{border:0;width:8px;height:14px;display:block;position:relative;background:#000} +.campl-pagination .campl-pagination-btn:hover{background:#454545} +.campl-pagination .campl-previous-li{left:0;top:50%;margin-top:-6px} +.campl-pagination .campl-next-li{right:0;top:50%;margin-top:-6px} + +/* navigation list */ +.campl-list-container{text-align:center} +.campl-mobile-list-layout{display:none} +.campl-desktop-list-layout{padding-bottom:10px} +.campl-desktop-list-layout li{background:url(../images/interface/bg-navigation-divider.png) center right no-repeat ;padding:0 14px 0 5px;display:inline-block; } +.lt-ie8 .campl-desktop-list-layout li{padding:0 10px 0 5px;display:inline} +.campl-desktop-list-layout li:last-child{background:none} + +.lt-ie8 .campl-desktop-list-layout li{padding:0 4px 0 4px} +.lt-ie8 .campl-desktop-list-layout li a{padding:0 8px 0 0;top:2px} +.lt-ie8 .campl-desktop-list-layout a .campl-list-indicator{bottom:-28px;margin-left:-26px} + +.campl-desktop-list-layout a{position:relative;} +.campl-desktop-list-layout a .campl-list-indicator{display:none;height:21px;width:41px;background:url(../images/interface/bg_list_indicator.png) 0 0 no-repeat;position:absolute;bottom:-35px;left:50%;margin-left:-22px} +.campl-desktop-list-layout a:focus .campl-list-indicator, .campl-desktop-list-layout a:hover .campl-list-indicator, .campl-desktop-list-layout .campl-selected .campl-list-indicator {display:block} + +/* Tables */ +td, th { vertical-align: top; } +table {max-width: 100%;background-color: transparent;border-collapse: collapse;border-spacing: 0;} +.campl-table {width: 100%;margin-bottom: 18px;} +.campl-table th,.campl-table td {padding: 10px 15px;line-height: 18px;text-align: left;vertical-align: top} +.campl-table th {font-weight: bold;} +.campl-table thead th {vertical-align: bottom;} +.campl-table caption + thead tr:first-child th, +.campl-table caption + thead tr:first-child td, +.campl-table colgroup + thead tr:first-child th, +.campl-table colgroup + thead tr:first-child td, +.campl-table thead:first-child tr:first-child th, +.campl-table thead:first-child tr:first-child td {border-top: 0;} + +.campl-table-condensed th,.campl-table-condensed td {padding: 4px 5px;} +.campl-table-bordered {border-left:1px solid #e4e4e4;border-right:1px solid #e4e4e4;border-collapse: separate;border-left: 0;} +.lt-ie8 .campl-table-bordered {border-collapse: collapsed;} + +.campl-table-bordered td { border-left: 1px solid #e4e4e4;} +.campl-table-bordered caption + thead tr:first-child th, +.campl-table-bordered caption + tbody tr:first-child th, +.campl-table-bordered caption + tbody tr:first-child td, +.campl-table-bordered colgroup + thead tr:first-child th, +.campl-table-bordered colgroup + tbody tr:first-child th, +.campl-table-bordered colgroup + tbody tr:first-child td, +.campl-table-bordered thead:first-child tr:first-child th, +.campl-table-bordered tbody:first-child tr:first-child th, +.campl-table-bordered tbody:first-child tr:first-child td {border-top: 0;} + +.campl-table-heading{display:none;font-weight:bold;padding-right: 10px; white-space: wrap;} + +caption{background:#fff;padding:5px 0} +.campl-responsive-table{position:relative} +.campl-expanded-table{width:1074px;} +.campl-full-width-table{width:1024px; max-width:1024px;} + + + +/* Calendar - Zebra_DatePicker: a lightweight jQuery date picker plugin*/ +.Zebra_DatePicker table{width:100%;border:0;} + +.Zebra_DatePicker .dp_footer{display:none} + +.Zebra_DatePicker .dp_daypicker td{ text-align:right;padding:0 3px 9px 6px;background:#e1e1e1;border:1px solid #fff;border-width:0px 1px 0 0;cursor:pointer} +.Zebra_DatePicker .dp_daypicker th{text-align:center;background:#fff;color:#444;font-weight:normal;padding:5px} +.Zebra_DatePicker .dp_daypicker tr{border-bottom:1px solid #fff} +.Zebra_DatePicker .dp_daypicker tr:last-child{border:0} +.Zebra_DatePicker .dp_daypicker tr td:last-child{border-right:0;} + +.Zebra_DatePicker .dp_header{border-top:1px solid #d5d3d2} +.Zebra_DatePicker .dp_header td { color: #FFF } + +.Zebra_DatePicker .dp_header .dp_previous, +.Zebra_DatePicker .dp_header .dp_next{ width: 30px } + +.Zebra_DatePicker .dp_header .dp_caption, +.Zebra_DatePicker .dp_header .dp_previous, +.Zebra_DatePicker .dp_header .dp_next{ text-align:center;background:#fff;color:#444;padding:5px} + +.Zebra_DatePicker .dp_header .dp_hover{ background: #222; color: #FFF; } +.Zebra_DatePicker .dp_header .dp_blocked{ color: #888; cursor: default } + +.Zebra_DatePicker td.dp_not_in_month{ background: #edeaea; color: #b4b3b3; cursor: default } +.Zebra_DatePicker td.dp_selected{ background: #222; color: #FFF !important } + +.Zebra_DatePicker td.dp_current {background:#888888; color: #fff } +.Zebra_DatePicker td.dp_disabled_current{ background: #edeaea; color: #b4b3b3;} +.Zebra_DatePicker td.dp_disabled, .Zebra_DatePicker td.dp_weekend_disabled{background: #edeaea; color: #b4b3b3; cursor: default } +.Zebra_DatePicker td.dp_hover{ background: #222; color: #FFF } + +.js .campl-event-dates{display:none} +.dp_highlighted a{display:block;position:relative;} +.campl-event-indicator{width:5px;height:5px;position:absolute;bottom:-4px;left:-2px;display:block;background:#f3f3f3} + +/* Tabs and pills */ +.campl-nav {margin-left: 0;margin-bottom: 20px;list-style: none;} +.campl-nav > li > a {display: block;} +.campl-nav > li > a:hover {text-decoration: none;background-color: #eeeeee;} +.campl-nav > li > a:visited {border:0} + +.campl-nav-tabs{padding-left:20px;border-bottom:2px solid #0088cc;} +.campl-nav-tabs,.campl-nav-pills {margin-bottom:0} +.lt-ie8 .campl-nav-tabs, .lt-ie8 .campl-nav-pills {zoom: 1;} + +.campl-nav-tabs:before,.campl-nav-pills:before, +.campl-nav-tabs:after,.campl-nav-pills:after {display: table;content: "";line-height: 0;} +.campl-nav-tabs:after,.campl-nav-pills:after {clear: both;} +.campl-nav-tabs > li,.campl-nav-pills > li {float: left;margin:0;word-wrap: break-word;padding-bottom:0} + +.lt-ie8 .campl-nav-tabs > li, .lt-ie8 .campl-nav-pills > li {white-space:nowrap;} + +.campl-nav-tabs > li > a, +.campl-nav-pills > li > a {padding-right: 12px;padding-left: 12px;margin-right: 2px;line-height: 20px;} +.lt-ie8 .campl-nav-pills > li a{padding-bottom:15px} + +.campl-nav-tabs > li > a {padding-top: 8px;padding-bottom: 8px;line-height: 20px;} +.campl-nav-tabs > li > a:hover {border-color: #eeeeee #eeeeee #dddddd;} + +.campl-nav-tabs > .active > a, +.campl-nav-tabs > .active > a:hover {cursor: default;color: #ffffff;background-color: #0088cc;} + +.campl-nav-pills > li > a {padding-top: 8px;padding-bottom: 8px;margin-top: 2px;margin-bottom: 2px;} + +.campl-nav-pills > .active > a, +.campl-nav-pills > .active > a:hover {color: #ffffff;background-color: #0088cc;} + +.tab-content {overflow: auto;} +.tab-content > .tab-pane, .pill-content > .pill-pane {display: none;} +.tab-content > .active,.pill-content > .active {display: block;} + + +/* Notifications */ +.campl-notifications-panel{border-bottom:4px solid red;margin-bottom:20px;position:relative; +-moz-box-shadow: 0 2px 1px 0 #eee;-webkit-box-shadow: 0 2px 1px 0 #eee;box-shadow: 0 2px 1px 0 #eee;} +.campl-notifications-panel p{padding-top:5px} + +.campl-close-panel{width:23px;height:23px;position:absolute;top:4px;right:4px;background:url(../images/interface/btn-close-panel.png) 0 0 no-repeat} + +.campl-notifications-icon{float:right;font-weight:bold;background-repeat:no-repeat;background-position:center left;padding:5px 5px 5px 30px ;margin-bottom:0} +.campl-success-icon{background-image:url(../images/interface/icon-success.png)} +.campl-warning-icon{background-image:url(../images/interface/icon-warning.png);padding-left:35px} +.campl-alert-icon{background-image:url(../images/interface/icon-alert.png)} +.campl-information-icon{background-image:url(../images/interface/icon-information.png)} + + +/* Tooltips */ +#tooltip{text-align: center;color: #f7fcff;background: #4f4f4f;position: absolute;z-index: 100;padding: 15px;border:1px solid #e4e4e4; + -moz-box-shadow: 0 2px 1px 0 #eee;-webkit-box-shadow: 0 2px 1px 0 #eee;box-shadow: 0 2px 1px 0 #eee; + } +/* triangle decoration */ +#tooltip:after{width: 0;height: 0;border-left: 10px solid transparent;border-right: 10px solid transparent;border-top: 10px solid #4f4f4f; + content: '';position: absolute;left: 50%;bottom: -10px;margin-left: -10px; +} +#tooltip.top:after{border-top-color: transparent;border-bottom: 10px solid #f7fcff;top: -20px;bottom: auto;} +#tooltip.left:after{left: 10px;margin: 0;} +#tooltip.right:after{right: 10px;left: auto;margin: 0;} + + +/* Partnershp branding */ +.campl-partnership-branding{border-top:4px solid #eee} +.campl-logo-container{border-bottom:dotted 2px #e4e4e4;position:relative} +.campl-logo-container:last-child{border:0} +.campl-logo-list li{margin-top:25px;margin-right:40px} +.campl-branding-title{position:absolute;top:1px;right:0;} + + +/* Section list */ +.campl-section-list-heading{display:block;border-right:1px solid #e4e4e4;margin-bottom:0} +.campl-section-list-children{border-right:1px solid #e4e4e4;margin-bottom:0} +.campl-section-list{margin-bottom:0} +.campl-section-list li{padding: 5px 0} +.campl-section-list-children li{border-bottom:1px solid #e4e4e4;font-weight:bold} +.campl-section-list-children li li, .campl-section-list-children li:last-child{border:0;font-weight:normal} +.lt-ie9 .campl-section-list-children li.campl-last{border:0;} +.lt-ie9 .campl-section-list-children li li{font-weight:normal} + + +/* 8.0 MEDIA QUERIES ------------------------------------------------------------------------------------------------*/ + +/* larger screens */ +@media only screen and (min-width: 1200px){ + .campl-wrap{width:1177px} +} + +/* larger screens */ +@media only screen and (max-width: 1199px){ + +.campl-wrap{width:100%; } +.campl-homepage-quicklinks{position:static} +} + +/* standard desktop screens */ +@media only screen and (max-width: 1280px){ + .campl-main-logo{padding:15px 10px} + + img.campl-float-right{float:none;margin:10px 0 20px 0;} + img.campl-float-left{float:none;margin:10px 0 20px 0;} + + .campl-desktop-list-layout li{padding:0 11px 0 1px;} +} + + +/* tablet portrait to standard desktop */ +@media (min-width: 768px) and (max-width: 1280px) { + +} +@media (max-width: 1000px) { + /*Change main nav*/ + .campl-global-navigation{width:280px} + .campl-global-navigation li{width:33%} + .campl-global-navigation li a{padding:25px 10px} + .campl-header-container{width:auto;float:left} +} + + +/* font sizes to handle calendar in third column */ +@media (min-width: 1081px) and (max-width: 1280px){ + .campl-column3 .Zebra_DatePicker table{font-size:10px} + .campl-column3 .Zebra_DatePicker .dp_daypicker td{ padding: 0 2px 5px 2px;} + .campl-column3 .campl-event-indicator{bottom:0;left:0;} +} + +@media (min-width: 1024px) and (max-width: 1080px) { + + .campl-site-search .campl-search-input input{width:50%} + + .campl-column3 .Zebra_DatePicker table{font-size:9px} + .campl-column3 .Zebra_DatePicker .dp_daypicker td{ padding: 0 1px 2px 1px;} + .campl-column3 .campl-event-indicator{bottom:1px;left:1px;} +} + + +/* tablet landscape */ +@media only screen and (max-width: 1024px){ + + .campl-site-search {padding-right:15px} + + .campl-pagination a, .campl-elipsis{padding: 8px 15px;line-height: 20px;} + + .campl-pagination .campl-pagination-btn{width:11px;height:22px;} + .campl-pagination .campl-pagination-btn:focus, .campl-pagination .pagination-btn:hover{background:#454545} + .campl-pagination .campl-previous-li{left:0;top:50%;margin-top:-10px} + .campl-pagination .campl-next-li{right:0;top:50%;margin-top:-10px} + + .campl-column3 .Zebra_DatePicker table{font-size:9px} + .campl-column3 .Zebra_DatePicker .dp_daypicker td{ padding: 0 1px 2px 1px;} + .campl-column3 .campl-event-indicator{bottom:1px;left:1px;} + +} + +/* tablet portrait */ +@media (min-width: 768px) and (max-width: 979px) { + .campl-column3 .Zebra_DatePicker table{font-size:8px} + .campl-site-search .campl-search-input input{width:50%} + blockquote.campl-float-right {display:none} +} + +/* anything smaller than tablet portrait ie. mobile devices */ +@media (max-width: 767px) { + + .campl-page-header h1, .campl-carousel-content p, .campl-page-title{font-size: 28px;line-height: 34px;margin-bottom:0} + .campl-page-sub-title h2, .campl-sub-title{font-size: 26px;line-height: 32px;color:#fff;margin-bottom:0} + .campl-homepage-content h2{font-size: 26px;line-height: 32px;margin-bottom:0} + h1, .campl-light-heading{font-size: 26px;line-height: 32px;} + h2, .campl-slide-caption-txt, legend, .campl-highlight-day{font-size: 24px;line-height: 30px;} + + h3{font-size: 22px;line-height: 28px;} + h4,.campl-branding-title, .campl-sub-section-page .campl-page-header h1, + .campl-sub-section-page .campl-page-title {font-size:20px;line-height: 26px} + h5, .campl-vertical-breadcrumb, .campl-enlarged-text, .campl-teaser-title, .campl-primary-cta, .btn, + .campl-local-footer h3, .campl-global-footer h3, .campl-desktop-list-layout, .campl-local-navigation {font-size:18px;line-height: 24px} + h6, .campl-simple-heading, .campl-listing-title, .campl-news-listing .campl-datestamp, .campl-current-date{font-size:17px;line-height: 23px} + .campl-nav-tabs, .campl-nav-pills{font-size:17px;line-height: 20px} + .campl-nav-tabs > li > a, .campl-nav-pills > li > a {line-height:20px} + body, label, input, button, select, textarea, .campl-global-navigation, h4, h5, h6, .campl-topic{font-size: 16px; line-height: 22px;} + .campl-pagination, .highlight, .campl-highlight-alert, .campl-datestamp, .campl-search-term, .campl-topic{font-size:15px;line-height: 20px} + + p, li {margin:0 0 15px 0} + + ul, ol{padding: 0;margin: 15px 0 9px 15px;} + + img.campl-float-right{margin:10px 0 10px 0;} + img.campl-float-left{margin:10px 0 10px 0;} + + blockquote.campl-float-right {display:none} + + textarea, + input[type="text"], + input[type="password"], + input[type="datetime"], + input[type="datetime-local"], + input[type="date"], + input[type="month"], + input[type="time"], + input[type="week"], + input[type="number"], + input[type="email"], + input[type="url"], + input[type="search"], + input[type="tel"], + input[type="color"], + .campl-uneditable-input, + .campl-input-block-level {height: 22px;} + .campl-input-block-level {min-height: 32px;} + + select, input[type="file"] { height: 32px;line-height: 32px;} + + /*reset fixed width columns back to full width for mobile */ + [class*="campl-column"], .campl-column{ + float: none; + display: block; + width: auto; + margin-left: 0; + } + + .campl-wrap{width:100%} + .campl-search-container{padding:20px;} + .campl-no-left-padding{padding: 0 20px 20px 20px} + .campl-recessed-secondary-content {margin-top:0} + .campl-spacing-column, .campl-sub-section-title{display:none} + .campl-homepage-logo-header{display:none} + .campl-footer-navigation{background: none;} + .campl-footer-navigation ul{display:none} + .campl-footer-navigation ul.campl-page-children, .campl-footer-navigation ul.campl-global-footer-links{display:block} + + .campl-horizontal-teaser-img{padding:0 0 20px 0 } + .campl-horizontal-teaser-txt{padding:0 0 0 0 } + + .campl-navigation-open .campl-row{margin-left:260px} + + .campl-site-search{float:right;} + + .js .campl-search-drawer, .campl-close-menu{display:none} + .js .campl-search-open{display:block} + + .campl-site-search .campl-search-input{display:none} + .campl-icon-search-btn{display:block} + + .campl-main-logo {padding:15px 0;margin-left:-89px;position:absolute;left:50%} + .campl-homepage-header .campl-main-logo{display:block} + + .campl-home-link-container{display:block;} + .campl-home-link-container a{display:block;padding:21px 15px;border-right:1px solid #2f2f2f;font-weight:bold;} + .campl-global-navigation-container li a, .campl-global-navigation-header-container li a{background:none} + .campl-home-link-container a, .campl-quicklinks-list li a, .campl-global-navigation-outer { + background:url(../images/interface/bg-mobile-nav-border.png) repeat-x bottom left; + } + .campl-global-navigation-outer {padding-bottom:2px} + + .campl-home-link-container a:focus, .campl-global-navigation-mobile-list a:focus, .js .campl-quicklinks-list a:focus, + .campl-home-link-container a:hover, .campl-global-navigation-mobile-list a:hover, .js .campl-quicklinks-list a:hover{text-decoration:none} + + .campl-home-link-container, .campl-global-navigation-mobile-list, .campl-quicklinks-list li {margin:0; + background:#323232; + background-image: linear-gradient(bottom, rgb(50,50,50) 17%, rgb(59,59,59) 59%); + background-image: -o-linear-gradient(bottom, rgb(50,50,50) 17%, rgb(59,59,59) 59%); + background-image: -moz-linear-gradient(bottom, rgb(50,50,50) 17%, rgb(59,59,59) 59%); + background-image: -webkit-linear-gradient(bottom, rgb(50,50,50) 17%, rgb(59,59,59) 59%); + background-image: -ms-linear-gradient(bottom, rgb(50,50,50) 17%, rgb(59,59,59) 59%); + + background-image: -webkit-gradient( + linear, + left bottom, + left top, + color-stop(0.17, rgb(50,50,50)), + color-stop(0.59, rgb(59,59,59)) + );} + + .campl-home-link-container:hover, .campl-quicklinks-list li:hover, + .campl-home-link-container:focus, .campl-quicklinks-list li:focus{ + background:#2a2a2a; + background-image: linear-gradient(bottom, rgb(36,36,36) 20%, rgb(42,42,42) 80%); + background-image: -o-linear-gradient(bottom, rgb(36,36,36) 20%, rgb(42,42,42) 80%); + background-image: -moz-linear-gradient(bottom, rgb(36,36,36) 20%, rgb(42,42,42) 80%); + background-image: -webkit-linear-gradient(bottom, rgb(36,36,36) 20%, rgb(42,42,42) 80%); + background-image: -ms-linear-gradient(bottom, rgb(36,36,36) 20%, rgb(42,42,42) 80%); + + background-image: -webkit-gradient( + linear, + left bottom, + left top, + color-stop(0.2, rgb(36,36,36)), + color-stop(0.8, rgb(42,42,42)) + ); + } + + .campl-global-navigation-header-container{padding:0 20px 0;margin:0} + .campl-global-navigation-container{padding:0 20px 20px;margin:0;border-right:0} + .campl-global-navigation-header-container li, .campl-global-navigation-container li {padding:0;border-bottom:2px solid #212121;margin:0} + .campl-global-navigation-header-container li{padding:0} + .campl-global-navigation-container li {padding:0 ;margin:0} + + .campl-global-navigation-container {padding:0} + .campl-global-navigation-container.last li{padding:0} + + .campl-global-navigation-header-container li a{position:relative;left:-20px;font-weight:bold;padding:15px;display:block;margin-right:-40px} + .js .campl-quicklinks-list a, .js .campl-quicklinks-list a:link, .js .campl-quicklinks-list a:visited{ padding: 15px 15px 20px;} + + .campl-global-navigation-container li a{display:block;padding:10px 20px} + + .campl-global-navigation-header-container li a:focus, .campl-global-navigation-header-container li a:hover, + .campl-global-navigation-container li a:focus, .campl-global-navigation-container li a:hover{ + background:#292929; + background-image: linear-gradient(bottom, rgb(40,40,40) 20%, rgb(41,41,41) 80%); + background-image: -o-linear-gradient(bottom, rgb(40,40,40) 20%, rgb(41,41,41) 80%); + background-image: -moz-linear-gradient(bottom, rgb(40,40,40) 20%, rgb(41,41,41) 80%); + background-image: -webkit-linear-gradient(bottom, rgb(40,40,40) 20%, rgb(41,41,41) 80%); + background-image: -ms-linear-gradient(bottom, rgb(40,40,40) 20%, rgb(41,41,41) 80%); + + background-image: -webkit-gradient( + linear, + left bottom, + left top, + color-stop(0.2, rgb(40,40,40)), + color-stop(0.8, rgb(41,41,41)) + );} + + .campl-global-navigation-container{font-weight:normal} + + .campl-quicklinks-list{padding:3px 0 0 0 ;background:url(../images/interface/bg-mobile-nav-border.png) repeat-x top left;font-weight:bold;position:relative;top:-2px} + + .campl-quicklinks-list li{padding:0;border-bottom:0} + .campl-quicklinks-list li a{padding:10px 10px 10px 0;} + + + .js .campl-quicklinks-list a, .js .campl-quicklinks-list a:link, .js .campl-quicklinks-list a:visited{background-position:bottom left} + + + .campl-global-navigation-container p, .campl-global-navigation-tertiary, .campl-global-navigation, .js .campl-quicklinks, .campl-tertiary-navigation{display:none} + .js .campl-quicklinks-list, .js .campl-open-menu, .js .campl-global-navigation-drawer, .js .campl-global-navigation-outer{display:block} + + .campl-global-navigation-drawer{width:260px;position:absolute;left:-260px;top:-1px;} + + /* styles for menu opening navigation - ipad portrait and lower */ + .js .campl-local-navigation li.campl-back-link, .js .campl-local-navigation li.campl-back-link a {display: block;font-size: inherit;height: auto;visibility: visible;position:static} + + .js .campl-local-navigation-container a{padding: 15px 30px 15px 25px;} + .js .campl-local-navigation-container li.campl-sub>a{background-image:none; padding: 15px 30px 15px 25px;} + + .js .campl-menu-btn{margin:0;display:block;} + + .campl-menu-indicator{height:20px;width:20px;position:absolute;top:50%;left:10px;display:block;margin-top:-10px;border-radius:1px; -webkit-border-radius:1px;background-repeat:no-repeat;background-position:50% 50%} + .campl-fwd-btn{right:10px;left:auto;background-image:url(../images/interface/icon-fwd-btn.png) } + .campl-back-btn{left:25px;background-image:url(../images/interface/icon-back-btn.png)} + + .js .campl-menu-btn span{padding:15px 0 15px 25px;display:block} + .js .campl-menu-btn a{padding:0;position:relative;} + .js .campl-menu-btn .campl-menu-btn-arrow{width:53px;height:53px;display:block;position:absolute;top:0;right:0;padding:0;background-repeat:no-repeat;background-position:50% 50%} + + .js .campl-local-navigation .campl-local-navigation-container{position:absolute;left:-9999px;} + .js .campl-local-navigation ul{margin:0;width:480px;position:absolute;} + .js .campl-local-navigation li{float:none;} + .js .campl-local-navigation li.campl-title{display:block} + .js .campl-local-navigation li.campl-title, .js .campl-local-navigation li.campl-current-page > a{font-weight:bold} + .js .campl-local-navigation li.campl-title a{cursor:default} + .js .campl-local-navigation li.campl-current-page > a{background-image:url(../images/interface/icon-fwd-btn.png);background-position: 25px 50%;background-repeat: no-repeat;padding-left:40px } + + .js .campl-local-navigation ul li ul{left:480px;top:0;padding-top:0} + + .js .campl-local-navigation ul li.campl-current>ul, + .js .campl-local-navigation ul li.campl-current ul li.campl-current>ul, + .js .campl-local-navigation ul li.campl-current ul li.campl-current ul li.campl-current>ul, + .js .campl-local-navigation ul li.campl-current ul li.campl-current ul li.campl-current ul li.campl-current>ul, + .js .campl-local-navigation ul li.campl-current ul li.campl-current ul li.campl-current ul li.campl-current ul li.campl-current>ul, + .js .campl-local-navigation ul li.campl-current ul li.campl-current ul li.campl-current ul li.campl-current ul li.campl-current ul li.campl-current>ul{display:block} + + .js .campl-local-navigation ul li ul, + .js .campl-local-navigation ul li.campl-current ul li ul, + .js .campl-local-navigation ul li.campl-current ul li.campl-current ul li ul, + .js .campl-local-navigation ul li.campl-current ul li.campl-current ul li.campl-current ul li ul, + .js .campl-local-navigation ul li.campl-current ul li.campl-current ul li.campl-current ul li.campl-current ul li ul, + .js .campl-local-navigation ul li.campl-current ul li.campl-current ul li.campl-current ul li.campl-current ul li.campl-current ul li ul{display:none} + + /* styles for sub and title links */ + .js .campl-local-navigation li a{display:block;color:#fff;text-decoration:none;} + .js .campl-local-navigation-container li.campl-back-link a{position:relative;padding: 15px 30px 15px 50px;} + + .campl-co-branding-logo{float:none} + + .campl-open-menu{margin: 15px;} + + .campl-breadcrumb{display:none} + .campl-mobile-parent{display:block;} + .campl-section-page .campl-mobile-parent, .campl-sub-section-page .campl-mobile-parent{display:none} + + .campl-listing-txt{padding:20px 0 0 } + .campl-listing-img{padding:0 0 10px} + + .campl-event-details-dl dt, .campl-event-details-dl dd, .campl-event-details-dl{float:none} + .campl-event-details, .campl-column6 .campl-event-details{background-image:none} + + .campl-current-date{padding:7px 0 8px 0} + + .campl-slide-caption{opacity:1;position:static;} + + .campl-carousel{overflow:hidden;background:#000} + .campl-carousel-controls{position:absolute;top:0;bottom:auto;left:0;right:auto;width:100%} + .campl-carousel-controls li{margin:0;width:50px;float:none;height:auto;position:absolute;top:0;} + .campl-slide-caption{background:#000} + .campl-carousel-control-btn{overflow:auto;width:auto;opacity:0.8} + + .campl-carousel-content{text-align:left} + + .campl-next-li{right:0;left:auto;} + + .campl-event-cta-container{padding:30px 20px 0 20px} + .campl-events-cta {float:none} + .campl-events-cta li{margin-left:0;float:none;margin-bottom:30px} + + .campl-table th, .campl-table td {line-height: 24px} + + /* Force table to not be like tables anymore */ + .campl-vertical-stacking-table table, .campl-vertical-stacking-table thead, .campl-vertical-stacking-table tbody, .campl-vertical-stacking-table th, .campl-vertical-stacking-table td, .campl-vertical-stacking-table tr { + display: block; + } + + /* Hide table headers (but not display: none;, for accessibility) */ + .campl-vertical-stacking-table thead tr { position: absolute;top: -9999px;left: -9999px;} + + .campl-vertical-stacking-table tr { border: 1px solid #ccc; } + + /* Behave like a "row" */ + .campl-vertical-stacking-table td { border: none;border-bottom: 1px solid #e4e4e4; } + .campl-vertical-stacking-table td:before { white-space: wrap;} + .campl-table-heading{display:block;} + + .campl-nav-tabs{padding-left:0} + + .campl-column3 .Zebra_DatePicker table{font-size:16px} + .campl-column3 .Zebra_DatePicker .dp_daypicker td{ padding: 0 3px 9px 6px;} + + .campl-overlay{right:auto;left:0} + + .campl-mobile-list-layout{display:block} + .campl-desktop-list-layout{display:none} + + .campl-notifications-container{padding:10px 20px} + .campl-notifications-icon {float:none} + .campl-close-panel{top:10px;right:20px} + + .campl-section-list li li{padding: 0 0 10px} + .campl-section-list li li li{padding: 5px 0 5px} + +} + +/* iphone landscape */ +@media (max-width: 480px) {} + + +/* 9.0 COLOUR THEMES ------------------------------------------------------------------------------------------------*/ +/* COLOUR LEGEND */ + +/* Default - turquoise */ +.campl-page-header, +.campl-local-footer{background:#106470} +.campl-local-footer h3 a{color:#91b9a4;} +.campl-page-sub-title, +.campl-banner-content{background:#1e7680} +.campl-tertiary-navigation{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAM0lEQVQYV2NkQAM3P3/7r87LxYgsDBLDEMCmCCQGV4jLJJhGsEJCikBqGIlRBFY4nDwDAIeHT431w+WIAAAAAElFTkSuQmCC);min-height:100%} + +.campl-carousel-control-btn{background:#28828a} +.campl-carousel-control-btn:hover{background:#0c5963} + +.campl-homepage-carousel .campl-slide{background:#28828a;color:#fff} +.campl-partnership-branding{border-color:#28828a} + +.campl-highlight-date{background:#28828a} +.campl-focus-teaser{background:#106470;} +.campl-focus-link{background-color:#0c5963} +.campl-main-content h1, +.campl-main-content h2 {color:#106470 } + +table, +.campl-table-bordered {border-bottom:2px solid #28828a;} +th{background:#28828a;color:#fff} +th.campl-alt{background:#fff;color:#28828a} +.campl-table-striped tbody tr:nth-child(odd) td, +.campl-table-striped tbody tr:nth-child(odd) th { background-color: #d2f3e1;} +.campl-table-bordered th{border-left: 1px solid #d2f3e1;} + + +/* local navigation */ +.campl-local-navigation {background:#0c5963;border-bottom:1px solid #106470;border-top:1px solid #106470} +.campl-local-navigation a{background:#0c5963;border-right:1px solid #106470;border-bottom:1px solid #106470;border-top:1px solid #106470} +.campl-local-navigation a:focus, +.campl-local-navigation a:hover, +.campl-local-navigation a:active{background-color:#1e7680;} +.campl-local-navigation a.campl-selected{background:#28828a} +.campl-local-navigation li.campl-hover a{background-color:#003a41;border-bottom:0} +.campl-local-navigation li.campl-sub li a{background-color: #003a41;border-right:0; } +.campl-local-navigation li.campl-sub li li a{border-bottom:1px solid #0c5963;} +.campl-local-navigation li.campl-sub li:last-child a {border-bottom:0;} + +.js .campl-local-navigation li.campl-sub>a:focus, +.js .campl-local-navigation li.campl-sub>a:hover, +.js .campl-local-navigation li.campl-sub>a:active{background-color:#0c5963;} + +.js .campl-local-navigation li.campl-sub a:focus, +.js .campl-local-navigation li.campl-sub a:hover{background-color: #003a41} +.js .campl-local-navigation li.campl-sub li a:focus, +.js .campl-local-navigation li.campl-sub li a:hover{background-color: #0c5963;} + + +/* Theme 1 - blue + #002e55 dark highlight + #003e74 page header colours/global footer + #004e8f carousel btn hover + #004e8f main local nav bar + #005dab lighter highlight + #0072cf selected state/carousel text bg + #68ace5 pale tone - lightest highlight/footer headings + #d2e4f3 pale table bg +*/ + +.campl-theme-1 .campl-page-header, +.campl-theme-1 .campl-local-footer{background:#003e74} +.campl-theme-1 .campl-local-footer h3 a{color:#68ace5;} +.campl-theme-1 .campl-page-sub-title, +.campl-theme-1 .campl-banner-content{background:#005dab} +.campl-theme-1 .campl-tertiary-navigation{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAM0lEQVQYV2NkQAM3X/34ry7GwYgsDBLDEMCmCCQGV4jLJJhGsEJCikBqGIlRBFY4nDwDAHbOT3++G7jxAAAAAElFTkSuQmCC);min-height:100%} + +.campl-theme-1 .campl-carousel-control-btn{background:#0072cf} +.campl-theme-1 .campl-carousel-control-btn:hover{background:#004e8f} + +.campl-theme-1 .campl-homepage-carousel .campl-slide{background:#0072cf;color:#fff} +.campl-theme-1 .campl-partnership-branding{border-color:#0072cf} + +.campl-theme-1 .campl-highlight-date{background:#0072cf} +.campl-theme-1 .campl-focus-teaser{background:#003e74;} +.campl-theme-1 .campl-focus-link{background-color:#004e8f} +.campl-theme-1 .campl-main-content h1, +.campl-theme-1 .campl-main-content h2 {color:#003e74 } + +.campl-theme-1 table, +.campl-theme-1 .campl-table-bordered {border-bottom:2px solid #0072cf;} +.campl-theme-1 th{background:#0072cf;color:#fff} +.campl-theme-1 th.campl-alt{background:#fff;color:#0072cf} +.campl-theme-1 .campl-table-striped tbody tr:nth-child(odd) td, +.campl-theme-1 .campl-table-striped tbody tr:nth-child(odd) th { background-color: #d2e4f3;} +.campl-theme-1 .campl-table-bordered th{border-left: 1px solid #d2e4f3;} + + +/* local navigation */ +.campl-theme-1 .campl-local-navigation {background:#004e8f;border-bottom:1px solid #003e74;border-top:1px solid #003e74} +.campl-theme-1 .campl-local-navigation a{background:#004e8f;border-right:1px solid #003e74;border-bottom:1px solid #003e74;border-top:1px solid #003e74} +.campl-theme-1 .campl-local-navigation a:focus, +.campl-theme-1 .campl-local-navigation a:hover, +.campl-theme-1 .campl-local-navigation a:active{background-color:#005dab;} +.campl-theme-1 .campl-local-navigation a.campl-selected{background:#0072cf } +.campl-theme-1 .campl-local-navigation li.campl-hover a{background-color:#002e55} +.campl-theme-1 .campl-local-navigation li.campl-sub li a{background-color: #002e55;border-right:0; } +.campl-theme-1 .campl-local-navigation li.campl-sub li li a{border-bottom:1px solid #004e8f;} +.campl-theme-1 .campl-local-navigation li.campl-sub li:last-child a {border-bottom:0;} + +.js .campl-theme-1 .campl-local-navigation li.campl-sub>a:focus, +.js .campl-theme-1 .campl-local-navigation li.campl-sub>a:hover, +.js .campl-theme-1 .campl-local-navigation li.campl-sub>a:active{background-color:#004e8f;} + +.js .campl-theme-1 .campl-local-navigation li.campl-sub a:focus, +.js .campl-theme-1 .campl-local-navigation li.campl-sub a:hover{background-color: #002e55} +.js .campl-theme-1 .campl-local-navigation li.campl-sub li a:focus, +.js .campl-theme-1 .campl-local-navigation li.campl-sub li a:hover{background-color: #004e8f;} + + +/* Theme 2 - turquoise + #003a41 dark highlight + #106470 page header colours/global footer + #0c5963 carousel btn hover + #0c5963 main local nav bar + #1e7680 lighter highlight + #28828a selected state/carousel text bg + #91b9a4 pale tone - lightest highlight/footer headings + #d2f3e1 pale - table bg +*/ +.campl-theme-2 .campl-page-header, +.campl-theme-2 .campl-local-footer{background:#106470} +.campl-theme-2 .campl-local-footer h3 a{color:#91b9a4;} +.campl-theme-2 .campl-page-sub-title, +.campl-theme-2 .campl-banner-content{background:#1e7680} +.campl-theme-2 .campl-tertiary-navigation{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAM0lEQVQYV2NkQAM3P3/7r87LxYgsDBLDEMCmCCQGV4jLJJhGsEJCikBqGIlRBFY4nDwDAIeHT431w+WIAAAAAElFTkSuQmCC);min-height:100%} + +.campl-theme-2 .campl-carousel-control-btn{background:#28828a} +.campl-theme-2 .campl-carousel-control-btn:hover{background:#0c5963} + +.campl-theme-2 .campl-homepage-carousel .campl-slide{background:#28828a;color:#fff} +.campl-theme-2 .campl-partnership-branding{border-color:#28828a} + +.campl-theme-2 .campl-highlight-date{background:#28828a} +.campl-theme-2 .campl-focus-teaser{background:#106470;} +.campl-theme-2 .campl-focus-link{background-color:#0c5963} +.campl-theme-2 .campl-main-content h1, +.campl-theme-2 .campl-main-content h2 {color:#106470 } + +.campl-theme-2 table, +.campl-theme-2 .campl-table-bordered {border-bottom:2px solid #28828a;} +.campl-theme-2 th{background:#28828a;color:#fff} +.campl-theme-2 th.campl-alt{background:#fff;color:#28828a} +.campl-theme-2 .campl-table-striped tbody tr:nth-child(odd) td, +.campl-theme-2 .campl-table-striped tbody tr:nth-child(odd) th { background-color: #d2f3e1;} +.campl-theme-2 .campl-table-bordered th{border-left: 1px solid #d2f3e1;} + + +/* local navigation */ +.campl-theme-2 .campl-local-navigation {background:#0c5963;border-bottom:1px solid #106470;border-top:1px solid #106470} +.campl-theme-2 .campl-local-navigation a{background:#0c5963;border-right:1px solid #106470;border-bottom:1px solid #106470;border-top:1px solid #106470} +.campl-theme-2 .campl-local-navigation a:focus, +.campl-theme-2 .campl-local-navigation a:hover, +.campl-theme-2 .campl-local-navigation a:active{background-color:#1e7680;} +.campl-theme-2 .campl-local-navigation a.campl-selected{background:#28828a} +.campl-theme-2 .campl-local-navigation li.campl-hover a{background-color:#003a41} +.campl-theme-2 .campl-local-navigation li.campl-sub li a{background-color: #003a41;border-right:0; } +.campl-theme-2 .campl-local-navigation li.campl-sub li li a{border-bottom:1px solid #0c5963;} +.campl-theme-2 .campl-local-navigation li.campl-sub li:last-child a {border-bottom:0;} + +.js .campl-theme-2 .campl-local-navigation li.campl-sub>a:focus, +.js .campl-theme-2 .campl-local-navigation li.campl-sub>a:hover, +.js .campl-theme-2 .campl-local-navigation li.campl-sub>a:active{background-color:#0c5963;} + +.js .campl-theme-2 .campl-local-navigation li.campl-sub a:focus, +.js .campl-theme-2 .campl-local-navigation li.campl-sub a:hover{background-color: #003a41} +.js .campl-theme-2 .campl-local-navigation li.campl-sub li a:focus, +.js .campl-theme-2 .campl-local-navigation li.campl-sub li a:hover{background-color: #0c5963;} + + +/* Theme 3 - purple + #35254a dark highlight + #422e5d page header colours/global footer + #6a2068 carousel btn hover - should i change this? + #612d70 main local nav bar + #782c7e lighter highlight + #8f2b8c selected state/carousel text bg + #af95a3 pale tone - lightest highlight/footer headings + #f4d3e5 pale table bg + */ +.campl-theme-3 .campl-page-header, +.campl-theme-3 .campl-local-footer{background:#422e5d} +.campl-theme-3 .campl-local-footer h3 a{color:#af95a3;} +.campl-theme-3 .campl-page-sub-title, +.campl-theme-3 .campl-banner-content{background:#782c7e} +.campl-theme-3 .campl-tertiary-navigation{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAIklEQVQIW2NkQALv7r/7zwjjgzhCikKMYAEYB8RmROaABAAPAg+/3tdmjQAAAABJRU5ErkJggg==);min-height:100%} + +.campl-theme-3 .campl-carousel-control-btn{background:#8f2b8c} +.campl-theme-3 .campl-carousel-control-btn:hover{background:#6a2068} + +.campl-theme-3 .campl-homepage-carousel .campl-slide{background:#8f2b8c;color:#fff} +.campl-theme-3 .campl-partnership-branding{border-color:#8f2b8c} + +.campl-theme-3 .campl-highlight-date{background:#8f2b8c} +.campl-theme-3 .campl-focus-teaser{background:#422e5d;} +.campl-theme-3 .campl-focus-link{background-color:#612d70} +.campl-theme-3 .campl-main-content h1, +.campl-theme-3 .campl-main-content h2 {color:#422e5d } + +.campl-theme-3 table, +.campl-theme-3 .campl-table-bordered {border-bottom:2px solid #8f2b8c;} +.campl-theme-3 th{background:#8f2b8c;color:#fff} +.campl-theme-3 th.campl-alt{background:#fff;color:#8f2b8c} +.campl-theme-3 .campl-table-striped tbody tr:nth-child(odd) td, +.campl-theme-3 .campl-table-striped tbody tr:nth-child(odd) th { background-color: #f4d3e5;} +.campl-theme-3 .campl-table-bordered th{border-left: 1px solid #f4d3e5;} + + +/* local navigation */ +.campl-theme-3 .campl-local-navigation {background:#612d70;border-bottom:1px solid #422E5D;border-top:1px solid #422E5D} +.campl-theme-3 .campl-local-navigation a{background:#612d70;border-right:1px solid #422E5D;border-bottom:1px solid #422E5D;border-top:1px solid #422E5D} +.campl-theme-3 .campl-local-navigation a:focus, +.campl-theme-3 .campl-local-navigation a:hover, +.campl-theme-3 .campl-local-navigation a:active{background-color:#782c7e;} +.campl-theme-3 .campl-local-navigation a.campl-selected{background:#8f2b8c } +.campl-theme-3 .campl-local-navigation li.campl-hover a{background-color:#35254a} +.campl-theme-3 .campl-local-navigation li.campl-sub li a{background-color: #35254a;border-right:0; } +.campl-theme-3 .campl-local-navigation li.campl-sub li li a{border-bottom:1px solid #612d70;} +.campl-theme-3 .campl-local-navigation li.campl-sub li:last-child a {border-bottom:0;} + +.js .campl-theme-3 .campl-local-navigation li.campl-sub>a:focus, +.js .campl-theme-3 .campl-local-navigation li.campl-sub>a:hover, +.js .campl-theme-3 .campl-local-navigation li.campl-sub>a:active{background-color:#612d70;} + +.js .campl-theme-3 .campl-local-navigation li.campl-sub a:focus, +.js .campl-theme-3 .campl-local-navigation li.campl-sub a:hover{background-color: #35254a} +.js .campl-theme-3 .campl-local-navigation li.campl-sub li a:focus, +.js .campl-theme-3 .campl-local-navigation li.campl-sub li a:hover{background-color: #612d70;} + + +/* Theme 4 - green + #222f16 dark highlight + #304220 page header colours/global footer + #355918 carousel btn hover + #355918 main local nav bar + #4b7016 lighter highlight + #57831a selected state + #aab300 pale tone - lightest highlight + #f4f6cd pale table bg + */ +.campl-theme-4 .campl-page-header, +.campl-theme-4 .campl-local-footer{background:#304220} +.campl-theme-4 .campl-local-footer h3 a{color:#aab300;} +.campl-theme-4 .campl-page-sub-title, +.campl-theme-4 .campl-banner-content{background:#4b701c} +.campl-theme-4 .campl-tertiary-navigation{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAM0lEQVQYV2NkQAPPPt39L8WnzIgsDBLDEMCmCCQGV4jLJJhGsEJCikBqGIlRBFY4nDwDAGjMT3NzIr6SAAAAAElFTkSuQmCC);min-height:100%} + +.campl-theme-4 .campl-carousel-control-btn{background:#57831a} +.campl-theme-4 .campl-carousel-control-btn:hover{background:#355918} + +.campl-theme-4 .campl-homepage-carousel .campl-slide{background:#57831a;color:#fff} +.campl-theme-4 .campl-partnership-branding{border-color:#57831a} + +.campl-theme-4 .campl-highlight-date{background:#57831a} +.campl-theme-4 .campl-focus-teaser{background:#304220;} +.campl-theme-4 .campl-focus-link{background-color:#355918} +.campl-theme-4 .campl-main-content h1, +.campl-theme-4 .campl-main-content h2 {color:#304220 } + +.campl-theme-4 table, +.campl-theme-4 .campl-table-bordered {border-bottom:2px solid #57831a;} +.campl-theme-4 th{background:#57831a;color:#fff} +.campl-theme-4 th.campl-alt{background:#fff;color:#57831a} +.campl-theme-4 .campl-table-striped tbody tr:nth-child(odd) td, +.campl-theme-4 .campl-table-striped tbody tr:nth-child(odd) th { background-color: #f4f6cd;} +.campl-theme-4 .campl-table-bordered th{border-left: 1px solid #f4f6cd;} + +/* local navigation */ +.campl-theme-4 .campl-local-navigation {background:#355918;border-bottom:1px solid #304220;border-top:1px solid #304220} +.campl-theme-4 .campl-local-navigation a{background:#355918;border-right:1px solid #304220;border-bottom:1px solid #304220;border-top:1px solid #304220} +.campl-theme-4 .campl-local-navigation a:focus, +.campl-theme-4 .campl-local-navigation a:hover, +.campl-theme-4 .campl-local-navigation a:active{background-color:#4b701c;} +.campl-theme-4 .campl-local-navigation a.campl-selected{background:#57831a } +.campl-theme-4 .campl-local-navigation li.campl-hover a{background-color:#222f16} +.campl-theme-4 .campl-local-navigation li.campl-sub li a{background-color: #222f16;border-right:0; } +.campl-theme-4 .campl-local-navigation li.campl-sub li li a{border-bottom:1px solid #355918;} +.campl-theme-4 .campl-local-navigation li.campl-sub li:last-child a {border-bottom:0;} + +.js .campl-theme-4 .campl-local-navigation li.campl-sub>a:focus, +.js .campl-theme-4 .campl-local-navigation li.campl-sub>a:hover, +.js .campl-theme-4 .campl-local-navigation li.campl-sub>a:active{background-color:#355918;} + +.js .campl-theme-4 .campl-local-navigation li.campl-sub a:focus, +.js .campl-theme-4 .campl-local-navigation li.campl-sub a:hover{background-color: #222f16} +.js .campl-theme-4 .campl-local-navigation li.campl-sub li a:focus, +.js .campl-theme-4 .campl-local-navigation li.campl-sub li a:hover{background-color: #355918;} + + +/* Theme 5 - orange + #772801 dark highlight + #c44101 page header colours/global footer + #ab3901 carousel btn hover + #ab3901 main local nav bar + #d45812 lighter highlight + #df671d selected state + #f3bd48 pale tone - lightest highlight + #f5e7ca pale table bg + */ +.campl-theme-5 .campl-page-header, +.campl-theme-5 .campl-local-footer{background:#c44101} +.campl-theme-5 .campl-local-footer h3 a{color:#f3bd48;} +.campl-theme-5 .campl-page-sub-title, +.campl-theme-5 .campl-banner-content{background:#d45812} +.campl-theme-5 .campl-tertiary-navigation{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAM0lEQVQYV2NkQAN/Xt3/zyKmyIgsDBLDEMCmCCQGV4jLJJhGsEJCikBqGIlRBFY4nDwDAI8kT5P7ti8QAAAAAElFTkSuQmCC);min-height:100%} + +.campl-theme-5 .campl-carousel-control-btn{background:#df671d} +.campl-theme-5 .campl-carousel-control-btn:hover{background:#ab3901} + +.campl-theme-5 .campl-homepage-carousel .campl-slide{background:#df671d;color:#fff} +.campl-theme-5 .campl-partnership-branding{border-color:#df671d} + +.campl-theme-5 .campl-highlight-date{background:#df671d} +.campl-theme-5 .campl-focus-teaser{background:#c44101;} +.campl-theme-5 .campl-focus-link{background-color:#ab3901} +.campl-theme-5 .campl-main-content h1, +.campl-theme-5 .campl-main-content h2 {color:#c44101 } + +.campl-theme-5 table, +.campl-theme-5 .campl-table-bordered {border-bottom:2px solid #df671d;} +.campl-theme-5 th{background:#df671d;color:#fff} +.campl-theme-5 th.campl-alt{background:#fff;color:#df671d} +.campl-theme-5 .campl-table-striped tbody tr:nth-child(odd) td, +.campl-theme-5 .campl-table-striped tbody tr:nth-child(odd) th { background-color: #f5e7ca;} +.campl-theme-5 .campl-table-bordered th{border-left: 1px solid #f5e7ca;} + + +/* local navigation */ +.campl-theme-5 .campl-local-navigation {background:#ab3901;border-bottom:1px solid #c44101;border-top:1px solid #c44101} +.campl-theme-5 .campl-local-navigation a{background:#ab3901;border-right:1px solid #c44101;border-bottom:1px solid #c44101;border-top:1px solid #c44101} +.campl-theme-5 .campl-local-navigation a:focus, +.campl-theme-5 .campl-local-navigation a:hover, +.campl-theme-5 .campl-local-navigation a:active{background-color:#d45812;} +.campl-theme-5 .campl-local-navigation a.campl-selected{background:#df671d } +.campl-theme-5 .campl-local-navigation li.campl-hover a{background-color:#772801} +.campl-theme-5 .campl-local-navigation li.campl-sub li a{background-color: #772801;border-right:0; } +.campl-theme-5 .campl-local-navigation li.campl-sub li li a{border-bottom:1px solid #ab3901;} +.campl-theme-5 .campl-local-navigation li.campl-sub li:last-child a {border-bottom:0;} + +.js .campl-theme-5 .campl-local-navigation li.campl-sub>a:focus, +.js .campl-theme-5 .campl-local-navigation li.campl-sub>a:hover, +.js .campl-theme-5 .campl-local-navigation li.campl-sub>a:active{background-color:#ab3901;} + +.js .campl-theme-5 .campl-local-navigation li.campl-sub a:focus, +.js .campl-theme-5 .campl-local-navigation li.campl-sub a:hover{background-color: #772801} +.js .campl-theme-5 .campl-local-navigation li.campl-sub li a:focus, +.js .campl-theme-5 .campl-local-navigation li.campl-sub li a:hover{background-color: #ab3901;} + + +/* Theme 6 - red + #6c112a dark highlight + #851735 page header colours/global footer + #a51137 carousel btn hover + #a51137 main local nav bar + #be1741 lighter highlight + #d61746 selected state + #eb99a9 pale tone - lightest highlight + #f8e1e5 pale table bg + */ +.campl-theme-6 .campl-page-header, +.campl-theme-6 .campl-local-footer{background:#851735} +.campl-theme-6 .campl-local-footer h3 a{color:#eb99a9;} +.campl-theme-6 .campl-page-sub-title, +.campl-theme-6 .campl-banner-content{background:#be1741} +.campl-theme-6 .campl-tertiary-navigation{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAM0lEQVQYV2NkQAM/bz36z64mx4gsDBLDEMCmCCQGV4jLJJhGsEJCikBqGIlRBFY4nDwDAGjoT3MabQ+4AAAAAElFTkSuQmCC);min-height:100%} + +.campl-theme-6 .campl-carousel-control-btn{background:#d61746} +.campl-theme-6 .campl-carousel-control-btn:hover{background:#a51137} + +.campl-theme-6 .campl-homepage-carousel .campl-slide{background:#d61746;color:#fff} +.campl-theme-6 .campl-partnership-branding{border-color:#d61746} + +.campl-theme-6 .campl-highlight-date{background:#d61746} +.campl-theme-6 .campl-focus-teaser{background:#851735;} +.campl-theme-6 .campl-focus-link{background-color:#a51137} +.campl-theme-6 .campl-main-content h1, +.campl-theme-6 .campl-main-content h2 {color:#851735 } + +.campl-theme-6 table, +.campl-theme-6 .campl-table-bordered {border-bottom:2px solid #d61746;} +.campl-theme-6 th{background:#d61746;color:#fff} +.campl-theme-6 th.campl-alt{background:#fff;color:#d61746} +.campl-theme-6 .campl-table-striped tbody tr:nth-child(odd) td, +.campl-theme-6 .campl-table-striped tbody tr:nth-child(odd) th { background-color: #f8e1e5;} +.campl-theme-6 .campl-table-bordered th{border-left: 1px solid #f8e1e5;} + +/* local navigation */ +.campl-theme-6 .campl-local-navigation {background:#a51137;border-bottom:1px solid #851735;border-top:1px solid #851735} +.campl-theme-6 .campl-local-navigation a{background:#a51137;border-right:1px solid #851735;border-bottom:1px solid #851735;border-top:1px solid #851735} +.campl-theme-6 .campl-local-navigation a:focus, +.campl-theme-6 .campl-local-navigation a:hover, +.campl-theme-6 .campl-local-navigation a:active{background-color:#be1741;} +.campl-theme-6 .campl-local-navigation a.campl-selected{background:#d61746} +.campl-theme-6 .campl-local-navigation li.campl-hover a{background-color:#6c112a} +.campl-theme-6 .campl-local-navigation li.campl-sub li a{background-color: #6c112a;border-right:0; } +.campl-theme-6 .campl-local-navigation li.campl-sub li li a{border-bottom:1px solid #a51137;} +.campl-theme-6 .campl-local-navigation li.campl-sub li:last-child a {border-bottom:0;} + +.js .campl-theme-6 .campl-local-navigation li.campl-sub>a:focus, +.js .campl-theme-6 .campl-local-navigation li.campl-sub>a:hover, +.js .campl-theme-6 .campl-local-navigation li.campl-sub>a:active{background-color:#a51137;} + +.js .campl-theme-6 .campl-local-navigation li.campl-sub a:focus, +.js .campl-theme-6 .campl-local-navigation li.campl-sub a:hover{background-color: #6c112a} +.js .campl-theme-6 .campl-local-navigation li.campl-sub li a:focus, +.js .campl-theme-6 .campl-local-navigation li.campl-sub li a:hover{background-color: #a51137;} + + + + + + +/* styles for menu opening navigation - ipad portrait and lower */ +@media only screen and (max-width:767px){ + + /* generic mobile local nav styles */ + .campl-local-navigation{border:0} + .js .campl-closed .campl-menu-btn-arrow{background-image:url(../images/interface/icon-close-btn.png)} + .js .campl-open .campl-menu-btn-arrow{background-image:url(../images/interface/icon-open-btn.png)} + .js .campl-menu-btn a:focus, .js .campl-menu-btn a:hover{border:0;} + .campl-local-navigation ul{border-top:0;} + + /* Default - turquoise */ + .js .campl-local-navigation a{background:#106470;border-right:0;border-top:0} + .campl-local-navigation li a{border-bottom:1px solid #0c5963;} + .js .campl-local-navigation li li a, + .js .campl-local-navigation li.campl-sub li.campl-sub a{background-color:#106470;} + + .js .campl-local-navigation li.campl-title a, + .js .campl-local-navigation li.campl-sub li.campl-title a, + .js .campl-local-navigation li.campl-sub li.campl-sub li.campl-title a, + .js .campl-local-navigation a:focus, + .js .campl-local-navigation a:hover, + .js .campl-local-navigation a:active{background-color:#0c5963;} + + .js .campl-local-navigation li.campl-sub a:focus, + .js .campl-local-navigation li.campl-sub a:hover{background-color: #0c5963} + .js .campl-local-navigation li.campl-sub li a:focus, + .js .campl-local-navigation li.campl-sub li a:hover{background-color: #0c5963;} + + .js .campl-menu-btn a{border:0;background:#0c5963;} + + .campl-menu-btn-arrow{background: #003a41 } + .js .campl-menu-btn-arrow a:focus, + .js .campl-menu-btn-arrow a:hover{background-color:#003a41;} + .campl-menu-indicator{background-color:#0c5963;} + + .js .campl-local-navigation-container li:first-child a{border-top:1px solid #003a41;} + + .js .campl-local-navigation-container li.campl-back-link a, + .js .campl-local-navigation-container li.campl-sub li.campl-back-link a, + .js .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a, + .js .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a {border-bottom:1px solid #0c5963; background-color: #003a41;} + + .js .campl-local-navigation-container li.campl-back-link a:focus, + .js .campl-local-navigation-container li.campl-back-link a:hover, + .js .campl-local-navigation-container li.campl-sub li.campl-back-link a:focus, + .js .campl-local-navigation-container li.campl-sub li.campl-back-link a:hover, + .js .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a:focus, + .js .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a:hover, + .js .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a:focus, + .js .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a:hover{background-color:#0c5963;} + + + /*theme 1*/ + .js .campl-theme-1 .campl-local-navigation a{background:#003e74;border-right:0;border-top:0} + .campl-theme-1 .campl-local-navigation li a{border-bottom:1px solid #004e8f;} + .js .campl-theme-1 .campl-local-navigation li li a, + .js .campl-theme-1 .campl-local-navigation li.campl-sub li.campl-sub a{background-color:#003e74;} + + .js .campl-theme-1 .campl-local-navigation li.campl-title a, + .js .campl-theme-1 .campl-local-navigation li.campl-sub li.campl-title a, + .js .campl-theme-1 .campl-local-navigation li.campl-sub li.campl-sub li.campl-title a, + .js .campl-theme-1 .campl-local-navigation a:focus, + .js .campl-theme-1 .campl-local-navigation a:hover, + .js .campl-theme-1 .campl-local-navigation a:active{background-color:#004e8f;} + + .js .campl-theme-1 .campl-local-navigation li.campl-sub a:focus, + .js .campl-theme-1 .campl-local-navigation li.campl-sub a:hover{background-color: #004e8f} + .js .campl-theme-1 .campl-local-navigation li.campl-sub li a:focus, + .js .campl-theme-1 .campl-local-navigation li.campl-sub li a:hover{background-color: #004e8f;} + + .js .campl-theme-1 .campl-menu-btn a{border:0;background:#004e8f;} + + .campl-theme-1 .campl-menu-btn-arrow{background: #002e55 } + .js .campl-theme-1 .campl-menu-btn-arrow a:focus, + .js .campl-theme-1 .campl-menu-btn-arrow a:hover{background-color:#002e55;} + .campl-theme-1 .campl-menu-indicator{background-color:#004e8f;} + + .js .campl-theme-1 .campl-local-navigation-container li:first-child a{border-top:1px solid #002e55;} + + .js .campl-theme-1 .campl-local-navigation-container li.campl-back-link a, + .js .campl-theme-1 .campl-local-navigation-container li.campl-sub li.campl-back-link a, + .js .campl-theme-1 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a, + .js .campl-theme-1 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a {border-bottom:1px solid #004e8f; background-color: #002e55;} + + .js .campl-theme-1 .campl-local-navigation-container li.campl-back-link a:focus, + .js .campl-theme-1 .campl-local-navigation-container li.campl-back-link a:hover, + .js .campl-theme-1 .campl-local-navigation-container li.campl-sub li.campl-back-link a:focus, + .js .campl-theme-1 .campl-local-navigation-container li.campl-sub li.campl-back-link a:hover, + .js .campl-theme-1 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a:focus, + .js .campl-theme-1 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a:hover, + .js .campl-theme-1 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a:focus, + .js .campl-theme-1 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a:hover{background-color:#004e8f;} + + /*theme 2*/ + .js .campl-theme-2 .campl-local-navigation a{background:#106470;border-right:0;border-top:0} + .campl-theme-2 .campl-local-navigation li a{border-bottom:1px solid #0c5963;} + .js .campl-theme-2 .campl-local-navigation li li a, + .js .campl-theme-2 .campl-local-navigation li.campl-sub li.campl-sub a{background-color:#106470;} + + .js .campl-theme-2 .campl-local-navigation li.campl-title a, + .js .campl-theme-2 .campl-local-navigation li.campl-sub li.campl-title a, + .js .campl-theme-2 .campl-local-navigation li.campl-sub li.campl-sub li.campl-title a, + .js .campl-theme-2 .campl-local-navigation a:focus, + .js .campl-theme-2 .campl-local-navigation a:hover, + .js .campl-theme-2 .campl-local-navigation a:active{background-color:#0c5963;} + + .js .campl-theme-2 .campl-local-navigation li.campl-sub a:focus, + .js .campl-theme-2 .campl-local-navigation li.campl-sub a:hover{background-color: #0c5963} + .js .campl-theme-2 .campl-local-navigation li.campl-sub li a:focus, + .js .campl-theme-2 .campl-local-navigation li.campl-sub li a:hover{background-color: #0c5963;} + + .js .campl-theme-2 .campl-menu-btn a{border:0;background:#0c5963;} + + .campl-theme-2 .campl-menu-btn-arrow{background: #003a41 } + .js .campl-theme-2 .campl-menu-btn-arrow a:focus, + .js .campl-theme-2 .campl-menu-btn-arrow a:hover{background-color:#003a41;} + .campl-theme-2 .campl-menu-indicator{background-color:#0c5963;} + + .js .campl-theme-2 .campl-local-navigation-container li:first-child a{border-top:1px solid #003a41;} + + .js .campl-theme-2 .campl-local-navigation-container li.campl-back-link a, + .js .campl-theme-2 .campl-local-navigation-container li.campl-sub li.campl-back-link a, + .js .campl-theme-2 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a, + .js .campl-theme-2 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a {border-bottom:1px solid #0c5963; background-color: #003a41;} + + .js .campl-theme-2 .campl-local-navigation-container li.campl-back-link a:focus, + .js .campl-theme-2 .campl-local-navigation-container li.campl-back-link a:hover, + .js .campl-theme-2 .campl-local-navigation-container li.campl-sub li.campl-back-link a:focus, + .js .campl-theme-2 .campl-local-navigation-container li.campl-sub li.campl-back-link a:hover, + .js .campl-theme-2 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a:focus, + .js .campl-theme-2 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a:hover, + .js .campl-theme-2 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a:focus, + .js .campl-theme-2 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a:hover{background-color:#0c5963;} + + /*theme 3*/ + .js .campl-theme-3 .campl-local-navigation a{background:#422E5D;border-right:0;border-top:0} + .campl-theme-3 .campl-local-navigation li a{border-bottom:1px solid #612d70;} + .js .campl-theme-3 .campl-local-navigation li li a, + .js .campl-theme-3 .campl-local-navigation li.campl-sub li.campl-sub a{background-color:#422E5D;} + + .js .campl-theme-3 .campl-local-navigation li.campl-title a, + .js .campl-theme-3 .campl-local-navigation li.campl-sub li.campl-title a, + .js .campl-theme-3 .campl-local-navigation li.campl-sub li.campl-sub li.campl-title a, + .js .campl-theme-3 .campl-local-navigation a:focus, + .js .campl-theme-3 .campl-local-navigation a:hover, + .js .campl-theme-3 .campl-local-navigation a:active{background-color:#612d70;} + + .js .campl-theme-3 .campl-local-navigation li.campl-sub a:focus, + .js .campl-theme-3 .campl-local-navigation li.campl-sub a:hover{background-color: #612d70} + .js .campl-theme-3 .campl-local-navigation li.campl-sub li a:focus, + .js .campl-theme-3 .campl-local-navigation li.campl-sub li a:hover{background-color: #612d70;} + + .js .campl-theme-3 .campl-menu-btn a{border:0;background:#612d70;} + + .campl-theme-3 .campl-menu-btn-arrow{background: #35254a } + .js .campl-theme-3 .campl-menu-btn-arrow a:focus, + .js .campl-theme-3 .campl-menu-btn-arrow a:hover{background-color:#35254a;} + .campl-theme-3 .campl-menu-indicator{background-color:#612d70;} + + .js .campl-theme-3 .campl-local-navigation-container li:first-child a{border-top:1px solid #35254a;} + + .js .campl-theme-3 .campl-local-navigation-container li.campl-back-link a, + .js .campl-theme-3 .campl-local-navigation-container li.campl-sub li.campl-back-link a, + .js .campl-theme-3 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a, + .js .campl-theme-3 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a {border-bottom:1px solid #612d70; background-color: #35254a;} + + .js .campl-theme-3 .campl-local-navigation-container li.campl-back-link a:focus, + .js .campl-theme-3 .campl-local-navigation-container li.campl-back-link a:hover, + .js .campl-theme-3 .campl-local-navigation-container li.campl-sub li.campl-back-link a:focus, + .js .campl-theme-3 .campl-local-navigation-container li.campl-sub li.campl-back-link a:hover, + .js .campl-theme-3 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a:focus, + .js .campl-theme-3 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a:hover, + .js .campl-theme-3 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a:focus, + .js .campl-theme-3 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a:hover{background-color:#612d70;} + + /*theme 4*/ + .js .campl-theme-4 .campl-local-navigation a{background:#304220;border-right:0;border-top:0} + .campl-theme-4 .campl-local-navigation li a{border-bottom:1px solid #355918;} + .js .campl-theme-4 .campl-local-navigation li li a, + .js .campl-theme-4 .campl-local-navigation li.campl-sub li.campl-sub a{background-color:#304220;} + + .js .campl-theme-4 .campl-local-navigation li.campl-title a, + .js .campl-theme-4 .campl-local-navigation li.campl-sub li.campl-title a, + .js .campl-theme-4 .campl-local-navigation li.campl-sub li.campl-sub li.campl-title a, + .js .campl-theme-4 .campl-local-navigation a:focus, + .js .campl-theme-4 .campl-local-navigation a:hover, + .js .campl-theme-4 .campl-local-navigation a:active{background-color:#355918;} + + .js .campl-theme-4 .campl-local-navigation li.campl-sub a:focus, + .js .campl-theme-4 .campl-local-navigation li.campl-sub a:hover{background-color: #355918} + .js .campl-theme-4 .campl-local-navigation li.campl-sub li a:focus, + .js .campl-theme-4 .campl-local-navigation li.campl-sub li a:hover{background-color: #355918;} + + .js .campl-theme-4 .campl-menu-btn a{border:0;background:#355918;} + + .campl-theme-4 .campl-menu-btn-arrow{background: #222f16 } + .js .campl-theme-4 .campl-menu-btn-arrow a:focus, + .js .campl-theme-4 .campl-menu-btn-arrow a:hover{background-color:#222f16;} + .campl-theme-4 .campl-menu-indicator{background-color:#355918;} + + .js .campl-theme-4 .campl-local-navigation-container li:first-child a{border-top:1px solid #222f16;} + + .js .campl-theme-4 .campl-local-navigation-container li.campl-back-link a, + .js .campl-theme-4 .campl-local-navigation-container li.campl-sub li.campl-back-link a, + .js .campl-theme-4 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a, + .js .campl-theme-4 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a {border-bottom:1px solid #355918; background-color: #222f16;} + + .js .campl-theme-4 .campl-local-navigation-container li.campl-back-link a:focus, + .js .campl-theme-4 .campl-local-navigation-container li.campl-back-link a:hover, + .js .campl-theme-4 .campl-local-navigation-container li.campl-sub li.campl-back-link a:focus, + .js .campl-theme-4 .campl-local-navigation-container li.campl-sub li.campl-back-link a:hover, + .js .campl-theme-4 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a:focus, + .js .campl-theme-4 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a:hover, + .js .campl-theme-4 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a:focus, + .js .campl-theme-4 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a:hover{background-color:#355918;} + + /*theme 5*/ + .js .campl-theme-5 .campl-local-navigation a{background:#c44101;border-right:0;border-top:0} + .campl-theme-5 .campl-local-navigation li a{border-bottom:1px solid #ab3901;} + .js .campl-theme-5 .campl-local-navigation li li a, + .js .campl-theme-5 .campl-local-navigation li.campl-sub li.campl-sub a{background-color:#c44101;} + + .js .campl-theme-5 .campl-local-navigation li.campl-title a, + .js .campl-theme-5 .campl-local-navigation li.campl-sub li.campl-title a, + .js .campl-theme-5 .campl-local-navigation li.campl-sub li.campl-sub li.campl-title a, + .js .campl-theme-5 .campl-local-navigation a:focus, + .js .campl-theme-5 .campl-local-navigation a:hover, + .js .campl-theme-5 .campl-local-navigation a:active{background-color:#ab3901;} + + .js .campl-theme-5 .campl-local-navigation li.campl-sub a:focus, + .js .campl-theme-5 .campl-local-navigation li.campl-sub a:hover{background-color: #ab3901} + .js .campl-theme-5 .campl-local-navigation li.campl-sub li a:focus, + .js .campl-theme-5 .campl-local-navigation li.campl-sub li a:hover{background-color: #ab3901;} + + .js .campl-theme-5 .campl-menu-btn a{border:0;background:#ab3901;} + + .campl-theme-5 .campl-menu-btn-arrow{background: #772801 } + .js .campl-theme-5 .campl-menu-btn-arrow a:focus, + .js .campl-theme-5 .campl-menu-btn-arrow a:hover{background-color:#772801;} + .campl-theme-5 .campl-menu-indicator{background-color:#ab3901;} + + .js .campl-theme-5 .campl-local-navigation-container li:first-child a{border-top:1px solid #772801;} + + .js .campl-theme-5 .campl-local-navigation-container li.campl-back-link a, + .js .campl-theme-5 .campl-local-navigation-container li.campl-sub li.campl-back-link a, + .js .campl-theme-5 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a, + .js .campl-theme-5 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a {border-bottom:1px solid #ab3901; background-color: #772801;} + + .js .campl-theme-5 .campl-local-navigation-container li.campl-back-link a:focus, + .js .campl-theme-5 .campl-local-navigation-container li.campl-back-link a:hover, + .js .campl-theme-5 .campl-local-navigation-container li.campl-sub li.campl-back-link a:focus, + .js .campl-theme-5 .campl-local-navigation-container li.campl-sub li.campl-back-link a:hover, + .js .campl-theme-5 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a:focus, + .js .campl-theme-5 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a:hover, + .js .campl-theme-5 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a:focus, + .js .campl-theme-5 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a:hover{background-color:#ab3901;} + + /*theme 6*/ + .js .campl-theme-6 .campl-local-navigation a{background:#851735;border-right:0;border-top:0} + .campl-theme-6 .campl-local-navigation li a{border-bottom:1px solid #a51137;} + .js .campl-theme-6 .campl-local-navigation li li a, + .js .campl-theme-6 .campl-local-navigation li.campl-sub li.campl-sub a{background-color:#851735;} + + .js .campl-theme-6 .campl-local-navigation li.campl-title a, + .js .campl-theme-6 .campl-local-navigation li.campl-sub li.campl-title a, + .js .campl-theme-6 .campl-local-navigation li.campl-sub li.campl-sub li.campl-title a, + .js .campl-theme-6 .campl-local-navigation a:focus, + .js .campl-theme-6 .campl-local-navigation a:hover, + .js .campl-theme-6 .campl-local-navigation a:active{background-color:#a51137;} + + .js .campl-theme-6 .campl-local-navigation li.campl-sub a:focus, + .js .campl-theme-6 .campl-local-navigation li.campl-sub a:hover{background-color: #a51137} + .js .campl-theme-6 .campl-local-navigation li.campl-sub li a:focus, + .js .campl-theme-6 .campl-local-navigation li.campl-sub li a:hover{background-color: #a51137;} + + .js .campl-theme-6 .campl-menu-btn a{border:0;background:#a51137;} + + .campl-theme-6 .campl-menu-btn-arrow{background: #6c112a } + .js .campl-theme-6 .campl-menu-btn-arrow a:focus, + .js .campl-theme-6 .campl-menu-btn-arrow a:hover{background-color:#6c112a;} + .campl-theme-6 .campl-menu-indicator{background-color:#a51137;} + + .js .campl-theme-6 .campl-local-navigation-container li:first-child a{border-top:1px solid #6c112a;} + + .js .campl-theme-6 .campl-local-navigation-container li.campl-back-link a, + .js .campl-theme-6 .campl-local-navigation-container li.campl-sub li.campl-back-link a, + .js .campl-theme-6 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a, + .js .campl-theme-6 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a {border-bottom:1px solid #a51137; background-color: #6c112a;} + + .js .campl-theme-6 .campl-local-navigation-container li.campl-back-link a:focus, + .js .campl-theme-6 .campl-local-navigation-container li.campl-back-link a:hover, + .js .campl-theme-6 .campl-local-navigation-container li.campl-sub li.campl-back-link a:focus, + .js .campl-theme-6 .campl-local-navigation-container li.campl-sub li.campl-back-link a:hover, + .js .campl-theme-6 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a:focus, + .js .campl-theme-6 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-back-link a:hover, + .js .campl-theme-6 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a:focus, + .js .campl-theme-6 .campl-local-navigation-container li.campl-sub li.campl-sub li.campl-sub li.campl-back-link a:hover{background-color:#a51137;} + +} + +/* generic colours */ +.campl-global-header{background:#000000} +.campl-global-footer{background:#171717} +.campl-global-navigation-drawer{background:#171717; color:#cecece} +.campl-global-navigation-outer{border: 1px solid #323232;border-width:0 1px 0 1px} +.campl-global-navigation-container {border-right: 1px solid #323232;} +.campl-global-navigation-container.last{border-right: 0;} + +.campl-theme-1 .campl-homepage-content h2, .campl-theme-2 .campl-homepage-content h2, .campl-theme-3 .campl-homepage-content h2, +.campl-theme-4 .campl-homepage-content h2, .campl-theme-5 .campl-homepage-content h2, .campl-theme-6 .campl-homepage-content h2{color:#171717} + +.campl-global-navigation-secondary-with-children, .campl-global-navigation-container li.last, .campl-global-navigation-secondary-with-children li{border-bottom:0} +.campl-global-navigation-container li, .campl-global-navigation-header-container li{border-bottom: 1px solid #323232} +.campl-global-navigation-tertiary li, .campl-global-navigation-secondary-with-children li{border-bottom:0} +.campl-recommended-results{background:#f0f8ff} + +.campl-global-footer{color:#fff} +.campl-content{background:#fff} +.campl-secondary-content{background:#f3f3f3} + +.campl-homepage-carousel .campl-carousel-control-btn, .campl-paging-btn{background:#171717} +.campl-homepage-carousel .campl-carousel-control-btn:hover{background:#000} +.campl-paging-btn:focus, .campl-paging-btn:hover{background:#454545} + +.campl-inpage-search-container{background:#e4e4e4} +.campl-login-form{background:#f2f2f2} + +.campl-highlight-date{color:#fff} +.campl-promo-teaser{background:#fff} + +.campl-vertical-breadcrumb-navigation .campl-selected{color:#171717} + +tbody th, td{background:#fff;color:#222} +/*reset background colour of themed tables with th in tbody*/ +.campl-theme-1 tbody th, .campl-theme-2 tbody th, .campl-theme-3 tbody th, .campl-theme-4 tbody th, .campl-theme-5 tbody th, .campl-theme-6 tbody th{background:#fff;color:#222;border-bottom:0} +table th{border-bottom:#e4e4e4 1px solid} +.campl-table tbody tr:hover td, .campl-table tbody tr:hover th, +.campl-theme-1 .campl-table tbody tr:hover td, .campl-theme-1 .campl-table tbody tr:hover th, +.campl-theme-2 .campl-table tbody tr:hover td, .campl-theme-2 .campl-table tbody tr:hover th, +.campl-theme-3 .campl-table tbody tr:hover td, .campl-theme-3 .campl-table tbody tr:hover th, +.campl-theme-4 .campl-table tbody tr:hover td, .campl-theme-4 .campl-table tbody tr:hover th, +.campl-theme-5 .campl-table tbody tr:hover td, .campl-theme-5 .campl-table tbody tr:hover th, +.campl-theme-6 .campl-table tbody tr:hover td, .campl-theme-6 .campl-table tbody tr:hover th{background-color: #e4e4e4;} +.campl-vertical-stacking-table th{border-left:#e4e4e4 1px solid} + +.campl-tertiary-navigation{border:1px solid #e4e4e4;border-width:1px 1px 0 1px } + +/* Notifications */ +.campl-success-panel{border-color:#55a51c} +.campl-success-panel .campl-notifications-icon{color:#55a51c} +.campl-warning-panel{border-color:#ff0000} +.campl-warning-panel .campl-notifications-icon{color:#ff0000} +.campl-alert-panel{border-color:#ea7125} +.campl-alert-panel .campl-notifications-icon{color:#ea7125} +.campl-information-panel{border-color:#0072cf} +.campl-information-panel .campl-notifications-icon{color:#0072cf} + + +/* 10.0 CSS3 ANIMATIONS ----------------------------------------------------------------------------------------------*/ + +/* 11.0 FOUC ----------------------------------------------------------------------------------------------*/ + +.js #global-header-controls{display:none} +.js .campl-carousel li{display:none} +.js .campl-secondary-content{display:none} + +/* 12.0 PRINT STYLES ------------------------------------------------------------------------------------------------*/ + +@media print { + + .lt-ie9 .campl-row, .lt-ie8 .campl-row{min-width:auto} + body{ background: transparent !important;} + * { background: transparent !important; color: black !important; box-shadow:none !important; text-shadow: none !important; filter:none !important; -ms-filter: none !important; } /* Black prints faster: h5bp.com/s */ + #content a, #content a:visited { text-decoration: underline; } + #content a[href]:after { content: " (" attr(href) ")"; } + + .Zebra_DatePicker a[href]:after, .campl-carousel a[href]:after { display:none!important} + abbr[title]:after { content: " (" attr(title) ")"; } + #content .ir a:after, #content a[href^="javascript:"]:after, #content a[href^="#"]:after { content: ""; } /* Don't show links for images, or javascript/internal links */ + pre{ border: 1px solid #999; page-break-inside: avoid; } + thead { display: table-header-group; } /* h5bp.com/t */ + tr, img { page-break-inside: avoid; } + img { max-width: 100% !important; } + @page { margin: 0.5cm; } + p, h2, h3 { orphans: 3; widows: 3; } + h2, h3 { page-break-after: avoid; } + + /* replace calendar backgrounds */ + .Zebra_DatePicker{width:300px} + .Zebra_DatePicker .dp_daypicker td{background:#e1e1e1!important;} + .Zebra_DatePicker td.dp_not_in_month{ background: #edeaea!important; color: #b4b3b3!important;} + .Zebra_DatePicker td.dp_selected{ background: #222!important; color: #FFF !important } + .Zebra_DatePicker td.dp_current {background:#888888!important; color: #fff!important } + .Zebra_DatePicker td.dp_disabled_current{ background: #edeaea!important; color: #b4b3b3!important;} + .Zebra_DatePicker td.dp_disabled, .Zebra_DatePicker td.dp_weekend_disabled{background: #edeaea!important; color: #b4b3b3!important;} + .Zebra_DatePicker td.dp_hover{ background: #222!important; color: #FFF!important } + .campl-event-indicator{background:#f3f3f3!important} + + /*stack all columns vertically to make it easier to read content*/ + [class*="campl-column"], .campl-column{ + float: none; + display: block; + width: auto; + margin-left: 0; + } + + /* remove recessed margin issues and add mobile container classes to reduce visual padding*/ + .campl-wrap{width:100%} + .campl-search-container{padding:20px;} + .campl-recessed-secondary-content {margin-top:0} + .campl-spacing-column, .campl-sub-section-title{display:none} + .campl-homepage-logo-header{display:none} + + + /* remove residual styling from tables and show by default */ + table, .campl-table-bordered table, .campl-table-bordered th, .campl-table-bordered td, .campl-table-bordered tr {border-color:#E4E4E4!important} + caption{ border: 1px solid #E4E4E4!important; page-break-inside: avoid;} + .campl-responsive-table table{display:block!important} + + /* style elements back for legibility, add a bg back into the homepage teaser campl-topic to make legible */ + .campl-topic{background:#fff!important} + .campl-primary-cta{color:#fff!important} + + /* add background to transparent graphics to make legible */ + .campl-co-branding-logo{padding:5px;background:#000!important;display:block;float:none} + .campl-main-logo{padding:5px;background:#000 !important;display:block;float:none} + + /*hide unwanted site furniture and nav elements*/ + .campl-global-header{display:none!important} + .campl-breadcrumb{display:none!important} + .campl-global-navigation-drawer{display:none!important} + .campl-local-navigation{display:none!important} + .campl-tertiary-navigation{display:none!important} + .campl-mobile-parent{display:none!important} + .campl-nav-tabs{display:none!important} + .campl-nav-pills{display:none!important} + .campl-inpage-search-container{display:none!important} + .campl-search-container{display:none!important} + .campl-list-container{display:none!important} + .campl-local-footer{display:none!important} + .campl-global-footer{display:none!important} + .campl-load-more-btn{display:none!important} + .campl-pagination{display:none!important} + .campl-paging{display:none!important} + .campl-notifications-panel{display:none!important} + .campl-open-responsive-table-link{display:none!important} + .campl-homepage-header{display:none!important} + .campl-homepage-logo-header{display:none!important} + + .campl-slide-caption{position:static} + .campl-focus-teaser-txt{float:none;clear:both} + .campl-carousel .campl-slide{display:block} +} + + +/* 12.0 Z-INDEXES ------------------------------------------------------------------------------------------------ + * + * z-index:0 campl-page-sub-title + * z-index:1 + * z-index:2 + * z-index:3 + * z-index:4 global navigation drawer + * z-index:5 campl-search-drawer + * z-index:6 campl-quicklinks-list + * z-index:7 campl-global-navigation link hover state/selected tab + * z-index:8 + * z-index:9 campl-vertical-breadcrumb-indicator + * z-index:10 + * z-index:11 tertiary navigation + * z-index:12 campl-topic on homepage teaser + * z-index:13 campl-local-navigation + * z-index:14 campl-local-navigation li ul - hover menu + * z-index:15 global header + * z-index:16 +*/ + diff --git a/web/stylesheets/styleguide.css b/web/stylesheets/styleguide.css new file mode 100644 index 0000000..b68bcdc --- /dev/null +++ b/web/stylesheets/styleguide.css @@ -0,0 +1,31 @@ +.styleguide-notes .campl-wrap{width:50%} + +.styleguide-notes img{padding:0 0 20px 0} + +.styleguide-notes h1{line-height:40px} +.styleguide-notes h5{color:#999} +.styleguide-notes h4{clear:both} + +.grid-border{border:1px solid #e4e4e4;background:#efefef} +.grid-border .grid-border{background:#fff} + +.center-img{text-align:center;padding:10px} + +.styleguide-menu{margin-top:20px} +.styleguide-menu li{margin-bottom:20px} + +.styleguide-notes{background:#fff} +.styleguide-container{border:1px solid #e4e4e4;margin-bottom:40px} + +@media only screen and (max-width: 1024px){ + .styleguide-notes .campl-wrap{width:100%} +} + + +@media print { + .styleguide-notes .campl-wrap{width:100%} +} + +.styleguide .campl-global-navigation{ + font-size:13px; +} \ No newline at end of file From ef8de8170452f1151c34b5eb025a24868112906a Mon Sep 17 00:00:00 2001 From: goldsmithslab <> Date: Sun, 15 Sep 2013 15:59:47 +0100 Subject: [PATCH 3/3] introduction of new template style --- .../Resources/views/layout.html.twig | 329 +++++++++++++++--- 1 file changed, 278 insertions(+), 51 deletions(-) diff --git a/src/Cupsc/WebBundle/Resources/views/layout.html.twig b/src/Cupsc/WebBundle/Resources/views/layout.html.twig index 34ef720..965b171 100644 --- a/src/Cupsc/WebBundle/Resources/views/layout.html.twig +++ b/src/Cupsc/WebBundle/Resources/views/layout.html.twig @@ -1,71 +1,298 @@ - + + + + + - - - {% block title %}{% endblock %} - - - {% block head %}{% endblock %} + + + CUPSC - Cambridge University Pool and Snooker Club <?php echo $this->pagetitle; ?> + + + + + + + + + + + + + + + + + + -
    -
    -