Team:Warsaw/JSTest

From 2008.igem.org

(Difference between revisions)
 
(123 intermediate revisions not shown)
Line 2: Line 2:
<html>
<html>
-
<div id="progress"></div>
+
<h1 id="title"></h1>
-
<div id="html"></div>
+
<div id="merg"></div>
 +
 
 +
 
-
<script src=http://adamv.com/dev/javascript/files/querystring.js"></script>
 
<script type="text/javascript">
<script type="text/javascript">
 +
/* <![CDATA[ */  
/* <![CDATA[ */  
 +
 +
/* Client-side access to querystring name=value pairs
 +
Version 1.3
 +
28 May 2008
 +
 +
License (Simplified BSD):
 +
http://adamv.com/dev/javascript/qslicense.txt
 +
*/
 +
function Querystring(qs) { // optionally pass a querystring to parse
 +
this.params = {};
 +
 +
if (qs == null) qs = location.search.substring(1, location.search.length);
 +
if (qs.length == 0) return;
 +
 +
// Turn <plus> back to <space>
 +
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
 +
qs = qs.replace(/\+/g, ' ');
 +
var args = qs.split(String.fromCharCode(38)); // parse out name/value pairs separated via &
 +
 +
// split out each name=value pair
 +
for (var i = 0; i < args.length; i++) {
 +
var pair = args[i].split('=');
 +
var name = decodeURIComponent(pair[0]);
 +
 +
var value = (pair.length==2)
 +
? decodeURIComponent(pair[1])
 +
: name;
 +
 +
this.params[name] = value;
 +
}
 +
}
 +
 +
Querystring.prototype.get = function(key, default_) {
 +
var value = this.params[key];
 +
return (value != null) ? value : default_;
 +
}
 +
 +
Querystring.prototype.contains = function(key) {
 +
var value = this.params[key];
 +
return (value != null);
 +
}
 +
 +
Array.prototype.indexOf = function( v, b, s ) {
Array.prototype.indexOf = function( v, b, s ) {
Line 23: Line 68:
}
}
-
function removeHTMLTags(strInputCode ){
+
function removeHTMLTags(strInputCode2 ){
-
+
                var strInputCode=new String();
-
strInputCode = strInputCode.replace(/&(lt|gt);/g, function (strMatch, p1){
+
                strInputCode=strInputCode2;
 +
                //if (strInputCode==undefined) return;
 +
/*
 +
                strInputCode = strInputCode.replace(/&(lt|gt);/g, function (strMatch, p1){
return (p1 == "lt")? "<" : ">";
return (p1 == "lt")? "<" : ">";
});
});
 +
                */
 +
                strInputCode = strInputCode.replace(/&(lt);/g,"<");
 +
                strInputCode = strInputCode.replace(/&(gt);/g,">");
var strTagStrippedText = strInputCode.replace(/<\/?[^>]+(>|$)/g, "");
var strTagStrippedText = strInputCode.replace(/<\/?[^>]+(>|$)/g, "");
return strTagStrippedText;
return strTagStrippedText;
Line 39: Line 90:
function merge(days)
function merge(days)
{
{
-
var divs=new Array(days.length);
+
document.getElementById("title").innerHTML=removeHTMLTags(title);
-
var hs=new Array(days.length);
+
 
-
for (var i=0;i<merge.length;i++)
+
 
 +
for (var i=0;i<days.length;i++)
{
{
-
divs[i]=document.createElement("div");
+
var div=document.createElement("div");
-
hs[i]=document.createElement("h1");
+
var h=document.createElement("h3");
-
hs[i].innerHTML=days[i];
+
h.innerHTML='<a href="'+adresbase+days[i]+'">'+days[i]+'</a>&nbsp;<div align="right"><a href="https://2008.igem.org/wiki/index.php?title=Team:Warsaw/Calendar-Main/'+days[i]+String.fromCharCode(38)+'action=edit">'+"[Edit]"+'</a></div>';
-
divs[i].setAttribute("id",days[i]);
+
div.setAttribute("id",days[i]);
-
document.getElementById("html").appendChild(hs[i]);
+
document.getElementById("merg").appendChild(h);
-
document.getElementById("html").appendChild(divs[i]);
+
document.getElementById("merg").appendChild(div);
fill(days[i]);
fill(days[i]);
-
}
 
 +
}
}
}
Line 67: Line 119:
             if (req.status == 200) {
             if (req.status == 200) {
                 ans=req.responseText;
                 ans=req.responseText;
-
                 document.getElementById(day).innerHTML=ans;
+
                ans=ans.substr(ans.search("<start>"),ans.search("<end>")-ans.search("<start>"));
 +
                 document.getElementById(day).innerHTML=trimStr(trimContents(ans,title));
             }
             }
}  
}  
Line 77: Line 130:
}
}
 +
function trimStr(str)
 +
{
 +
return str.replace(/^\s+|\s+$/g, '');
 +
}
 +
function trimContents(ans, title)
 +
{
 +
ans=ans.replace(/<h3><\/h3>/ig,"");
 +
h3=new RegExp(/<h3.*>(.*)<\/h3>/ig);
 +
title=removeHTMLTags(trimStr(title));
 +
var titles=ans.match(h3);
 +
for (var i=0;i<titles.length;i++)
 +
{
 +
if (titles[i].search("h3")>0)
 +
{
 +
//alert(titles[i].split(/(<h3>)|(<\/h3>)/i));
 +
var notags=titles[i].split(/(<h3>)|(<\/h3>)/i);
 +
if (notags[3]==undefined) var currtitle=removeHTMLTags(notags[0]);  //dirty IE hack
 +
else var currtitle=removeHTMLTags(notags[3]);
 +
currtitle=trimStr(currtitle.replace(/\+/g,' '));
 +
//alert ("C: "+currtitle+"\nT: "+title);
 +
if (currtitle==title)
 +
{
 +
if (i+1<titles.length) return ans.substring(ans.indexOf(titles[i])+titles[i].length,ans.indexOf(titles[i+1]));
 +
else return ans.substring(ans.indexOf(titles[i])+titles[i].length);
 +
}
 +
}
 +
}
 +
 +
 +
return "Search Error";
 +
 +
}
var qs=new Querystring();
var qs=new Querystring();
 +
 +
var title=qs.get("name");
var num=parseInt(qs.get("num", "0"));
var num=parseInt(qs.get("num", "0"));
-
var days=new Array(num);
+
var tgt=new Array(num);
for (var i=0;i<num;i++)
for (var i=0;i<num;i++)
{
{
-
days[i]=qs.get("arg"+i);
+
tgt[i]=qs.get("arg"+i);
}
}
-
if (days.length>0) merge(days);
+
 
 +
 
 +
if (tgt.length>0) merge(tgt);

Latest revision as of 18:40, 28 October 2008

Gallery Bricks Notebook Team Project Home