// auction all day fees
var aadfinal0to200=.32
var aadfinal200to500=.32
var aadfinal500to1000=.18
var aadfinal500plus=.18
var aadfinal1000plus=.18

// paypal fees
var paypalfinalsale=.025
var paypalfee=0.3

//insertion fees
var reglt1=0.20
var reg1to10=0.35
var reg10to25=0.6
var reg25to50=1.2
var reg50to200=2.4
var reg200to500=3.6
var reggt500=4.8

var motpassenger=40
var motbikesport=30

var reauction10=35
var reauction30=50
var read30=150
var read90=300

var re2auction10=100
var re2auction30=150
var re2ad30=150
var re2ad90=300

//reserve price fees

var reservelt50=1
var reserve50to200=2
var reserve200=0.01
var maxreserve200=100

var motorreservelt25=0.5
var motorreserve25to200=1
var motorreservegt200=2

//options

var homepage1=39.95
var homepage2=79.95
var featuredplus=19.95
var highlight=5
var border=3
var itemsubtitle=0.5
var bolditem=1
var listingdesigner=0.1
var gallery=0.35
var galleryfeatured=19.95
var tenday=0.2
var scheduledlisting=0.1
var butitnow=0.05
var giftservices=0.25

var additionalpic=0.15
var slideshow=0.75
var supersizepicture=0.75
var picturepack6=1
var picturepack12=1.5

var motorgalleryfeaturedvehicle=99.95
var motorgalleryfeaturednonvehicle=24.95
var motorhighlight=5
var motorboldvehicle=4
var motorboldnonvehicle=1
var motorbordervehicle=4
var motorbordernonvehicle=3
var listingdesignernonvehicle=0.1
var motorgalleryvehicle=0
var motorgallerynonvehicle=0.25
var motorfeaturedplus=19.95
var motorlistingiconvehicle=2
var motorlistingiconnonvehicle=1
var motortendaylisting=5
var motorbuyitnowvehicle=1
var motorbuyitnownonvehicle=0.05


//Picture Services
var firstpic=0
var additionalpic=0.15
var previewpic=0
var slideshow=0.75
var supersize=0.75
var picturepack6=1
var picturepack12=1.5

//Final value fees
var finalvalue0to25=0.0525
var finalvalue25to1000=0.03
var finalvalue1000= 0.015

var transacfeepassenger=40.0
var transacfeemotorcycle=30.0

var finalvaluetimeshareland=35.0
var finalvalueotherre=0


function roundNumber(original_number) {
    var decimals=2;
    
    var result1 = original_number * Math.pow(10, decimals)
    var result2 = Math.round(result1)
    var result3 = result2 / Math.pow(10, decimals)
    return pad_with_zeros(result3, decimals)
}

function pad_with_zeros(rounded_value, decimal_places) {

    // Convert the number to a string
    var value_string = rounded_value.toString()
    
    // Locate the decimal point
    var decimal_location = value_string.indexOf(".")

    // Is there a decimal point?
    if (decimal_location == -1) {
        
        // If no, then all decimal places will be padded with 0s
        decimal_part_length = 0
        
        // If decimal_places is greater than zero, tack on a decimal point
        value_string += decimal_places > 0 ? "." : ""
    }
    else {

        // If yes, then only the extra decimal places will be padded with 0s
        decimal_part_length = value_string.length - decimal_location - 1
    }
    
    // Calculate the number of decimal places that need to be padded with 0s
    var pad_total = decimal_places - decimal_part_length
    
    if (pad_total > 0) {
        
        // Pad the string with 0s
        for (var counter = 1; counter <= pad_total; counter++) 
            value_string += "0"
        }
    return value_string
}



function calculatefee()
{
    if(!checkrequiredfields()) {
        return;
    }
    //calculateinsertion()
    //calculatereserve()
    //calculatefinalvalue()
    calculateebay()
    calculatepaypal()
    calculateauctionallday()
    calculatetotal()
    calculateyourshare()
    calculateyourpercentage()
}

function calculateebay() 
{
    calcform.ebay.value=roundNumber(calculateinsertion()+calculatereserve()+calculatefinalvalue());
}

function checkrequiredfields() 
{
    if(calcform.initialprice.value == "") {
        alert("Starting Price not set")
        return false
    } else if(calcform.initialprice.value*1.0 < 0.0) {
        alert("Starting Price cannot be negative")
        return false
    } else if(calcform.finalprice.value == "") {
        alert("Final Price not set")
        return false
    } else if(calcform.finalprice.value*1.0 < 0.0) {
        alert("Final Price cannot be negative")
        return false
    } 
    return true
}

function setcommission()
{
    if(calcform.aadfinal0to200.value != "") {
        aadfinal0to200=calcform.aadfinal0to200.value*1.0/100;
    }
    if(calcform.aadfinal200to500.value != "") {
        aadfinal200to500=calcform.aadfinal200to500.value*1.0/100;
    }
    if(calcform.aadfinal500to1000.value != "") {
        aadfinal500to1000=calcform.aadfinal500to1000.value*1.0/100; 
    }
    if(calcform.aadfinal1000plus.value != "") {
        aadfinal1000plus=calcform.aadfinal1000plus.value*1.0/100; 
    }
    /*
    if(calcform.aadfinal500plus.value != "") {
        aadfinal500plus=calcform.aadfinal500plus.value*1.0/100; 
    }
    */
}

