function popup(page,wname,xvalue,yvalue)
{
    path = document.forms[0];

    var queryString;
    var tmp;
	tmp = document.forms[0];

	queryString="?totalEmail=" + Math.round( unfiltered[13] );
	queryString=queryString+"&mailUsers=" + path.ei_num_of_empl.value;
	queryString=queryString+"&money="+tmp['txt_money'].value;
	queryString=queryString+"&company="+ path.txt_Company.value;

    /*
	queryString=queryString+"&totalInet="+tmp['lng_totInet'].value;
	queryString=queryString+"&totalIM="+tmp['lng_totIM'].value;
	queryString=queryString+"&inetUsers="+tmp['lng_inetUsers'].value;
	queryString=queryString+"&imUsers="+tmp['lng_imUsers'].value;
    */
	window.open(page+queryString,wname,"left=20,top=20,screenx=20,screeny=20,height="+yvalue+",width="+xvalue+",directories=no,location=no,menubar=no,scrollbars=yes")
}

unfiltered = new Array(14);
filtered = new Array(14);

onload = function()
{
    updateTotals( this );
}

function updateTotals( field )
{
    if( field.value == undefined )
    {
    }
    else
    {
        if( isNaN( field.value ) == true )
        {
            value = field.value;
            result = "";

            for( i = 0; i < value.toString().length; i++ )
            {
                if( isNaN( value.toString().charAt(i) ) == false )
                {
                    result += value.toString().charAt(i);
                }
            }

            field.value = result;
        }
    }

    update_step1();
    update_step2();
    update_step3();
}

function update_step1()
{
    path = document.forms[0];

    if( path.ei_av_salary_per_empl.value > 0 && !NaN )
    {
        unfiltered[0] = path.ei_av_salary_per_empl.value / ( path.ei_av_working_days.value * 8 );
    }

    unfiltered[1] = path.epc_msgs_per_day.value * ( "." + path.epc_perc_spam_per_day.value );
    unfiltered[2] = ( path.epc_av_time_handeling_spam.value * unfiltered[1] ) / 60;

    if( unfiltered[2] > 0 )
    {
        unfiltered[3] = ( unfiltered[2] / 60 ) * unfiltered[0];
    }

    if( path.ei_av_working_days.value > 0 )
    {
        unfiltered[4] = ( path.ei_num_of_empl.value * unfiltered[3] ) * path.ei_av_working_days.value;
    }

    unfiltered[5] = path.bc_inet_per_month.value * ( "." + path.bc_perc_inet_used_by_email.value ) * ( "." + path.epc_perc_spam_per_day.value ) * 12;
    unfiltered[6] = path.epc_msgs_per_day.value * ( "." + path.epc_perc_spam_per_day.value ) * path.sc_av_msg_size.value * path.ei_num_of_empl.value;
    unfiltered[7] = ( unfiltered[6] / 1000000 ) * path.sc_cost_per_month_per_gb.value * 12;
    unfiltered[8] = path.subc_cost_per_hd_call.value * path.subc_spam_related_hd_calls_per_day.value * path.ei_av_working_days.value;
    unfiltered[9] = unfiltered[4];
    unfiltered[10] = unfiltered[5];
    unfiltered[11] = unfiltered[7];
    unfiltered[12] = unfiltered[8];
    unfiltered[13] = unfiltered[9] + unfiltered[10] + unfiltered[11] + unfiltered[12];
}

function update_step2()
{
    filtered[0] = round_show_cents( unfiltered[0] );
    filtered[1] = unfiltered[1];
    filtered[2] = Math.round( unfiltered[2] );
    // possable bug since index of string is specified
    filtered[3] = unfiltered[3].toString().substring( 0, 2 ) + Math.round( unfiltered[3].toString().substring( 2, 4 ) + "." + unfiltered[3].toString().substring( 4, unfiltered[3].toString().length ) );
    filtered[4] = round_show_cents( unfiltered[4] );
    filtered[5] = round_show_cents( unfiltered[5] );
    filtered[6] = calc_commas( unfiltered[6] );
    filtered[7] = round_show_cents( unfiltered[7] );
    filtered[8] = round_show_cents( unfiltered[8] );
    filtered[9] = round_show_cents( unfiltered[9] );
    filtered[10] = round_show_cents( unfiltered[10] );
    filtered[11] = round_show_cents( unfiltered[11] );
    filtered[12] = round_show_cents( unfiltered[12] );
    filtered[13] = round_show_cents( unfiltered[13] );
}

function update_step3()
{
    path = document.forms[0];

    path.auto_ei_cost_per_hour.value = "$" + filtered[0];
    path.auto_epc_av_spams_per_person.value = filtered[1];
    path.auto_epc_av_time_handleing_spam_per_day.value = filtered[2];
    path.auto_epc_av_cost_handeling_spam_per_day.value = "$" + filtered[3];
    path.auto_epc_total_cost_per_year.value = "$" + filtered[4];
    path.auto_bc_spam_per_year.value = filtered[5];
    path.auto_sc_av_total_spam_per_day.value = filtered[6] ;
    path.auto_sc_total_cost_per_year.value = "$" + filtered[7];
    path.auto_subc_spam_support_per_year.value = "$" + filtered[8];
    path.auto_totals_productivity.value = "$" + filtered[9];
    path.auto_totals_bandwidth.value = "$" + filtered[10];
    path.auto_totals_storage.value = "$" + filtered[11];
    path.auto_totals_support.value = "$" + filtered[12];
    path.auto_totals_cost_of_spam_per_year.value = "$" + filtered[13];
}

function round_show_cents( value )
{
    start = 0;

    if( value.toString().indexOf( '.' ) > -1 )
    {
        add = value.toString().substring( value.toString().indexOf( '.' ), value.toString().indexOf( '.' ) + 3 );
        end = value.toString().indexOf( '.' );

        result = calc_commas( value.toString().substring( start, end ) );

        //return Math.round( value.toString().substring( start, end ) ) + "" + add;
        return result;
    }
    else
    {
        return calc_commas( value );
    }

}

function calc_commas( value )
{
    start = 0;
    mid = value.toString().length;
    add = 0;

    if( value.toString().indexOf( '.' ) > -1 )
    {
        add = value.toString().substring( value.toString().indexOf( '.' ), value.toString().length );
        end = value.toString().indexOf( '.' );
    }
    else
    {
        end = value.toString().length + 1;
    }


    
    for( i = 0; i < Math.ceil( end / 3 ); i++ )
    {
        if( i > 0 )
        {
            mid -= 3;
            value = value.toString().substring( start, mid ) + "," + value.toString().substring( mid, end );
        }
        else
        {
            value = value.toString().substring( start, end );
        }
    }

    if( add != 0 )
    {
        value = value + "" + add;
    }


    if( value.toString().charAt(0) == ',' )
    {
        value = value.toString().substring( 1, value.toString().length );
    }

    return value;
}