﻿var moduleNavarticle = new function() {
    this.linkNode = null;
	
    this.ready = function() {
        $('#navarticleUploadImage').fileuploader({
            action: 'ajax.php',
            multiple: false,
            params: {
                requestType: 'module',
                modulesType: optSystem.currModule.type,
                requestSubmodule: optSystem.currSubmodule.id,
                requestAction: 'uploadsubmoduleimage',
                width: optSystem.currSubmodule.element.width()
            },
            sizeLimit: 2000000,
            onSubmit: function(id, fileName) {
                optSystem.loader.show(2)
            },
            onComplete: function(id, fileName, responseJSON) {
                optSystem.getSubmoduleHTML(optSystem.currSubmodule.id);
            }
        }); 
				
        moduleNavarticle.setAutolink(true);
    }
	
    this.setAutolink = function(autosave){
        // Autocomplete
        $('#moduleLinklist').autocomplete({
            source: siteNames,
            minLength: 0,
            select:function(event, ui){
                if(htaccessReady == 'true')
                    ui.item.value = ui.item.value+'.html';
                else
                    ui.item.value = '?site='+ui.item.value;
            },
            close:function(event, ui){
                if(autosave)
                    optSystem.setCurrentSubmoduleSettings();
            }
        }).click(function() {
            $(this).autocomplete('search', '');
        });
        $('.ui-autocomplete').click(function() {
            optSystem.clickHandled = true;
        });
    }
	
	
    // Settingspanel erneuern
    this.renewSettings = function() {
    // 
    }
	
    // Link hinzufügen
    this.addLink = function() {
        var link = $("#submoduleEdit input[name='link']").val();
        if (link.substr(0,4) == 'www.')
            link = 'http://' + link;
        $("#submoduleEdit input[name='link']").val(link);
        var target = $("#submoduleEdit select[name='target'] option:selected").val();
        optSystem.restoreSelection();
        if (this.linkNode != null) {
            if (window.getSelection) {
                this.linkNode.attributes.href.value = link;
                this.linkNode.attributes.target.value = target;
            }
            else if (document.selection) {
                this.linkNode.href = link;
                this.linkNode.target = target;
            }
        }
        else
            optSystem.wrapHTML('<a href="' + link + '" target="' + target + '">','</a>');
    }
	
    // Link entfernen
    this.removeLink = function() {
        //optSystem.restoreSelection();
        document.execCommand('unlink', false, '');
    }
	
    // Selektierter Linknode auslesen
    this.getSelectedLinkNode = function() {
        if (window.getSelection) {
            var sel = window.getSelection();
            var node = sel.focusNode;
            for (var i = 0; i < 3; i++) {
                if (node.nodeName.toLowerCase() == 'a')
                    return node;
                else
                    node = node.parentNode;
            }
        }
        else if (document.selection) {
            var range = document.selection.createRange();
            var node = range.parentElement();
            for (var i = 0; i < 3; i++) {
                if (node.tagName.toLowerCase() == 'a')
                    return node;
                else
                    node = node.parentElement;
            }
        }
		
        return null;
    }
	
    // Auswahl geändert
    this.refresh = function() {
        if (optSystem.currModule.name == 'navarticle') {
            $("#submoduleEdit input[name='link']").val('Kein Link');
			
            this.linkNode = this.getSelectedLinkNode();
			
            if (this.linkNode != null) {
                if (window.getSelection) {
                    $("#submoduleEdit input[name='link']").val(this.linkNode.attributes.href.value);
                    $("#submoduleEdit select[name='target'] option:selected").attr('selected','');
                    $("#submoduleEdit select[name='target'] option[value="+this.linkNode.attributes.target.value+"]").attr('selected','selected');
                }
                else if (document.selection) { 
                    $("#submoduleEdit input[name='link']").val(this.linkNode.href);
                    $("#submoduleEdit select[name='target'] option:selected").attr('selected','');
                    $("#submoduleEdit select[name='target'] option[value="+this.linkNode.target+"]").attr('selected','selected');
                }
            }
            else {
                $("#submoduleEdit select[name='target'] option:selected").attr('selected','');
                $("#submoduleEdit select[name='target'] option[value=_self]").attr('selected','selected');	
            }
			
            if (this.linkNode != null && !optSystem.currSelection.state)
                optSystem.selectNode(this.linkNode);
			
            if (optSystem.currSelection.state || this.linkNode != null)
                $("#submoduleEdit").show();
            else
                $("#submoduleEdit").hide();
        }
    }
}

