Difference between revisions of "Team:Nanjing-China/Description"

(Prototype team page)
 
Line 1: Line 1:
{{Nanjing-China}}
+
{{Template:Nanjing-China/css}}
<html>
+
{{Template:Nanjing-China/js}}
 
+
<html lang="en">
<div class="column full_size judges-will-not-evaluate">
+
<head>
<h3>★  ALERT! </h3>
+
    <meta charset="utf-8" />
<p>This page is used by the judges to evaluate your team for the <a href="https://2019.igem.org/Judging/Medals">medal criterion</a> or <a href="https://2019.igem.org/Judging/Awards"> award listed below</a>. </p>
+
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<p> Delete this box in order to be evaluated for this medal criterion and/or award. See more information at <a href="https://2019.igem.org/Judging/Pages_for_Awards"> Instructions for Pages for awards</a>.</p>
+
    <meta name="viewport" content="width=device-width, initial-scale=1" />
</div>
+
    <meta name="description" content="Free Responsive Html5 Templates">
 
+
</head>
 
+
<body id="page-top" class="index-page">
<div class="clear"></div>
+
<div class="wrap-body">
 
+
<div class="column full_size">
+
<h1>Project Inspiration and Description </h1>
+
<h3>NEW: Bronze Medal Criterion #4</h3>
+
 
+
<p>Document how and why you chose your iGEM project on this page. Reference work outside or inside of iGEM that inspired your project, how you selected your project goal, and why you thought this project was a useful application of synthetic biology. Finally, provide a clear and concise description of what you plan on doing for your project.</p>
+
 
+
<p>To be eligible for this award, you must add clear documentation to this page and delete the alert box at the top of this page.</p>
+
 
+
</div>
+
 
+
 
+
 
+
<div class="column two_thirds_size">
+
<h3>What should this page contain?</h3>
+
<ul>
+
<li> A clear and concise description of your project.</li>
+
<li>A detailed explanation of why your team chose to work on this particular project.</li>
+
<li>References and sources to document your research.</li>
+
<li>Use illustrations and other visual resources to explain your project.</li>
+
</ul>
+
</div>
+
 
+
<div class="column third_size" >
+
<div class="highlight decoration_A_full">
+
<h3>Inspiration</h3>
+
<p>See how other teams have described and presented their projects: </p>
+
 
+
<ul>
+
<li><a href="https://2016.igem.org/Team:Imperial_College/Description">2016 Imperial College</a></li>
+
<li><a href="https://2016.igem.org/Team:Wageningen_UR/Description">2016 Wageningen UR</a></li>
+
<li><a href="https://2014.igem.org/Team:UC_Davis/Project_Overview"> 2014 UC Davis</a></li>
+
<li><a href="https://2014.igem.org/Team:SYSU-Software/Overview">2014 SYSU Software</a></li>
+
</ul>
+
</div>
+
</div>
+
 
+
 
+
 
+
 
+
<div class="column two_thirds_size" >
+
<h3>Advice on writing your Project Description</h3>
+
 
+
<p>
+
We encourage you to put up a lot of information and content on your wiki, but we also encourage you to include summaries as much as possible. If you think of the sections in your project description as the sections in a publication, you should try to be concise, accurate, and unambiguous in your achievements.
+
</p>
+
 
+
</div>
+
 
+
<div class="column third_size">
+
<h3>References</h3>
+
<p>iGEM teams are encouraged to record references you use during the course of your research. They should be posted somewhere on your wiki so that judges and other visitors can see how you thought about your project and what works inspired you.</p>
+
 
+
</div>
+
 
+
 
+
 
+
 
+
  
 +
<!--////////////////////////////////////Header-->
 +
<header>
 +
<!---Main Header--->
 +
<div class="main-header">
 +
<div class="logo">
 +
<img src="https://static.igem.org/mediawiki/2019/a/a7/T--Nanjing-China--logo.png" class="img-responsive">
 +
</div>
 +
<!--Navigation-->
 +
<nav id="menu" class="navbar">
 +
<div class="container-fluid">
 +
<div class="navbar-header">
 +
  <span id="heading" class="visible-xs">Categories</span>
 +
  <button type="button" class="btn btn-navbar navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"><i class="fa fa-bars"></i></button>
 +
 +
</div>
 +
<div class="collapse navbar-collapse navbar-ex1-collapse">
 +
<ul class="nav navbar-nav">
 +
<li class="active"><a href="https://2019.igem.org/Team:Nanjing-China">Home</a></li>
 +
<li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Team <i class="fa fa-chevron-down"></i></a>
 +
<div class="dropdown-menu" style="margin-left: -0px;">
 +
<div class="dropdown-inner">
 +
<ul class="list-unstyled">
 +
<li><a href="https://2019.igem.org/Team:Nanjing-China/member.html">Member</a></li>
 +
<li><a href="https://2019.igem.org/Team:Nanjing-China/collaboration.html">Collaboration</a></li>
 +
<li><a href="https://2019.igem.org/Team:Nanjing-China/attribution.html">Attribution</a></li>
 +
<li><a href="https://2019.igem.org/Team:Nanjing-China/sponsors.html">Sponsors</a></li>
 +
</ul>
 +
</div>
 +
</div>
 +
</li>
 +
