package page.uk.co.mydisk;

import org.wikiwebserver.handler.http.HTTPException;
import org.wikiwebserver.handler.http.interfaces.HTTPResponder;

import page.config.SiteTemplatedPage;
import page.tools.entity.Payment;

import static org.wikiwebserver.html.HTMLHelper.*;

public class Upgrade extends SiteTemplatedPage implements HTTPResponder {

    public void generate() throws HTTPException {
        
        this.addCSSLink("/templates/uk/co/mydisk/mydisk.css");
        
        setTitle("MyDisk.co.uk - Upgrades");
        
        append(h(1, "Upgrades"));
        
        append(p("Bandwidth will be limited for file sharing after the beta testing phase. " +
        		 "To increase various limits, a number of upgrades will be available to purchase. " +
        		 "Money collected will go towards server maintenance costs and further development."));
        
        append(form(
            getUpgradeOption("bandwidth", "Increase bandwidth allowance by 1GB", 500, false, false) +
            getUpgradeOption("speed", "Increase transfer speed", 500, false, false) +
            getUpgradeOption("lesswait", "Reduce maximum wait time to 30 seconds", 400, false, false) +
            getUpgradeOption("noidle", "Disable idle shutdown", 200, false, false) +
            getUpgradeOption("desktop", "Add remote desktop control functionality", 100, false, false) +
            getUpgradeOption("noadverts", "Remove advertising", 100, false, false)
            
        ));
       
    }
    
    public String getUpgradeOption(String name, String text, int pennies, boolean purchased, boolean available) {
        
        String checkboxSpecial = available ? "" : "disabled";
        checkboxSpecial += purchased ? " checked" : "";
        
        String price = "£" + Payment.penniesToPounds(pennies);
        return div(ContainerType.CLASS, "upgradeOption", 
                   div(ContainerType.CLASS, "price", price) +
                   label(name, checkbox(name, text, checkboxSpecial) + " " + text));
    }
}

