Application = Class.create({
    _root : '',
    _url  : 'http://andys-pizza-local',
    _ajax : '/ajax',
    options : {},

    initialize: function(options) {
        Object.extend(this.options, options || {});
        this.fixPNG();
    },

    fixPNG : function (element) {
        if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent)) {
            var src;

            if (element.tagName=='IMG') {
                if (/\.png$/.test(element.src)) {
                    src = element.src;
                    element.src = this._root + "img/blank.gif";
                }
            } else {
                src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i)
                if (src) {
                    src = src[1];
                    element.runtimeStyle.backgroundImage="none";
                }
            }

            if (src) element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
        }
    },

    jumpTo : function( url ) {
        var url = url || document.URL;
        location.href = url;
        return false;
    },

    labeledInput : function(selector) {
		var labelSelector = selector || 'label';
		$$(labelSelector).findAll(function(l) {return (l.readAttribute('for') !== null)}).each(function(l){
		    l.hide();
			$(l.readAttribute('for'))._value = l.innerHTML;

			if ($(l.readAttribute('for')).value.empty()) {
                $(l.readAttribute('for')).value = $(l.readAttribute('for'))._value
            }
			$(l.readAttribute('for')).observe('blur',function(e){
			    if(Event.element(e).value == '')
			        Event.element(e).value = Event.element(e)._value;
			});
			$(l.readAttribute('for')).observe('focus',function(e){
			    if(Event.element(e).value == Event.element(e)._value)
			        Event.element(e).value = '';
			});

		});
	},

	buildCalendar : function( handler, options ) {
        new CalendarDateSelect( $(handler), Object.extend({time:false, year_range:10, format:'db'}, options || {}))
    },

    ajaxUpload : function ( url, sendData, callback ) {
        var req = new JsHttpRequest();

        req.onreadystatechange = function() {
            if (req.readyState == 4 && callback) {
                callback.apply(callback, req);
            }
        }
        req.open(null, url, true);
        req.send( {'ajaxData' : sendData} );
    },

    tabs : function ( target, options ) {

        var options = Object.extend({
            defaultTab      : 'first',
            activeClassName : 'selected-tab'
        }, options || {});

        if ( target )
            new Control.Tabs( $(target), options );
        else
            $$('ul[id^=tab-container]').each(function(i){ new Control.Tabs( i, options ); });
    }
});