<li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <i class="fa fa-chevron-down"></i></a>
 +
<div class="dropdown-menu" style="margin-left: -0px;">
 +
<div class="dropdown-inner">
 +
<ul class="list-unstyled">
 +
<li><a href="https://2019.igem.org/Team:Nanjing-China/description.html">Description</a></li>
 +
<li><a href="https://2019.igem.org/Team:Nanjing-China/results.html">Results</a></li>
 +
<li><a href="https://2019.igem.org/Team:Nanjing-China/design.html">Design</a></li>
 +
</ul>
 +
</div>
 +
</div>
 +
</li>
 +
<li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Parts <i class="fa fa-chevron-down"></i></a>
 +
<div class="dropdown-menu" style="margin-left: -0px;">
 +
<div class="dropdown-inner">
 +
<ul class="list-unstyled">
 +
<li><a href="https://2019.igem.org/Team:Nanjing-China/basic.html">Basic</a></li>
 +
<li><a href="https://2019.igem.org/Team:Nanjing-China/composite.html">Composite</a></li>
 +
<li><a href="https://2019.igem.org/Team:Nanjing-China/collection.html">Collection</a></li>
 +
<li><a href="https://2019.igem.org/Team:Nanjing-China/improve.html">Improve</a></li>
 +
</ul>
 +
</div>
 +
</div>
 +
</li>
 +
<li><a href="https://2019.igem.org/Team:Nanjing-China/contact.html">HP</a></li>
 +
<li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Lab <i class="fa fa-chevron-down"></i></a>
 +
<div class="dropdown-menu" style="margin-left: -0px;">
 +
<div class="dropdown-inner">
 +
<ul class="list-unstyled">
 +
<li><a href="https://2019.igem.org/Team:Nanjing-China/experiment.html">Experiment</a></li>
 +
<li><a href="https://2019.igem.org/Team:Nanjing-China/notebook.html">Notebook</a></li>
 +
<li><a href="https://2019.igem.org/Team:Nanjing-China/interlab.html">Interlab</a></li>
 +
</ul>
 +
</div>
 +
</div>
 +
</li>
 +
<li><a href="https://2019.igem.org/Team:Nanjing-China/safety.html">Safety</a></li>
 +
<li><a href="https://2019.igem.org/Team:Nanjing-China/model.html">Model</a></li>
 +
</ul>
 +
</div>
 +
</div>
 +
</nav>
 +
<div class="hero-background">
 +
<!-- Static Header -->
 +
<div class="header-text">
 +
<div class="header-text-inner">
 +
<h1>Description</h1>
 +
</div>
 +
</div><!-- /header-text -->
 +
</div>
 +
</div>
 +
</header>
 +
<!-- /Section: intro -->
 +
 +
<!-- /////////////////////////////////////////Content -->
 +
<div id="page-content">
 +
 +
<div class="box-content">
 +
<div class="container">
 +
<!-----------------Content-------------------->
 +
<article class="single-post">
 +
<div class="wrap-post"><!--Start Box-->
 +
<div class="entry-header text-center">
 +
<h1 class="entry-title">What inspired our team?</h1>
 +
<span class="entry-meta">
 +
</span>
 +
</div>
 +
<div class="post-thumbnail-wrap">
 +
<div class="portfolio-box zoom-effect">
 +
<img src="https://static.igem.org/mediawiki/2019/1/12/T--Nanjing-China--single.jpg" class="img-responsive">
 +
</div>
 +
</div>
 +
<div class="entry-content">
 +
<div class="excerpt"><p>Before making the ultimate decision, we tried several topics like modifying a target, improving the accuracy of a medicine. However, the condition of waste water finally seized our attention. A famous social practice project of our college in calculating water usage amount of different food inspired us. During the project, we caught something ignored, which was extra present for us, that phosphorus in waste water is a new treasure. As is often the case, low concentration of phosphorus in waste water and high reclamation cost lead to waste of the precious element, which plays an key role in industry. After conducting the survey about how to reuse wasted phosphorus, we found that the problem could not be solved only by chemistry, since single chemical method needs high concentration and valuable metal ions. To collect the scattered phosphorus and create a way to produce raw materials for fertilizer, we decide to employ cell engineering bacteria. This topic is a bridge between agriculture and industry, which ease the conflict of them and is good to fertilizer production. It succeed to attract our interest.</p></div>
 +
<div class="entry-header text-center">
 +
<h1 class="entry-title">What are we doing?</h1>
 +
<span class="entry-meta">
 +
</span>
 +
</div>
 +
<p>Our team is trying to figure out an innovative way to process the sewage and therefore generate energy for the growth of crops. Our bacteria will be engineered to make the Phosphorus in the sewage concentrated rapidly. In the inorganic experiments, we will find the suitable concentration of phosphate radical for the formation of struvite. Our bacteria can process the sewage and make it a new source of energy which can be used in the plantation of most crops.</p>
 +
<div class="portfolio-box">
 +
<img src="https://static.igem.org/mediawiki/2019/3/36/T--Nanjing-China--mec1.jpg" class="img-responsive" >
 +
</div>
 +
<p>We have known that the phosphorus cycle is complicated progress (the cycle is shown below), and phosphorus plays and important role during the growth of plants and in the development of industry. The production of fertilizer cost large amount of phosphorus and the natural mineral which take many years to accumulate is limited. So we cast our focus on the reclamation of phosphorus in waste water.</p>
 +
