
String.prototype.trim = new function() { return this.replace(/^\s+|\s+$/, ''); }.bind(this);

if (!window.console) {
    if (!window.console || !console.firebug) {
        var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
        "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];

        window.console = {};
        for (var i = 0; i < names.length; ++i) {
            window.console[names[i]] = function() {};
        }
    }
}

Ajax.Responders.register({
    onCreate: function() {
        if(Ajax.activeRequestCount > 0) {
            $$('a', '.icon', 'div').each(function(element){
                element.style.cursor = 'wait';
            });
        }
    },
    onComplete: function() {
        if(Ajax.activeRequestCount <= 0){
            $$('a', '.icon', 'div').each(function(element){
                element.style.cursor = '';
            });
        }
        $$('a', '.icon', 'div').each(function(element){
            element.style.cursor = '';
        });
    }
});

var App = {};
App.redirect = function(location) {
    window.location = location;
};

App.getId = function (element, prefix) {
    return $(element).id.substring(prefix.length);
};

App.translate = Class.create(App, {

    initialize: function(options) {
        this.option = {
            cookieName: 'fischer.translation',
            cookieExpire: 1,
            defaultLang: 'de'
        };
        Object.extend(this.option, options || {});
        
        if(Cookie.get(this.option.cookieName) == null) {
            Cookie.set(this.option.cookieName, this.option.defaultLang, this.option.cookieExpire);
        }
        this.buttonClickHandle(true, Cookie.get(this.option.cookieName));
        this.registerEvents();
    },
    
    registerEvents: function() {
        $$('.layoutPageHeaderMenu ul li img').each(function(element){
            var lang = App.getId(element, 'lang_');
            element.observe('click', this.buttonClickHandle.bindAsEventListener(this, lang));
            element.observe('mouseover', this.buttonMouseOverHandle.bindAsEventListener(this));
			element.observe('mouseout', this.buttonMouseOutHandle.bindAsEventListener(this));
        }.bind(this));
    },
	
	buttonMouseOutHandle: function(event) {
		Event.element(event).src = Event.element(event).src.replace(/bunt/, 'bunt');
	},
    
    buttonMouseOverHandle: function(event) {
        Event.element(event).style.cursor = "pointer";
		Event.element(event).src = Event.element(event).src.replace(/bunt/, 'bunt');
    },
    
    buttonClickHandle: function(event, lang) {
    
        if(Cookie.get(this.option.cookieName) !== lang) {
            Cookie.erase(this.option.cookieName);
            Cookie.set(this.option.cookieName, lang, this.option.cookieExpire);
        }
        
       new Ajax.Request('../translation/'+lang+'.xml', {
	       method: 'get',
           onSuccess: function(response) {
               var root = response.responseXML;
               var elementCollection = root.getElementsByTagName('element');

				for (var i = 0; i < elementCollection.length; i++){
				
					if($(elementCollection[i].getAttribute('id')) != undefined){
						if((elementCollection[i].firstChild.data != undefined) && (elementCollection[i].firstChild.data != null)){
						    $(elementCollection[i].getAttribute('id')).update(elementCollection[i].firstChild.data);
						}
					}
				}
           }
       });
    }

});

var Cookie = {
    set: function(name, value, daysToExpire) {
        var expire = '';
        if (daysToExpire !== undefined) {
            var d = new Date();
            d.setTime(d.getTime() + (86400000 * parseFloat(daysToExpire)));
            expire = '; expires=' + d.toGMTString();
        }
        return (document.cookie = escape(name) + '=' + escape(value || '') + expire + ';path=/;');
    },
    get: function(name) {
        var cookie = document.cookie.match(new RegExp('(^|;)\\s*' + escape(name) + '=([^;\\s]*)'));
        return (cookie ? unescape(cookie[2]) : null);
    },
    erase: function(name) {
        var cookie = Cookie.get(name) || true;
        Cookie.set(name, '', -1);
        return cookie;
    },
    accept: function() {
        if (typeof navigator.cookieEnabled == 'boolean') {
            return navigator.cookieEnabled;
        }
        Cookie.set('_test', '1');
        return (Cookie.erase('_test') === "1");
    }
};

