Team:Cambridge/static/wiki.js

From 2011.igem.org

(Difference between revisions)
(Undo revision 106887 by Hjking734 (talk))
Line 32: Line 32:
   jQuery.expr[ ":" ],
   jQuery.expr[ ":" ],
   {
   {
-
external: function(obj, index, meta, stack)
+
    external: function(obj, index, meta, stack)
-
{
+
    {
-
  return /:\/\//.test($(obj).attr("href"));
+
  var href = $(obj).attr("href");
-
},
+
      if(/:\/\//.test(href))
-
internal: function(obj, index, meta, stack)
+
        return !/http:\/\/2011.igem.org\/Team:Cambridge/i.test(href);
-
{
+
      return false;
-
  return !/:\/\//.test($(obj).attr("href"));
+
    },
-
}
+
    internal: function(obj, index, meta, stack)
 +
    {
 +
      var href = $(obj).attr("href");
 +
      if(/:\/\//.test(href))
 +
        return /http:\/\/2011.igem.org\/Team:Cambridge/i.test(href);
 +
      return true;
 +
    }
   }
   }
);
);
-
 
var areas = [  
var areas = [  

Revision as of 09:42, 8 September 2011

console.log('/Team:Cambridge/static/wiki.js being Loaded.');

/*

*  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) { console.log('check_hash: current_url != window.location.hash.substr(1): ' + current_url + ' != ' + window.location.hash.substr(1)); 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)
   {

var href = $(obj).attr("href");

     if(/:\/\//.test(href))
       return !/http:\/\/2011.igem.org\/Team:Cambridge/i.test(href);
     return false;
   },
   internal: function(obj, index, meta, stack)
   {
     var href = $(obj).attr("href");
     if(/:\/\//.test(href))
       return /http:\/\/2011.igem.org\/Team:Cambridge/i.test(href);
     return true;
   }
 }

);

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) { console.log('set_url(' + path + ')'); current_url = path; if(current_url != window.location.pathname) window.location.hash = path;

       else
               window.location.hash = ;

}

var baseurl = ;//'//2011.igem.org';

var load_url = function(url) { console.log('load_url( ' + url + ') current_url: ' + current_url); if(url == undefined) url = '/Team:Cambridge';

var load = url + '?action=render';

$.ajax({ 'url': load, 'dataType': 'html', 'error': function(jqXHR, textStatus, errorThrown) {

var $c = $('

AjaxError!

Status: ' + textStatus + '

' + errorThrown + '

');

$('#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('
').fadeIn('fast');

}); }, }); set_url(url); set_area(url); };

$(window).ready(function() { console.log('static/wiki.js::$(window).ready()'); $('.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-social-link').hover( function(event) {; $(this).children().animate({top:0}, 75); }, function(event) { $(this).children().animate({'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 = window.setInterval('check_hash();', 500); });