Difference between revisions of "MediaWiki:Common.js"

From Basin Wiki
Jump to navigation Jump to search
 
(20 intermediate revisions by the same user not shown)
Line 84: Line 84:
 
         var drop3array = drop3string.split("@-@");
 
         var drop3array = drop3string.split("@-@");
 
         var drop3list = " ";
 
         var drop3list = " ";
 +
        var rngarray = document.getElementById("rngbase").innerHTML.split("@@");
 
          
 
          
 
         for (var m=0;m<drop1array.length;m++)
 
         for (var m=0;m<drop1array.length;m++)
Line 98: Line 99:
 
         }
 
         }
  
         document.getElementById('intfood').innerHTML = '<select id="drop1">' + drop1list + '</select><br /><br /><select id="drop2">' + drop2list + '</select><br /><br /><select id="drop3">' + drop3list + '</select><br /><br /><input class="level1" value="1"><br /><br /><input class="level2" value="80"><br /><br /><input id="food" type="checkbox" checked="checked" /><br /><br /><input id="notfood" type="checkbox" /><br /><br /><input type="button" value="Search" class="submit" style="width:100px; margin-left:70px; text-align:center;"></input>';
+
         document.getElementById('intfood').innerHTML = '<input id="gw2textinput" class="gw2textinput" placeholder="Search..."><br /><select id="drop1" class="gw2drop1">' + drop1list + '</select><br /><select id="drop2" class="gw2drop2">' + drop2list + '</select><br /><select id="drop3" class="gw2drop3">' + drop3list + '</select><br /><input class="gw2level1" value="1"><input class="gw2level2" value="80"><input id="food" type="checkbox" checked="checked" class="gw2check1" /><input id="notfood" type="checkbox" class="gw2check2" /><div class="gw2submit"></div>';
 +
        document.getElementById('rngtext').innerHTML = rngarray[Math.floor((Math.random()*rngarray.length))];
 
          
 
          