function calculateyourpercentage() 
{
    calcform.yourpercentage.value=roundNumber((calcform.yourshare.value*1.0/calcform.finalprice.value*1.0)*100);
}

function calculateyourshare() 
{
    calcform.yourshare.value=roundNumber(calcform.finalprice.value*1.0 - calcform.total2.value*1.0);
}

function calculatepaypal() 
{
    calcform.paypal.value=roundNumber(paypalfee+(calcform.finalprice.value*1.0*paypalfinalsale));
}

function calculateauctionallday() 
{
    var auctionalldayfee=0.0;
    var finalprice=calcform.finalprice.value*1.0;
    var intprice=calcform.initialprice.value*1.0;
    
    if(finalprice<=200) {
        auctionalldayfee+=aadfinal0to200*finalprice;
    } else {
        if(finalprice<=500) {
            auctionalldayfee+=aadfinal0to200*200.0+aadfinal200to500*1.0*(finalprice*1.0-200.0);
        } else if(finalprice<=1000) {
            auctionalldayfee+=aadfinal0to200*200.0+aadfinal200to500*300.0+aadfinal500to1000*1.0*(finalprice*1.0-500.0);
        } else if(finalprice>1000) {
            auctionalldayfee+=aadfinal0to200*200.0+aadfinal200to500*300.0+aadfinal500to1000*500.0+aadfinal1000plus*1.0*(finalprice*1.0-1000.0);
        }
    }
    /*
    if(finalprice<=250) {
        auctionalldayfee+=aadfinal0to200*finalprice;
    } else {
        if(finalprice<=500) {
            auctionalldayfee+=aadfinal0to200*250.0+aadfinal200to500*1.0*(finalprice*1.0-250.0);
        } else if(finalprice<=750) {
            auctionalldayfee+=aadfinal0to200*250.0+aadfinal200to500*250.0+aadfinal500to1000*1.0*(finalprice*1.0-250.0);
        } else if(finalprice>750) {
            auctionalldayfee+=aadfinal0to200*250.0+aadfinal200to500*250.0+aadfinal500to1000*250.0+aadfinal1000plus*1.0*(finalprice*1.0-750.0);
        }
    }*/
    
    calcform.auctionallday.value=roundNumber(auctionalldayfee);
}

function calculateinsertion()
{
    var insertionfee=0.0;
    var intprice=calcform.initialprice.value*1.0;
    //var quantity=calcform.quantity.value*1.0;
    var quantity=1.0;
    intprice*=quantity;
        if ((intprice<1.0) & (intprice>0.0))
            insertionfee+=reglt1;
        else if ((intprice<10.0) & (intprice>=1.0)) 
            insertionfee+=reg1to10;
        else if ((intprice<25.0) & (intprice>=10.0))
            insertionfee+=reg10to25;
        else if ((intprice<50.0) & (intprice>=25.0))
            insertionfee+=reg25to50;
        else if ((intprice<200.0) & (intprice>=50.0))
            insertionfee+=reg50to200;
        else if ((intprice<500.0) & (intprice>=200.0))
            insertionfee+=reg200to500;
        else if (intprice>=500.0)
            insertionfee+=reggt500;
        
        if (insertionfee>4.8)
            insertionfee=4.8;

    return insertionfee + gallery;
    //calcform.insertion.value=roundNumber(insertionfee);
    
}

function calculatereserve()
{
    var reservepricefee=0;
    var reserveprice=calcform.reserveprice.value*1.0;

        if ((reserveprice<50) && (reserveprice>0))
            reservepricefee=reservelt50;
        else if ((reserveprice<200) && (reserveprice>=50))
            reservepricefee=reserve50to200;
        else if (reserveprice>=200)
        {
            reservepricefee=reserve200*reserveprice
            if (reservepricefee>maxreserve200) 
                reservepricefee=maxreserve200;
        }
    return reservepricefee;
    //calcform.reserve.value=roundNumber(reservepricefee);
}

function calculatefinalvalue()
{
    finalvaluefee=0;
    finalprice=calcform.finalprice.value*1.0;
        if (finalprice<=25)
            finalvaluefee+=finalvalue0to25*finalprice;
        else if (finalprice>25)
        {
            if (finalprice<=1000.0)
                finalvaluefee=finalvalue0to25*25.0+finalvalue25to1000*1.0*(finalprice*1.0-25.0)
            else if (finalprice>1000)
                finalvaluefee=finalvalue0to25*25.0+finalvalue25to1000*975.0+finalvalue1000*(finalprice*1.0-1000.0)
        }
    return finalvaluefee;
    //calcform.finalvalue.value=roundNumber(finalvaluefee);
}

function calculatetotal()
{
    calcform.total2.value=roundNumber(calcform.ebay.value*1.0+calcform.paypal.value*1.0+calcform.auctionallday.value*1.0);
    //calcform.total2.value=roundNumber(calcform.insertion.value*1.0+calcform.finalvalue.value*1.0+calcform.reserve.value*1.0+calcform.paypal.value*1.0+calcform.auctionallday.value*1.0);

}

