YAHOO.namespace('mpl');
var YUE = YAHOO.util.Event, YUD = YAHOO.util.Dom;

YUE.onDOMReady(function() {
    if (document.getElementById("terms-panel") && document.getElementById("privacy-policy")) {
        terms = new YAHOO.mpl.TermsPanel("terms-panel", "privacy-policy", null, {width: "40em", modal: true});
    }
});

YAHOO.mpl.TermsPanel = function(overlayName, triggerId, context, userConfig) {
    var overlayName = overlayName;
    var overlay = document.getElementById(overlayName);
    var triggerEl = document.getElementById(triggerId ? triggerId : "terms-link");
    var context = (context ? context : null);
    var defaultConfig = {
        monitorresize: false,
        fixedcenter: false,
        constraintoviewport: false,
        underlay:"shadow",
        close:true,
        visible:false,
        draggable: false,
        modal:false,
        effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25},
        context: context,
        width: "30em",
        zIndex: 10,
        height: "40em",
        autofillheight: null
    };
    var config;
    
    applyConfig(userConfig);
    
    overlay.style.display = "block";
    var panel = new YAHOO.widget.Panel(overlayName, config);
    panel.render();
    if (context == null) {
        panel.center();
    }
    
    if (triggerEl) {
         YAHOO.util.Event.addListener(triggerEl, "click", handleOpen);
    }
    YAHOO.util.Event.addListener("privacy-policy2", "click", handleOpen);
    
    YUE.addListener("terms-close", "click", handleClose, this, true);
    
    function handleOpen(e) {
        panel.show();
        var bd = YUD.get("terms-panel-bd");
        setTimeout(function() {bd.scrollTop = 0}, 500);
        YAHOO.util.Event.preventDefault(e);
    }

    function handleClose(e) {
        panel.hide();
        window.scrollTo(0, 0);
        YAHOO.util.Event.preventDefault(e);
    }
    
    function applyConfig(userConfig) {
        var sKey, oConfig;
        oConfig = defaultConfig;
        for (sKey in userConfig) {
            oConfig[sKey.toLowerCase()] = userConfig[sKey];
        }
        config = oConfig;
    }
}