﻿



var kitesDetailsModes = {};
kitesDetailsModes.START = 0;
kitesDetailsModes.BOARD_FOUCS = 1;
kitesDetailsModes.BOARD_PERFORMANCE = 2;
kitesDetailsModes.BOARD_ZOOM = 3;
kitesDetailsModes.TEXT = 4;

var normalSize = 600;
var foucsSize = 870;
var speed = 1000;

var kitesDetails = {}

var isBar = false;

kitesDetails.init = function (sprite) {

    kitesDetails = sprite;
    kitesDetails.gallery = null;
    kitesDetails.popGalleryTemplateHtml = $('#popGalleryTemplate').html();

    kitesDetails.longTextHolder = kitesDetails.kiteStrip.textPreview.jq().find('.bodyContent');
    kitesDetails.isOpen = false;
    kitesDetails.data = null;
    kitesDetails.dataIndex = -1;
    kitesDetails.mode = kitesDetailsModes.START;
    kitesDetails.lastMode = null;
    kitesDetails.zoomsets = [];
    kitesDetails.selectedButton = null;
    kitesDetails.zoomDetails = null;
    kitesDetails.open = function (data, i) {

        if (kitesDetails.isOpen) {
            kitesDetails.close();
        }

        //trace.writeObject(data);

        kitesDetails.addEventListener(fl.events.ENTER_FRAME, kitesDetails.onscroll);
        kitesDetails.addEventListener(fl.events.RESIZE, kitesDetails.onResize);


        kitesDetails.data = data;
        kitesDetails.dataIndex = i;
        kitesDetails.kiteStrip.kite.kiteImage.src(data.kite);
        /*kitesDetails.kiteStrip.background.src(data.bg);*/
        kitesDetails.bg = $('#kiteBg');
        kitesDetails.bg.html('<img src="' + data.bg + '" width="100%" />');

        //.css('background-image', 'url(' + data.bg + ')');
        kitesDetails.bg.css('background-color', data.bgcolor);

        kitesDetails.isOpen = true;
        kitesDetails.zoomsets = [];

        //data.showInMenu

        //clickOnBarTip

        isBar = !data.showInMenu;

        var clickOnSrc = kitesDetails.kiteStrip.clickOnkiteTip.src();
        clickOnSrc = clickOnSrc.substring(0, clickOnSrc.lastIndexOf('/'));
        clickOnSrc = clickOnSrc + '/' + (data.showInMenu ? 'clickOnKiteTip' : 'clickOnBarTip') + '.png';

        kitesDetails.kiteStrip.clickOnkiteTip.src(clickOnSrc);

        /*init text*/
        kitesDetails.kiteStrip.textPreview.jq().find('.fBigWhite').html(kitesDetails.data.whiteTitle);
        kitesDetails.kiteStrip.textPreview.jq().find('.fBigDark').html(kitesDetails.data.darkTitle.replace('4TH', '4<sup>TH</sup>'));
        kitesDetails.kiteStrip.textPreview.jq().find('.fDark14').html(kitesDetails.data.topText);
        kitesDetails.kiteStrip.textPreview.jq().find('.kiteDetailsHead-smallIndicatorWarp').html('<img src="' + kitesDetails.data.smallIndicator + '" alt="" />');

        var templateHtml = $('#kiteDetailsContent').html();
        var contents = kitesDetails.data.content;

        kitesDetails.longTextHolder.html('');

        for (var i = 0; i < contents.length; i++) {

            var contentElement = $('<div id="content' + contents[i].id + '">' + templateHtml + '</div>');
            contentElement.find('.fBigWhite').html(contents[i].name);
            contentElement.find('.fDark14').html(contents[i].content);
            contentElement.find('.kiteDetails-backToTop').toggle(contents[0].showTitle).click(function () {

                kitesDetails.setMode(kitesDetailsModes.START);
                //kiteDetails.onPreAnchor(0);
                //globalScrollbar.scroll(0);
                //kiteDetails.bodyElement.parent().stop().animate({ top: 0 }, 1000);
                //kiteDetails.onAnchor(0);
            });

            contentElement.appendTo(kitesDetails.longTextHolder);
        }

        kitesDetails.kiteStrip.textPreview.jq().find('a.aSeeIndicator').toggle(kitesDetails.data.aSeeIndicator != null).bind('click', kitesDetails.aSeeIndicator_click);
        kitesDetails.kiteStrip.textPreview.jq().find('a.aSeeIndicator').toggle(kitesDetails.data.aSeeIndicator != null).prev().bind('click', kitesDetails.aSeeIndicator_click);
        kitesDetails.kiteStrip.textPreview.jq().find('a.aSeeSpecifications').toggle(kitesDetails.data.aSeeSpecifications != null).bind('click', kitesDetails.aSeeSpecifications_click);
        kitesDetails.kiteStrip.textPreview.jq().find('.aSeeOrview').bind('click', kitesDetails.aSeeOrview_click);
        kitesDetails.kiteStrip.textPreview.jq().find('a.aSeeKiteInAction').toggle(kitesDetails.data.gallery != null).bind('click', kitesDetails.aSeeKiteInAction_click);


        $('.darkit').css({
            color: data.darkit ? '#000' : '#fff',
            borderColor: data.darkit ? '#000' : '#fff'
        });

        $('table').attr('border', 0).attr('cellpadding', 0).attr('cellspacing', 0);


        if (!data.zoomsets) {
            data.zoomsets = [];
        }
        /*init zoomsets*/
        for (var i = 0; i < data.zoomsets.length; i++) {

            kitesDetails.zoomsets[i] = [];

            var zooms = data.zoomsets[i].zooms;

            for (var j = 0; j < zooms.length; j++) {

                var button = new fl.display.Image();
                button.orgWidth(40);
                button.orgHeight(40);
                button.data = zooms[j];
                button.zoomsetIndex = i;
                button.name('zoom' + i + '_' + j);
                button.x(button.data.x / 1500 * normalSize);
                button.y(button.data.y / 1500 * normalSize);
                button.src(button.data.zoomInImageSrc);
                button.alpha(0);
                button.visible(false);
                button.jq().css({ cursor: 'pointer' });
                button.onClick = function (e) {

                    kitesDetails.selectedButton = e.currentTarget;

                    if (kitesDetails.mode == kitesDetailsModes.BOARD_ZOOM) {
                        kitesDetails.selectedButton.src(kitesDetails.selectedButton.data.zoomInImageSrc);
                        kitesDetails.setMode(kitesDetails.lastMode);
                        kitesDetails.selectedButton = null;
                    } else {
                        kitesDetails.selectedButton.src(kitesDetails.selectedButton.data.zoomOutImageSrc);
                        kitesDetails.setMode(kitesDetailsModes.BOARD_ZOOM);
                    }

                };
                button.addEventListener(fl.events.ADDED_TO_STAGE, function (e) {
                    e.currentTarget.addEventListener(fl.events.CLICK, e.currentTarget.onClick);
                });
                button.addEventListener(fl.events.REMOVED_FROM_STAGE, function (e) {
                    e.currentTarget.removeEventListener(fl.events.CLICK, e.currentTarget.onClick);
                });
                kitesDetails.kiteStrip.kite.addChild(button);

                kitesDetails.zoomsets[i][j] = button;
            }
        }

    } //<-  kitesDetails.open



    kitesDetails.close = function () {

        if (kitesDetails.gallery) {
            kitesDetails.gallery.dispose();
            kitesDetails.gallery = null;
        }

        kitesDetails.removeEventListener(fl.events.RESIZE, kitesDetails.onResize);
        kitesDetails.removeEventListener(fl.events.ENTER_FRAME, kitesDetails.onscroll);

        globalScrollbar.content(null);


        for (var i = 0; i < kitesDetails.zoomsets.length; i++) {
            var zoomset = kitesDetails.zoomsets[i];
            for (var j = 0; j < zoomset.length; j++) {

                kitesDetails.kiteStrip.kite.removeChild(zoomset[j]);
            }
        }

        if (kitesDetails.zoomDetails) {
            kitesDetails.zoomDetails.parent().removeChild(kitesDetails.zoomDetails);
            kitesDetails.zoomDetails = null;
        }

        if (kitesDetails.selectedButton) {
            kitesDetails.selectedButton.src(kitesDetails.selectedButton.data.zoomInImageSrc);
            kitesDetails.selectedButton = null;
        }

        kitesDetails.selectedButton = null;
        kitesDetails.zoomsets = [];
        kitesDetails.kiteStrip.textPreview.stop();
        kitesDetails.kiteStrip.textPreview.alpha(1);
        kitesDetails.kiteStrip.textPreview.visible(true);

        kitesDetails.kiteStrip.stop();
        kitesDetails.kiteStrip.y(0);

        kitesDetails.kiteStrip.kite.stop();
        kitesDetails.kiteStrip.kite.scaleX(1);
        kitesDetails.kiteStrip.kite.scaleY(1);
        kitesDetails.kiteStrip.kite.y(113);
        kitesDetails.kiteStrip.kite.x(191);

        kitesDetails.mode = kitesDetailsModes.START;

        kitesDetails.kiteStrip.clickOnkiteTip.visible(true);
        kitesDetails.kiteStrip.performanceTip.visible(false);
        kitesDetails.kiteStrip.constructionTip.visible(false);
        kitesDetails.kiteStrip.backToStart.stop();
        kitesDetails.kiteStrip.backToStart.visible(false);

        kitesDetails.kiteStrip.viewConsructions.visible(false);
        kitesDetails.kiteStrip.viewPerformans.visible(false);

        kitesDetails.longTextHolder.hide();
        kitesDetails.longTextHolder.html('');
        kitesDetails.kiteStrip.textPreview.jq().find('a.aSeeIndicator').unbind('click', kitesDetails.aSeeIndicator_click);
        kitesDetails.kiteStrip.textPreview.jq().find('a.aSeeIndicator').prev().unbind('click', kitesDetails.aSeeIndicator_click);
        kitesDetails.kiteStrip.textPreview.jq().find('a.aSeeSpecifications').unbind('click', kitesDetails.aSeeSpecifications_click);
        kitesDetails.kiteStrip.textPreview.jq().find('.aSeeOrview').unbind('click', kitesDetails.aSeeOrview_click);
        kitesDetails.kiteStrip.textPreview.jq().find('a.aSeeKiteInAction').unbind('click', kitesDetails.aSeeKiteInAction_click);

        kitesDetails.isOpen = false;
    }

    kitesDetails.setMode = function (mode) {

        if (mode == kitesDetails.mode) {
            return;
        } else if (mode == kitesDetailsModes.BOARD_FOUCS) {

            globalScrollbar.content(null);

            kitesDetails.longTextHolder.hide();
            kitesDetails.kiteStrip.textPreview.animate({ alpha: 0 }, 300, function () {
                kitesDetails.kiteStrip.textPreview.visible(false);
            });
            kitesDetails.kiteStrip.animate({ y: 0 }, 300);
            kitesDetails.kiteStrip.kite.animate({ height: foucsSize, width: foucsSize, y: 130, x: 191 - (foucsSize - normalSize) / 2 }, kitesDetails.mode == kitesDetailsModes.START ? speed : 1000);
            kitesDetails.kiteStrip.clickOnkiteTip.visible(false);


            kitesDetails.kiteStrip.performanceTip.visible(isBar ? false : true);
            kitesDetails.kiteStrip.constructionTip.visible(false);


            kitesDetails.kiteStrip.viewConsructions.visible(false);
            kitesDetails.kiteStrip.viewPerformans.visible(isBar ? false : true);


            if (!kitesDetails.kiteStrip.backToStart.visible()) {
                kitesDetails.kiteStrip.backToStart.alpha(0);
                kitesDetails.kiteStrip.backToStart.visible(true);
                kitesDetails.kiteStrip.backToStart.animate({ alpha: 1 }, 300);
            }

            kitesDetails.hideZoomSet(1);
            kitesDetails.showZoomSet(0);

            if (kitesDetails.zoomDetails) {
                kitesDetails.zoomDetails.parent().removeChild(kitesDetails.zoomDetails);
                kitesDetails.zoomDetails = null;
            }

        } else if (mode == kitesDetailsModes.BOARD_PERFORMANCE) {
            globalScrollbar.content(null);

            kitesDetails.kiteStrip.textPreview.animate({ alpha: 0 }, 300, function () {
                kitesDetails.kiteStrip.textPreview.visible(false);
            });
            kitesDetails.kiteStrip.animate({ y: 0 }, 300);
            kitesDetails.kiteStrip.kite.animate({ height: foucsSize, width: foucsSize, y: 130, x: 191 - (foucsSize - normalSize) / 2 }, kitesDetails.mode == kitesDetailsModes.START ? speed : 1000);

            kitesDetails.kiteStrip.clickOnkiteTip.visible(false);
            kitesDetails.kiteStrip.performanceTip.visible(false);
            kitesDetails.kiteStrip.constructionTip.visible(true);

            kitesDetails.kiteStrip.viewConsructions.visible(true);
            kitesDetails.kiteStrip.viewPerformans.visible(false);


            if (!kitesDetails.kiteStrip.backToStart.visible()) {
                kitesDetails.kiteStrip.backToStart.alpha(0);
                kitesDetails.kiteStrip.backToStart.visible(true);
                kitesDetails.kiteStrip.backToStart.animate({ alpha: 1 }, 300);
            }

            kitesDetails.hideZoomSet(0);
            kitesDetails.showZoomSet(1);

            if (kitesDetails.zoomDetails) {
                kitesDetails.zoomDetails.parent().removeChild(kitesDetails.zoomDetails);
                kitesDetails.zoomDetails = null;
            }

        } else if (mode == kitesDetailsModes.START) {

            globalScrollbar.content(null);

            if (kitesDetails.kiteStrip.backToStart.visible() || kitesDetails.mode == kitesDetailsModes.TEXT) {
                kitesDetails.kiteStrip.backToStart.animate({ alpha: 0 }, 300, function () {
                    kitesDetails.kiteStrip.backToStart.visible(false);
                });

                if (kitesDetails.selectedButton) {
                    kitesDetails.selectedButton.src(kitesDetails.selectedButton.data.zoomInImageSrc);
                    kitesDetails.selectedButton = null;
                }

                kitesDetails.hideZoomSet(0);
                kitesDetails.hideZoomSet(1);

                kitesDetails.kiteStrip.textPreview.visible(true);
                kitesDetails.kiteStrip.textPreview.animate({ alpha: 1 }, 300);

                kitesDetails.longTextHolder.fadeOut(700);

                kitesDetails.kiteStrip.animate({ y: 0 }, speed);
                kitesDetails.kiteStrip.kite.animate({ scaleX: 1, scaleY: 1, y: 113, x: 191 }, speed);

                kitesDetails.kiteStrip.clickOnkiteTip.visible(true);
                kitesDetails.kiteStrip.performanceTip.visible(false);
                kitesDetails.kiteStrip.constructionTip.visible(false);

                kitesDetails.kiteStrip.viewConsructions.visible(false);
                kitesDetails.kiteStrip.viewPerformans.visible(false);


                if (kitesDetails.zoomDetails) {
                    kitesDetails.zoomDetails.parent().removeChild(kitesDetails.zoomDetails);
                    kitesDetails.zoomDetails = null;
                }


            }

        } else if (mode == kitesDetailsModes.BOARD_ZOOM) {
            globalScrollbar.content(null);

            kitesDetails.kiteStrip.backToStart.visible(false);

            kitesDetails.kiteStrip.clickOnkiteTip.visible(false);
            kitesDetails.kiteStrip.performanceTip.visible(false);
            kitesDetails.kiteStrip.constructionTip.visible(false);

            kitesDetails.kiteStrip.viewConsructions.visible(false);
            kitesDetails.kiteStrip.viewPerformans.visible(false);


            var kite = kitesDetails.kiteStrip.kite;
            var button = kitesDetails.selectedButton;
            var buttonXR = button.x() / kite.kiteImage.width();
            var buttonYR = button.y() / kite.kiteImage.height();

            var x = (kite.parent().width() - buttonXR * 2 * 1500) / 2;
            var y = (kite.parent().width() - buttonYR * 2 * 1500) / 2;

            kitesDetails.kiteStrip.kite.animate({ height: 1500, width: 1500, y: y, x: x }, 1000);

            kitesDetails.hideZoomSet(0);
            kitesDetails.hideZoomSet(1);


            var zoomDetailsX = button.x() + button.width() / 2;
            var zoomDetailsY = button.y() + button.height() / 2;

            zoomDetailsX -= 40;
            zoomDetailsY -= 40;

            zoomDetailsX += Math.cos((button.data.angel - 270) * Math.PI / 180) * 80;
            zoomDetailsY += Math.sin((button.data.angel - 270) * Math.PI / 180) * 80;

            var zoomDeatisTextBg = new fl.display.Image();
            zoomDeatisTextBg.orgWidth(300);
            zoomDeatisTextBg.orgHeight(90);
            zoomDeatisTextBg.x(button.data.fromLeft ? -5 : -215);
            zoomDeatisTextBg.y(-5);
            zoomDeatisTextBg.src(kitesDetails.data.baseUrl + '/app_themes/images/zoom_bg_' + (button.data.fromLeft ? 'left' : 'right') + '.png');

            var zoomDeatisText = new fl.display.Sprite();
            zoomDeatisText.orgWidth(300);
            zoomDeatisText.orgHeight(90);
            zoomDeatisText.x(button.data.fromLeft ? -5 : -215);
            zoomDeatisText.y(-5);

            var innerHtml = '<div class="zoomButtonText ' + (button.data.fromLeft ? 'left' : 'right') + '">';
            innerHtml += '<div class="goldTitle">' + button.data.name + '</div>';
            innerHtml += '<div class="text">' + button.data.htmltext + '</div>';
            innerHtml += '</div>';
            $(innerHtml).appendTo(zoomDeatisText.jq());


            var zoomDeatils = new fl.display.Sprite();
            zoomDeatils.orgWidth(80);
            zoomDeatils.orgHeight(80);
            zoomDeatils.x(zoomDetailsX);
            zoomDeatils.y(zoomDetailsY);
            zoomDeatils.addChild(zoomDeatisTextBg);
            zoomDeatils.addChild(zoomDeatisText);

            if (button.data.image.length > 0) {
                var zoomDeatilsImage = new fl.display.Image();
                zoomDeatilsImage.orgWidth(80);
                zoomDeatilsImage.orgHeight(80);
                zoomDeatilsImage.src(button.data.image);

                zoomDeatils.addChild(zoomDeatilsImage);
            }

            kite.addChildAt(zoomDeatils, kite.getChildIndex(button));
            kitesDetails.zoomDetails = zoomDeatils;

        } else if (mode == kitesDetailsModes.TEXT) {

            kitesDetails.longTextHolder.show();

            globalScrollbar.content($('#scrollDemmy'));
        }

        kitesDetails.lastMode = kitesDetails.mode;
        kitesDetails.mode = mode;
    }

    kitesDetails.showZoomSet = function (i) {

        var zoomset = kitesDetails.zoomsets[i];

        if (!zoomset) {
            return;
        }

        for (var i = 0; i < zoomset.length; i++) {
            if (!zoomset[i].visible()) {
                zoomset[i].alpha(0);
                zoomset[i].visible(true);
                zoomset[i].animate({ alpha: 1 });
            }
        }
    }

    kitesDetails.hideZoomSet = function (i) {

        var zoomset = kitesDetails.zoomsets[i];

        if (!zoomset) {
            return;
        }

        for (var i = 0; i < zoomset.length; i++) {

            if (zoomset[i].visible() && zoomset[i] != kitesDetails.selectedButton) {
                zoomset[i].alpha(0);
                zoomset[i].visible(false);
                zoomset[i].stop();
            }
        }
    }

    kitesDetails.kiteStrip.kite.kiteImage.addEventListener(fl.events.CLICK, function (e) {


        if (kitesDetails.mode == kitesDetailsModes.TEXT || kitesDetails.mode == kitesDetailsModes.START || kitesDetails.mode == kitesDetailsModes.BOARD_PERFORMANCE) {

            if (kitesDetails.mode == kitesDetailsModes.START) {
                //kitesDetails.kiteStrip.kite.kiteImage.scale(1);
            }

            kitesDetails.setMode(kitesDetailsModes.BOARD_FOUCS);
        } else if (kitesDetails.mode == kitesDetailsModes.BOARD_FOUCS && !isBar) {
            kitesDetails.setMode(kitesDetailsModes.BOARD_PERFORMANCE);
        }

    });

    kitesDetails.kiteStrip.kite.kiteImage.addEventListener(fl.events.MOUSE_ENTER, function (e) {

        if (kitesDetails.mode == kitesDetailsModes.START) {
            // kitesDetails.kiteStrip.kite.kiteImage.animate({ scale: 1.05 }, 250);
        }
    });

    kitesDetails.kiteStrip.kite.kiteImage.addEventListener(fl.events.MOUSE_LEAVE, function (e) {
        if (kitesDetails.mode == kitesDetailsModes.START) {
            // kitesDetails.kiteStrip.kite.kiteImage.animate({ scale: 1 }, 250);
        }
    });

    kitesDetails.kiteStrip.kite.kiteImage.addEventListener(fl.events.CLICK, function (e) {
        if (kitesDetails.mode == kitesDetailsModes.BOARD_ZOOM) {
            kitesDetails.selectedButton.src(kitesDetails.selectedButton.data.zoomInImageSrc);
            kitesDetails.setMode(kitesDetails.lastMode);
            kitesDetails.selectedButton = null;
        }
    });

    kitesDetails.kiteStrip.backToStart.addEventListener(fl.events.CLICK, function (e) {
        if (kitesDetails.mode != kitesDetailsModes.START) {
            kitesDetails.setMode(kitesDetailsModes.START);
        }
    });

    kitesDetails.kiteStrip.viewConsructions.addEventListener(fl.events.CLICK, function (e) {
        kitesDetails.setMode(kitesDetailsModes.BOARD_FOUCS);
    });
    kitesDetails.kiteStrip.viewPerformans.addEventListener(fl.events.CLICK, function (e) {
        kitesDetails.setMode(kitesDetailsModes.BOARD_PERFORMANCE);
    });

    kitesDetails.onscroll = function () {

        if (kitesDetails.mode == kitesDetailsModes.TEXT) {

            var r = 1200 / $(window).height();

            if (kitesStage.scaleTest.width() == kitesStage.width()) {

                r = 1920 / $(window).width();
            }


            var contentDemoHeight = 2700;
            var contentHeight = $('.flHtml.centerToParent.textPreview').height();
            contentHeight += parseFloat(kitesDetails.longTextHolder.parent().parent().css('top'));
            contentHeight += 20;
            var scrollHeight = contentHeight - $(window).height();

            var scrollPos = globalScrollbar.scroll();
            var pos = 0;

            pos = scrollHeight * scrollPos;
            pos *= r;

            pos = -pos;


            var animatedPos = kitesDetails.kiteStrip.y() - (kitesDetails.kiteStrip.y() - pos) / 5;

            kitesDetails.kiteStrip.y(animatedPos);

            var movements = $(window).height();
            var bgTop = movements * globalScrollbar.scroll();

            kitesDetails.bg.css('top', -bgTop);
        }
    };

    kitesDetails.aSeeIndicator_click = function () {

        kitesDetails.setMode(kitesDetailsModes.TEXT);

        var element = kitesDetails.longTextHolder.find('#content' + kitesDetails.data.aSeeIndicator);

        var max = $('#scrollDemmy').height();

        var top = element.offset().top;

        globalScrollbar.scroll(top / max);
    };
    kitesDetails.aSeeSpecifications_click = function () {

        kitesDetails.setMode(kitesDetailsModes.TEXT);

        var element = kitesDetails.longTextHolder.find('#content' + kitesDetails.data.aSeeSpecifications);

        var max = $('#scrollDemmy').height();

        var top = element.offset().top;

        globalScrollbar.scroll(top / max);
    };
    kitesDetails.aSeeOrview_click = function () {

        kitesDetails.setMode(kitesDetailsModes.TEXT);

        var max = $('#scrollDemmy').height();

        var top = kitesDetails.longTextHolder.offset().top;

        globalScrollbar.scroll(top / max);
    };
    kitesDetails.aSeeKiteInAction_click = function () {

        kitesDetails.gallery = new popGallery(
            $(kitesDetails.popGalleryTemplateHtml).appendTo(document.body),
            kitesDetails.data.gallery);

        kitesDetails.onResize();
    };

    kitesDetails.onResize = function (e) {

        if (kitesDetails.gallery) {
            var height = $('.flSprite.kite').height();

            kitesDetails.gallery.setHeight(height + 70);
        }

        /*
        $('#scrollDemmy').height(
        $('.flHtml.centerToParent.textPreview').height() +
        kitesDetails.kiteStrip.height() + kitesDetails.kiteStrip.y()
        );

        trace.write($('#scrollDemmy').height());
        */
    };

};


