User:Yasir72.multan/common.js
Jump to navigation
Jump to search
Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
The accompanying .css page for this skin is at User:Yasir72.multan/common.css. |
- Report page listing warnings and errors.
//mw.loader.load('https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js');
$(document).ready(function(){
// Initials
var now = new Date();
var curdate = new Date(now.getTime()+now.getTimezoneOffset()*60000);
var fs_count = 0;
var fm_table_count = 0;
var otd_table_count = 0;
var otd_day_count = [];
for (i=0;i<12;i++) {
var otd_day_temp = [];
for (j=0;j<31;j++) {
otd_day_temp.push(0);
}
otd_day_count.push(otd_day_temp);
}
var fs_check_year = 2011;
var prevyear = 0;
var fs_month_count = [0,0,0,0,0,0,0,0,0,0,0,0];
var fs_month_count_row = [0,0,0,0,0,0,0,0,0,0,0,0];
var fs_year_count = 0;
var sd_cal_date = curdate.getDate();
var sd_cal_month = curdate.getMonth();
var prevsdts = 0;
var prev_sd_date = '';
var errors = [];
var fm_on = [];
var fm_on_show = [];
var temp_string = '';
temp_string += '<tr>';
temp_string += '<th>Year</th>';
for (var i=0;i<12;i++) {
temp_string += '<th>'+getMonthNameSmall(i)+'</th>';
}
temp_string += '<th>Total</th>';
temp_string += '</tr>';
$('#fsyear').append(temp_string);
temp_string='';
$(".fs-table").each(function(){
var trcount = 0;
var fs_section_count = 0;
$(this).children('tbody').children('tr').each(function(){
trcount++;
if (trcount!=1) {
fs_count++;
fs_section_count++;
//Adding Counter
$(this).prepend('<td><center><b>'+fs_section_count+'</b></center></td>');
//Storing Table Cells
var fs_name = $(this).children('td:nth-child(2)');
var fm_name = $(this).children('td:nth-child(3)');
var fr_date = $(this).children('td:nth-child(4)');
var fm_key = fm_name.text().replace(/[^a-zA-Z0-9]+/ig,'');
var fm_ts = getTS(fr_date.text());
var fm_key_full = fm_key+'_'+fm_ts;
var fm_name_linked = '<a href="/wiki/User:Yasir72.multan/FM?name='+fm_key+'&ts='+fm_ts+'">'+fm_name.html()+'</a>';
var sd_date = $(this).children('td:nth-child(5)');
check_sd_date = new Date(sd_date.text());
if (parseInt(check_sd_date.getFullYear())) {
otd_day_count[check_sd_date.getMonth()][check_sd_date.getDate()-1]++;
}
var sd_date_linked = "<a style='color:inherit' href='/wiki/User:Yasir72.multan/On_This_Day?date="+getMonthName(check_sd_date.getMonth())+"_"+check_sd_date.getDate()+"'>"+sd_date.html()+"</a> ";
var sd_ts = getTS(sd_date.text());
var fs_date = $(this).children('td:nth-child(6)');
//Linking FM
fm_name.html(fm_name_linked);
//Linking SD Date
sd_date.html(sd_date_linked);
//Showing FM to FM Table
var fm_name_param = getUrlParam("name").toLowerCase();
var fm_ts_param = getUrlParam("ts");
if (!parseInt(fm_ts)) {
errors.push('FR Date Error of <i>'+fm_name.text()+'</i>:<br><i>`'+fr_date.text()+'`</i><br><small> - '+sd_date.text()+'</small>');
fr_date.css({'border':'5px solid red'});
}
if (fm_key.toLowerCase()===fm_name_param.toLowerCase()&&parseInt(fm_ts)==parseInt(fm_ts_param)) {
fm_table_count++;
temp_string = '';
temp_string += '<tr>';
temp_string += '<th>'+fm_table_count+'</th>';
temp_string += '<td>'+fs_name.html()+'</td>';
temp_string += '<td>'+sd_date.html()+'</td>';
temp_string += '<td>'+fs_date.html()+'</td>';
temp_string += '</tr>';
$('.fm-table').append(temp_string);
$('#FM').html(fm_name.text());
$('#frdate').html('<h3>Release Date: '+fr_date.text()+'</h3>');
}
// Showing "On This Day" table
var sd_date_param = new Date();
sd_date_param.setFullYear(2000);
if (getUrlParam("date")==="") {
sd_date_param.setMonth(curdate.getMonth()); // Month should be set first
sd_date_param.setDate(curdate.getDate());
} else {
temp_date = new Date(getUrlParam("date").replace('_', ' ')+' 2000');
sd_date_param.setMonth(temp_date.getMonth()); // Month should be set first
sd_date_param.setDate(temp_date.getDate());
}
sd_cal_date = sd_date_param.getDate();
sd_cal_month = sd_date_param.getMonth();
if (check_sd_date.getDate()==sd_date_param.getDate()&&check_sd_date.getMonth()==sd_date_param.getMonth()) {
otd_table_count++;
temp_string = '';
temp_string += '<tr>';
temp_string += '<th>'+otd_table_count+'</th>';
temp_string += '<td>'+fs_name.html()+'</td>';
temp_string += '<td>'+fm_name.html()+'</td>';
temp_string += '<td>'+fr_date.text()+'</td>';
temp_string += '<td><center><a href="/wiki/User:Yasir72.multan/FS/Archives/'+check_sd_date.getFullYear()+'">'+check_sd_date.getFullYear()+'</a></center></td>';
temp_string += '<td>'+fs_date.html()+'</td>';
temp_string += '</tr>';
$('#otd-table').append(temp_string);
}
$('#On_This_Day').html(getMonthName(sd_date_param.getMonth())+' '+sd_date_param.getDate());
// Showing Next and Previous Arrows below OTD
var previousdate = new Date();
var nextdate = new Date();
previousdate.setTime(sd_date_param.getTime()-86400000);
nextdate.setTime(sd_date_param.getTime()+86400000);
$('#np1').html("<a href='/wiki/User:Yasir72.multan/On_This_Day?date="+getMonthName(previousdate.getMonth())+"_"+previousdate.getDate()+"'>← "+getMonthName(previousdate.getMonth())+" "+previousdate.getDate()+"</a>");
$('#np2').html("<a href='/wiki/User:Yasir72.multan/On_This_Day?date="+getMonthName(nextdate.getMonth())+"_"+nextdate.getDate()+"'>"+getMonthName(nextdate.getMonth())+" "+nextdate.getDate()+" →</a>");
//Showing FM on OTD
fm_ts_str = fm_ts.toString();
fm_ts_year = fm_ts_str.charAt(0) + '' + fm_ts_str.charAt(1) + '' + fm_ts_str.charAt(2) + '' + fm_ts_str.charAt(3);
fm_ts_month = fm_ts_str.charAt(4) + '' + fm_ts_str.charAt(5);
fm_ts_date = fm_ts_str.charAt(6) + '' + fm_ts_str.charAt(7);
sd_date_param_mplus = sd_date_param.getMonth() + 1;
if (parseInt(fm_ts_date)==sd_date_param.getDate()&&parseInt(fm_ts_month)==sd_date_param_mplus) {
var fm_on_check = 1;
for (var m=0;m<fm_on.length;m++) {
if (fm_key_full==fm_on[m]) {
fm_on_check = 0;
}
}
fm_on.push(fm_key_full);
if (fm_on_check==1) {
var fm_name_linked_rep = fm_name_linked.replace('<br>',' ');
fm_name_linked_rep = fm_name_linked_rep.replace('<br/>',' ');
fm_on_show.push({"fm_on_link":fm_name_linked_rep,"fm_on_year":fm_ts_year});
}
}
if(fm_on.length==0) {
$('#fm_on_div').hide();
} else {
$('#fm_on_div').show();
$('#fmon-otd').html('');
fm_on_show.sort(function(a,b){return parseInt(a.fm_on_year)-parseInt(b.fm_on_year)});
for (h in fm_on_show) {
$('#fmon-otd').append('<li>'+fm_on_show[h].fm_on_link+' ('+fm_on_show[h].fm_on_year+')</li>');
}
}
$('#FM_on').html('FM on '+getMonthName(sd_date_param.getMonth())+' '+sd_date_param.getDate());
//Showing FS Year Statistics
if (fs_check_year!=check_sd_date.getFullYear()) {
if (!parseInt(check_sd_date.getFullYear())) {
errors.push('SD Date Error:<br><i>`'+sd_date.text()+'`</i>');
sd_date.css({'border':'5px solid red'});
}
printFSYrow(fs_month_count_row, prevyear);
fs_check_year = check_sd_date.getFullYear();
fs_month_count_row = [0,0,0,0,0,0,0,0,0,0,0,0];
}
fs_month_count[check_sd_date.getMonth()]++;
fs_month_count_row[check_sd_date.getMonth()]++;
fs_year_count++;
prevyear = check_sd_date.getFullYear();
// Checking SD Date order
if (parseInt(sd_ts)&&parseInt(prevsdts)) {
if (parseInt(sd_ts)<parseInt(prevsdts)) {
sd_date.css({'border':'5px solid blue'});
errors.push('SD Date Order Error:<br><small>`<i>'+sd_date.text()+'</i>` is coming after `<i>'+prev_sd_date+'</i>`</small>');
}
}
prevsdts = sd_ts;
prev_sd_date = sd_date.text();
//---------
} else {
$(this).prepend('<th><center>No.</center></th>');
}
});
});
// FS Year Last row (neccassry)
printFSYrow(fs_month_count_row, prevyear);
// Showing SD Cal
var sdcal = $('#sdcal');
temp_string = '';
temp_string += '<tr>';
temp_string += '<th>Months</th><th>Total FS</th><th>Dates</th>';
temp_string += '</tr>';
sdcal.append(temp_string);
temp_string = '';
for (i=0;i<12;i++) {
temp_string += '<tr>';
temp_string += '<th>'+getMonthName(i)+'</th>';
temp_string += '<td><center>'+fs_month_count[i]+'</center></td>';
temp_string += '<td>';
var days = 0;
if (i===0||i==2||i==4||i==6||i==7||i==9||i==11) {
days = 31;
} else if (i==3||i==5||i==8||i==10) {
days = 30;
} else if (i==1) {
days = 29;
}
for (var k=1;k<=days;k++) {
if (sd_cal_date==k&&sd_cal_month==i) {
temp_string += '<b>'+k+'</b> '
} else {
temp_string += "<a href='/wiki/User:Yasir72.multan/On_This_Day?date="+getMonthName(i)+"_"+k+"'>"+k+"</a> ";
}
}
temp_string += '</td>';
temp_string += '</tr>';
}
sdcal.append(temp_string);
// Showing OTD Day Count
temp_string = '<tr><th>Month</th>';
for (i=1;i<=31;i++) {
temp_string += '<th>'+i+'</th>';
}
temp_string += '</tr>';
for (i=0;i<12;i++) {
temp_string += '<tr><th>'+getMonthNameSmall(i)+'</th>';
for (j=0;j<31;j++) {
var otd_day_disabled = 0;
if (i==3||i==5||i==8||i==10) {
if (j>29) {
otd_day_disabled = 1;
}
} else if (i==1) {
if (j>28) {
otd_day_disabled = 1;
}
}
if (otd_day_disabled===0) {
temp_string += "<td><center><a style='color:inherit' href='/wiki/User:Yasir72.multan/On_This_Day?date="+getMonthName(i)+"_"+(j+1)+"'>"+otd_day_count[i][j]+"</a></center></td>";
} else {
temp_string += '<td style="background:#eee"></td>';
}
}
temp_string += '</tr>';
}
$('#otd_day_table').append(temp_string);
//Other Single Line Objects
$('#FS').append(' ('+fs_count+')');
$('#seetoday').html("<a href='/wiki/User:Yasir72.multan/On_This_Day'>See Today</a> ("+getMonthName(curdate.getMonth())+" "+curdate.getDate()+")");
$('#totalfscount').html('Total <b>'+fs_count+'</b> FS');
//Accuracy
var all_month_count = 0;
for (i=0;i<12;i++) {
all_month_count += fs_month_count[i];
}
if (all_month_count!=fs_count) {
errors.push('Rows Error: '+fs_count+' != '+all_month_count);
}
if (errors.length!==0) {
temp_string = '';
temp_string += '<h3>Results are Not Accurate!</h3>';
temp_string += '<ul>';
for (i=0;i<errors.length;i++) {
temp_string += '<li>'+errors[i]+'</li>';
}
temp_string += '</ul>';
$('#resultalert').html(temp_string);
$('#resultalert').css({
'background':'lightpink',
'font-weight':'bold',
'border':'3px solid red',
'padding':'8px'
});
} else {
$('#resultalert').html('<b style="color:green">Accurate!</b>');
}
});
/* Functions */
function printFSYrow(array, year) {
var ysum = 0;
var t_str = '<tr>';
t_str += '<th><a href="/wiki/User:Yasir72.multan/FS/Archives/'+year+'" style="color:inherit">'+year+'</a></th>';
for (var i=0;i<12;i++) {
ysum = ysum + array[i];
if (array[i]!==0) {
t_str += '<td><center>'+array[i]+'</center></td>';
} else {
t_str += '<td></td>';
}
}
t_str += '<th>'+ysum+'</th>';
t_str += '</tr>';
$('#fsyear').append(t_str);
}
function getUrlParam(name) {
var ans = "";
var url = decodeURIComponent(window.location.href);
var urlparts = url.split("?");
if (urlparts.length>=2) {
var urlparams = urlparts[1].split("&");
for (var c=0;c<urlparams.length;c++) {
var keyvar = urlparams[c].split("=");
if (name.toLowerCase()==keyvar[0].toLowerCase()) {
ans = keyvar[1];
}
}
}
return ans;
}
function getMonthName(i) {
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
return months[i];
}
function getMonthNameSmall(i) {
var monthsm = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
return monthsm[i];
}
function getTS(str) {
var date = new Date(str);
if (!parseInt(date.getDate())) {
return "NaN";
} else {
var day = date.getDate();
var month = (date.getMonth()+1) * 100;
if (str.length<=6) { // If only year is given
day = 0;
month = 0;
}
var year = date.getFullYear() * 10000;
return year + month + day;
}
}
function richColor(n) {
var rich = ['#ffa07a', '#dcc7df', '#98fb98', '#b4cae3', '#ff69b4', '#50c878', '#40e0d0', '#dda0dd', '#ff9900', '#eef003', '#db7093', '#00b3ff'];
return rich[n];
}
function lightColor(n) {
var light = ['#ffdacc', '#ede3ef', '#cdfecd', '#d9e4f1', '#ffb5da', '#a8e4bc', '#afeeee', '#efc0ef', '#ffdead', '#f9fab3', '#edb7c9', '#b7e1f3'];
return light[n];
}
setInterval(clock, 1000);
$('.clock').show();
function clock() {
var temp_d = new Date();
var d = new Date(temp_d.getTime()+temp_d.getTimezoneOffset()*60000);
var sec = d.getSeconds();
var sec_deg = sec/60*360;
var min = d.getMinutes();
var min_deg = (((min*60)+sec)/(60*60))*360;
var hour = d.getHours()%12;
var hour_deg = ((hour*60*60)+(min*60)+sec)/(12*60*60)*360;
$('.seconds-needle').css({
"transform" : "rotate("+sec_deg+"Deg)"
});
$('.minutes-needle').css({
"transform" : "rotate("+min_deg+"Deg)"
});
$('.hours-needle').css({
"transform" : "rotate("+hour_deg+"Deg)"
});
}
/* -----------------
POTD Creator
----------------- */
$('.show-potd-canvas').html('<canvas id="potd-canvas" width="0" height="0">Your browser does not support the HTML5 canvas tag.</canvas>');
var pdate = new Date();
var form_string = '';
form_string += '<br>'
form_string += '<br>'
form_string += '<input type="hidden" id="potd-image-id">'
form_string += '<input type="hidden" id="potd-caption">'
form_string += '<select id="potd-date">';
for (var p=1;p<=31;p++) {
var selected = '';
if (p==pdate.getDate()) {
selected = 'selected';
}
form_string += '<option '+selected+'>'+p+'</option>';
}
form_string += '</select>';
form_string += '<select id="potd-month">';
for (var p=0;p<12;p++) {
var selected = '';
if (p==pdate.getMonth()) {
selected = 'selected';
}
form_string += '<option value="'+(p+1)+'" '+selected+'>'+getMonthName(p)+'</option>';
}
form_string += '</select>';
form_string += '<select id="potd-year">';
form_string += '<option>'+pdate.getFullYear()+'</option>';
form_string += '<option>'+(pdate.getFullYear()-1)+'</option>';
form_string += '</select>';
form_string += '<br>';
form_string += '<br>';
$('.show-potd-canvas').append(form_string);
var count = 0;
$('.potd-create-table').each(function(){
count++;
var image = $(this).children('tbody').children('tr:nth-child(1)').children('td');
var caption = $(this).children('tbody').children('tr:nth-child(2)').children('td').text();
var id ='scream_'+count;
image.html('<img id="'+id+'" style="width:400px" src="'+image.text()+'" alt="'+caption+'">');
$(this).children('tbody').children('tr:nth-child(3)').children('td').click(function(){
$('#potd-image-id').val(id);
var potd_date = parseInt($('#potd-date').val());
var potd_month = parseInt($('#potd-month').val());
var potd_year = parseInt($('#potd-year').val());
createImage(id, 600, richColor(potd_month-1), potd_date, potd_month, potd_year, caption);
});
});
function createImage(image_id, width, color, date, month, year, caption) {
var d = new Date(year+'-'+month+'-'+date);
var potd_date = d.getDate();
var potd_month = getMonthName(d.getMonth());
var potd_year = d.getFullYear();
var canvas = document.getElementById("potd-canvas");
var ctx = canvas.getContext("2d");
var img = document.getElementById(image_id);
var image_width = width;
var image_height = (img.height/img.width)*image_width;
canvas.width = image_width;
var y_height = 0;
var title_height = Math.floor(image_width*0.075);
var date_height = Math.floor(image_width*0.075);
var caption_padding = (image_width/60);
var caption_height = 0;
var caption_height = caption_padding;
var lines = caption.split('\n');
for (var i in lines) {
caption_height = caption_height + (caption_padding/(lines.length)) + (canvas.width/40);
}
var canvas_height = title_height + image_height + caption_height + date_height;
canvas.height = canvas_height;
ctx.fillStyle = color;
ctx.fillRect(0,0,canvas.width,title_height);
ctx.fillStyle = '#000';
ctx.font = (canvas.width/20)+"px Calibri";
ctx.fillStyle = "#000";
ctx.textAlign = "center";
var uptext_y = (canvas.width/20) +((canvas.width/20)/10);
ctx.fillText("Title", canvas.width/2, uptext_y);
y_height = title_height;
ctx.drawImage(img, 0, y_height, image_width, image_height);
y_height = y_height + image_height;
ctx.fillStyle = '#fff';
ctx.fillRect(0,y_height,canvas.width,caption_height);
ctx.fillStyle = "#000";
for (var i=1;i<=lines.length;i++) {
var capline_height = y_height+((image_width/25)*i)+(i*(canvas.width/100));
if (i>1) {
capline_height = capline_height + (caption_padding/2);
}
ctx.fillText(lines[i-1], canvas.width/2, capline_height);
}
y_height = y_height + caption_height;
ctx.fillStyle = color;
ctx.fillRect(0,y_height,canvas.width,date_height);
ctx.fillStyle = '#000';
var downtext_y = canvas.height - (canvas.width/20) + ((canvas.width/20)/2);
ctx.fillText(potd_date+' '+potd_month+' '+potd_year, canvas.width/2, downtext_y);
$(window).scrollTop(0);
}