    /* jshint browser: true */

    //animation ID's needed for cancelAnimationFrame
    var lipglossAnim;

    var renderLipgloss = PIXI.autoDetectRenderer(640, 480, {
        antialias: true,
        transparent: true
    });

    document.getElementById('lipglossHolder').appendChild(renderLipgloss.view);

    // create the root of the scene graph
    var lipglossStage = new PIXI.Container();
    var lipglossGfx = new PIXI.Graphics();

    lipglossGfx.alpha = 0.6;

    lipglossStage.addChild(lipglossGfx);

    //apply lipstick
    function applyLipgloss() {
        var hex = "0x" + lipglossColor;

        lipglossAnim = compatibility.requestAnimationFrame(applyLipgloss);

        lipstickGfx.clear();
        lipglossGfx.clear();

        // set a fill and line style
        lipglossGfx.beginFill(hex);

        // draw a shape
        lipglossGfx.moveTo(points[48 * 2], points[48 * 2 + 1]);
        for (var i = 49; i < 60; i++) {
            lipglossGfx.lineTo(points[i * 2], points[i * 2 + 1]);
        }

        lipglossGfx.lineTo(points[48 * 2], points[48 * 2 + 1] + 0.1);
        lipglossGfx.lineTo(points[60 * 2], points[60 * 2 + 1] + 0.1);
        lipglossGfx.lineTo(points[67 * 2], points[67 * 2 + 1]);
        lipglossGfx.lineTo(points[66 * 2], points[66 * 2 + 1]);
        lipglossGfx.lineTo(points[65 * 2], points[65 * 2 + 1]);
        lipglossGfx.lineTo(points[64 * 2], points[64 * 2 + 1]);
        lipglossGfx.lineTo(points[63 * 2], points[63 * 2 + 1]);
        lipglossGfx.lineTo(points[62 * 2], points[62 * 2 + 1]);
        lipglossGfx.lineTo(points[61 * 2], points[61 * 2 + 1]);
        lipglossGfx.lineTo(points[60 * 2], points[60 * 2 + 1]);
        lipglossGfx.lineTo(points[48 * 2], points[48 * 2 + 1]);

        lipglossGfx.endFill();

        renderLipgloss.render(lipglossStage);
    }
