function getObj(name) {
    //alert(name);
  if (document.getElementById) {
      this.ref = document.getElementById(name);
	  this.style = document.getElementById(name).style;
  } else if (document.all) {
	  this.ref = document.all[name];
	  this.style = document.all[name].style;
  } else if (document.layers) {
	  this.ref = getObjNN4(document,name);
	  this.style = this.obj;
  }
}

function doonfocus(e){
    if (!e) var e = window.event;
    
    if (e.target) var targ = e.target;
	else if (e.srcElement) var targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
    
    if (targ.value == 0) {
        targ.value = '';
    } else {
        targ.select();
    }
    if (targ.className == "val") {
        var obj = new getObj("v" + v_activa);
        obj.ref.className = "val";
        v_activa = targ.id.substr(1);  //sterge v de la inceput
        targ.className = "val selected";
	}//if
    
    
} //doonfocus()

function doonblur(e){
    if (!e) var e = window.event;
    
    if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;

    if (targ.value == '') {
        targ.value = 0;
        //docalculations(targ.id);
    } else { //deselect
        var t = targ.value;
        targ.value = '';
        targ.value = t;
    }
    
} //doonblur()

function doonkeydown(e){
    if (!e) var e = window.event;
    
    if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
    
    if (e.keyCode) var code = e.keyCode;
	else if (e.which) var code = e.which;
	
	if ( (48 <= code && code <= 57 || 96 <= code && code <= 105) || (code ==110) || (code == 190) ) {  //number or .

            //remove error mess
	        if ( ((code ==110) || (code == 190)) && targ.value.toString().indexOf('.') >= 0 ) {
	            return false;
	        }
	        
	} else {
	    
	    switch (code) {
		    case 110:  //. numpad
		    case 190:  //. normal
		    case  46:  //delete normal
		    case  40: //arrows down
		    case  39: //arrows right
		    case  38: //arrows up
		    case  37: //arrows left
		    case  36:  //home, shift+home
		    case  35:  //end
		    case  8:  //backspace
		    case  9:  //tab
		        break;
		    default:
		        return false;
	    } //switch
	    
	} //if
	
	//deb.ref.innerHTML = deb.ref.innerHTML + "down" + document.getElementById('vBNR:RON').value.length;
} //doonkeydown()


function docalculations(id) {  //obj id for the active currency
	//do the calculations
	targ = new getObj(id);
	//targ_value = parseFloat(targ.ref.value);
	targ_value = targ.ref.value;
	if (isNaN(targ_value)) {
	    targ_value = 0;
	    targ.ref.value = "";
	} else {
	    targ.ref.value = targ_value;
	}
	if (v_activa == ref) {
	    var curs_activa = 1;
	} else {
        var index_activa = getindex(v_activa, v);  //IE nu stie de indexOf
        var curs_activa = curs[index_activa];
    }
    for (i=0; i<v.length; i++) {
        if (v[i] != v_activa){
            //alert("v"+v[i]);
            var tobj=new getObj("v"+v[i]);
            if (curs[i] == 0) {
                tobj.ref.value = "0";
            } else {
                tobj.ref.value = Math.round( (targ_value * curs_activa / curs[i])*10000 ) / 10000 ;
            }
        }
    }//for
    //calc si pt ref
    if (ref != v_activa){
        var tobj=new getObj("v"+ref);
        tobj.ref.value = Math.round( (targ_value * curs_activa)*10000 ) / 10000; // si / 1 -> curs ref
        //deb.ref.innerHTML = targ_value + '    '+ curs_activa;
    }//if
    


} //docalculations()

function getindex(what, where) {
	var i = 0;
	for (i=0; i < where.length; i++){
		if ( where[i] == what ) {
			return i;
		}
  }
  return -1;
}

function doonkeyup(e) {
    //deb.ref.innerHTML = deb.ref.innerHTML + "press" + document.getElementById('vBNR:RON').value.length + "&nbsp;&nbsp;&nbsp;";
    
    if (!e) var e = window.event;
    
    if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
    
    if (e.keyCode) var code = e.keyCode;
	else if (e.which) var code = e.which;
    
    switch (code) {
		    //case  46:  //delete normal
   		    //case 110:  //. numpad
		    //case 190:  //. normal
		    case  40: //arrows down
		    case  39: //arrows right
		    case  38: //arrows up
		    case  37: //arrows left
		    case  36:  //home, shift+home
		    case  35:  //end
		    case  16:  //shift
		    //case  8:  //backspace
		    case  9:  //tab
		        return;
		        break;
	    } //switch
    //deb.ref.innerHTML = "code=" + code;
    docalculations(targ.id);
}

function doonclick(e) {
    if (!e) var e = window.event;

    if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;   

    switch(targ.id) {
        case "afiseaza":
            var tobj = new getObj("ref");
            ref = tobj.ref.value;
        
		    var valsel = new Array();
            
		    for (var i=0; i < tab_valute.length-1; i++) {
		        var valtmp = new getObj(tab_valute[i]);
                if (valtmp.ref.checked == true && valtmp.ref.disabled == false) {
                    valsel.push(valtmp.ref.value);
                }
		    }
		    if (valsel.length > 4) {
		        alert("Selectati maxim 4 valute");
		    } else {
		        var valstr = "v=" + valsel.join(",");
                
		        var nexturl = "";
		        if (valsel.length == 0) {
		            nexturl = ROOT;
		        } else {
		            if (valsel.length == 1 && valsel[0] == def && ref == local) {
		                nexturl = ROOT;
		            } else {
		                if (ref == local) {
		                    nexturl = ROOT + "?" + valstr;
		                } else {
		                    nexturl = ROOT + "?" + valstr + "&ref=" + ref;
		                }
		            }
		        }
                //alert(nexturl);
		        location.href = nexturl;
		    }
		    break;
		    
		case "reset":
		    for (var i=0; i < tab_valute.length; i++) {
		        var valtmp = new getObj(tab_valute[i]);
                valtmp.ref.checked = false;
		    }
		    break;
    } //switch
       
    return false;
}

function doonchange() {
    if (!e) var e = window.event;
    
    var tobj = new getObj("ref");
    
    var ttobj = new getObj(ref);
    
    ttobj.ref.disabled = false; 
    
    var tttobj = new getObj(tobj.ref.value);
    
    tttobj.ref.disabled = true; 
    ref = tobj.ref.value;
}
