Handling Keyboard Shortcuts in JavaScript

Despite the many JavaScript libraries that are available today, I cannot find one that makes it easy to add keyboard shortcuts(or accelerators) to your javascript app. This is because keyboard shortcuts where only used in JavaScript games - no serious web application used keyboard shortcuts to navigate around its interface. But google apps like Google Reader and Gmail changed that. So, I have created a function to make adding shortcuts to your application much easier.

Old Version

This is the documentation for the old version of this script - a newer version is available.

Demo

Press any of the following key combinations...

Shift+F1 - Shows alert("Help Me!");
Ctrl+S - Shows alert("Saved!");
Right Key - Shows alert("Right");

Try it out...

Live Evaluation

Documentation

First Argument : The Shortcut Key Combination - String
The shortcut key combination should be specified in this format ... Modifier[+Modifier..]+Key. More about this in the Supported Keys section.
Second Argument : Function to be called - Function
Specify the function here. This function will be called if the shortcut key is pressed. The event variable will be passed to it.
Third Argument[OPTIONAL] : Options - Associative Array
This argument must be an associative array with any of these three options...
type - String
The event type - can be 'keydown','keyup','keypress'. Default: 'keydown'
target - DOM Node
The element that should be watched for the keyboard event. Default : document
propagate - Boolean
Allow the event to propagate? Default : false
Example...
{
'type':'keydown',
'propagate':false,
'target':document
}

Example Code


shortcut("Ctrl+B",function() {
	alert("The bookmarks of your browser will show up after this alert...");
},{
	'type':'keydown',
	'propagate':true,
	'target':document
});

Supported Keys

The shortcut keys should be specified in this format ...

Modifier[+Modifier..]+Key

Example...

Ctrl+A

The valid modifiers are

You can specify a sequence without a modifier as well - like this...

shortcut("X",function() {
	alert("Hello!");
});

The valid Keys are...

These keys are case insensitive - so don't worry about using the correct case.

This library is in beta - so expect some problems. Suggestions are welcome.

Code

Download the shortcuts.js file.

It has just one function - you can move it to some other JS file in your project.

License

BSD License

Comments

Steve Clay at 30 Mar, 2007 05:58
Each shortcut calls the function 6 times in Opera9.
Reply to this.
RunDeep at 06 Apr, 2007 12:26
Yeah- I see the same problem in Firefox. Any word on a fix?
Reply to this.
Binny V A at 06 Apr, 2007 12:39
I am looking into this now. I will update this page if I can find the fix. By the way, this problem is not present in my Firefox browser. Which version are you using?
Reply to this.
RunDeep at 06 Apr, 2007 04:16
Oh... my bad- I had the call to shortcut in a jsp loop that repeated it 10 times... D'OH! It works great, now, and thanks for this great library.
Reply to this.
Phil at 12 Apr, 2007 12:00
This is great! Nicely done. I would like use this without a modifier, but how would I detect that the user was typing in a text box or textarea box and not fire off if they are?

Thanks!
Reply to this.
Binny V A at 12 Apr, 2007 10:09
Good question. The callback function will have one argument - the event object. You can find the source of the event and see what kind of tag it is. If you put your email address here or send me a mail, I will try to put together an sample of how to do this and send it to you.
Reply to this.
Phil at 13 Apr, 2007 09:19
Binny,

Thanks so much for trying to help me. I think all we would need to capture is input type of text and textarea's. Right? I included my email address in this post.

Thanks again,

Phil
Reply to this.
Phil at 13 Apr, 2007 09:20
If that didn't work, it's phils8747-openjs@yahoo.com

Phil
Reply to this.
Ad at 13 Apr, 2007 12:58
I need the library to catch the F5 button to not refresh the whole page but only a frame. Is that possible?
Reply to this.
Binny V A at 13 Apr, 2007 06:50
I think it is possible. By default, the library will prevent the propagation of the shortcut. So the full page will not be refreshed. All you have to do is write the code to refresh the page inside the callback function. Try it - if you run into any trouble, let me know.
Reply to this.
Prasanth at 17 Apr, 2007 03:37
I am trying to use "Ctrl+B" as a shortcut to fire my custom code. I am using propagate as "false" to suppress the browser's bookmark. But the code fires the bookmark along with my custom code. Could you please point me in the right direction.
Reply to this.
Binny V A at 17 Apr, 2007 08:28
It works fine for me in Firefox 2 and IE6. Which browser are you using?
Reply to this.
yasith at 17 Apr, 2007 05:17
This works fine with Ctrl and Shift modifiers. But I want to use Alt modifier.I'm using ie 6.

