// google SERP rank value calculator
// created by matthew mcglynn / seo-greenhouse.com
// please do not redistribute without permission
// http://seo-greenhouse.com/
// contact via email: 'matt' at the above domain
// v1.0, 2008-11-05


function calc(bank, id) {
    if (bank == 'old') {
        save_rank(bank, id);
        var oldrank = id;
        var newrank = retrieve_stored_rank('new');    
    }

    if (bank == 'new') {
        save_rank(bank, id);
        var newrank = id;
        var oldrank = retrieve_stored_rank('old');
    }
    
    var oldtraffic = retrieve_oldtraffic();
    
    reset_highlight(bank, id);
    
    if (oldrank && (oldrank != 0) && newrank && (newrank != 0) && oldtraffic && (oldtraffic != 0)) {
        doMath();
    }
    
}

function  doMath() {
    var oldrank = retrieve_stored_rank('old');
    var newrank = retrieve_stored_rank('new');
    
    if (oldrank == '' || newrank == '') {
        return false;
    }
    var oldtraffic = retrieve_oldtraffic();
    
    var conv = [];
    conv[1] = [0,  1,     0.28,  0.20,  0.14, 0.11, 0.09, 0.08, 0.07,  0.067, 0.07,  0.016, 0.013];
    conv[2] = [0,  3.55,  1,     0.71,  0.51, 0.41, 0.33, 0.28, 0.25,  0.237, 0.249, 0.055, 0.047];
    conv[3] = [0,  5.01,  1.41,  1,     0.71, 0.58, 0.47, 0.40, 0.353, 0.335, 0.352, 0.078, 0.066];
    conv[4] = [0,  7.02,  1.98,  1.40,  1,    0.81, 0.66, 0.56, 0.494, 0.469, 0.493, 0.109, 0.093];
    conv[5] = [0,  8.71,  2.46,  1.74,  1.24, 1,    0.82, 0.70, 0.614, 0.582, 0.612, 0.135, 0.115];
    conv[6] = [0, 10.61,  2.99,  2.12,  1.51, 1.22, 1,    0.85, 0.748, 0.709, 0.745, 0.165, 0.140];
    conv[7] = [0, 12.53,  3.53,  2.50,  1.79, 1.44, 1.18, 1,    0.883, 0.837, 0.88,  0.195, 0.166];
    conv[8] = [0, 14.19,  4.00,  2.83,  2.02, 1.63, 1.34, 1.13, 1,     0.948,  .997, 0.22,  0.187];
    conv[9] = [0, 14.97,  4.22,  2.99,  2.13, 1.72, 1.41, 1.19, 1.055, 1,     1.051, 0.232, 0.198];
    conv[10]= [0, 14.24,  4.01,  2.84,  2.03, 1.63, 1.34, 1.14, 1.003, 0.951, 1,     0.221, 0.188];
    conv[11]= [0, 64.38, 18.14, 12.85,  9.18, 7.39, 6.07, 5.14, 4.54,  4.30,  4.52,  1 ,    0.85 ];
    conv[12]= [0, 75.72, 21.34, 15.11, 10.79, 8.69, 7.14, 6.04, 5.34,  5.06,  5.32,  1.18,  1    ];

    var newval = Math.round(oldtraffic * conv[oldrank][newrank]);
    
    var target = document.getElementById('result');
    target.value = newval;
}

function retrieve_oldtraffic() {
    var oldhits = document.getElementById('oldhits');
    var v = oldhits.value.replace(/[,\s]+/g, '');
    return parseInt(v);
}

function retrieve_stored_rank(s) {
    var retrieveloc = document.getElementById(s + "_choice");
    return retrieveloc.value;
}

function save_rank(s, v) {
    var saveloc = document.getElementById(s + '_choice');
    saveloc.value = v;
}

function reset_highlight(bank, id) {
    for (var i=1; i<=12; i++) {
        var fname = bank + i;
        var thisHref = document.getElementById(fname);
        if (i == id) {
       	     thisHref.className = 'button_on';
        } else {
       	     thisHref.className = 'button_off';
   	    }
   	}
}
