/*
#---------------------------------------------------------------------------
# Copyright   : rexx systems GmbH, 20097 Hamburg, Heidenkampsweg 101
#               Veraenderung oder Nutzung der Scripte/Anwendung ist nur mit
#               schriftlicher Genehmigung der rexx systems GmbH gestattet.
#---------------------------------------------------------------------------
*/

/**
 * wegen Konflikten mit anderen js-libaries
 * @todo wo koennten diese Zeilen zu problemen fuehren?
 */
var $ = jQuery.noConflict(),
    j$ = $;


var shopBasicJs = (function () {

    var place_holder = 'Suchbegriff';

    return {

        /*
         * Intialisierung von Event-Handlern, etc.
         * wird am Ende dieser Datei per $(document).ready() aufgerufen
         */
        init: function () {

            /*
             * Rahmen um Boxen erstellen
             */
            shopBasicJs.addBox('box-content', 'box');

            /*
             * das selbe fuer jqmodal
             */
            shopBasicJs.addBox('jqmContent', 'jqm');

            // Suchfeld
            shopBasicJs.handleSearchRequest();
            $('#search_box')
                .css('color', '#999')
                .val(place_holder)
                .focus(
                    function() {
                        if($('#search_box').val()==place_holder) {
                            $('#search_box').val('');
                            $('#search_box').css('color', '#000');
                        }
                    }
                ).blur(
                    function() {
                        if($('#search_box').val()=='') {
                            $('#search_box').css('color', '#999');
                            $('#search_box').val(place_holder);
                        }
                    }
                );

            /*
             * jqmWindow initialisieren
             * !! ACHTUNG: doppelte Verwendung von jQuery.jqDrag()
             *             führt zu dauerhafter Transparenz nach
             *             dem ersten Verschieben!
             */
            $('.jqmWindow').jqm({overlay: 50}).jqDrag('.jqmDrag');

        },

        /*
         * Divs um den Boxcontainer erstellen
         */
        addBox: function (className, classPrefix) {

            $("." + className).wrap(
                '<div class="' + classPrefix + '"><div class="' + classPrefix + '-top-middle"><div class="' + classPrefix + '-middle-left">'
                + '<div class="' + classPrefix + '-middle-right"><div class="' + classPrefix + '-top-left">'
                + '<div class="' + classPrefix + '-top-right"><div class="' + classPrefix + '-bottom-middle">'
                + '<div class="' + classPrefix + '-bottom-left"><div class="' + classPrefix + '-bottom-right">'
                + '</div></div></div></div></div></div></div></div></div>'
            );
        },

        getLayerContent: function (kennung) {

            $.ajax({
                type: 'GET',
                url: '../inc/functions/xml_http_requests.php',
                data: {
                    f : 'cust_get_layer_content',
                    p0: kennung,
                    p1: 1,
                    sid: mySession
                },
                success: function (phpData) {
                    shopBasicJs.showContentLayer(phpData);
               }
           });

        },

        handleSearchRequest: function () {
            $(document.forms.search).submit(this.search);

            $("#search_box, #suchbox")
                .autocomplete(
                    "../inc/functions/xml_http_requests.php",
                    {minChars: 1,
                     cacheLength: 0,
                     matchContains: 1,
                     onItemSelect:
                     function (o) {
                         if (o.extra[1].length) {
                             document.location.href = o.extra[1];
                         }
                         else {
                             $("#search_box").val(o.query);
                             shopBasicJs.search();
                         }
                     },
                     formatItem: function (o) {return o[1];},
                     delay: 200,
                     showResults: null,
                     extraParams: {f: "get_search_keywords", sid: mySession},
                     dataType: "JSON",
                     completePrefix: true});
        },

        search: function () {
            var term = $("#search_box").val();
            shopBasicJs.searchFor(term);
            return false;
        },

        searchFor: function (term) {
            var search = "/";
            search += "suche.html";
            if (term.length) {
                search += "?search_string=" + encodeURIComponent(term);
            }
            if (!document.cookie || !/sid=/.test(document.cookie)) {
                search += (term.length ? "&" : "?") + "sid=" + encodeURIComponent(mySession);
            }
            window.location.href = search;
        },

        showContentLayer: function(content,title,closeCallback) {

            if(typeof closeCallback == 'undefined') {
                closeCallback = shopBasicJs.hideContentLayer;
            }

            if(typeof title != 'undefined' && title != null) {
                $('.jqmWindowHead').html(title).show();
            }

            $('#rexxJqmClose').show().click(closeCallback);
            $('.jqmWindowContent').html(content);

            $('.jqmWindow').css('opacity', 1).jqm({overlay: 1}).jqmShow();
            $('.jqmOverlay').css('opacity', 0.3).css('position', 'fixed').show();

            if($('.jqmWindowContent #contentLayer').width() > 0) {
                width = $('.jqmWindowContent #contentLayer').width();
                $('.jqmContent').width(width);
            }
        },

        hideContentLayer: function() {

            $('.jqmWindow').jqmHide();

            $('.jqmWindowHead').hide().html('');
            $('.jqmWindowContent').html('');

            $('.jqmOverlay').hide();

            $('.jqmContent').css('width', 'auto');
        }
    };
}());

/*
 * Initialisierung, wenn Dokument geladen
 */
$(document).ready(function () {
    shopBasicJs.init();
    recommendPage.init();
});