I used library like this....

<body onkeypress="return noNumbers()">
<script type="text/javascript">
function noNumbers()
{
shortcut("Alt+X",function() {
	alert("Hi there!");
});
}

function shortcut(shortcut,callback,opt) 
{....}
</script>
PLz help me.I'm new to java script
Reply to this.
Binny V A at 17 Apr, 2007 08:41
Just a small change
<body onkeypress="return noNumbers()">
should be
<body onload="noNumbers()"> A better way of doing that is to avoid using the 'onload' attribute in the body tag. Instead use this code window.onload=noNumbers;
Reply to this.
yasith at 18 Apr, 2007 04:51
Thanks Binny , I tested this labrary in in a normal html page. It works fine. But i want to use this java script in .aspx page. When I add this library to the aspx page it doesn't work. Is there any problem in adding this library to aspx pages
Reply to this.
Binny V A at 18 Apr, 2007 10:27
There is a chance that there is some other JS script on the page that will hijack the onload action. Take a look addEvent function. But thats just a guess - could be something else.
Reply to this.
Patrick at 18 Apr, 2007 11:21
Hello,

great script! I want to use it in my application. It works fantastic for "ctrl+n" but not for "ctrl+p". The print dialogue will be opened in IE.
How can I avoid that?

shortcut("control+P",function() {});

Thank you!
Reply to this.
markusf at 18 Apr, 2007 11:41
@Patrick:

shortcut("Ctrl+P",function() {
	alert("Your P stuff goes here!");
}, {
'type':'keydown',
'propagate':false,
'target':document
});
Reply to this.
Anonymous at 19 Apr, 2007 12:17
Looks good

but does it support Macintosh? Linux?
Reply to this.
Binny V A at 19 Apr, 2007 03:52
Script is OS independent - depends on the browser.
Reply to this.
paolo at 19 Apr, 2007 12:21
@Anonymous

just try it... :-)
at least it works with safari 2.0.3.
Reply to this.
Anonymous at 19 Apr, 2007 12:27
You appear to have missed how to impliment the actual script in to a web site, stuff like the html and addEvent script would be great as you have already got a working copy, but ment I have had to dig around to make a copy work.
Reply to this.
James Kirby at 19 Apr, 2007 12:34
What about the apple key, could you take that into account, as I get several problems with my gallerys, becuase I use right/left, but then I want to tab using Apple+Right bt my script say "you press the right button, now you will go to the next page". Also to mention you could do with adding a function to know where your focused on as when i press the right key in the comment box I can not go right, this happens on my web site too.
Reply to this.
Binny V A at 19 Apr, 2007 08:06
I am looking into the 'apple key' issue. The problem is, I don't have a Mac.

The right key - the callback function will have one argument - the event object. You can find the source of the event and see what kind of tag it is.
Reply to this.
Anonymous at 19 Apr, 2007 12:37
apple keys...LOL
Reply to this.
Anonymous at 19 Apr, 2007 10:50
What's funny is the library assumes Ctrl is an imporant key. If you're on a Mac (like all the really bright programmers), it ain't. So, to repeat the earlier user's question... can this be extended to add keys that are meaningful on non-Windows systems? Like "Option" and "Command"? After all, those keys have been around at least as long as "Control" (which we also have on the Mac, by the way).

