﻿jQuery.preloadImages = function () {
    for (var i = 0; i < arguments.length; i++) {
        jQuery("<img>").attr("src", arguments[i]);
    }
}
jQuery.preloadImages("/content/img/navi_spacer.png", "/content/img/navi_pipe.png");
jQuery.preloadImages("/content/img/navi_white_shadow-left.png", "/content/img/navi_shadow-left.png");
jQuery.preloadImages("/content/img/navi_white_shadow-right.png", "/content/img/navi_shadow-right.png");

var LastMenu = -1;
var HidePermission = -1;
var SelectedActive = false;

function menuHideStart(id) {
    HidePermission = Math.round(Math.random() * 1000000);
    var code = "menuHideWait("+ id +", "+ HidePermission +")";
    window.setTimeout(code, 200);
}

function menuHideWait(id, permission) {
    if (HidePermission != permission) { return; }
    menuHide(id);
}

function menuShow(id) {
    HidePermission = -1;
    if (LastMenu == id) { return; }
    if (LastMenu >= 0) { menuHide(LastMenu); }
    LastMenu = id;

    var item = $('#navi_' + id);
    var selected = item.hasClass("selected");
    var first = item.hasClass("first");
    var last = item.hasClass("last");

    if (selected && !SelectedActive) { return; }
    item.addClass('highlight');

    var selectedA = false;
    if (!first) { selectedA = $('#navi_' + (id - 1)).hasClass("selected"); }
    var selectedB = false;
    if (!last) { selectedB = $('#navi_' + (id + 1)).hasClass("selected"); }

    var pipeA = $('#navi_pipe_' + id);
    var pipeB = $('#navi_pipe_' + (id + 1));
    var srcA = selectedA ? 'navi_white_shadow-left.png' : 'navi_shadow-left.png';
    var srcB = selectedB ? 'navi_white_shadow-right.png' : 'navi_shadow-right.png';
    pipeA.find('img').attr('src', '/content/img/' + srcA);
    pipeB.find('img').attr('src', '/content/img/' + srcB);

    var flyout = $('#flyout_' + id);
    var flyoutContent = flyout.find('div.flyoutlvl2');
    if (flyout == null) { return; }

    flyout.css('left', pipeA.position().left);
    flyout.show();

    var width = item.outerWidth();
    if (flyoutContent.innerWidth() < width) { flyoutContent.css('width', width - 20); }
}

function menuHide(id) {
    LastMenu = -1;
    HidePermission = -1;

    var pipeA = $('#navi_pipe_' + id);
    var pipeB = $('#navi_pipe_' + (id + 1));
    var item = $('#navi_' + id);
    item.removeClass('highlight');

    var selected = item.hasClass("selected");
    var first = item.hasClass("first");
    var last = item.hasClass("last");

    var selectedA = false;
    if (!first) { selectedA = $('#navi_' + (id - 1)).hasClass("selected"); }
    var selectedB = false;
    if (!last) { selectedB = $('#navi_' + (id + 1)).hasClass("selected"); }

    var srcA = selectedA ? 'navi_white_right.png' : 'navi_pipe.png';
    if (first) { srcA = 'navi_spacer.png'; }
    if (selected) { srcA = 'navi_white_left.png'; }
    var srcB = selectedB ? 'navi_white_left.png' : 'navi_pipe.png';
    if (last) { srcB = 'navi_spacer.png'; }
    if (selected) { srcB = 'navi_white_right.png'; }
    pipeA.find('img').attr('src', '/content/img/' + srcA);
    pipeB.find('img').attr('src', '/content/img/' + srcB);

    var flyout = $('#flyout_' + id);
    if (flyout == null) { return; }
    flyout.hide();
}

var SuggestRequest;
function Suggest(element, field, event) {
    var code = 0;
    if (!event) { event = window.event; }
    if (event.which) { code = event.which; }
    if (event.keyCode) { code = event.keyCode; }
    if (code == 40) { SuggestMove(element, field, 1); return; }
    if (code == 38) { SuggestMove(element, field, -1); return; }
    if (code == 37) { return; }
    if (code == 39) { return; }
    if (SuggestRequest) { SuggestRequest.abort(); }
    var value = field.val();
    if (value == '') { element.empty(); element.hide(); return; }
    SuggestRequest = $.ajax({
        url: '/Suche/Suggest',
        type: 'POST',
        data: 'value=' + value,
        dataType: 'json',
        success: function (data) { SuggestSuccess(element, field, data); }
    });
}