<div class="portfolio-box zoom-effect">
 +
<img src="https://static.igem.org/mediawiki/2019/3/33/T--Nanjing-China--mec2.png" class="img-responsive" >
 +
</div>
 +
<p>The raw material of phosphorus minerals are exploited and then consumed in industry. Then the waste phosphorus are discharged in low concentration(about 50mg/L) to water. The concentration is too low to collect phosphorus with chemical method, so the first step we need to do is to converge the polluted water and put our cell engineering bacteria into the water.</p>
 +
<div class="portfolio-box">
 +
<img src="https://static.igem.org/mediawiki/2019/b/b3/T--Nanjing-China--mec3.jpg" class="img-responsive" >
 +
</div>
 +
<p>After adding the special-made bacteria, the simple substance phosphorus will be collected by the bacteria. Our bacteria are able to take in phosphorus without caring about the concentration situation and then synthesize them into polyphosphates. The bacteria are sensitive to magnesium ion concentration. The moment when the satiated bacteria are put to the pool rich in magnesium ion, they will soon give out the phosphorus. Next, we are going to create the main material of our fertilizer, NH4MgPO4·6H2O.</p>
 +
<p>Before talking about the synthesis of NH4MgPO4·6H2O, we need to greet the bacteria. As prokaryotes, they are able to synthesize polyphosphates with the help of polyphosphokinase. </p>
 +
<div class="entry-header text-center">
 +
<h1 class="entry-title">The feasibility of our project</h1>
 +
<span class="entry-meta">
 +
</span>
 +
</div>
 +
<p>The methods and technology we will use in the experiments, such as plasmid construction, transformation and so on, are all traditional tools in synthetic biology. We have abundant knowledge about them and there are number of data and document we can refer to. Meanwhile, we can simulate the condition of sewage in the nature to test the P-concentration ability of our constructed bacteria. Our laboratory is equipped with suitable environment where many useful crops can grow as they are in the natural field. Therefore, we can test how much energy we can provide via our transformation of the bacteria.</p>
 +
</div>
 +
</div>
 +
</article>
 +
</div>
 +
 +
</div>
 +
 +
</div>
 +
 +
<!--////////////////////////////////////Footer-->
 +
<footer id="footer">
 +
<div class="container">
 +
<div class="excerpt"><p>For a better life and world.</p></div>
 +
</div>
 +
</footer>
 +
<!-- Footer -->
 +
<div id="page-top"><a href="#page-top" class="btn btn-toTop"><i class="fa fa-angle-double-up"></i></a></div>
  
 +
</div>
 +
</body>
 
</html>
 
</html>

Revision as of 04:56, 28 June 2019

