
var meters = new Array( 10 );
var basePath = "http://www.lausn.is/tmp/orkusetur/images/";
var msie = false;
var safari = false;

function msg( txt ) {
    return;
    document.getElementById("msg").innerHTML += " " + txt + " /";
}

function hreinsa() {
    var nums = getElementsByClass( "numb" );
    for( var i=0; i<nums.length; i++ ) {
        nums[i].innerHTML = "000";
        nums[i].setAttribute("value", "0" );
    }
    calculateResults();
}

function scanForAttribute( node, elms, attr, value ) {
        var ok = false;
        for( var i=0; i < node.childNodes.length; i++ ) {
        n = node.childNodes[i];
        if( n.nodeType == 1 ) {
            var a = n.getAttribute( attr );
            if( attr == "class" ) 
                ok = n.className == value; /* MSIE doesn't see class as an attribute... */
            else
                ok = n.getAttribute( attr ) == value;
            if ( ok ) {
                elms.push( n );
            }
            scanForAttribute( n, elms, attr, value );
        }
    }
}

function getElementsByClass( clss ) {
    var elms = new Array();
    scanForAttribute( document, elms, "class", clss );
    return elms;
}

function getElementsByName( name ) {
    var elms = new Array();
    scanForAttribute( document, elms, "name", name );
    return elms;
}

function formatKr( kr ) {
    var k = "000000" + Math.round( kr );
    var f = ""
    j = 0;
    for( var i=k.length-1; i>k.length-7; i-- ) {
        var c = k.substr( i, 1 );
        if ( j !=0 && j % 3 == 0 ) f = "." + f;
        f = c + f;
        j++;
    }
    return f;
}

function calculateResults() {

    var flds = getElementsByName( "fldw1" );
    var magn = getElementsByName( "fldm1" );
    var kwh1 = 0;

    for( var i=0; i < flds.length; i++ ) {
        if ( magn[i].getAttribute("value") > 0 ) 
            kwh1 += flds[i].getAttribute("value") * ( flds[i].getAttribute("watts") * ( magn[i].getAttribute("value") / flds[i].getAttribute("unit") ) * 52 );
    }
    document.getElementById( "kwh1" ).innerHTML = Math.round( kwh1 )
    var kr = formatKr( kwh1 * 12 );
    document.getElementById( "totalKR1" ).innerHTML = kr;
     
    kwh1 = "0000"+Math.round( kwh1 );
    kwh1 = kwh1.substr( kwh1.length - 5 );
    for( var i=0; i < 5; i++ ) {
        var c = String( kwh1 ).substr( i, 1 );
        document.getElementById( "meter1"+i ).src = meters[ c ].src;
    }
    
    flds = getElementsByName( "fldw2" );
    magn = getElementsByName( "fldm2" );
    var kwh2 = 0;
    for( var i=0; i < flds.length; i++ ) {
        if( magn[i].getAttribute("value") > 0 ) 
            kwh2 += flds[i].getAttribute("value") * ( flds[i].getAttribute("watts") * ( magn[i].getAttribute("value") / flds[i].getAttribute("unit") ) * 52 );
    }
    document.getElementById( "kwh2" ).innerHTML = Math.round( kwh2 )
    kr = formatKr( kwh2 * 12 );
    document.getElementById( "totalKR2" ).innerHTML = kr;
    
    kwh2 = "0000"+Math.round( kwh2 );
    kwh2 = kwh2.substr( kwh2.length - 5 );
    for( var i=0; i < 5; i++ ) {
        var c = String( kwh2 ).substr( i, 1 );
        document.getElementById( "meter2"+i ).src = meters[ c ].src;
    }
    
}

function clickArrow() {
    var disp = document.getElementById( this.getAttribute("target") );
    var v = parseFloat( disp.getAttribute("value") );
    if( this.getAttribute("name") == "btnUp" ) 
        v += parseFloat(disp.getAttribute("inc"));
    else
        v -= parseFloat(disp.getAttribute("inc"));
   
    if( v < 0 ) v = 0;
    if( v > 999 ) v = 999;

    disp.setAttribute( "value", v );
    var str = "00"+v;
    disp.innerHTML = str.substr( str.length - 3 );
    
    calculateResults();
}
function installButtons() {
    var btns = getElementsByClass( "arrowBtn" );
    for( var i=0; i < btns.length; i++ ) {
        var b = btns[ i ];
        b.onclick = clickArrow;
    }
}

function installMeters() {
    if( document.images ) {
        for( var i=0; i < 10; i++ ) {
            meters[ i ] = new Image;
            s = basePath + "meter"+i+".png";
            meters[ i ].src = s;
        }
    }
}
function mouseOverRow() {
    this.className = "oneRowOver";
    document.getElementById( this.id + "Up" ).src = basePath+"arrowUpWhite.gif";
    document.getElementById( this.id + "Down" ).src = basePath+"arrowDownWhite.gif";
    document.getElementById( this.id + "Up2" ).src = basePath+"arrowUpWhite.gif";
    document.getElementById( this.id + "Down2" ).src = basePath+"arrowDownWhite.gif";
}
function mouseOutRow() {
    this.className = "oneRow";
    document.getElementById( this.id + "Up" ).src = basePath+"arrowUp.gif";
    document.getElementById( this.id + "Down" ).src = basePath+"arrowDown.gif";
    document.getElementById( this.id + "Up2" ).src = basePath+"arrowUp.gif";
    document.getElementById( this.id + "Down2" ).src = basePath+"arrowDown.gif";
}
function installContent() {
    var rows = getElementsByClass( "oneRow" );
    for( var i=0; i < rows.length; i++ ) {
        rows[ i ].onmouseover = mouseOverRow;
        rows[ i ].onmouseout = mouseOutRow;
    }

    var b = document.getElementById( "borderRight" );
    if( safari ) 
        b.style.height = "100%";
    else
        b.style.height = "640";
        
    b = document.getElementById( "borderLeft" );
    if( safari ) 
        b.style.height = "100%";
    else
        b.style.height = "640";
        
    
}
function initRaf() {
    msie = navigator.userAgent.indexOf( "MSIE" ) > -1;
    safari = navigator.userAgent.indexOf( "Safari" ) > -1;
    installButtons();
    installMeters();
    installContent();
    calculateResults();
    msg( "ready" );
}