$(".submit").live("click", function () {
+
        var ua = navigator.userAgent,
 +
        event = (ua.match(/iPad/i)) ? "touchstart" : "click";
 +
       
 +
$(".gw2submit").live(event, function() {
 
     var database = document.getElementById("database").innerHTML;
 
     var database = document.getElementById("database").innerHTML;
 
     var databasearray = database.split("@@");
 
     var databasearray = database.split("@@");
     var level = [Number($(".level1").val()),Number($(".level2").val())];
+
     var level = [Number($(".gw2level1").val()),Number($(".gw2level2").val())];
 
     var drop1 = document.getElementById("drop1").options[document.getElementById("drop1").selectedIndex].value;
 
     var drop1 = document.getElementById("drop1").options[document.getElementById("drop1").selectedIndex].value;
 
     var drop2 = document.getElementById("drop2").options[document.getElementById("drop2").selectedIndex].value;
 
     var drop2 = document.getElementById("drop2").options[document.getElementById("drop2").selectedIndex].value;
Line 110: Line 115:
 
     var notfood;
 
     var notfood;
 
     var result = " ";
 
     var result = " ";
 +
    var newfield = " ";
 +
    var textinput = $(".gw2textinput").val().substring(0, 50).trim();
 +
    var patt1 = /ascending/g;
 +
    var patt2 = /wiki/g;
 +
    var wlinks = [];
 +
    var newliner;
 +
    var resultnumber = 0;
 +
    var databasearraysorting = [];
 
      
 
      
 
     for (var i=0;i<=1;i++)
 
     for (var i=0;i<=1;i++)
Line 145: Line 158:
 
     var foodtype = food + notfood;
 
     var foodtype = food + notfood;
  
 +
    for (var h=0;h<databasearray.length;h++)
 +
    {
 +
        databasearraysorting[h] = [databasearray[h],databasearray[h].split("@-@")[5]];
 +
    }
 +
 +
    databasearraysorting.sort(function(a, b)
 +
        {
 +
        return b[1] - a[1];
 +
        });
 +
 +
    for (var g=0;g<databasearray.length;g++)
 +
    {
 +
        databasearray[g] = databasearraysorting[g][0];
 +
    }
 +
   
 +
    if (patt1.test(textinput) === true)
 +
        {
 +
        databasearray = databasearray.reverse();
 +
        textinput = textinput.replace(patt1,'').trim();
 +
        }
 +
   
 +
    if (patt2.test(textinput) === true)
 +
        {
 +
        textinput = textinput.replace(patt2,'').trim();
 +
        newfield = document.getElementById("wtable").innerHTML;
 +
        }
 +
   
 
     for (var k=0;k<databasearray.length;k++)
 
     for (var k=0;k<databasearray.length;k++)
 
     {
 
     {
         var temparray = databasearray[k].trim().split("@-@");
+
         var temparray = databasearray[k].split("@-@");
 
         if (Number(temparray[5]) >= level[0] && Number(temparray[5]) <= level[1])
 
         if (Number(temparray[5]) >= level[0] && Number(temparray[5]) <= level[1])
 
         {
 
         {
 
             if (foodtype == 3 || Number(temparray[6]) == foodtype)
 
             if (foodtype == 3 || Number(temparray[6]) == foodtype)
 
             {
 
             {
             if (databasearray[k].search(drop1) >=0 && databasearray[k].search(drop2) >=0 && databasearray[k].search(drop3) >=0)
+
             if (databasearray[k].search(drop1) >=0 && databasearray[k].search(drop2) >=0 && databasearray[k].search(drop3) >=0 && databasearray[k].toLowerCase().search(textinput.toLowerCase()) >=0)
 
             {
 
             {
                 result= result + "{{nourishment" + "|name =" + temparray[0] + "|duration = " + temparray[1] + "|property1 = " + temparray[2] + "|property2 = " + temparray[3] + "|property3 = " + temparray[4] + "|levelreq = " + temparray[5] + "}}";
+
                if (newfield === ' ')
 +
                {
 +
                 result= result + '<table class="gw2tth"><tr><td colspan="2" class="gw2tt"><a style="color: #5498ff; text-decoration: none;" href="http://wiki.guildwars2.com/wiki/' + temparray[0] + '">' + temparray[0] + '</a></td></tr><tr><td valign="top" class="gw2tc1">Nourishment (' + temparray[1] + ')<br /><br />Required Level: ' + temparray[5] + '</td><td valign="top">' + temparray[2] + ((temparray[3] === " ")?temparray[3]:'<br />' + temparray[3]) + '<br />' + temparray[4] + '</td></tr></table>';
 +
                resultnumber = resultnumber + 1;
 +
                }
 +
                else
 +
                {
 +
                result = result + '<br />|-<br />|' + temparray[5] + '||' + temparray[1] + '||{{item icon|' + temparray[0] + '|large=y}} || ' + temparray[2] + ((temparray[3] === " ")?temparray[3]:'&lt;br /&gt;' + temparray[3]) + ((temparray[4].search('10') >=0)?'':'&lt;br /&gt;' + temparray[4]);
 +
                resultnumber = resultnumber + 1;
 +
                }
 
             }
 
             }
 
             }
 
             }
 
         }
 
         }
 
     }
 
     }
     document.getElementById('result').innerHTML = result;
+
   
 +
    if (newfield != ' ')
 +
    {
 +
    result = result.replace(/\./g,'');
 +
    wlinks = document.getElementById("wlinks").innerHTML.split("@-@");
 +
        for (var m=0;m<wlinks.length;m++)
 +
        {
 +
        result = result.split(wlinks[m].split("@@")[0]).join(wlinks[m].split("@@")[1]);
 +
        }
 +
    }
 +
     document.getElementById('result').innerHTML = ((newfield === ' ')?result:newfield + result + '<br />|}');
 +
    document.getElementById('resultnumber').innerHTML = resultnumber + ' out of ' + databasearray.length;
 
});
 
});
 
          
 
          

Latest revision as of 21:23, 2 July 2013

