// This builds buttons
// transforming elements with className == bb
// It creates the behaviors for them.
// and is initialized with  initBehaviors.

var menu;
var menus;
var menuColor='silver';
var acolor='cyan';
var hlborder = "1px silver outset";
var noborder =  "1px silver outset";
var inborder =  "1px silver inset";
var isMac = (navigator.appVersion.indexOf("Mac")!= -1);
/*
function initFileUploads() {
	var fakeFileUpload = document.createElement('div');
	fakeFileUpload.style.position = "absolute";
	fakeFileUpload.style.top = "0px";
	fakeFileUpload.style.left = "0px";
	fakeFileUpload.style.zIndex = 0;
	fakeFileUpload.appendChild(document.createElement('input'));
	var image = document.createElement('img');
	image.src='images/button_select.png';
	fakeFileUpload.appendChild(image);
	var x = document.getElementsByTagName('input');
	for (var i=0;i<x.length;i++) {
		if (x[i].type != 'file') { continue; }
		x[i].className = 'file hidden';
		var clone = fakeFileUpload.cloneNode(true);
		x[i].parentNode.appendChild(clone);
		x[i].relatedElement = clone.getElementsByTagName('input')[0];
		x[i].changeAction = x[i].onchange;
	 	x[i].onmouseout = function () {
			this.relatedElement.value = this.value;
			};
		x[i].onchange = function () {
			this.relatedElement.value = this.value;
			this.changeAction();
			};
	}
}
*/

function makeFlairButton(elem,fname){
	if(!fname){ fname='hilite'; }
	elem.mouseover = elem.onmouseover;
	elem.onmouseover =  function(evt){
		var hl = document.getElementById(fname);
		hl.style.display = "";
	  	hl.style.left = elem.offsetLeft + "px";
	  	if(fname=='hilite2'){
			t = elem.offsetTop; 
			if(evt && !t){
				t = evt.clientY + document.body.scrollTop;
				}
			hl.style.top = t + "px";
			}
		if(this.mouseover){ this.mouseover(); }
      		};
  	elem.mouseout = elem.onmouseout;
	elem.onmouseout= function(){
         	var hl = document.getElementById(fname);
		hl.style.display = "none";
		if(this.mouseout){ this.mouseout(); }
   		 };
	elem.mouseup = elem.onmouseup;
	elem.onmouseup = function(){
		var hl = document.getElementById(fname);
		hl.style.display = "none";
		if(this.mouseup){ this.mouseup(); }
		};

   if(!elem.onmousedown){
	elem.onmousedown= function(){
		var hl = document.getElementById(fname);
		hl.style.display = "";
	  	hl.style.left = elem.offsetLeft + "px";
	   //	hl.style.top = elem.offsetTop + "px";
    		};
	}
  if(document.all){  elem.style.cursor="hand";}
	else {elem.style.cursor="pointer"; }
}

 

function makeButton(elem){
	elem.mouseover = elem.onmouseover;
	elem.onmouseover =  function(){
		this.style.padding = "0px";
		this.style.border = "2px white outset";
		if(this.mouseover){this.mouseover();}
      		};
  	elem.mouseout = elem.onmouseout;
	elem.onmouseout= function(){
        	this.style.border = "none";
        	this.style.padding = "2px";
		if(top.standalone){
			this.style.background ="";
			}
		else {
			this.style.background = "none";
			}
		if(this.mouseout){this.mouseout();}
   		 };
	elem.mouseup = elem.onmouseup;
	elem.onmouseup = function(){
		this.style.background = "none";
		if(this.mouseup){this.mouseup();}
		};

   if(!elem.onmousedown){
	elem.onmousedown= function(){
		this.style.background = "#ccc";
       		this.style.border = "2px #0ff inset";
       	 	this.style.padding = "0px";
    		};
	}
    elem.activate = function () {
		elem.style.background = "#eee";
		elem.active = true;
    		};
		
    elem.deactivate = function(){
    	elem.active = false;
	elem.style.background = menuColor;
 	};

    if(elem.active){ elem.activate(); }
    	else {elem.deactivate();}
	
  elem.style.border="none";
  elem.style.padding="2px";
  elem.style.margin="0px";
  elem.style.background ="";
	
  if(document.all){  elem.style.cursor="hand";}
	else {elem.style.cursor="pointer"; }
}

function getElementsByClass (className) {
  var all = document.all ? document.all :
    document.getElementsByTagName('*');
  var elements = [];
  for (var e = 0; e < all.length; e++){
    if (all[e].className == className){
      		elements[elements.length] = all[e];
		}
	}
  return elements;
}


var contextid;
function initBehaviors(){
	//initFileUploads();
  menus = getElementsByClass ('menu');
  var i;
  for(i=0;i<menus.length;i++){
	if(!menus[i].onmouseover){
  		menus[i].onmouseover=function(){ 
			clearTimeout(contextid); 
			};
		}
	if(!menus[i].onmouseout){
  	menus[i].onmouseout= function(){ 
			var ccode = "var it=document.getElementById('"+this.id+"');it.style.visibility='hidden';it.style.left='-300px';it.style.top='-300px'";
			contextid = setTimeout(ccode,50); 
			};
		}
	menus[i].oncontextmenu = function(){return false;};
	menus[i].ondragstart = pass;
	menus[i].onselectstart = pass;
 	}
 var me = getElementsByClass ('mi');
  for(i=0;i<me.length;i++){
  	me[i].onmouseover= function(){
			 this.style.backgroundColor="cyan";
  	};
  	me[i].onmouseout= function(){ 
		this.style.backgroundColor="silver";
		};
 	me[i].oncontextmenu = function(){return false;};
 } 
  
//document.body.oncontextmenu = function(){return false;}

	var bb = getElementsByClass("fb");
	var b;
	for(b=0;b<bb.length;b++){
		makeFlairButton(bb[b],'hilite');
		}

	bb = getElementsByClass("fb2");
	for(b=0;b<bb.length;b++){
		makeFlairButton(bb[b],'hilite2');
		}

	bb = getElementsByClass("bb");
	for(b=0;b<bb.length;b++){
		makeButton(bb[b]);
		}

	if(typeof hotKeys !="undefined"){ //allow hotkeys to be disabled when an input has focus.
		var inp = document.getElementsByTagName('input');
		for(i=0;i<inp.length;i++){
			inp[i].onmousedown = keyGrab;
 			inp[i].onselect=keyGrab; 
			inp[i].onfocus=keyGrab;
			inp[i].onblur=keyDone; 
			}
		}
}
 