function SuggestMove(element, field, dir) {
    var cur = 0;
    var selected = element.find('li.selected');
    if (selected.length > 0) { cur = selected.prevAll().length + 1; }
    var pos = cur;
    var all = element.find('li').length;
    if (pos + dir > 0) { pos += dir; }
    if (pos > all) { pos = all; }
    if (cur == pos) { return; }
    element.find('li.selected').removeClass('selected');
    if (pos == 0) { return; }
    var item = $(element.find('li')[pos - 1]);
    item.addClass('selected');
    field.val(item.text());
}

function SuggestSuccess(element, field, data) {
    element.empty();
    var value = field.val();
    var html = '<ul>';
    for (var i = 0; i < data.length; i++) {
        html += '<li>';
        html += value.substr(0, value.length);
        html += '<b>' + data[i].substring(value.length) + '</b>';
        html += '</li>';
    }
    html += '</ul>';
    element.append(html);
    element.find('li').mousedown(function () { field.val($(this).text()); field.closest('form').submit(); });
    SuggestShow(element, field);
}

function SuggestShow(element, field) {
    if (field.val() == 'Suchbegriff eingeben') { field.val(''); }
    field.css('color', '#313131');
    if (element.find('li').length > 0) { element.show(); } else { element.hide(); }
}

function SuggestHide(element, field) {
    if (field.val() == '') { field.val('Suchbegriff eingeben'); field.css('color', '#c4c4c4'); }
    element.hide();
}

function CheckBoxToggle(display, selector) {
    if (display) { $(selector).show(); } else { $(selector).hide(); }
}

function RadioBoxToggle(element, container) {
    var name = $(element).attr('name');
    var checked = element.checked;
    jQuery(container + ' input[type="checkbox"]').each(function () {
        var item = jQuery(this);
        if (checked && item.attr('name') != name) { item.attr('checked', false); }
        CheckBoxToggle(item.attr('checked'), item.attr('ref'));
    });
}

function toggleLegalContent() {
    jQuery('#legal-content').toggle();
    if(jQuery('#legal-content').is(':visible')) {
        jQuery('#legal-link a').text('Informationen ausblenden');
        jQuery('#legal-link a').css('background-image', 'url(/content/img/arrow_faq_down.gif)');
    }
    else {
        jQuery('#legal-link a').text('Informationen einblenden');
        jQuery('#legal-link a').css('background-image', 'url(/content/img/arrow_faq_right.gif)');
    }
}

function displayServiceContent(cid) {

    if (content_id) {
        jQuery('#recommend-header-' + content_id + '').hide();
        jQuery('#recommend-content-' + content_id + '').hide();
    }

    jQuery('#recommend-header-' + cid + '').show();
    jQuery('#recommend-content-' + cid + '').show();

    content_id = cid;
}

function displayTariffInfo(tariff_id) { 

}

function displayOffer(offer_type, offer_id) {
    // hide current tariff offer
    jQuery('.' + offer_type + 'Item').hide();
    // display selected tariff offer
    jQuery('#' + offer_type + jQuery('#' + offer_type + offer_id + '').val() + 'Content').show();
    // set selected value to original value
    jQuery("#" + offer_type + offer_id + " option[value='" + offer_id + "']").attr('selected', 'selected');
}

function displayInfobox(content_id) {
    jQuery.colorbox({
        transition: "none",
        speed:200,
        initialWidth: 410,
        initialHeight: 100,
        opacity: 0.4,
        inline: true,
        href: '' + content_id + ''
    });
}

function displayCartDialog(element, url) {
    jQuery.colorbox({
        href: url,
        transition: "none",
        speed: 200,
        initialWidth: 410,
        initialHeight: 100,
        opacity: 0.4,
        scrolling: false,
        maxHeight: 600,
        onComplete: function () { jQuery('#cboxScrollbarContent').jScrollPane() }
    });
}

function displayDialog(element, url) {
    jQuery.colorbox({
        href: url,
        transition: "none",
        speed: 200,
        initialWidth: 410,
        initialHeight: 100,
        opacity: 0.4,
        scrolling: true,
        maxHeight: 600,
        innerWidth: '460px'
    });
}

