var isNetscape=navigator.appName=="Netscape";
function is_rightclick(event){
 mbutton=event.button;
 if(mbutton==2){
  return true;
 }else{
  return false;
 }
}
function addEvent(el,ev_type,todo){
 if(document.addEventListener){
  if(ev_type.substring(0,2)=="on"){
   ev_type=ev_type.substring(2,ev_type.length);
  }
  el.addEventListener(ev_type,todo,false);
 }else{
  el.attachEvent(ev_type,todo);
 }
}
function get_randomhash(hash_len){
 return Math.round(Math.random()*hash_len);
}
function insertAfter(newnode,nnode){
 if(nnode.nextSibling){
  if(isNetscape){
   nnode.parentNode.insertBefore(newnode,nnode.nextSibling);
  }else{
   nnode.insertAdjacentElement("afterEnd",newnode)
  }
 }else{
  nnode.parentNode.appendChild(newnode);
 }
}
function get_keycode(e){
 if(isNetscape){
  return e.which;
 }else{
  return event.keyCode;
 }
}
function is_ctrl(e){
 if(isNetscape){
  return e.ctrlKey;
 }else{
  return event.ctrlKey;
 }
}
function is_std_input(e){
 if(isNetscape){
  if(e.ctrlKey||e.altKey||e.shiftKey||get_keycode(e)==13||get_keycode(e)==9||get_keycode(e)==0||get_keycode(e)==8||(get_keycode(e)>36&&get_keycode(e)<41)){
   return true;
  }else{
   return false;
  }
 }else{
  if(event.ctrlKey||event.altKey||event.shiftKey||get_keycode(e)==13||get_keycode(e)==9||get_keycode(e)==8||(get_keycode(e)>36&&get_keycode(e)<41)){
   return true;
  }else{
   return false;
  }
 }
}

Array.prototype.inArray=function(value){
 var i;
 for (i=0;i<this.length;i++){
  if(this[i]===value){
   return i;
  }
 }
 return -1;
};