MediaWiki:Common.js: Difference between revisions

From NeoGeo Development Wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 14: Line 14:
function cconv(frm) {
function cconv(frm) {


   var red = Math.floor(document.forms["cconvform"]["color-red"].value / 8);
   var red = Math.max(255, document.forms["cconvform"]["color-red"].value);
   var green = Math.floor(document.forms["cconvform"]["color-green"].value / 8);
   var green = Math.max(255, document.forms["cconvform"]["color-green"].value);
   var blue = Math.floor(document.forms["cconvform"]["color-blue"].value / 8);
   var blue = Math.max(255, document.forms["cconvform"]["color-blue"].value);


   var luma = Math.floor((54.213*red) + (182.376*green) + (18.411*blue));
   var icolor = red + "," + green + "," + blue;


   var hex = ((((luma&1)^1)<<15)|((red&1)<<14)|((green&1)<<13)|((blue&1)<<12)|((red&0x1E)<<7)|((green&0x1E)<<3)|(blue>>1)).toString(16).toUpperCase();
   var luma = Math.floor((54.213*red) + (182.376*green) + (18.411*blue)) & 1;


  red = Math.floor(red / 8);
  green = Math.floor(green / 8);
  blue = Math.floor(blue / 8);
  var ocolor = ((red<<1)+luma)<<2 + "," + ((green<<1)+luma)<<2 + "," + ((blue<<1)+luma)<<2;
  var hex = (((luma^1)<<15)|((red&1)<<14)|((green&1)<<13)|((blue&1)<<12)|((red&0x1E)<<7)|((green&0x1E)<<3)|(blue>>1)).toString(16).toUpperCase();
   while (hex.length < 4) {
   while (hex.length < 4) {
     hex = "0" + hex;
     hex = "0" + hex;
   }
   }


   document.getElementById('cconvresult').innerHTML = "$" + hex;
   document.getElementById('cconvresult').innerHTML = '$' + hex + '<div style="width:64px; height:32px; background:rgb(' + icolor + ');">TEST</div> <div style="width:64px; height:32px; background:rgb(' + ocolor + ');">TEST</div> ';


}
}

Revision as of 12:24, 23 January 2016

/* Any JavaScript here will be loaded for all users on every page load. */

// NeoGeo Color converter
(function () {

  var cconvdiv = document.getElementById('color-converter');
  cconvdiv.innerHTML = '<form name="cconvform" action=""><input type="text" maxlength="3" size="4" id="color-red">' +
                       '<input type="text" maxlength="3" size="4" id="color-green">' +
                       '<input type="text" maxlength="3" size="4" id="color-blue">' +
                       '<input type="button" value="Convert" onClick="cconv();"></form>';

}());

function cconv(frm) {

  var red = Math.max(255, document.forms["cconvform"]["color-red"].value);
  var green = Math.max(255, document.forms["cconvform"]["color-green"].value);
  var blue = Math.max(255, document.forms["cconvform"]["color-blue"].value);

  var icolor = red + "," + green + "," + blue;

  var luma = Math.floor((54.213*red) + (182.376*green) + (18.411*blue)) & 1;

  red = Math.floor(red / 8);
  green = Math.floor(green / 8);
  blue = Math.floor(blue / 8);

  var ocolor = ((red<<1)+luma)<<2 + "," + ((green<<1)+luma)<<2 + "," + ((blue<<1)+luma)<<2;

  var hex = (((luma^1)<<15)|((red&1)<<14)|((green&1)<<13)|((blue&1)<<12)|((red&0x1E)<<7)|((green&0x1E)<<3)|(blue>>1)).toString(16).toUpperCase();
  while (hex.length < 4) {
    hex = "0" + hex;
  }

  document.getElementById('cconvresult').innerHTML = '$' + hex + '<div style="width:64px; height:32px; background:rgb(' + icolor + ');">TEST</div> <div style="width:64px; height:32px; background:rgb(' + ocolor + ');">TEST</div> ';

}