function displayFAQ(content_id) {

    jQuery.colorbox({
        transition: "none",
        speed: 200,
        opacity: 0.4,
        inline: true,
        href: '' + content_id + ''
    });
}


function open3DView(jar_file) {
    var strContent = '';

    if (!navigator.javaEnabled()) {
        strContent += '<div style="margin:20px 0px 0px 10px;width:567px;">';
        strContent += '<p class="error">Sie brauchen das Java-Plugin um die 3D-Ansicht öffnen zu können.<br /><br /><a href="http://www.java.com" target="_blank">Java Plugin herunterladen</a></p>';
        strContent += '</div>';
    } else {
        strContent += '<applet width="587" height="600" name="ay_yildiz" code="Player_3Dimerce.class" codebase="http://www.base.de/3D/ayyildiz_3D/">';
        strContent += '<param name="info" value="Created by 3Dimerce - http://www.3dimerce.com">';
        strContent += '<param name="archive" value="3dcommerce/loadgfx.jar,3dcommerce/startup8.jar,3dcommerce/core8.jar,3dcommerce/3D_Scene-5.05.jar,3dcommerce/classes.jar,3dcommerce/wflet.jar">';
        strContent += '<param name="license" value="Registered version">';
        strContent += '<param name="version" value="5.0.43.1060">';
        strContent += '<param name="java_arguments" value="-Xmx512m -Dsun.java2d.noddraw=true">';
        strContent += '<param name="resourcefolder" value="">';
        strContent += '<param name="preloadfile" value="3dcommerce/design.jar, /3D/' + jar_file + '">';
        strContent += '<param name="regid" value="6003-25">';
        strContent += '<param name="loadbgimage" value="1301858-loadbg.gif">';
        strContent += '<param name="loadbarimage" value="236983-loadbar.gif">';
        strContent += 'Sie brauchen das Java-Plugin um die 3D-Ansicht öffnen zu können.<br /><br /><a href="http://www.java.com" target="_blank">Java Plugin herunterladen</a>';
        strContent += '</applet>';
    }
    jQuery.colorbox({
        html: strContent,
        transition: "none",
        speed: 200,
        initialWidth: 587,
        initialHeight: 615,
        opacity: 0.4,
        scrolling: false,
        innerWidth: '587px',
        innerHeight: '615px',
        onComplete: function () { },
        onClosed: function () { }
    });
}

function displayRoamingMap() {
    var strContent = '';

    strContent += '<div style="height:20px;"></div>';
    strContent += '<div style="height:554px;" id="roamingMap">';
    strContent += '<p style="margin:0px 20px 20px 20px;font-size:12px;">Für die Nutzung dieser Site benötigen Sie die Flash Player Version ab 10. Diesen können Sie hier kostenlos herunterladen:<br /><br />';
    strContent += '<a href="http://get.adobe.com/de/flashplayer/" onfocus="if(this.blur)this.blur();" target="_blank" class="flash">Flash-Player herunterladen</a></p>';
    strContent += '</div>';

    jQuery.colorbox({
        html: strContent,
        transition: "none",
        speed: 200,
        initialWidth: 700,
        initialHeight: 574,
        opacity: 0.4,
        scrolling: false,
        innerWidth: '700px',
        innerHeight: '574px',
        onComplete: function () {
            var flashVars = {
                marke: 'AYYILDIZ',
                swfdomain: 'https://www.eplus.de'
            };
            var params = {
                allowscriptaccess: 'always',
                bgcolor: '#FFFFFF',
                menu: 'false',
                allowFullscreen: 'false'
            };
            swfobject.embedSWF('https://www.eplus.de/swf/RoamingKarte/ammap.swf', 'roamingMap', '700', '554', '10', null, flashVars, params, { id: 'roamingMap' }); 
        },
        onClosed: function () { }
    });
}

function toggleSettings() {
    jQuery('#' + settings + '').hide();
    jQuery('#' + jQuery('#email-settings').val() + '').show();

    settings = jQuery('#email-settings').val();
}

function openWebsite() {
    if (jQuery('#company').val() != '') {
        popUp = window.open(jQuery('#company').val());
        popUp.focus();
    }
}