I assume the script can, but I guess the question is... will the author be doing this?
Reply to this.
Trevor at 19 Apr, 2007 02:30
Option should report as alt, I think.
Reply to this.
Anonymous at 08 Jun, 2007 07:14
If you're so bright, hack it yourself.
Reply to this.
Shaun Newman at 19 Apr, 2007 01:08
Hi,
Firstly thatnks for your efforts and for releasing this neat little library, it will allow developers to add a little extra into their accessible websites. I was wondering though if you have any form of licensing for it o if it's just a freebie for the community? I plan to use this for my own web development but would also love to introduce it at work. Thanks.
Reply to this.
Binny V A at 19 Apr, 2007 03:49
BSD License - sorry that I did not mention it.
Reply to this.
Tijn at 19 Apr, 2007 01:13
I like! There is a big chance we will be using it for our webapp. But,... as far as I see, there is no easy way to remove the shortcut. For us it would be a big improvement if it could.
Reply to this.
Arne at 19 Apr, 2007 03:22
Hi,
I just wanted to thank you for this nice piece of code.
Keep up the good work!
Reply to this.
efattal at 19 Apr, 2007 03:27
Good job. Very interesting. I use it for showing the online help using F1. It works very well in FF 2.0. But in IE6 the propagate=false option isn't enough. IE shows my online help but it shows the IE help too. Do you think there is a way for avoiding that? Thanks for you help.
Reply to this.
l5re at 19 Apr, 2007 04:02
Hi
Very interesting script , it is so easy for use and good tool for navigation in website
Reply to this.
Lalit at 19 Apr, 2007 07:23
This is really cool.
Reply to this.
Anonymous at 19 Apr, 2007 10:00
It would be nice to see support for the "meta" keys ("Command"/"Apple" on Macs, "Windows"/"Special" on Windows) -- I think these keys are reported as "meta" by javascript, but I've never been able to capture them reliably across browsers.

Reply to this.
Anonymous at 19 Apr, 2007 01:23
Note to anyone trying to use this on a non-Firefox browser: The propagate option doesn't do anything. This script provides no way to stop event propagation from a key that normally does something, like PageUp and PageDown. I haven't checked to see if it actually works in Firefox, but the source code does say it's broken in all other browsers. I wasted a good 2 hours trying to get it to work, before reading the comment in the code.
Reply to this.
Binny V A at 19 Apr, 2007 08:01
But e.cancelBubble is supported by IE - this will kill the bubbling process. That should stop event propagation in IE. For more details, see Prevent Default action for an event page.
Reply to this.
Anonymous at 22 May, 2007 05:44
Browsers that use DOM level 2, such as Firefox and Safari do not use the event.cancelBubble property. That is IE only. For Safari and Firefox you need to use evt.stopPropagation();. You can also use evt.preventDefault(). If you don't use any of the DOM level 2 events, the event bubble handling will be incomplete.

http://developer.mozilla.org/en/docs/DOM:event.stopPropagation
http://developer.mozilla.org/en/docs/DOM:event.preventDefault

Reply to this.
Tgr at 20 Apr, 2007 04:05
Found the following bugs in FF2/win:
* propagate:false is unreliable. For example, Ctrl+S still opens the save screen, and characters typed in the textbox still appear; but cursor keys don't propagate.
* <modifier>+<key> will be caught by <key>. If there are event handlers for both, the one for <key> will fire first.
* Ctrl+Alt+<direction> shortcuts don't work.
* Non-english keyboard layouts are a mess. It will not catch the same character; it might or might not catch the same key.
Reply to this.
Binny V A at 20 Apr, 2007 08:40
Thanks for the feedback - I am looking into this. There are something that may be unsolvable - like if the OS intercepts the shortcut instead of the browser. I will try to do my best in solving these.
Reply to this.
Paco at 24 Apr, 2007 09:58
Use keypress instead of keydown. Seems to work for Firefox.
Reply to this.
Andreas at 23 Apr, 2007 07:12


Unified key event handling in web browsers is a daunting task. It causes a lot of head aches, and while it is crucial for many modern web applications, almost nobody does really take care of that (particularly not the browsers themselves).



Anyway, there is good news for all developers, since the open source JavaScript framework qooxdoo.org has tried to resolve those nightmares as complete as possible. This technical article and the references therein explain all the fundamental problems behind such a unified key event handling and the cross-browser/cross-plattform solution provided by qooxdoo. Hope that helps. :-)

