GT = new GTjs("no.ravn.learningmodule.viten.js");

Popup = Class.create();
Popup.prototype = {
    initialize: function(url, name, width, height) {
        this.url = url;
        this.width = width;
        this.height = height;
        this.name = name;
    },

    show: function() {
        var cookie = Cookie.get('RavnPopup');
        if (cookie && cookie !== '0') {
            if (!confirm(GT._('Du har allerede et annet vindu åpent som kan kan inneholde et svar du ikke har lagret. Hvis du trykker OK kan du miste svar som ikke er lagret.'))) {
                return false;
            }
        }
        this.popup = window.open(this.url, this.name, 'height='+this.height+',width='+this.width+',scrollbars=yes');
        if (window.focus) {
            this.popup.focus();
        }
        return true;
    }

};

var unload_popup = function() {
    if (pe_active) {
      pe_active = false;
    }
    Cookie.set('RavnPopup', '0', 1, '/', '.ravn.no');
    Cookie.set('RavnPopup', '0', 1, '/', '.viten.no');
    Cookie.set('RavnPopup', '0', 1, '/', '.naturfag.no');
}

var popup_active = function(pe) {
    if ((!pe_active) && pe) {
        pe.stop();
    } else {
        // Vi burde kalle pe.stop() hvis vinduet skal stenges
        Cookie.set_second('RavnPopup', '1', 2, '/', '.ravn.no');
        Cookie.set_second('RavnPopup', '1', 2, '/', '.viten.no');
        Cookie.set_second('RavnPopup', '1', 2, '/', '.naturfag.no');
    }
}


// Ajax.InPlaceEditor har problemer med parametrene når
// en JSON-streng skal sendes i POST-bodyen fordi den
// prøver å legge til id'en til editor-elementet som
// en ekstra parameter.
var JSONInPlaceEditor = Class.create(Ajax.InPlaceEditor, {
    initialize: function($super, element, url, options) {
    	$super(element, url, options);
    },
    // Siden dette er hentet fra scriptaculous er det mulig
    // at det oppstår problemer i en senere versjon :-(
    handleFormSubmission: function(e) {
        var form = this._form;
        var value = $F(this._controls.editor);
        this.prepareSubmission();
        var body = this.options.callback(form, value) || '';
        var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
        Object.extend(options, {
            postBody: body,
            onComplete: this._boundWrapperHandler,
            onFailure: this._boundFailureHandler
        });
        new Ajax.Request(this.url, options);
        if (e) Event.stop(e)
    }
});


var vitenToggleProgramText = function(id, tekstid) {
    var lenke = $(id);
    var tekstid = $(tekstid);
    tekstid.toggle();
    if (tekstid.visible()) {
        lenke.removeClassName('text-unexpanded');
        lenke.addClassName('text-expanded');
    } else {
        lenke.removeClassName('text-expanded');
        lenke.addClassName('text-unexpanded');
    }
    return false; // Stop klikkevent

}


