Team:Cambridge/new
From 2011.igem.org
(Difference between revisions)
Line 3: | Line 3: | ||
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" type="text/javascript"></script> | <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" type="text/javascript"></script> | ||
- | <script | + | <script type='text/javascript'> |
+ | /* | ||
+ | * Variables. | ||
+ | * | ||
+ | * */ | ||
+ | |||
+ | //current area/subarea | ||
+ | var area = 'overview'; | ||
+ | var subarea = 'home'; | ||
+ | |||
+ | //the url that's loaded | ||
+ | var current_url = window.location.pathname; | ||
+ | //the interval | ||
+ | var int; | ||
+ | |||
+ | |||
+ | var check_hash = function() | ||
+ | { | ||
+ | if((current_url != window.location.hash.substr(1)) && window.location.hash) | ||
+ | { | ||
+ | int = clearInterval(int);//pause | ||
+ | //current_url != window.location.hash.substr(1); | ||
+ | load_url(window.location.hash.substr(1)); | ||
+ | |||
+ | int = setInterval('check_hash();', 500); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | jQuery.extend( | ||
+ | jQuery.expr[ ":" ], | ||
+ | { | ||
+ | external: function(obj, index, meta, stack) | ||
+ | { | ||
+ | return /:\/\//.test($(obj).attr("href")); | ||
+ | }, | ||
+ | internal: function(obj, index, meta, stack) | ||
+ | { | ||
+ | return !/:\/\//.test($(obj).attr("href")); | ||
+ | } | ||
+ | } | ||
+ | ); | ||
+ | |||
+ | |||
+ | var areas = [ | ||
+ | [/\/Team:Cambridge\/project/i, 'project',], | ||
+ | [/\/Team:Cambridge\/(experiments|constructs|protocols|safety|labwork)/i, 'labwork',], | ||
+ | [/\/Team:Cambridge\/society/i, 'society',], | ||
+ | [/\/Team:Cambridge\/team/i, 'team',], | ||
+ | [/\/Team:Cambridge/i, 'overview'], | ||
+ | [/./i, 'overview'], | ||
+ | ]; | ||
+ | |||
+ | var subareas = { | ||
+ | 'overview': [ | ||
+ | [/\/Team:Cambridge\/Media/i, 'media'], | ||
+ | [/\/Team:Cambridge\/Reflectin/i, 'reflectin'], | ||
+ | [/\/Team:Cambridge\/Blog/i, 'blog'], | ||
+ | [/./i, 'home'], | ||
+ | ], | ||
+ | 'project': [ | ||
+ | [/\/Team:Cambridge\/Project\/prelim/i, 'preliminary'], | ||
+ | [/\/Team:Cambridge\/Project\/in_vitro/i, 'invitro'], | ||
+ | [/\/Team:Cambridge\/Project\/in_vivo/i, 'invivo'], | ||
+ | [/\/Team:Cambridge\/Project\/gibthon/i, 'gibthon'], | ||
+ | [/\/Team:Cambridge\/Project\/conclusion/i, 'conclusion'], | ||
+ | [/\/Team:Cambridge\/Project/i, 'overview'], | ||
+ | ], | ||
+ | 'labwork': [ | ||
+ | [/\/Team:Cambridge\/experiments/i, 'experiments'], | ||
+ | [/\/Team:Cambridge\/constructs/i, 'constructs'], | ||
+ | [/\/Team:Cambridge\/protocols/i, 'protocols'], | ||
+ | [/\/Team:Cambridge\/safety/i, 'safety'], | ||
+ | [/\/Team:Cambridge\/labwork/i, 'overview'], | ||
+ | ], | ||
+ | 'society': [ | ||
+ | [/\/Team:Cambridge\/Society\/igem/i, 'igem'], | ||
+ | [/\/Team:Cambridge\/Society\/future_applications/i, 'future'], | ||
+ | [/\/Team:Cambridge\/Society/i, 'overview'], | ||
+ | ], | ||
+ | 'team': [ | ||
+ | [/\/Team:Cambridge\/Team\/Students/i, 'students'], | ||
+ | [/\/Team:Cambridge\/Team\/Academics/i, 'academics'], | ||
+ | [/\/Team:Cambridge\/Team\/Sponsors/i, 'sponsors'], | ||
+ | [/\/Team:Cambridge\/Team/i, 'overview'], | ||
+ | ], | ||
+ | } | ||
+ | |||
+ | var get_area = function(path) | ||
+ | { //figure out which area of the site we are in | ||
+ | var ar = ''; | ||
+ | var sub = ''; | ||
+ | if(path == undefined) | ||
+ | var path = location.pathname; | ||
+ | |||
+ | for ( var a in areas) | ||
+ | { | ||
+ | if(areas[a][0].test(path)) | ||
+ | { | ||
+ | ar = areas[a][1]; | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | for ( var a in subareas[ar]) | ||
+ | { | ||
+ | if(subareas[ar][a][0].test(path)) | ||
+ | { | ||
+ | sub = subareas[ar][a][1]; | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | console.log('area/subarea: ' + ar + '/' + sub); | ||
+ | return [ar, sub]; | ||
+ | } | ||
+ | |||
+ | var apply_area = function() | ||
+ | { | ||
+ | $('.cam-selected').removeClass('cam-selected'); | ||
+ | $('.cam-menu-item.cam-' + area).addClass('cam-selected'); | ||
+ | $('.cam-' + area + '-' + subarea).addClass('cam-selected'); | ||
+ | } | ||
+ | |||
+ | var set_area = function(path) | ||
+ | { | ||
+ | var as = get_area(path); | ||
+ | area = as[0]; | ||
+ | subarea = as[1]; | ||
+ | apply_area(); | ||
+ | } | ||
+ | |||
+ | var set_url = function(path) | ||
+ | { | ||
+ | current_url = path; | ||
+ | if(current_url != window.location.pathname) | ||
+ | window.location.hash = path; | ||
+ | } | ||
+ | |||
+ | var baseurl = '';//'//2011.igem.org'; | ||
+ | |||
+ | var load_url = function(url) | ||
+ | { | ||
+ | if(url == undefined) | ||
+ | url = '/Team:Cambridge'; | ||
+ | |||
+ | var load = url + '?action=render'; | ||
+ | |||
+ | $.ajax({ | ||
+ | 'url': load, | ||
+ | 'dataType': 'html', | ||
+ | 'error': function(jqXHR, textStatus, errorThrown) { | ||
+ | var $c = $('<h2>AjaxError!</h2><h3>Status: ' + textStatus + '</h3><h4>' + errorThrown + '</h4>'); | ||
+ | $('#cam_pagecontent').fadeOut('fast', function() { | ||
+ | $(this).html($c).fadeIn('fast'); | ||
+ | }); | ||
+ | }, | ||
+ | 'success': function(data){ | ||
+ | var $c = $(data).find('#wiki_content'); | ||
+ | $('#cam_pagecontent').fadeOut('fast', function() { | ||
+ | $(this).html($c).append('<div style="clear:both;"></div>').fadeIn('fast'); | ||
+ | }); | ||
+ | }, | ||
+ | }); | ||
+ | set_url(url); | ||
+ | set_area(url); | ||
+ | }; | ||
+ | |||
+ | $(window).ready(function() { | ||
+ | $('#top-section').css('height', 'auto'); | ||
+ | $('#p-logo').css('display', 'none'); | ||
+ | $('.firstHeading').css('display', 'none'); | ||
+ | |||
+ | $('.cam-menu-item a').mouseenter( function(event) {//in | ||
+ | $(event.currentTarget).next().children('.cam-menu-drop').slideDown('fast'); | ||
+ | }); | ||
+ | $('.cam-menu-item').mouseleave( function(event) {//out | ||
+ | $(event.currentTarget).find('.cam-menu-drop').slideUp('fast'); | ||
+ | }); | ||
+ | |||
+ | $('.cam-icon').hover( | ||
+ | function() { | ||
+ | $(this).animate({'margin-top':0,}, 60); | ||
+ | }, | ||
+ | function() { | ||
+ | $(this).animate({'margin-top':12,}, 250); | ||
+ | } | ||
+ | ); | ||
+ | |||
+ | set_area(); | ||
+ | |||
+ | $('a:internal').live('click', function(event) { | ||
+ | event.preventDefault(); | ||
+ | load_url($(this).attr('href')); | ||
+ | return false; | ||
+ | }); | ||
+ | |||
+ | $('#cam_topbar a').hover( | ||
+ | function() { | ||
+ | $(this).prev('.cam-ui-icon').addClass('cam-hover'); | ||
+ | }, | ||
+ | function() { | ||
+ | $(this).prev('.cam-ui-icon').removeClass('cam-hover'); | ||
+ | } | ||
+ | ); | ||
+ | |||
+ | int = setInterval('check_hash();', 500); | ||
+ | }); | ||
+ | </script> | ||
+ | |||
<style> | <style> | ||
.cam-ui-icon {width:16px;height:16px;background-image:url(/wiki/images/b/b1/CAM_Bactiridescence_Icons_normal.png);display:inline-block;margin:1px;} | .cam-ui-icon {width:16px;height:16px;background-image:url(/wiki/images/b/b1/CAM_Bactiridescence_Icons_normal.png);display:inline-block;margin:1px;} |
Revision as of 16:25, 7 September 2011