Reply to this.
Anonymous at 24 Apr, 2007 12:19
In IE 6 (didn't test other versions) the F10 key fires but afterwards still bubbles and calls the file menu. Firefox is doing fine...
Reply to this.
Anonymous at 27 Apr, 2007 08:16
Alt+Home works with FF, but not with IE6
Reply to this.
rubel at 28 Apr, 2007 04:55
Hi,
It is fine work.
I am tring to make a key board layout for my owen lanugage. So i like to replace my key press with a unicode. Suppose if i press 'j'i like to replace it with 'ক'. It is good when i press a key it dont place a key there. I just need to place a unicode where my cursor is blinking.
Please can any body help me.
Thank you.
Reply to this.
Anonymous at 02 May, 2007 06:34
I need a function that will press the DOWN and ENTER keys in javascript can u help me with this
Reply to this.
Arpan D at 03 May, 2007 04:15
Binny, great work man!
OK, I need the solution to Tgr's problem (post: Tgr at 20 Apr, 2007 04:05). Have you got the time to fix it? And Paco, I tried replacing keydown by keypress, but it doesn't seem to work even on FF.

Thanks in advance,
Arpan D
Reply to this.
Rudi at 09 May, 2007 09:07
Is there any way to make this script not fire if there is an input element in focus?

ie. a page with input boxes (and textareas!) on it, if they are in focus, I don't want it to navigate to a different page when they press a key..

Thanks!

Rudi
Reply to this.
Binny V A at 09 May, 2007 11:42
Something like this should work...


window.onload=function(){
	shortcut("x",handler,{'propagate':true});
}

function handler(e) {
	var element;
	if (e.target) element = e.target;
	else if (e.srcElement) element = e.srcElement;
	if (element.nodeType == 3) element = element.parentNode;// defeat Safari bug
	
	if(element.tagName == 'TEXTAREA' || element.tagName == 'INPUT') return;
	
	//Do what you want to do here.
	alert("Shortcut Pressed!");
}
Reply to this.
Jasper at 29 Jun, 2007 02:13
I have tried this method, but it doesn't work (with backspace). The backspace acts just like it normally does. (so it will not go back when focussed on the textarea, but outside of it, it just goes back and doesnt get captured)
I am making an ajax interface with fake back-button functionality..

Reply to this.
Beuh at 13 May, 2007 06:23
Some bug (or thing i didn't understand), can be verified in this page...

If I add :
shortcut("Alt+Shift+d",function() {
alert("Hi here!");
});
and
shortcut("Shift+d",function() {
alert("Hi there!");
});

And press "Alt+shift+d" i get "Hi here" followed by "Hi there"...

Any way i can only have "Hi here" ?
Reply to this.
Frank at 08 Jun, 2007 06:53
Yes - I saw this too - the key events are not unique
what about this solution ..
after declaration of special_keys change the following code:
############################################################

    var modifiers = { 
      shift : { wanted : false, pressed : false},
      ctrl : { wanted:false, pressed:false},
      alt : { wanted:false, pressed:false}
    }
    if(e.ctrlKey) modifiers.ctrl.pressed = true;
    if(e.shiftKey) modifiers.shift.pressed = true;
    if(e.altKey) modifiers.alt.pressed = true;

    for(var i=0; k=keys[i],i<keys.length; i++) {
      //Modifiers
        if(k == 'ctrl' || k == 'control') {
          kp++;
          modifiers.ctrl.wanted = true;
     
      } else  if(k == 'shift') {
          kp++;
          modifiers.shift.wanted = true;

      } else if(k == 'alt') {
          kp++;
          modifiers.alt.wanted = true;

      } else if(k.length > 1) { //If it is a special key
        if(special_keys[k] == code) kp++;

      } else { //The special keys did not match
        if(character == k) kp++;
        else {
          if(shift_nums[character] && e.shiftKey) { //Stupid Shift key bug created by using lowercase
            character = shift_nums[character]; 
            if(character == k) kp++;
          }
        }
      }
    }
    if(kp == keys.length && 
      modifiers.ctrl.pressed == modifiers.ctrl.wanted &&
      modifiers.shift.pressed == modifiers.shift.wanted &&
      modifiers.alt.pressed == modifiers.alt.wanted ) {
#############################################################
continue original with callback(e);
Reply to this.
rtconner at 14 May, 2007 02:14
Propogate seems to be having problems working on my FireFox 2 browser.
Reply to this.
rtconner at 14 May, 2007 03:11
Beuh.. I had the same problem.. fixed it with this code

// replace the "if(kp == keys.length) {" line with this:
var mod = 0;

if(e.ctrlKey) mod++;
if(e.shiftKey) mod++;
if(e.altKey) mod++;

if(kp == keys.length && (kp == mod+1)) {
Reply to this.
Anonymous at 16 May, 2007 04:14
What about if you want to send a key?

Like Alt+Down to open a dropdownlist?
if (event.keycode==13)
{
event.altdown=True
event.keycode=40
}
doesn't seem to work...
Any Ideas??
Reply to this.
Anonymous at 17 May, 2007 08:32
Code seems to require common.js and shortcuts.js to run
Reply to this.
Anonymous at 21 May, 2007 11:30
Its a great lib
Reply to this.
Anonymous at 25 May, 2007 07:02
can any one pls tell about sequencing of tab.
Reply to this.
Anonymous at 28 May, 2007 07:31
hi is there a way to map down key to tab key.. coz i want to use the function of the tab key
Reply to this.
pseudo at 30 May, 2007 02:52
this is awesome.
thank you sensei^^
Reply to this.
seth at 07 Jun, 2007 07:28
How do I disable "turn off" one of these shortcuts after I have created it?

THANKS!!!
Reply to this.
joaquin at 13 Jun, 2007 01:08
¿Send txt from clipboard to other focus objet(iframe,google,etc)?
Reply to this.
Pieter at 14 Jun, 2007 12:46
Great work with this javascript piece! Thanks to the propagate lines I could finally solve the issue with cancelling events.

Just a quick info; In Safari, the shortcut keys which are already assigned to some functions, cannot be assigned in javascript. For instance; CTRL+V will not be picked up by the event listener and will therefore not be processed.
For me that is a big issue as I do not want people to paste rich text into the wysiwyg editor I'm building for one of my websites. As far as I know there is not a possibility to paste rich text as plain text using javascript in firefox/safari... too bad.

If you happen to know a solution to this problem (cancelling the CTRL+V in safari or making it possible to paste rich text as plain text using JS) please let me know.

Keep up the great work!
Reply to this.
Damian at 20 Jun, 2007 11:36
Great Work !!

But propagate = false doesn't work for Firefox 1.5
Reply to this.
Rob Kraft at 21 Jun, 2007 11:09
Thanks for this script. I was not able to trap the function keys like F5 using the example. However, I changed the code to look for onkeydown instead of onkeypress and then I was able to override the function keys. Thanks again!
Reply to this.
Anonymous at 04 Jul, 2007 02:54
i want to capture the shift + \ key cant seem to get it working any ideas?
Reply to this.
Binny V A at 04 Jul, 2007 06:35
Try to capture '?' - that should work.
Reply to this.
Anonymous at 05 Jul, 2007 11:23
This is the only way I have found to contact the author of this site. (please make a contact form)

Anyways, I need some help on the shortcuts lib for js.

I need to know how to "delete" or "disable" a shortcut I created earlier in the script

Many thanks, loinsees@gmail.com
Reply to this.
Anonymous at 14 Aug, 2007 01:27
This stuff is cool!

In Firefox, Ctrl+W is "Close tab" or "Close browser window (If no tabs left)"
You can override this by doing: shortcut("Ctrl+W",function() {return false;});
Reply to this.
Anonymous at 11 Jul, 2007 03:33
i want to disable f11 key. i tried but couldnt able to control.

Thanks,
Reply to this.
pawel at 25 Jul, 2007 03:22
I want to add string to Alt (other) key or only string
for example

shortcut("Alt+string",function() {
alert("Hi here!");
or
shortcut("string",function() {
alert("Hi here!");

any ideas?
Reply to this.
joo at 22 Aug, 2007 10:26
Why it can not work in firefox 2.0.0.6

<html>
<head>
<script type="text/javascript" src="./shortcut.js"></script>
</head>

<div id="idDebug"></div>

<script>
var o_Debug=document.getElementById("idDebug");
o_Debug.style.position="absolute";
o_Debug.style.left=160+"px";
o_Debug.style.top=120+"px";
o_Debug.style.width=100+"px";
o_Debug.style.height=100+"px";
o_Debug.style.backgroundColor="#ff0000";

function test_keydown(event)
{
var e=window.event||event;
o_Debug.innerHTML="You have done!";
}

shortcut.add("a",test_keydown,{
'type':'keydown',
'propagate':false,
'target':o_Debug
});

</script>

</html>
Reply to this.
Kevin Maines at 16 Nov, 2007 11:57
Hi all. I'm not a programmer by any means, but I'm looking for a Javascript to enable keyboard navigation from the arrow keys. Can this library be implemented for that? Does anyone know of a script that would work? I can't write my own script but I can insert scripts and modify them.

Thanks for any help,
Kevin
Reply to this.
Binny V A at 17 Nov, 2007 05:54
You can use this to handle the keypress events - but you will have to create the code to make the navigation part.
Reply to this.
Jody at 29 Dec, 2007 08:51
How about the Escape/Esc key?
Reply to this.
Binny V A at 30 Dec, 2007 10:27
Escape key is supported - but I forgot to include it in the docs.
Reply to this.
Anonymous at 31 Dec, 2007 01:30
I am trying to override Alt +a key which open favorites Menu of Browser (IE). Below is my code but its not working please help me man…
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
<script src="shortcuts_v1.js" type="text/javascript" ></script>
<script type="text/javascript">
shortcut("Alt+A",function() {
alert("Hi there!");
},{
'type':'keydown',
'propagate':false,
'target':document
} );
</script>
</head>


test


</html>
thnks for your All help!!!
Reply to this.
wilson lesmana at 07 Jan, 2008 03:10
thank you... nice code... cool!!!
Reply to this.
Santhosh at 29 Jan, 2008 02:01
i want to use the keyboard function keys in my JSP application. can you please help me out in this
Reply to this.
Anonymous at 08 Feb, 2008 07:38
It's such a great script and I use it in my site with lots of fun.
Reply to this.
Anonymous at 02 May, 2008 01:39
whats the html code to use this script?

I cant seem to get anything to work...
please help.. thanks.
Reply to this.
Anonymous at 12 Jun, 2008 08:02
I can't get this script to work at all. Can we get a FULL example of how to implement.
Reply to this.
Anonymous at 02 Jul, 2008 11:05
I am trying to override Alt +a key which open favorites Menu of Browser (IE). Below is my code but its not working please help me man…
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
<script src="shortcuts_v1.js" type="text/javascript" ></script>
<script type="text/javascript">
shortcut("Alt+A",function() {
alert("Hi there!");
},{
'type':'keydown',
'propagate':false,
'target':document
} );
</script>
</head>


test


</html>
thnks for your All help!!!
Reply to this.
Anonymous at 18 Sep, 2008 08:13
Hi Searchers,

The above piece of code does magic!!!. I tried using it. Worked for me .

Thanks,
Kumara A.
Reply to this.
benky at 11 May, 2009 08:36
works fine for me.
on Firefox, "keydown" event doesn't override browser behaviour even with "propagate" to false. "keypress" does.
Reply to this.
bala vignesh at 18 Sep, 2009 12:03

var shortCutKeyFor="Ctrl+Shift+M"// here any thing
shortcut.add(shortCutKeyFor,function(shortCutKeyFor) {
alert(shortCutKeyFor);
//here i want which short cut key is pressed as a string
});

i am using the shortcut.add as dynamically in far loop
here alert is showing [object] i want to know how to pass the shortCutKeyFor in to the function
Reply to this.
Amrit Pandey at 22 Sep, 2009 11:01
Hi... I was trying to use this function in my web application. But when i included this function in my application then it is showing object expected error at


shortcut("Ctrl+B",function() {
alert("The bookmarks of your browser will show up after this alert...");
},{
'type':'keydown',
'propagate':true,
'target':document
});
in above function
Reply to this.
Anonymous at 05 Nov, 2009 05:33
Hi,
This works fine in FireFox but doesnt work in IE.Is there any modification needed to work with IE?
Reply to this.
Anonymous at 11 Dec, 2009 07:19
How do you override CTRL++ and CTRL-- ?
they seem to default to zoom in and out no matter what
Reply to this.
mikeY at 31 Dec, 2009 03:33
Thanks a lot for this - and further thanks for publishing it under BSD licence.
I'm using it in http://code.google.com/p/zaapaas/source/browse/#svn/trunk/reform

mikeY
Reply to this.
Anonymous at 02 Mar, 2010 04:28
I want to use the script in IE8. I have put Alt+ s in the window provided above. Though it works fine, at the end it opens the the "Safety TAB " (IE 8). Is ther a fix for this ?
Reply to this.
Comment

Please dont enter you comments in this form - this is a fake form to confuse spamming bots. The next form is the real one.




Comment




Comment Formating : HTML tags a, strong, em, b, i, code, pre, p and br allowed. Other tags will be shown as code(< will become &lt;). Urls, Line breaks will be auto-formated.