function openPopup(url, width, height, scrollbar) {
    intWidth    = width;
    intHeight   = height;
    intX = (screen.width / 2) - (intWidth / 2);
    intY = (screen.height / 2) - (intHeight / 2);

    if (scrollbar) { scrollbar = "yes"; } else { scollbar = "no"; }
    popUp = window.open(url, 'popup', 'scrollbars='+ scrollbar +',width=' + intWidth + ',height=' + intHeight + ',left=' + intX + ',top=' + intY);
    popUp.focus();
}

function ValidateEnable(url) {
    $('input[type="text"]').blur(function () { Validate(this.name, url); });
    $('input[type="checkbox"]').click(function () { Validate(this.name, url); });
    $('input[type="radio"]').click(function () { Validate(this.name, url); });
    $('textarea').blur(function () { Validate(this.name, url); });
    $('select').change(function () { Validate(this.name, url); });
}

function Validate(name, url) {
    var values = $('form').serialize();
    $.ajax({
        url: url,
        type: 'POST',
        data: values,
        dataType: 'json',
        success: function (data, textStatus) { ValidateSuccess(data, name); }
    });
}

function ValidateSuccess(data, name) {
    for (var i = 0; i < data.length; i++) {
        var item = data[i];
        var error = $('#' + item.Key.replace(/\./g, "_") + '_Error');
        var field = $('[name="' + item.Key + '"]');
        if (field.hasClass('ignore-error-handler')) { continue; }
        if (item.Value == null) { error.children('span').remove(); field.removeClass('input-validation-error'); continue; }
        if (name != item.Key) { continue; }
        field.addClass('input-validation-error');
        error.children('span').remove();
        error.append('<span class="field-validation-error">' + item.Value + '</span>');
    }
}

function submitContact() {

    jQuery('#loading').show();

    var values = jQuery('form').serialize();
    jQuery.ajax({
        url: '/Service/ContactSubmit',
        type: 'POST',
        data: values,
        dataType: 'json',
        success: function (data, textStatus) {

            for (var i = 0; i < data.length; i++) {
                var item = data[i];
                var error = $('#' + item.Key.replace(/\./g, "_") + '_Error');
                var field = $('[name="' + item.Key + '"]');
                if (field.hasClass('ignore-error-handler')) { continue; }
                if (item.Value == null) { error.children('span').remove(); field.removeClass('input-validation-error'); continue; }
                field.addClass('input-validation-error');
                error.children('span').remove();
                error.append('<span class="field-validation-error">' + item.Value + '</span>');

                if (item.Key == "success" && item.Value == "True") {
                    jQuery('#content-form').hide();
                    jQuery('#confirm').show();
                } else {
                    jQuery('#content-form').show();
                    jQuery('#confirm').hide();
                }
            }

            jQuery('#loading').hide();

        },
        error: function (o, e, k) {
            jQuery('#loading').hide();
            jQuery('#content-form').hide();
            jQuery('#error').show();
        }
    });
}

function submitBannerAdContact() {
    jQuery('#loading').show();

    var values = jQuery('form').serialize();
    jQuery.ajax({
        url: '/Service/BannerAdContactSubmit',
        type: 'POST',
        data: values,
        dataType: 'json',
        success: function (data, textStatus) {

            for (var i = 0; i < data.length; i++) {
                var item = data[i];
                var error = $('#' + item.Key.replace(/\./g, "_") + '_Error');
                var field = $('[name="' + item.Key + '"]');
                if (field.hasClass('ignore-error-handler')) { continue; }
                if (item.Value == null) { error.children('span').remove(); field.removeClass('input-validation-error'); continue; }
                field.addClass('input-validation-error');
                error.children('span').remove();
                error.append('<span class="field-validation-error">' + item.Value + '</span>');

                if (item.Key == "success" && item.Value == "True") {
                    jQuery('#content-form').hide();
                    jQuery('#confirm').show();
                } else {
                    jQuery('#content-form').show();
                    jQuery('#confirm').hide();
                }
            }

            jQuery('#loading').hide();

        },
        error: function (o, e, k) {
            jQuery('#loading').hide();
            jQuery('#content-form').hide();
            jQuery('#error').show();
        }
    });
}