/* Any JavaScript here will be loaded for all users on every page load. */
/* This code displays a clock or a countdown timer. Adapted from w3schools.com example. */
(function($) {

    function cdTimer() {
        var timerElem = $('#CountdownTimer');

        function checkTime(i) {
            if (i < 10) {
                i = "0" + i;
            }
            return i;
        }

        if (timerElem.length > 0) {
            var cdoffset = Number(document.getElementById('cdoffset').innerHTML);
            var today = new Date();
            var h = today.getUTCHours();
            var m = today.getUTCMinutes();
            var s = today.getUTCSeconds();

            var s1 = (s !== 0) ? 60 - s : s;
            var m1 = (m !== 0) ? 60 - m : m;
            var h1 = (24 - (h - cdoffset)) % 24;

            // add a zero in front of numbers<10
            h1 = checkTime(h1);
            m1 = checkTime(m1);
            s1 = checkTime(s1);
            timerElem.text(h1 + ":" + m1 + ":" + s1);
            t = setTimeout(function() {
                cdTimer();
            }, 1000);

        }
    }

    function sTime() {
        var timeElem = $('#ServerTime');

        function checkTime(i) {
            if (i < 10) {
                i = "0" + i;
            }
            return i;
        }

        if (timeElem.length > 0) {
            var soffset = Number(document.getElementById('soffset').innerHTML);
            var today = new Date();
            var h = today.getUTCHours();
            var m = today.getUTCMinutes();
            var s = today.getUTCSeconds();

            var h2 = (h + soffset) % 24;

            // add a zero in front of numbers<10
            h2 = checkTime(h2);
            m2 = checkTime(m);
            s2 = checkTime(s);
            timeElem.text(h2 + ":" + m2 + ":" + s2);
            t = setTimeout(function() {
                sTime();
            }, 1000);
        }
    }

    $(document).ready(cdTimer);
    $(document).ready(sTime);

})(jQuery);


