Team:Heidelberg/Modeling/miBSdesigner
From 2010.igem.org
(Difference between revisions)
AlejandroHD (Talk | contribs) |
AlejandroHD (Talk | contribs) |
||
Line 17: | Line 17: | ||
div.reswrap2 {width: 550px; padding:25px; border-width:5px; margin:auto; border-style:solid; border-color:#11526f; height: 140px; text-align:left; background-color:#ffaf58; display:none;} | div.reswrap2 {width: 550px; padding:25px; border-width:5px; margin:auto; border-style:solid; border-color:#11526f; height: 140px; text-align:left; background-color:#ffaf58; display:none;} | ||
</style> | </style> | ||
- | <script type="text/javascript" | + | <script type="text/javascript"> |
+ | if (top.location != self.location) | ||
+ | top.location = self.location; | ||
+ | // global functions | ||
+ | var seedval = 0; | ||
+ | var compval = 0; | ||
+ | |||
+ | // function main option (just enable or disable) | ||
+ | |||
+ | function chMd() { | ||
+ | for (var i = 0; i < document.forms[0].AU.length; i++) { | ||
+ | document.forms[0].AU[i].checked = false; | ||
+ | } | ||
+ | document.forms[0].AU[2].disabled = true; | ||
+ | document.forms[0].AU[3].disabled = true; | ||
+ | document.forms[0].AU[4].disabled = true; | ||
+ | document.forms[0].AU[5].disabled = true; | ||
+ | |||
+ | for (var i = 0; i < document.forms[0].elements.length; i++) { | ||
+ | if (document.forms[0].elements[i].value == "perfect" && document.forms[0].elements[i].checked == true) { | ||
+ | document.forms[0].seed.disabled = true; | ||
+ | document.forms[0].comp.disabled = true; | ||
+ | } | ||
+ | else if (document.forms[0].elements[i].value == "bulge" && document.forms[0].elements[i].checked == true) { | ||
+ | document.forms[0].seed.disabled = true; | ||
+ | document.forms[0].comp.disabled = true; | ||
+ | document.forms[0].AU[2].disabled = false; | ||
+ | document.forms[0].AU[4].disabled = false; | ||
+ | document.forms[0].AU[5].disabled = false; | ||
+ | } | ||
+ | else if (document.forms[0].elements[i].value == "personal" && document.forms[0].elements[i].checked == true) { | ||
+ | document.forms[0].seed.disabled = false; | ||
+ | document.forms[0].comp.disabled = false; | ||
+ | for (var j = 0; j < document.forms[0].AU.length; j++) { | ||
+ | document.forms[0].AU[j].disabled = false; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // function seed design (enable or disable and assign seedval) | ||
+ | |||
+ | function chMd1() { | ||
+ | for (var i = 0; i < document.forms[0].AU.length; i++) { | ||
+ | document.forms[0].AU[i].checked = false; | ||
+ | } | ||
+ | document.forms[0].AU[2].disabled = false; | ||
+ | document.forms[0].AU[3].disabled = false; | ||
+ | document.forms[0].AU[4].disabled = false; | ||
+ | document.forms[0].AU[5].disabled = false; | ||
+ | document.forms[0].mis.disabled = true; | ||
+ | var seed1 = document.seqIn.seed.selectedIndex; | ||
+ | seedval = document.seqIn.seed.options[seed1].value; | ||
+ | |||
+ | if (seedval == "7merA1") { | ||
+ | document.forms[0].AU[2].disabled = true; | ||
+ | } | ||
+ | else if (seedval == "7merm8") { | ||
+ | document.forms[0].AU[3].disabled = true; | ||
+ | } | ||
+ | else if (seedval == "8mer") { | ||
+ | document.forms[0].AU[2].disabled = true; | ||
+ | document.forms[0].AU[3].disabled = true; | ||
+ | } | ||
+ | else if (seedval == "custom") { | ||
+ | document.forms[0].mis.disabled = false; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // function supplementary design (enable or disable and compval assignment) | ||
+ | |||
+ | function chMd2() { | ||
+ | document.forms[0].match.disabled = true; | ||
+ | var comp1 = document.seqIn.comp.selectedIndex; | ||
+ | compval = document.seqIn.comp.options[comp1].value; | ||
+ | if (compval == "custom") { | ||
+ | document.forms[0].match.disabled = false; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function chMd3() { | ||
+ | var elements3 = document.getElementsByName("stickyends"); | ||
+ | for (var i = 0; i <= elements3.length; i++) { | ||
+ | if (elements3[i].value == "custom") { | ||
+ | document.forms[0].end5.disabled = false; | ||
+ | document.forms[0].end3.disabled = false; | ||
+ | } | ||
+ | else { | ||
+ | document.forms[0].end5.value = ""; | ||
+ | document.forms[0].end3.value = ""; | ||
+ | document.forms[0].end5.disabled = true; | ||
+ | document.forms[0].end3.disabled = true; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // function to convert U into T and remove strange characters | ||
+ | |||
+ | function cleaning(str) { | ||
+ | str = str.replace (/[().,?! _\s,]/g, ""); | ||
+ | str = str.replace (/[0-9]/g, ""); | ||
+ | str = str.toUpperCase(); | ||
+ | var mi_array = new Array(); | ||
+ | mi_array = str.split(''); | ||
+ | var result = new Array(); | ||
+ | var n = 0; | ||
+ | for (n == 0; n < str.length; n++) { | ||
+ | if (mi_array[n] == "U") { | ||
+ | mi_array[n] = "T"; | ||
+ | } | ||
+ | result.push(mi_array[n]); | ||
+ | } | ||
+ | result = result.join(""); | ||
+ | return (result); | ||
+ | } | ||
+ | |||
+ | // function to create complementary | ||
+ | |||
+ | function comp(str) { | ||
+ | var mi_array = new Array(); | ||
+ | mi_array = str.split(''); | ||
+ | var complementary = new Array(); | ||
+ | var n = 0; | ||
+ | for (n == 0; n < str.length; n++) { | ||
+ | if (mi_array[n] == "A") { | ||
+ | mi_array[n] = "T"; | ||
+ | } | ||
+ | else if (mi_array[n] == "T") { | ||
+ | mi_array[n] = "A"; | ||
+ | } | ||
+ | else if (mi_array[n] == "C") { | ||
+ | mi_array[n] = "G"; | ||
+ | } | ||
+ | else if (mi_array[n] == "G") { | ||
+ | mi_array[n] = "C"; | ||
+ | } | ||
+ | complementary.push(mi_array[n]); | ||
+ | } | ||
+ | complementary = complementary.join(""); | ||
+ | return (complementary); | ||
+ | } | ||
+ | |||
+ | // function to create reverse complementary | ||
+ | |||
+ | function revcomp(str) { | ||
+ | revcomplementary = str.split('').reverse().join(''); | ||
+ | revcomplementary = comp(revcomplementary); | ||
+ | return (revcomplementary); | ||
+ | } | ||
+ | |||
+ | // function to create mismatches | ||
+ | |||
+ | function mismatcher(str) { | ||
+ | var mi_array = new Array(); | ||
+ | mi_array = str.split(''); | ||
+ | var random = new Array(); | ||
+ | var n = 0; | ||
+ | for (n == 0; n < str.length; n++) { | ||
+ | if (mi_array[n] == "A") { | ||
+ | mi_array[n] = "G"; | ||
+ | } | ||
+ | else if (mi_array[n] == "T") { | ||
+ | mi_array[n] = "C"; | ||
+ | } | ||
+ | else if (mi_array[n] == "C") { | ||
+ | mi_array[n] = "T"; | ||
+ | } | ||
+ | else if (mi_array[n] == "G") { | ||
+ | mi_array[n] = "A"; | ||
+ | } | ||
+ | |||
+ | random.push(mi_array[n]); | ||
+ | } | ||
+ | random = random.join(""); | ||
+ | return (random); | ||
+ | } | ||
+ | |||
+ | // function to show results | ||
+ | |||
+ | function showDiv(res1,res2,res3,res4) { | ||
+ | document.getElementById('resultdiv').style.display='block'; | ||
+ | document.getElementById('NamA').innerHTML = res1; | ||
+ | document.getElementById('seqA').innerHTML = res2; | ||
+ | document.getElementById('NamB').innerHTML = res3; | ||
+ | document.getElementById('seqB').innerHTML = res4; | ||
+ | } | ||
+ | |||
+ | // MAIN FUNCTION. When button Go! is pressed | ||
+ | |||
+ | function SBS() { | ||
+ | |||
+ | // local variables assignments | ||
+ | var nombre = document.getElementById('name').value; | ||
+ | var mir = document.getElementById('mir').value; | ||
+ | var spacer = document.getElementById('spacer').value; | ||
+ | var mis = document.getElementById('mis').value; | ||
+ | var mat = document.getElementById('match').value; | ||
+ | var end1 = document.seqIn.stickyends.selectedIndex; | ||
+ | var endings = document.seqIn.stickyends.options[end1].value; | ||
+ | var end5 = document.getElementById('end5').value; | ||
+ | var end3 = document.getElementById('end3').value; | ||
+ | var length = mir.length; | ||
+ | var newseed = 0; | ||
+ | var newcomp = 0; | ||
+ | var resfin = 0; | ||
+ | var rcresult = 0; | ||
+ | var charac = 0; | ||
+ | |||
+ | // Retrotranscription and cleaning of RNA sequences | ||
+ | mir = cleaning(mir); | ||
+ | spacer = cleaning(spacer); | ||
+ | end5 = cleaning(end5); | ||
+ | end3 = cleaning(end3); | ||
+ | document.getElementById('mir').value = mir; | ||
+ | document.getElementById('spacer').value = spacer; | ||
+ | document.getElementById('end5').value = end5; | ||
+ | document.getElementById('end3').value = end3; | ||
+ | |||
+ | mir = mir.split('').reverse().join(''); | ||
+ | var seedstring = mir.substring(14, 22); | ||
+ | var compstring = mir.substring(0, 14); | ||
+ | |||
+ | // Alert error messages | ||
+ | if (mir.match(/[^ACTG]/g)) { | ||
+ | alert('The format of the miRNA is not acceptable'); | ||
+ | return; | ||
+ | } | ||
+ | if (!(length == 22)) { | ||
+ | alert('The miRNA sequence is not 22 nt long'); | ||
+ | return; | ||
+ | } | ||
+ | if (spacer.match(/[^ACTGN]/g)) { | ||
+ | alert('The format of the spacer is not acceptable') | ||
+ | return; | ||
+ | } | ||
+ | if (end5.match(/[^ACTG]/g)) { | ||
+ | alert("The format of the extreme custom sequence in 5' is not acceptable. Please input a DNA or RNA sequence"); | ||
+ | return; | ||
+ | } | ||
+ | if (end3.match(/[^ACTG]/g)) { | ||
+ | alert("The format of the extreme custom sequence in 3' is not acceptable. Please input a DNA or RNA sequence"); | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | // perfect binding site constructor | ||
+ | if (document.seqIn.quality[0].checked == true) { | ||
+ | resfin = comp(mir); | ||
+ | charac = "perf"; | ||
+ | } | ||
+ | |||
+ | // nucleotide 9-12 randomizer | ||
+ | else if (document.seqIn.quality[1].checked == true) { | ||
+ | var seed1 = mir.charAt(21); | ||
+ | seed1 = mismatcher(seed1); | ||
+ | var seed = mir.substring(14, 21); | ||
+ | seed = comp(seed); | ||
+ | newseed = (seed + seed1); | ||
+ | var rest1 = mir.substring(10, 14); | ||
+ | rest1 = mismatcher(rest1); | ||
+ | var rest = mir.substring(0, 10); | ||
+ | rest = comp(rest); | ||
+ | newcomp = (rest + rest1); | ||
+ | resfin = newcomp.concat(newseed); | ||
+ | charac = "bulge 9-12"; | ||
+ | } | ||
+ | |||
+ | // customized BS | ||
+ | else if (document.seqIn.quality[2].checked == true) { | ||
+ | if (seedval == 0 || compval == 0) { | ||
+ | alert('Please select one seed type and one supplementary region');} | ||
+ | |||
+ | // design 6mer seed | ||
+ | if (seedval == "6mer") { | ||
+ | var seed1 = mir.charAt(21); | ||
+ | seed1 = mismatcher(seed1); | ||
+ | var seed8 = mir.charAt(14); | ||
+ | seed8 = mismatcher(seed8); | ||
+ | var seed = mir.substring(15, 21); | ||
+ | seed = comp(seed); | ||
+ | newseed = (seed8 + seed + seed1); | ||
+ | } | ||
+ | |||
+ | // design 7merA1 seed | ||
+ | else if (seedval == "7merA1") { | ||
+ | var seed8 = mir.charAt(14); | ||
+ | seed8 = mismatcher(seed8); | ||
+ | var seed = mir.substring(15, 22); | ||
+ | seed = comp(seed); | ||
+ | newseed = (seed8 + seed); | ||
+ | } | ||
+ | |||
+ | // design 7merm8 seed | ||
+ | else if (seedval == "7merm8") { | ||
+ | var seed1 = mir.charAt(21); | ||
+ | seed1 = mismatcher(seed1); | ||
+ | var seed = mir.substring(14, 21); | ||
+ | seed = comp(seed); | ||
+ | newseed = (seed + seed1); | ||
+ | } | ||
+ | |||
+ | // design 8mer seed | ||
+ | else if (seedval == "8mer") { | ||
+ | newseed = comp(seedstring); | ||
+ | } | ||
+ | |||
+ | // design custom seed | ||
+ | else if (seedval == "custom") { | ||
+ | if (mis.length > 1 || mis.match(/\D/g)) { | ||
+ | alert('The format of the input mismatches is not acceptable. Input only one number between 2 and 7'); | ||
+ | return; | ||
+ | } | ||
+ | var result = new Array(); | ||
+ | var cuseed = seedstring.split(''); | ||
+ | cuseed = cuseed.reverse(); | ||
+ | var mis_array = new Array(); | ||
+ | mis_array = mis.split(', '); | ||
+ | for (var nj = 0; nj < mis_array.length; nj++) { | ||
+ | mis_array[nj] = mis_array[nj] - 1; | ||
+ | } | ||
+ | for (var i = 0; i < cuseed.length; i++) { | ||
+ | var flag = 0; | ||
+ | for (var j = 0; j < mis_array.length; j++) { | ||
+ | if (i == mis_array[j]) { | ||
+ | result[i] = mismatcher(cuseed[i]); | ||
+ | flag = 1; | ||
+ | } | ||
+ | } | ||
+ | if (!(flag == 1)) { | ||
+ | result[i] = comp(cuseed[i]); | ||
+ | } | ||
+ | } | ||
+ | newseed = result.reverse(); | ||
+ | newseed = newseed.join(''); | ||
+ | if (mis.length > 0) { | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // design 3 comp | ||
+ | if (compval == 3) { | ||
+ | var rest1 = mir.substring(9, 14); | ||
+ | rest1 = mismatcher(rest1); | ||
+ | var rest3 = mir.substring(0, 6); | ||
+ | rest3 = mismatcher(rest3); | ||
+ | var rest = mir.substring(6, 9); | ||
+ | rest = comp(rest); | ||
+ | newcomp = (rest3 + rest + rest1); | ||
+ | } | ||
+ | |||
+ | // design 4 comp | ||
+ | else if (compval == 4) { | ||
+ | var rest1 = mir.substring(10, 14); | ||
+ | rest1 = mismatcher(rest1); | ||
+ | var rest3 = mir.substring(0, 6); | ||
+ | rest3 = mismatcher(rest3); | ||
+ | var rest = mir.substring(6, 10); | ||
+ | rest = comp(rest); | ||
+ | newcomp = (rest3 + rest + rest1); | ||
+ | } | ||
+ | |||
+ | // design 5 comp | ||
+ | else if (compval == 5) { | ||
+ | var rest1 = mir.substring(10, 14); | ||
+ | rest1 = mismatcher(rest1); | ||
+ | var rest3 = mir.substring(0, 5); | ||
+ | rest3 = mismatcher(rest3); | ||
+ | var rest = mir.substring(5, 10); | ||
+ | rest = comp(rest); | ||
+ | newcomp = (rest3 + rest + rest1); | ||
+ | } | ||
+ | |||
+ | // design 6 comp | ||
+ | else if (compval == 6) { | ||
+ | var rest1 = mir.substring(10, 14); | ||
+ | rest1 = mismatcher(rest1); | ||
+ | var rest3 = mir.substring(0, 4); | ||
+ | rest3 = mismatcher(rest3); | ||
+ | var rest = mir.substring(4, 10); | ||
+ | rest = comp(rest); | ||
+ | newcomp = (rest3 + rest + rest1); | ||
+ | } | ||
+ | |||
+ | // design 7 comp | ||
+ | else if (compval == 7) { | ||
+ | var rest1 = mir.substring(10, 14); | ||
+ | rest1 = mismatcher(rest1); | ||
+ | var rest3 = mir.substring(0, 3); | ||
+ | rest3 = mismatcher(rest3); | ||
+ | var rest = mir.substring(3, 10); | ||
+ | rest = comp(rest); | ||
+ | newcomp = (rest3 + rest + rest1); | ||
+ | } | ||
+ | |||
+ | // design 8 comp | ||
+ | else if (compval == 8) { | ||
+ | var rest1 = mir.substring(10, 14); | ||
+ | rest1 = mismatcher(rest1); | ||
+ | var rest3 = mir.substring(0, 2); | ||
+ | rest3 = mismatcher(rest3); | ||
+ | var rest = mir.substring(2, 10); | ||
+ | rest = comp(rest); | ||
+ | newcomp = (rest3 + rest + rest1); | ||
+ | } | ||
+ | |||
+ | // design Total comp | ||
+ | else if (compval == "total") { | ||
+ | var rest1 = mir.substring(10, 14); | ||
+ | rest1 = mismatcher(rest1); | ||
+ | var rest = mir.substring(0, 10); | ||
+ | rest = comp(rest); | ||
+ | newcomp = (rest + rest1); | ||
+ | } | ||
+ | |||
+ | // design custom comp | ||
+ | else if (compval == "custom") { | ||
+ | |||
+ | var result = new Array(); | ||
+ | var cucomp = compstring.split(''); | ||
+ | cucomp = cucomp.reverse(); | ||
+ | var match_array = new Array(); | ||
+ | match_array = mat.split(', '); | ||
+ | for (var nj = 0; nj < match_array.length; nj++) { | ||
+ | match_array[nj] = match_array[nj] - 9; | ||
+ | } | ||
+ | for (var i = 0; i < cucomp.length; i++) { | ||
+ | var flag = 0; | ||
+ | for (var j = 0; j < match_array.length; j++) { | ||
+ | if (i == match_array[j]) { | ||
+ | result[i] = comp(cucomp[i]); | ||
+ | flag = 1; | ||
+ | } | ||
+ | } | ||
+ | if (!(flag == 1)) { | ||
+ | result[i] = mismatcher(cucomp[i]); | ||
+ | } | ||
+ | } | ||
+ | newcomp = result.reverse(); | ||
+ | newcomp = newcomp.join(''); | ||
+ | match_array = match_array.join(''); | ||
+ | if (match_array.length > compstring.length || match_array.match(/\D/g)) { | ||
+ | alert('The format of the input matches is not acceptable. Input only numbers separated by commas'); | ||
+ | return; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // put together seed and compensatory regions | ||
+ | charac = "seed" + seedval + " compens" + compval; | ||
+ | resfin = newcomp.concat(newseed); | ||
+ | } | ||
+ | |||
+ | //Addition of extra AUs | ||
+ | |||
+ | // A/U in position 1 | ||
+ | if (document.seqIn.AU[2].checked) { | ||
+ | var result = new Array(); | ||
+ | for (var i = 0; i < resfin.length; i++) { | ||
+ | if (!(i == 21)) { | ||
+ | result[i] = resfin[i]; | ||
+ | } | ||
+ | else { | ||
+ | if (mir[21] == "T") { | ||
+ | result[21] = "T"; | ||
+ | } | ||
+ | else { | ||
+ | result[21] = "A"; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | resfin = result.join(''); | ||
+ | } | ||
+ | |||
+ | // A/U in position 8 | ||
+ | if (document.seqIn.AU[3].checked) { | ||
+ | var result = new Array(); | ||
+ | for (var i = 0; i < resfin.length; i++) { | ||
+ | if (!(i == 14)) { | ||
+ | result[i] = resfin[i]; | ||
+ | } | ||
+ | else { | ||
+ | if (mir[14] == "T") { | ||
+ | result[14] = "T"; | ||
+ | } | ||
+ | else { | ||
+ | result[14] = "A"; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | resfin = result.join(''); | ||
+ | } | ||
+ | |||
+ | // A/U in position 9 | ||
+ | if (document.seqIn.AU[4].checked) { | ||
+ | var result = new Array(); | ||
+ | for (var i = 0; i < resfin.length; i++) { | ||
+ | if (!(i == 13)) { | ||
+ | result[i] = resfin[i]; | ||
+ | } | ||
+ | else { | ||
+ | if (mir[13] == "T") { | ||
+ | result[13] = "T"; | ||
+ | } | ||
+ | else { | ||
+ | result[13] = "A"; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | resfin = result.join(''); | ||
+ | } | ||
+ | |||
+ | // A/U in position 10 | ||
+ | if (document.seqIn.AU[5].checked) { | ||
+ | var result = new Array(); | ||
+ | for (var i = 0; i < resfin.length; i++) { | ||
+ | if (!(i == 12)) { | ||
+ | result[i] = resfin[i]; | ||
+ | } | ||
+ | else { | ||
+ | if (mir[12] == "T") { | ||
+ | result[12] = "T"; | ||
+ | } | ||
+ | else { | ||
+ | result[12] = "A"; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | resfin = result.join(''); | ||
+ | } | ||
+ | |||
+ | // position -1 and 0 | ||
+ | var AU1 = ""; | ||
+ | if (document.seqIn.AU[0].checked && document.seqIn.AU[1].checked) { | ||
+ | AU1 = "AA"; | ||
+ | } | ||
+ | else if (!document.seqIn.AU[0].checked && document.seqIn.AU[1].checked) { | ||
+ | AU1 = "A"; | ||
+ | } | ||
+ | else if (document.seqIn.AU[0].checked && !document.seqIn.AU[1].checked) { | ||
+ | AU1 = "CA"; | ||
+ | } | ||
+ | |||
+ | // addition of sticky ends | ||
+ | var leading5 = ""; | ||
+ | var complem3 = ""; | ||
+ | var leading3 = ""; | ||
+ | var complem5 = ""; | ||
+ | |||
+ | if (endings == "BBB") { | ||
+ | leading5 = "AATTCGCGGCCGCACTAGT"; | ||
+ | complem3 = "ACTAGTGCGGCCGCG"; | ||
+ | leading3 = "GCTAGCGCGGCCGCTGCA"; | ||
+ | complem5 = "GCGGCCGCGCTAGC"; | ||
+ | } | ||
+ | if (endings == "XX") { | ||
+ | leading5 = "CCGGG"; | ||
+ | complem3 = "C"; | ||
+ | leading3 = "C"; | ||
+ | complem5 = "TCGAG"; | ||
+ | } | ||
+ | else if (endings == "custom") { | ||
+ | leading5 = end5; | ||
+ | leading3 = end3; | ||
+ | complem3 = revcomp(leading5); | ||
+ | complem5 = revcomp(leading3); | ||
+ | } | ||
+ | |||
+ | // creation of reverse complementary strand | ||
+ | resfin = spacer.concat(resfin); | ||
+ | resfin = resfin.concat(AU1); | ||
+ | rcresult = revcomp(resfin); | ||
+ | leading5 = leading5.toLowerCase(); | ||
+ | complem5 = complem5.toLowerCase(); | ||
+ | leading3 = leading3.toLowerCase(); | ||
+ | complem3 = complem3.toLowerCase(); | ||
+ | var output1 = ("> " + nombre + ", " + charac); | ||
+ | var output2 = (leading5 + resfin + leading3); | ||
+ | var output3 = ("> " + nombre + ", " + charac + " comp strand"); | ||
+ | var output4 = (complem5 + rcresult + complem3); | ||
+ | |||
+ | // output sequences | ||
+ | showDiv(output1,output2,output3,output4); | ||
+ | |||
+ | //End | ||
+ | } | ||
+ | </script> | ||
</head> | </head> | ||
<body> | <body> |
Revision as of 02:00, 24 October 2010
|
|
||