function moo(el){
    return document.id(el);
}

var scripthelper =  {
    APPLICATION_BASE_URL : null,
    screen: {
        show: function(){
            var screen_height = null;
            var mc_height = moo('mc').getHeight();
            var bdy_height = moo(document.body).getHeight();
            if(mc_height <= bdy_height){
                var screen_height = bdy_height;
            }else{
                var screen_height = mc_height + moo(document.body).getStyle('padding-top').toInt() + moo(document.body).getStyle('padding-bottom').toInt();
            }
            var screen = new Element('DIV',{
                id: '_screen',
                styles: {
                    position: 'absolute',
                    top: 0,
                    left: 0,
                    zIndex: 2000,
                    opacity: 0.5,
                    backgroundColor: '#000',
                    width: moo(document.body).getWidth(),
                    height: screen_height                
                } 
            });
            if(Browser.Engine.trident == true){
                //if ie, then hiding all select controls
                var selectctrls = moo(document.body).getElement('select');
                if($defined(selectctrls)) selectctrls.set('visibility', 'hidden');
            }
            moo(document.body).appendChild(screen);
        },
        hide: function(){            
            if($defined(moo('_screen'))){
                var screen = moo('_screen');
                screen.destroy();
                if(Browser.Engine.trident == true){
                    //if ie, then hiding all select controls
                    var selectctrls = moo(document.body).getElement('select');
                    if($defined(selectctrls)) selectctrls.set('visibility', 'hidden');
                }
            }
        }
    },
    widgethelpers: {
        open: function(el, options){
            if($defined(el) == false) return;
            scripthelper.screen.show();
            var widget = moo(el);            
            widget.setStyle('display', 'block');
            widget.setStyles({
                left: (moo(document.body).getWidth() - widget.getWidth()) / 2,
                top: moo(document.body).getScrollTop() + (moo(document.body).getHeight() - widget.getHeight()) / (options.topfactor == null ? 3 : options.topfactor)
            });        
            moo(document.body).appendChild(widget);            
            if($defined(options.autofocus) && options.autofocus == true){
                var ctrl = widget.getElement("input[type='text'], input[type='password'], textarea");
                if($defined(ctrl)) ctrl.focus();
            }            
        },
        close: function(el){
            if($defined(el) == false) return;
            var widget = moo(el);
            if(widget.getStyle('display').toString().toLowerCase() != 'block') return;
            widget.setStyle('display', 'none');
            scripthelper.screen.hide();       
            var form = widget.getElement('form');
            if($defined(form)) scripthelper.formhelpers.clearcontrols(form);     
        },
        processer: {
            show: function(el){
                var widget = moo(el);
                var processor = new Element('IMG',{
                   id: '_processor',
                   src: scripthelper.APPLICATION_BASE_URL + '/images/processing.gif',
                   styles: {
                        position : 'absolute',
                        zIndex: 2101,
                        top: 10,
                        left: 435
                   } 
                });
                widget.getElement("div.widget_header").appendChild(processor);
            },
            hide: function(el){
                if($defined(moo('_processor')) == false) return;
                moo('_processor').destroy();
            }
        }
    },
    formhelpers: {
        enablecontrols: function(form){
            var form = moo(form);
            form.getElements('input, select, button, textarea').set('disabled', false);
        },
        disablecontrols: function(form){
            var form = moo(form);
            form.getElements('input, select, button, textarea').set('disabled', true);
        },
        clearcontrols: function(form){
            var form = moo(form);
            form.getElements("input[type='text'], input[type='password'], textarea").set('value', '');
            if(form.getElements("select")) form.getElements("select").each(function(el){el.empty();})
        }
    },
    popups: {
        launch: function(path){
            var win = window.open(path, 'win', 'width=550,height=300,top=50,left=50');
        }
    }
};
