Code:Javascript Functions

From Zoelife4U Wiki
Jump to: navigation, search

All code Copyright © 2008-2009 and available under the terms of the GPL Version 3.0 License. Unless otherwise noted.

Contents

Check for a PopUp Blocker

  var mine = window.open("room.html", "", "scrollbars=no,menubar=no,height=600,width=800,resizable=no,toolbar=no,location=no,status=no");
    if (mine) {
        var popUpsBlocked = false;
        mine.close();
    } else {
        var popUpsBlocked = true;
        //Ironic we use a Popup to notify of a Popup Blocker...
        alert('Popup Blocker Detected');
    }

XHTML Strict Valid Target

function externalLinks() {
    if (!document.getElementsByTagName) {
        return;
    }
    var anchors = document.getElementsByTagName("a");
    for (var i = 0; i < anchors.length; i++) {
        var anchor = anchors[i];
        if (anchor.getAttribute("href") &&
            anchor.getAttribute("rel") == "e") {
            anchor.target = "_blank";
        }
    }
}
window.onload = externalLinks;

Check If Flash Player is Installed

  var MM_contentVersion = 6;
    var plugin = (navigator.mimeTypes &&
        navigator.mimeTypes['application/x-shockwave-flash']) ? navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin : 0;
    if (plugin) {
        var words = navigator.plugins['Shockwave Flash'].description.split(" ");
        for (var i = 0; i < words.length; ++i) {
            if (isNaN(parseInt(words[i]))) {
                continue;
            }
            var MM_PluginVersion = words[i];
        }
        var MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion;
    } else if (navigator.userAgent &&
        navigator.userAgent.indexOf("MSIE") >= 0 &&
        (navigator.appVersion.indexOf("Win") != -1)) {
        document.write("<SCR' + 'IPT LANGUAGE=VBScript\> \n"); //FS hide this from IE4.5 Mac by splitting the tag
        document.write("on error resume next \n");
        document.write("MM_FlashCanPlay = ( IsObject(CreateObject(\"ShockwaveFlash.ShockwaveFlash.\" & MM_contentVersion)))\n");
        document.write("</SCR' + 'IPT\> \n");
    }
    if (MM_FlashCanPlay) {
        window.location.replace("flash.html");
    } else {
        window.location.replace("noflash.html");
    }

Zero Padding RBG to HEX Converter

object.rgb_to_hex = function(r,g,b) {
    if (r === null || g === null || b === null ) {
        return false;
    }
    return '#'+('0' + r.toString(16)).slice(-2)+('0' + g.toString(16)).slice(-2)+('0' + b.toString(16)).slice(-2);
}

Another way:

function tohex(r,g,b) {
    if (r === null || g === null || b === null ) {
        return false;
    }
    return '#'+('0' + r.toString(16)).slice(-2)+('0' + g.toString(16)).slice(-2)+('0' + b.toString(16)).slice(-2);
}

insertAfter and show_attachments

function insertAfter(newElement,targetElement) {
  //target is what you want it to go after. Look for this elements parent.
  var parent = targetElement.parentNode;
 
  //if the parents lastchild is the targetElement...
  if(parent.lastchild == targetElement) {
    //add the newElement after the target element.
    parent.appendChild(newElement);
    } else {
    // else the target has siblings, insert the new element between the target and it's next sibling.
    parent.insertBefore(newElement, targetElement.nextSibling);
    }
}
function show_attachments()
  {
    if (document.attachment) document.attachment.abort();
    document.attachment = ajax_get({
      url: '/cgi-bin/admin/projects/upload.cgi',
      handler: function (req, args) {
        var json_resp = eval("("+req.responseText+")");
        attachment_result = json_resp.attachment_result;
  attachment_link   = json_resp.attachment_link
  attachment_filename = json_resp.attachment_filename;
 
        attach_div      = document.getElementById('attach_div');
 
        if(attach_div)
        {
      newDiv = document.createElement("div");
      newDiv.innerHTML = "<a target='_blank' href='"+attachment_link+"'>"+attachment_filename+"</a>";
      parent_div = document.getElementById("attachment");
      document.body.insertAfter(newDiv, parent_div);
        }
 
      }
    });
  }

Control Alt Keystrokes

Code for creating Keystroke Commands, Hotkeys, in Javascript. These Map Control+ALT keystrokes.

var isCtrl = false;
var isAlt  = false;
document.onkeyup=function(e){
  if(e.which == 17) isCtrl=false;
}
document.onkeyup=function(e){
  if(e.which == 18) isAlt=false;
}
  document.onkeydown=function(e){
    if(e.which == 17) isCtrl=true;
    if(e.which == 18) isAlt=true;
    if(e.which == 83 && isCtrl == true && isAlt == true) 
    { //run code for CTRL+ALT+S 
      alert(e.which);
      return false; 
    } 
    if(e.which == 79 && isCtrl == true && isAlt == true) 
    { //run code for CTRL+ALT+O 
      alert(e.which);
      return false; 
    } 
    if(e.which == 84 && isCtrl == true && isAlt == true)
    { //run code for CTRL+ALT+T 
      alert(e.which);
      return false; 
    } 
  }

Javascript Key Codes

Key Pressed 	Key Code
backspace 	8
tab 	        9
enter 	        13
shift 	        16
ctrl 	        17
alt 	        18
pause/break 	19
caps lock 	20
escape 	        27
page up 	33
page down 	34
end 	        35
home 	        36
left arrow 	37
up arrow 	38
right arrow 	39
down arrow 	40
insert 	        45
delete 	46
0 	48
1 	49
2 	50
3 	51
4 	52
5 	53
6 	54
7 	55
8 	56
9 	57
a 	65
b 	66
c 	67
d 	68
e 	69
f 	70
g 	71
h 	72
i 	73
j 	74
k 	75
l 	76
m 	77
n 	78
o 	79
p 	80
q 	81
r 	82
s 	83
t 	84
u 	85
v 	86
w 	87
x 	88
y 	89
z 	90
left window key 	91
right window key 	92
select key 	93
numpad 0 	96
numpad 1 	97
numpad 2 	98
numpad 3 	99
numpad 4 	100
numpad 5 	101
numpad 6 	102
numpad 7 	103
numpad 8 	104
numpad 9 	105
multiply 	106
add 	107
subtract 	109
decimal point 	110
divide 	111
f1 	112
f2 	113
f3 	114
f4 	115
f5 	116
f6 	117
f7 	118
f8 	119
f9 	120
f10 	121
f11 	122
f12 	123
num lock 	144
scroll lock 	145
semi-colon 	186
equal sign 	187
comma 	188
dash 	189
period 	190
forward slash 	191
grave accent 	192
open bracket 	219
back slash 	220
close bracket 	221
single quote 	222
Personal tools
Online Users
Zoelife4U: