﻿/// <reference path="Core.js" />
$(document).ready(function () {
    var isCityAnimated = false;
    var isTownAnimated = false;
    var sc1 = 0;
    var sc1max = 0;
    var sCityPos = 100;
    var sTownPos = 0;
    var scrollMaxMove = 200;
    function scroll(targt, direction, size) {
        var move;
        var h = $('.' + targt).children("ul").children("li").height();
        if (direction == 'down') {
            move = '+=' + h;
        } else {
            move = '-=' + h;
        }
        if (size) {
            move += size;
        }

        $('.' + targt).scrollTo(move, 500, { 'axis': 'y' });
    }

    var refreshFont = function () {
        Cufon.refresh('.storesPage h1');
        Cufon.refresh('.magazaCol div a');
        Cufon.refresh('.townAdress');
    }

    /*Get stores */
    aff.getStores = function (storeId, type, clear) {
        aff._ga('MagazaDetay', storeId, 2);
        var options = {
            command: 'getStores',
            data: String.format('storeId={0}', storeId),
            success: function (result) {
                var cityObject = result;
                switch (type) {
                    case 1:
                        var cityList = '';
                        var cityListItem = '<li><a href="#!" class="storeCityLink" rel="{0}">{1}</a></li> ';
                        for (var i = 0; i < cityObject.ResponseObject.length; i++) {
                            cityList += String.format(cityListItem, cityObject.ResponseObject[i].Id, cityObject.ResponseObject[i].StoreName);
                        }
                        $('#cityUl').html(cityList);

                        $('.storeCityLink[rel=50]').addClass('magazaselected');

                        $('.storeCityLink').click(function (e) {
                            e.preventDefault();
                            $('.storeCityLink').removeClass('magazaselected');
                            $(this).addClass('magazaselected');
                            refreshFont();
                            aff.getStores($(this).attr('rel'), 2);
                        });

                        $('.city').scrollTo(100, 500, { 'axis': 'y' });

                        if (!clear) {
                            $('#townUl').html('');
                            $('.townAdress').html('');
                        }

                        $('.prevCity a').click(function (e) {
                            e.preventDefault();
                            //scroll('city', 'down', 30);
                            sCityPos += scrollMaxMove;
                            if ($('.city').scrollTop() >= 393) {
                                sCityPos = 393;
                            }
                            $('.city').scrollTo(sCityPos, 500, { 'axis': 'y' });
                        });
                        $('.nextCity a').click(function (e) {
                            e.preventDefault();
                            sCityPos -= scrollMaxMove;
                            if ($('.city').scrollTop() <= 0 || sCityPos < 0) {
                                sCityPos = 0;
                            }
                            $('.city').scrollTo(sCityPos, 500, { 'axis': 'y' });
                        });
                        /*
                        $('.prevCity a').mousemove(function (e) {
                        isCityAnimated = true;
                        scroll('city', 'down');
                        }).mouseleave(function () {
                        isCityAnimated = false;
                        });

                        $('.nextCity a').mousemove(function (e) {
                        isCityAnimated = true;
                        scroll('city', 'up');
                        }).mouseleave(function () {
                        isCityAnimated = false;
                        }); ;*/
                        break;
                    case 2:
                        var townList = '';
                        var townListItem = '<li><a href="#!" class="storeTownLink" rel="{0}">{1}</a></li> ';
                        for (var i = 0; i < cityObject.ResponseObject.length; i++) {
                            townList += String.format(townListItem, cityObject.ResponseObject[i].Id, cityObject.ResponseObject[i].StoreName);
                        }
                        $('#townUl').html(townList);

                        $('.storeTownLink[rel=51]').addClass('magazaselected');

                        $('.storeTownLink').click(function (e) {
                            e.preventDefault();

                            $('.storeTownLink').removeClass('magazaselected');
                            $(this).addClass('magazaselected');

                            refreshFont();
                            aff.getStores($(this).attr('rel'), 3);
                        });
                        if (!clear) {
                            $('.townAdress').html('');
                        }

                        $('.prevTown a').click(function (e) {
                            e.preventDefault(); //scroll('town', 'down')
                            if ($('.town').height() - $('.town').scrollTop() <= 0) {
                                return;
                            }
                            sTownPos += scrollMaxMove;
                            $('.town').scrollTo(sTownPos, 500, { 'axis': 'y' });
                        });

                        $('.nextTown a').click(function (e) {
                            e.preventDefault(); //scroll('town', 'up')
                            if ($('.town').scrollTop() <= 0) {
                                return;
                            }
                            sTownPos -= scrollMaxMove;
                            if ($('.town').scrollTop() <= 0 || sTownPos < 0) {
                                sTownPos = 0;
                            }
                            $('.town').scrollTo(sTownPos, 500, { 'axis': 'y' });
                        });

                        break;
                    case 3:
                        var townTemplate = '<h3>{0}</h3><p>{1}<br />Tel: {2}<br />Fax: {3}</p>';
                        $('.townAdress').html(String.format(townTemplate, cityObject.ResponseObject.Name, cityObject.ResponseObject.Address,
                                                    cityObject.ResponseObject.Tel, cityObject.ResponseObject.Fax));
                        break;
                    default:
                        break;
                }
                sc1max = $(".city > ul > li").size();
                refreshFont();

            }
        };
        aff._sendRequest(options);
    };

    /*Get stores */
    aff.getStoresCountry = function () {
        var options = {
            command: 'getStoresCountry',
            success: function (result) {
                var countryObject = result;
                var countryList = '';
                var countryItem = '	<a href="#!" class="storeCountryLink" rel="{0}">{1}</a>';

                for (var i = 0; i < countryObject.ResponseObject.length; i++) {
                    countryList += String.format(countryItem, countryObject.ResponseObject[i].Id, countryObject.ResponseObject[i].StoreName);
                }

                $('.country').html(countryList);

                $('.storeCountryLink').click(function (e) {
                    e.preventDefault();
                    $('.storeCountryLink').removeClass('magazaselected');
                    $(this).addClass('magazaselected');
                    refreshFont();
                    aff.getStores($(this).attr('rel'), 1);
                });

                aff.getStores(1, 1, true);
                aff.getStores(50, 2, true);
                aff.getStores(51, 3, true);

                $('.storeCountryLink[rel=1]').addClass('magazaselected');



                Cufon.refresh('.storesPage h1');
                Cufon.refresh('.magazaCol div a');
            }
        };
        aff._sendRequest(options);
    };



});