' /* html or false to disable */ }, pp_settings); // Global variables accessible only by prettyPhoto var matchedObjects = this, percentBased = false, pp_dimensions, pp_open, // prettyPhoto container specific pp_contentHeight, pp_contentWidth, pp_containerHeight, pp_containerWidth, // Window size windowHeight = $(window).height(), windowWidth = $(window).width(), // Global elements pp_slideshow; doresize = true, scroll_pos = _get_scroll(); // Window/Keyboard events $(window).unbind('resize.prettyphoto').bind('resize.prettyphoto',function(){ _center_overlay(); _resize_overlay(); }); if(pp_settings.keyboard_shortcuts) { $(document).unbind('keydown.prettyphoto').bind('keydown.prettyphoto',function(e){ if(typeof $pp_pic_holder != 'undefined'){ if($pp_pic_holder.is(':visible')){ switch(e.keyCode){ case 37: $.prettyPhoto.changePage('previous'); e.preventDefault(); break; case 39: $.prettyPhoto.changePage('next'); e.preventDefault(); break; case 27: if(!settings.modal) $.prettyPhoto.close(); e.preventDefault(); break; }; // return false; }; }; }); }; /** * Initialize prettyPhoto. */ $.prettyPhoto.initialize = function() { settings = pp_settings; if(settings.theme == 'pp_default') settings.horizontal_padding = 16; // Find out if the picture is part of a set theRel = $(this).attr(settings.hook); galleryRegExp = /\[(?:.*)\]/; isSet = (galleryRegExp.exec(theRel)) ? true : false; // Put the SRCs, TITLEs, ALTs into an array. pp_images = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return $(n).attr('href'); }) : $.makeArray($(this).attr('href')); pp_titles = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return ($(n).find('img').attr('alt')) ? $(n).find('img').attr('alt') : ""; }) : $.makeArray($(this).find('img').attr('alt')); pp_descriptions = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return ($(n).attr('title')) ? $(n).attr('title') : ""; }) : $.makeArray($(this).attr('title')); if(pp_images.length > settings.overlay_gallery_max) settings.overlay_gallery = false; set_position = jQuery.inArray($(this).attr('href'), pp_images); // Define where in the array the clicked item is positionned rel_index = (isSet) ? set_position : $("a["+settings.hook+"^='"+theRel+"']").index($(this)); _build_overlay(this); // Build the overlay {this} being the caller if(settings.allow_resize) $(window).bind('scroll.prettyphoto',function(){ _center_overlay(); }); $.prettyPhoto.open(); return false; } /** * Opens the prettyPhoto modal box. * @param image {String,Array} Full path to the image to be open, can also be an array containing full images paths. * @param title {String,Array} The title to be displayed with the picture, can also be an array containing all the titles. * @param description {String,Array} The description to be displayed with the picture, can also be an array containing all the descriptions. */ $.prettyPhoto.open = function(event) { if(typeof settings == "undefined"){ // Means it's an API call, need to manually get the settings and set the variables settings = pp_settings; pp_images = $.makeArray(arguments[0]); pp_titles = (arguments[1]) ? $.makeArray(arguments[1]) : $.makeArray(""); pp_descriptions = (arguments[2]) ? $.makeArray(arguments[2]) : $.makeArray(""); isSet = (pp_images.length > 1) ? true : false; set_position = (arguments[3])? arguments[3]: 0; _build_overlay(event.target); // Build the overlay {this} being the caller } if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','hidden'); // Hide the flash _checkPosition($(pp_images).size()); // Hide the next/previous links if on first or last images. $('.pp_loaderIcon').show(); if(settings.deeplinking) setHashtag(); // Rebuild Facebook Like Button with updated href if(settings.social_tools){ facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href)); $pp_pic_holder.find('.pp_social').html(facebook_like_link); } // Fade the content in if($ppt.is(':hidden')) $ppt.css('opacity',0).show(); $pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity); // Display the current position $pp_pic_holder.find('.currentTextHolder').text((set_position+1) + settings.counter_separator_label + $(pp_images).size()); // Set the description if(typeof pp_descriptions[set_position] != 'undefined' && pp_descriptions[set_position] != ""){ $pp_pic_holder.find('.pp_description').show().html(unescape(pp_descriptions[set_position])); }else{ $pp_pic_holder.find('.pp_description').hide(); } // Get the dimensions movie_width = ( parseFloat(getParam('width',pp_images[set_position])) ) ? getParam('width',pp_images[set_position]) : settings.default_width.toString(); movie_height = ( parseFloat(getParam('height',pp_images[set_position])) ) ? getParam('height',pp_images[set_position]) : settings.default_height.toString(); // If the size is % based, calculate according to window dimensions percentBased=false; if(movie_height.indexOf('%') != -1) { movie_height = parseFloat(($(window).height() * parseFloat(movie_height) / 100) - 150); percentBased = true; } if(movie_width.indexOf('%') != -1) { movie_width = parseFloat(($(window).width() * parseFloat(movie_width) / 100) - 150); percentBased = true; } // Fade the holder $pp_pic_holder.fadeIn(function(){ // Set the title (settings.show_title && pp_titles[set_position] != "" && typeof pp_titles[set_position] != "undefined") ? $ppt.html(unescape(pp_titles[set_position])) : $ppt.html(' '); imgPreloader = ""; skipInjection = false; // Inject the proper content switch(_getFileType(pp_images[set_position])){ case 'image': imgPreloader = new Image(); // Preload the neighbour images nextImage = new Image(); if(isSet && set_position < $(pp_images).size() -1) nextImage.src = pp_images[set_position + 1]; prevImage = new Image(); if(isSet && pp_images[set_position - 1]) prevImage.src = pp_images[set_position - 1]; $pp_pic_holder.find('#pp_full_res')[0].innerHTML = settings.image_markup.replace(/{path}/g,pp_images[set_position]); imgPreloader.onload = function(){ // Fit item to viewport pp_dimensions = _fitToViewport(imgPreloader.width,imgPreloader.height); _showContent(); }; imgPreloader.onerror = function(){ alert('Image cannot be loaded. Make sure the path is correct and image exist.'); $.prettyPhoto.close(); }; imgPreloader.src = pp_images[set_position]; break; case 'youtube': pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport // Regular youtube link movie_id = getParam('v',pp_images[set_position]); // youtu.be link if(movie_id == ""){ movie_id = pp_images[set_position].split('youtu.be/'); movie_id = movie_id[1]; if(movie_id.indexOf('?') > 0) movie_id = movie_id.substr(0,movie_id.indexOf('?')); // Strip anything after the ? if(movie_id.indexOf('&') > 0) movie_id = movie_id.substr(0,movie_id.indexOf('&')); // Strip anything after the & } movie = 'http://www.youtube.com/embed/'+movie_id; (getParam('rel',pp_images[set_position])) ? movie+="?rel="+getParam('rel',pp_images[set_position]) : movie+="?rel=1"; if(settings.autoplay) movie += "&autoplay=1"; toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie); break; case 'vimeo': pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport movie_id = pp_images[set_position]; var regExp = /http(s?):\/\/(www\.)?vimeo.com\/(\d+)/; var match = movie_id.match(regExp); movie = 'http://player.vimeo.com/video/'+ match[3] +'?title=0&byline=0&portrait=0'; if(settings.autoplay) movie += "&autoplay=1;"; vimeo_width = pp_dimensions['width'] + '/embed/?moog_width='+ pp_dimensions['width']; toInject = settings.iframe_markup.replace(/{width}/g,vimeo_width).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,movie); break; case 'quicktime': pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport pp_dimensions['height']+=15; pp_dimensions['contentHeight']+=15; pp_dimensions['containerHeight']+=15; // Add space for the control bar toInject = settings.quicktime_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[set_position]).replace(/{autoplay}/g,settings.autoplay); break; case 'flash': pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport flash_vars = pp_images[set_position]; flash_vars = flash_vars.substring(pp_images[set_position].indexOf('flashvars') + 10,pp_images[set_position].length); filename = pp_images[set_position]; filename = filename.substring(0,filename.indexOf('?')); toInject = settings.flash_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+'?'+flash_vars); break; case 'iframe': pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport frame_url = pp_images[set_position]; frame_url = frame_url.substr(0,frame_url.indexOf('iframe')-1); toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,frame_url); break; case 'ajax': doresize = false; // Make sure the dimensions are not resized. pp_dimensions = _fitToViewport(movie_width,movie_height); doresize = true; // Reset the dimensions skipInjection = true; $.get(pp_images[set_position],function(responseHTML){ toInject = settings.inline_markup.replace(/{content}/g,responseHTML); $pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject; _showContent(); }); break; case 'custom': pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport toInject = settings.custom_markup; break; case 'inline': // to get the item height clone it, apply default width, wrap it in the prettyPhoto containers , then delete myClone = $(pp_images[set_position]).clone().append('
').css({'width':settings.default_width}).wrapInner('
').appendTo($('body')).show(); doresize = false; // Make sure the dimensions are not resized. pp_dimensions = _fitToViewport($(myClone).width(),$(myClone).height()); doresize = true; // Reset the dimensions $(myClone).remove(); toInject = settings.inline_markup.replace(/{content}/g,$(pp_images[set_position]).html()); break; }; if(!imgPreloader && !skipInjection){ $pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject; // Show content _showContent(); }; }); return false; }; /** * Change page in the prettyPhoto modal box * @param direction {String} Direction of the paging, previous or next. */ $.prettyPhoto.changePage = function(direction){ currentGalleryPage = 0; if(direction == 'previous') { set_position--; if (set_position < 0) set_position = $(pp_images).size()-1; }else if(direction == 'next'){ set_position++; if(set_position > $(pp_images).size()-1) set_position = 0; }else{ set_position=direction; }; rel_index = set_position; if(!doresize) doresize = true; // Allow the resizing of the images if(settings.allow_expand) { $('.pp_contract').removeClass('pp_contract').addClass('pp_expand'); } _hideContent(function(){ $.prettyPhoto.open(); }); }; /** * Change gallery page in the prettyPhoto modal box * @param direction {String} Direction of the paging, previous or next. */ $.prettyPhoto.changeGalleryPage = function(direction){ if(direction=='next'){ currentGalleryPage ++; if(currentGalleryPage > totalPage) currentGalleryPage = 0; }else if(direction=='previous'){ currentGalleryPage --; if(currentGalleryPage < 0) currentGalleryPage = totalPage; }else{ currentGalleryPage = direction; }; slide_speed = (direction == 'next' || direction == 'previous') ? settings.animation_speed : 0; slide_to = currentGalleryPage * (itemsPerPage * itemWidth); $pp_gallery.find('ul').animate({left:-slide_to},slide_speed); }; /** * Start the slideshow... */ $.prettyPhoto.startSlideshow = function(){ if(typeof pp_slideshow == 'undefined'){ $pp_pic_holder.find('.pp_play').unbind('click').removeClass('pp_play').addClass('pp_pause').click(function(){ $.prettyPhoto.stopSlideshow(); return false; }); pp_slideshow = setInterval($.prettyPhoto.startSlideshow,settings.slideshow); }else{ $.prettyPhoto.changePage('next'); }; } /** * Stop the slideshow... */ $.prettyPhoto.stopSlideshow = function(){ $pp_pic_holder.find('.pp_pause').unbind('click').removeClass('pp_pause').addClass('pp_play').click(function(){ $.prettyPhoto.startSlideshow(); return false; }); clearInterval(pp_slideshow); pp_slideshow=undefined; } /** * Closes prettyPhoto. */ $.prettyPhoto.close = function(){ if($pp_overlay.is(":animated")) return; $.prettyPhoto.stopSlideshow(); $pp_pic_holder.stop().find('object,embed').css('visibility','hidden'); $('div.pp_pic_holder,div.ppt,.pp_fade').fadeOut(settings.animation_speed,function(){ $(this).remove(); }); $pp_overlay.fadeOut(settings.animation_speed, function(){ if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','visible'); // Show the flash $(this).remove(); // No more need for the prettyPhoto markup $(window).unbind('scroll.prettyphoto'); clearHashtag(); settings.callback(); doresize = true; pp_open = false; delete settings; }); }; /** * Set the proper sizes on the containers and animate the content in. */ function _showContent(){ $('.pp_loaderIcon').hide(); // Calculate the opened top position of the pic holder projectedTop = scroll_pos['scrollTop'] + ((windowHeight/2) - (pp_dimensions['containerHeight']/2)); if(projectedTop < 0) projectedTop = 0; $ppt.fadeTo(settings.animation_speed,1); // Resize the content holder $pp_pic_holder.find('.pp_content') .animate({ height:pp_dimensions['contentHeight'], width:pp_dimensions['contentWidth'] },settings.animation_speed); // Resize picture the holder $pp_pic_holder.animate({ 'top': projectedTop, 'left': ((windowWidth/2) - (pp_dimensions['containerWidth']/2) < 0) ? 0 : (windowWidth/2) - (pp_dimensions['containerWidth']/2), width:pp_dimensions['containerWidth'] },settings.animation_speed,function(){ $pp_pic_holder.find('.pp_hoverContainer,#fullResImage').height(pp_dimensions['height']).width(pp_dimensions['width']); $pp_pic_holder.find('.pp_fade').fadeIn(settings.animation_speed); // Fade the new content // Show the nav if(isSet && _getFileType(pp_images[set_position])=="image") { $pp_pic_holder.find('.pp_hoverContainer').show(); }else{ $pp_pic_holder.find('.pp_hoverContainer').hide(); } if(settings.allow_expand) { if(pp_dimensions['resized']){ // Fade the resizing link if the image is resized $('a.pp_expand,a.pp_contract').show(); }else{ $('a.pp_expand').hide(); } } if(settings.autoplay_slideshow && !pp_slideshow && !pp_open) $.prettyPhoto.startSlideshow(); settings.changepicturecallback(); // Callback! pp_open = true; }); _insert_gallery(); pp_settings.ajaxcallback(); }; /** * Hide the content...DUH! */ function _hideContent(callback){ // Fade out the current picture $pp_pic_holder.find('#pp_full_res object,#pp_full_res embed').css('visibility','hidden'); $pp_pic_holder.find('.pp_fade').fadeOut(settings.animation_speed,function(){ $('.pp_loaderIcon').show(); callback(); }); }; /** * Check the item position in the gallery array, hide or show the navigation links * @param setCount {integer} The total number of items in the set */ function _checkPosition(setCount){ (setCount > 1) ? $('.pp_nav').show() : $('.pp_nav').hide(); // Hide the bottom nav if it's not a set. }; /** * Resize the item dimensions if it's bigger than the viewport * @param width {integer} Width of the item to be opened * @param height {integer} Height of the item to be opened * @return An array containin the "fitted" dimensions */ function _fitToViewport(width,height){ resized = false; _getDimensions(width,height); // Define them in case there's no resize needed imageWidth = width, imageHeight = height; if( ((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)) && doresize && settings.allow_resize && !percentBased) { resized = true, fitting = false; while (!fitting){ if((pp_containerWidth > windowWidth)){ imageWidth = (windowWidth - 200); imageHeight = (height/width) * imageWidth; }else if((pp_containerHeight > windowHeight)){ imageHeight = (windowHeight - 200); imageWidth = (width/height) * imageHeight; }else{ fitting = true; }; pp_containerHeight = imageHeight, pp_containerWidth = imageWidth; }; if((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)){ _fitToViewport(pp_containerWidth,pp_containerHeight) }; _getDimensions(imageWidth,imageHeight); }; return { width:Math.floor(imageWidth), height:Math.floor(imageHeight), containerHeight:Math.floor(pp_containerHeight), containerWidth:Math.floor(pp_containerWidth) + (settings.horizontal_padding * 2), contentHeight:Math.floor(pp_contentHeight), contentWidth:Math.floor(pp_contentWidth), resized:resized }; }; /** * Get the containers dimensions according to the item size * @param width {integer} Width of the item to be opened * @param height {integer} Height of the item to be opened */ function _getDimensions(width,height){ width = parseFloat(width); height = parseFloat(height); // Get the details height, to do so, I need to clone it since it's invisible $pp_details = $pp_pic_holder.find('.pp_details'); $pp_details.width(width); detailsHeight = parseFloat($pp_details.css('marginTop')) + parseFloat($pp_details.css('marginBottom')); $pp_details = $pp_details.clone().addClass(settings.theme).width(width).appendTo($('body')).css({ 'position':'absolute', 'top':-10000 }); detailsHeight += $pp_details.height(); detailsHeight = (detailsHeight <= 34) ? 36 : detailsHeight; // Min-height for the details $pp_details.remove(); // Get the titles height, to do so, I need to clone it since it's invisible $pp_title = $pp_pic_holder.find('.ppt'); $pp_title.width(width); titleHeight = parseFloat($pp_title.css('marginTop')) + parseFloat($pp_title.css('marginBottom')); $pp_title = $pp_title.clone().appendTo($('body')).css({ 'position':'absolute', 'top':-10000 }); titleHeight += $pp_title.height(); $pp_title.remove(); // Get the container size, to resize the holder to the right dimensions pp_contentHeight = height + detailsHeight; pp_contentWidth = width; pp_containerHeight = pp_contentHeight + titleHeight + $pp_pic_holder.find('.pp_top').height() + $pp_pic_holder.find('.pp_bottom').height(); pp_containerWidth = width; } function _getFileType(itemSrc){ if (itemSrc.match(/youtube\.com\/watch/i) || itemSrc.match(/youtu\.be/i)) { return 'youtube'; }else if (itemSrc.match(/vimeo\.com/i)) { return 'vimeo'; }else if(itemSrc.match(/\b.mov\b/i)){ return 'quicktime'; }else if(itemSrc.match(/\b.swf\b/i)){ return 'flash'; }else if(itemSrc.match(/\biframe=true\b/i)){ return 'iframe'; }else if(itemSrc.match(/\bajax=true\b/i)){ return 'ajax'; }else if(itemSrc.match(/\bcustom=true\b/i)){ return 'custom'; }else if(itemSrc.substr(0,1) == '#'){ return 'inline'; }else{ return 'image'; }; }; function _center_overlay(){ if(doresize && typeof $pp_pic_holder != 'undefined') { scroll_pos = _get_scroll(); contentHeight = $pp_pic_holder.height(), contentwidth = $pp_pic_holder.width(); projectedTop = (windowHeight/2) + scroll_pos['scrollTop'] - (contentHeight/2); if(projectedTop < 0) projectedTop = 0; if(contentHeight > windowHeight) return; $pp_pic_holder.css({ 'top': projectedTop, 'left': (windowWidth/2) + scroll_pos['scrollLeft'] - (contentwidth/2) }); }; }; function _get_scroll(){ if (self.pageYOffset) { return {scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset}; } else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict return {scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft}; } else if (document.body) {// all other Explorers return {scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft}; }; }; function _resize_overlay() { windowHeight = $(window).height(), windowWidth = $(window).width(); if(typeof $pp_overlay != "undefined") $pp_overlay.height($(document).height()).width(windowWidth); }; function _insert_gallery(){ if(isSet && settings.overlay_gallery && _getFileType(pp_images[set_position])=="image") { itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin. navWidth = (settings.theme == "facebook" || settings.theme == "pp_default") ? 50 : 30; // Define the arrow width depending on the theme itemsPerPage = Math.floor((pp_dimensions['containerWidth'] - 100 - navWidth) / itemWidth); itemsPerPage = (itemsPerPage < pp_images.length) ? itemsPerPage : pp_images.length; totalPage = Math.ceil(pp_images.length / itemsPerPage) - 1; // Hide the nav in the case there's no need for links if(totalPage == 0){ navWidth = 0; // No nav means no width! $pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').hide(); }else{ $pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').show(); }; galleryWidth = itemsPerPage * itemWidth; fullGalleryWidth = pp_images.length * itemWidth; // Set the proper width to the gallery items $pp_gallery .css('margin-left',-((galleryWidth/2) + (navWidth/2))) .find('div:first').width(galleryWidth+5) .find('ul').width(fullGalleryWidth) .find('li.selected').removeClass('selected'); goToPage = (Math.floor(set_position/itemsPerPage) < totalPage) ? Math.floor(set_position/itemsPerPage) : totalPage; $.prettyPhoto.changeGalleryPage(goToPage); $pp_gallery_li.filter(':eq('+set_position+')').addClass('selected'); }else{ $pp_pic_holder.find('.pp_content').unbind('mouseenter mouseleave'); // $pp_gallery.hide(); } } function _build_overlay(caller){ // Inject Social Tool markup into General markup if(settings.social_tools) facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href)); settings.markup = settings.markup.replace('{pp_social}',''); $('body').append(settings.markup); // Inject the markup $pp_pic_holder = $('.pp_pic_holder') , $ppt = $('.ppt'), $pp_overlay = $('div.pp_overlay'); // Set my global selectors // Inject the inline gallery! if(isSet && settings.overlay_gallery) { currentGalleryPage = 0; toInject = ""; for (var i=0; i < pp_images.length; i++) { if(!pp_images[i].match(/\b(jpg|jpeg|png|gif)\b/gi)){ classname = 'default'; img_src = ''; }else{ classname = ''; img_src = pp_images[i]; } toInject += "
  • "; }; toInject = settings.gallery_markup.replace(/{gallery}/g,toInject); $pp_pic_holder.find('#pp_full_res').after(toInject); $pp_gallery = $('.pp_pic_holder .pp_gallery'), $pp_gallery_li = $pp_gallery.find('li'); // Set the gallery selectors $pp_gallery.find('.pp_arrow_next').click(function(){ $.prettyPhoto.changeGalleryPage('next'); $.prettyPhoto.stopSlideshow(); return false; }); $pp_gallery.find('.pp_arrow_previous').click(function(){ $.prettyPhoto.changeGalleryPage('previous'); $.prettyPhoto.stopSlideshow(); return false; }); $pp_pic_holder.find('.pp_content').hover( function(){ $pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeIn(); }, function(){ $pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeOut(); }); itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin. $pp_gallery_li.each(function(i){ $(this) .find('a') .click(function(){ $.prettyPhoto.changePage(i); $.prettyPhoto.stopSlideshow(); return false; }); }); }; // Inject the play/pause if it's a slideshow if(settings.slideshow){ $pp_pic_holder.find('.pp_nav').prepend('Play') $pp_pic_holder.find('.pp_nav .pp_play').click(function(){ $.prettyPhoto.startSlideshow(); return false; }); } $pp_pic_holder.attr('class','pp_pic_holder ' + settings.theme); // Set the proper theme $pp_overlay .css({ 'opacity':0, 'height':$(document).height(), 'width':$(window).width() }) .bind('click',function(){ if(!settings.modal) $.prettyPhoto.close(); }); $('a.pp_close').bind('click',function(){ $.prettyPhoto.close(); return false; }); if(settings.allow_expand) { $('a.pp_expand').bind('click',function(e){ // Expand the image if($(this).hasClass('pp_expand')){ $(this).removeClass('pp_expand').addClass('pp_contract'); doresize = false; }else{ $(this).removeClass('pp_contract').addClass('pp_expand'); doresize = true; }; _hideContent(function(){ $.prettyPhoto.open(); }); return false; }); } $pp_pic_holder.find('.pp_previous, .pp_nav .pp_arrow_previous').bind('click',function(){ $.prettyPhoto.changePage('previous'); $.prettyPhoto.stopSlideshow(); return false; }); $pp_pic_holder.find('.pp_next, .pp_nav .pp_arrow_next').bind('click',function(){ $.prettyPhoto.changePage('next'); $.prettyPhoto.stopSlideshow(); return false; }); _center_overlay(); // Center it }; if(!pp_alreadyInitialized && getHashtag()){ pp_alreadyInitialized = true; // Grab the rel index to trigger the click on the correct element hashIndex = getHashtag(); hashRel = hashIndex; hashIndex = hashIndex.substring(hashIndex.indexOf('/')+1,hashIndex.length-1); hashRel = hashRel.substring(0,hashRel.indexOf('/')); // Little timeout to make sure all the prettyPhoto initialize scripts has been run. // Useful in the event the page contain several init scripts. setTimeout(function(){ $("a["+pp_settings.hook+"^='"+hashRel+"']:eq("+hashIndex+")").trigger('click'); },50); } return this.unbind('click.prettyphoto').bind('click.prettyphoto',$.prettyPhoto.initialize); // Return the jQuery object for chaining. The unbind method is used to avoid click conflict when the plugin is called more than once }; function getHashtag(){ var url = location.href; hashtag = (url.indexOf('#prettyPhoto') !== -1) ? decodeURI(url.substring(url.indexOf('#prettyPhoto')+1,url.length)) : false; return hashtag; }; function setHashtag(){ if(typeof theRel == 'undefined') return; // theRel is set on normal calls, it's impossible to deeplink using the API location.hash = theRel + '/'+rel_index+'/'; }; function clearHashtag(){ if ( location.href.indexOf('#prettyPhoto') !== -1 ) location.hash = "prettyPhoto"; } function getParam(name,url){ name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( url ); return ( results == null ) ? "" : results[1]; } })(jQuery); var pp_alreadyInitialized = false; // Used for the deep linking to make sure not to call the same function several times.

    What inspired our team?

    Before making the ultimate decision, we tried several topics like modifying a target, improving the accuracy of a medicine. However, the condition of waste water finally seized our attention. A famous social practice project of our college in calculating water usage amount of different food inspired us. During the project, we caught something ignored, which was extra present for us, that phosphorus in waste water is a new treasure. As is often the case, low concentration of phosphorus in waste water and high reclamation cost lead to waste of the precious element, which plays an key role in industry. After conducting the survey about how to reuse wasted phosphorus, we found that the problem could not be solved only by chemistry, since single chemical method needs high concentration and valuable metal ions. To collect the scattered phosphorus and create a way to produce raw materials for fertilizer, we decide to employ cell engineering bacteria. This topic is a bridge between agriculture and industry, which ease the conflict of them and is good to fertilizer production. It succeed to attract our interest.

    What are we doing?

    Our team is trying to figure out an innovative way to process the sewage and therefore generate energy for the growth of crops. Our bacteria will be engineered to make the Phosphorus in the sewage concentrated rapidly. In the inorganic experiments, we will find the suitable concentration of phosphate radical for the formation of struvite. Our bacteria can process the sewage and make it a new source of energy which can be used in the plantation of most crops.

    We have known that the phosphorus cycle is complicated progress (the cycle is shown below), and phosphorus plays and important role during the growth of plants and in the development of industry. The production of fertilizer cost large amount of phosphorus and the natural mineral which take many years to accumulate is limited. So we cast our focus on the reclamation of phosphorus in waste water.

    The raw material of phosphorus minerals are exploited and then consumed in industry. Then the waste phosphorus are discharged in low concentration(about 50mg/L) to water. The concentration is too low to collect phosphorus with chemical method, so the first step we need to do is to converge the polluted water and put our cell engineering bacteria into the water.

    After adding the special-made bacteria, the simple substance phosphorus will be collected by the bacteria. Our bacteria are able to take in phosphorus without caring about the concentration situation and then synthesize them into polyphosphates. The bacteria are sensitive to magnesium ion concentration. The moment when the satiated bacteria are put to the pool rich in magnesium ion, they will soon give out the phosphorus. Next, we are going to create the main material of our fertilizer, NH4MgPO4·6H2O.

    Before talking about the synthesis of NH4MgPO4·6H2O, we need to greet the bacteria. As prokaryotes, they are able to synthesize polyphosphates with the help of polyphosphokinase.

    The feasibility of our project

    The methods and technology we will use in the experiments, such as plasmid construction, transformation and so on, are all traditional tools in synthetic biology. We have abundant knowledge about them and there are number of data and document we can refer to. Meanwhile, we can simulate the condition of sewage in the nature to test the P-concentration ability of our constructed bacteria. Our laboratory is equipped with suitable environment where many useful crops can grow as they are in the natural field. Therefore, we can test how much energy we can provide via our transformation of the bacteria.

    For a better life and world.