function dbfood()
{
    if(document.getElementById('intfood'))
    {
        var drop1string = document.getElementById("dropdown1").innerHTML;
        var drop1array = drop1string.split("@-@");
        var drop1list = " ";
        var drop2list = " ";

        var drop3string = document.getElementById("dropdown2").innerHTML;
        var drop3array = drop3string.split("@-@");
        var drop3list = " ";
        var rngarray = document.getElementById("rngbase").innerHTML.split("@@");
        
        for (var m=0;m<drop1array.length;m++)
        {
            var x = drop1array[m].split("@@");
            drop1list = drop1list + '<option value="' + x[0] + '">' + x[1] + '</option>';
            drop2list = drop1list;
        }

        for (var n=0;n<drop3array.length;n++)
        {
            var y = drop3array[n].split("@@");
            drop3list = drop3list + '<option value="' + y[0] + '">' + y[1] + '</option>';
        }

        document.getElementById('intfood').innerHTML = '<input id="gw2textinput" class="gw2textinput" placeholder="Search..."><br /><select id="drop1" class="gw2drop1">' + drop1list + '</select><br /><select id="drop2" class="gw2drop2">' + drop2list + '</select><br /><select id="drop3" class="gw2drop3">' + drop3list + '</select><br /><input class="gw2level1" value="1"><input class="gw2level2" value="80"><input id="food" type="checkbox" checked="checked" class="gw2check1" /><input id="notfood" type="checkbox" class="gw2check2" /><div class="gw2submit"></div>';
        document.getElementById('rngtext').innerHTML = rngarray[Math.floor((Math.random()*rngarray.length))];
        
        var ua = navigator.userAgent,
        event = (ua.match(/iPad/i)) ? "touchstart" : "click";
        
$(".gw2submit").live(event, function() {  
    var database = document.getElementById("database").innerHTML;
    var databasearray = database.split("@@");
    var level = [Number($(".gw2level1").val()),Number($(".gw2level2").val())];
    var drop1 = document.getElementById("drop1").options[document.getElementById("drop1").selectedIndex].value;
    var drop2 = document.getElementById("drop2").options[document.getElementById("drop2").selectedIndex].value;
    var drop3 = document.getElementById("drop3").options[document.getElementById("drop3").selectedIndex].value;
    var food;
    var notfood;
    var result = " ";
    var newfield = " ";
    var textinput = $(".gw2textinput").val().substring(0, 50).trim();
    var patt1 = /ascending/g;
    var patt2 = /wiki/g;
    var wlinks = [];
    var newliner;
    var resultnumber = 0;
    var databasearraysorting = [];
    
    for (var i=0;i<=1;i++)
        {
           if (level[i]<1)
           {
           level[i] = 1;
           }
           if (level[i]>80)
           {
           level[i] = 80;
           }
           if (level[0]>level[1])
           {
           level = level.reverse();
           }
        }
    
    if (document.getElementById("food").checked === true)
           {
           food = 1;
           }
           else
           {
           food = 0;
           }
           if (document.getElementById("notfood").checked === true)
           {
           notfood = 2;
           }
           else
           {
           notfood = 0;
           }
    var foodtype = food + notfood;

    for (var h=0;h<databasearray.length;h++)
    {
        databasearraysorting[h] = [databasearray[h],databasearray[h].split("@-@")[5]];
    }

    databasearraysorting.sort(function(a, b)
        {
        return b[1] - a[1];
        });

    for (var g=0;g<databasearray.length;g++)
    {
        databasearray[g] = databasearraysorting[g][0];
    }
    
    if (patt1.test(textinput) === true)
        {
        databasearray = databasearray.reverse();
        textinput = textinput.replace(patt1,'').trim();
        }
    
    if (patt2.test(textinput) === true)
        {
        textinput = textinput.replace(patt2,'').trim();
        newfield = document.getElementById("wtable").innerHTML;
        }
    
    for (var k=0;k<databasearray.length;k++)
    {
        var temparray = databasearray[k].split("@-@");
        if (Number(temparray[5]) >= level[0] && Number(temparray[5]) <= level[1])
        {
            if (foodtype == 3 || Number(temparray[6]) == foodtype)
            {
            if (databasearray[k].search(drop1) >=0 && databasearray[k].search(drop2) >=0 && databasearray[k].search(drop3) >=0 && databasearray[k].toLowerCase().search(textinput.toLowerCase()) >=0)
            {
                if (newfield === ' ')
                {
                result= result + '<table class="gw2tth"><tr><td colspan="2" class="gw2tt"><a style="color: #5498ff; text-decoration: none;" href="http://wiki.guildwars2.com/wiki/' + temparray[0] + '">' + temparray[0] + '</a></td></tr><tr><td valign="top" class="gw2tc1">Nourishment (' + temparray[1] + ')<br /><br />Required Level: ' + temparray[5] + '</td><td valign="top">' + temparray[2] + ((temparray[3] === " ")?temparray[3]:'<br />' + temparray[3]) + '<br />' + temparray[4] + '</td></tr></table>';
                resultnumber = resultnumber + 1;
                }
                else
                {
                result = result + '<br />|-<br />|' + temparray[5] + '||' + temparray[1] + '||{{item icon|' + temparray[0] + '|large=y}} || ' + temparray[2] + ((temparray[3] === " ")?temparray[3]:'&lt;br /&gt;' + temparray[3]) + ((temparray[4].search('10') >=0)?'':'&lt;br /&gt;' + temparray[4]);
                resultnumber = resultnumber + 1;
                }
            }
            }
        }
    }
    
    if (newfield != ' ')
    {
    result = result.replace(/\./g,'');
    wlinks = document.getElementById("wlinks").innerHTML.split("@-@");
        for (var m=0;m<wlinks.length;m++)
        {
        result = result.split(wlinks[m].split("@@")[0]).join(wlinks[m].split("@@")[1]);
        }
    }
    document.getElementById('result').innerHTML = ((newfield === ' ')?result:newfield + result + '<br />|}');
    document.getElementById('resultnumber').innerHTML = resultnumber + ' out of ' + databasearray.length;
});
        
    }
}
window.document.body.onload = dbfood;