﻿var imageLoadingFlag = false;
//
// This function will shows error message inside element by specified selector
//
function ShowError(errorElementSelector, message) {
    $(errorElementSelector).show().html(message);
}

//
// This function will clears error message inside element by specified selector
//
function HideError(elementSelector) {
    $(elementSelector).hide().html("");
}

function stopEvent(e) {
    if (e.stopPropagation) e.stopPropagation();
    else e.cancelBubble = true;

    if (e.preventDefault) e.preventDefault();
    else e.returnValue = false;
}


var fillregions = function(r) {




    $.jmsajax({
        url: '/WebServices/Search.asmx/GetRegions',

        success: function(d) {
            h = new Array();
            h.push("<option value=''>все регионы</option>");
            for (var i = 0; i < d.d.length; i++) {
                h.push('<option value="' + d.d[i].a + '">' + d.d[i].n + '</option>');
            }
            r.html(h.join(''));
            var bchange = false;
            if (SearchRegionPrefix != '') {
                r.val(SearchRegionPrefix.substring(1));
                bchange = true;
            }
            else if (OldSearchRegionPrefix != '') {
                r.val(OldSearchRegionPrefix.substring(1));
                bchange = true;
            }
            else if (RegionPrefix != '') {
                r.val(RegionPrefix.substring(1));
                bchange = true;
            }
            if (bchange) {
                changeSearchRegion(r.val());
            };
            r.change(function() { changeSearchRegion(r.val()) });
           

        }
    });

};
var changeSearchRegion = function(alias) {

     var parameters = { "regAlias": alias };
     $.jmsajax({
        url: '/WebServices/Search.asmx/SetRegion',
        data: parameters
    });
        
        
};


var isDef = function(obj) {
    var res = false;
    if (typeof (obj) != "undefined") {
        if (obj != undefined)
            res = true;
    }
    return res;
};

var DialogAutoMain = function(obj, params) {

    if (!params)
        params = new Object();




    var html = '<div class="dWr">' +
                    '<div class="tBr"><b></b><i></i></div>' +
                    '<div class="dCnt">';
    if (isDef(params.title)) {
        html += '<div class="dialog-title-dmo">' +
                                                   '<span>' + params.title + '</span>' +
                                                   '<a href="javascript:void(0);" class="dialog-close-dmo">close</a>' +
                                   '</div>';
    };
    html += '<div class="dialog-content-dmo">' +
                    '</div>' +
                    '</div>' +
                    '<div class="bBr"><b></b><i></i></div>' +
                    '</div>';

    var dlg = $(html);
    if (isDef(params.id))
        dlg.attr("id", params.id);
    var msg = dlg.find(".dialog-content-dmo");
    if (typeof (obj) != "string")
        obj.show();
    msg.append(obj);

    if (!isDef(params.style))
        params.style = "dialog-dmo";
    if (!isDef(params.width))
        params.width = 330;

    if (isDef(params.contentid))
        $(".dialog-content-dmo", dlg).attr("id", params.contentid);


    dlg.dialog
	({
	    autoOpen: false,
	    dialogClass: params.style,
	    modal: true,
	    width: params.width,
	    minHeight: 10,
	    position: ['center', ($.browser.opera ? 150 : 'center')],
	    draggable: false,
	    resizable: false,
	    bgiframe: true,
	    modal: true,

	    open: function(e, ui) {
	        if (typeof (params.open) == "function") {
	            params.open();

	        }
	        return false;

	    },
	    close: function(e, ui) {
	        if (typeof (params.close) == "function") {
	            params.close();

	        }
	        $(".validatorError", dlg).hide();
	        $(".error", dlg).hide();
	        if (!(isDef(params.destroy) && params.destroy === false))
	            $(this).dialog("destroy").remove();
	        return false;

	    }
	});

    if (isDef(params.height))
        dlg.dialog("option", "height", params.height);


    if (typeof (params.yes) == "function") {
        $(".butOk, .butYes", dlg).click(function() {

            params.yes(dlg);
            return false;

        });
    };
    $(".butCancel, .butClose, .butNo", dlg).click(function() {
        if (typeof (params.no) == "function")
            params.no(dlg);

        dlg.dialog("close");
        return false;
    });

    $(".dialog-close-dmo", dlg)
		.click(function() {
		    dlg.dialog("close");
		    return false;
		})
		.focus();

    dlg.dialog("open");

    return dlg;



};

function CreateDialogAuto(html, close, height, width, title, style) {

    var param = { close: close, height: height, width: width, title: title, style: style };
    return DialogAutoMain(html, param);

}


function ShowMessageBoxAuto(message, close) {

    var html = message +
        '<div class="dialog-btns-dmo">' +
       '<a class="btn butCancel butClose" href="javascript:void"><span>OK</span></a>' +
       '<div class="clear"></div>' +
       '</div>';

    var param = { close: close, style: "dialog-dmo dialog-alert-dmo", width:330 };

    return DialogAutoMain(html, param);
    return dlg;
}




function ShowYesNoBoxAuto(message, yes, no, yesTitle, noTitle, title, style, infotext) {

    if (!yesTitle)
        yesTitle = "ОК";
    if (!noTitle)
        noTitle = "Отмена";

    var html = message +
        '<div class="dialog-btns-dmo">' +
       '<a class="btn butOk butYes" href="javascript:void"><span>' + yesTitle + '</span></a>' +
       '<a class="btn butCancel butNo" href="javascript:void"><span>' + noTitle + '</span></a>' +
       '<div class="clear"></div>' +            
       '</div>';
    if (infotext)
        html = html + infotext;
        
    var param = { yes: yes, no: no, title: title, style: style, width: 330 };
    var dlg = DialogAutoMain(html, param);
    return dlg;
}

//
// Opens "loading" popup dialog
//
function ShowLoadingBox(text) {
    return CreateDialogAuto("<img src='/CPResource.axd?n=Common.Images.LoadingDark.gif'/>" + (text ? text : "Идёт загрузка..."));

}

function SetTextInBoxAuto(dlg, text) {
    var msg = dlg.find(".dialog-content-dmo");
    msg.html(text);
}

$(document).ready(function() {


    // Тень шрифта в блоке с картинкой

    var xxx = $("a.shadow").attr("href");
    $("a.added").append($("a.shadow").html());
    $("a.added").attr({ href: xxx });
    
    //раскрывающийся список услуг

    $("table.vacancies tr td div a.full").toggle(
          function() {
              $(this).siblings('.full_spisok').slideToggle('fast'); $(this).css('background-position', '0 3px');
          },
          function() {
              $(this).siblings('.full_spisok').slideToggle('fast'); $(this).css('background-position', '0 -38px');
          });
    $(".vip_infor").toggle(
              function() {
                  $(this).siblings('.vip_infor_content').slideToggle('fast');
                  $('strong', this).toggle();
              },
              function() {
                  $(this).siblings('.vip_infor_content').slideToggle('fast');
                  $('strong', this).toggle();
              });
              try {
                  $(".topeltree").next("ul").treeview({
                      animated: "fast"


                  });
              }
              catch (er) { };
              $(".topeltree").click(function() {
                  $(this).next(".treeview:first").slideToggle("fast");
                  $(this).siblings(".topeltree").next("ul").slideUp("fast");
                  $(this).siblings(".topeltree").children("span").removeClass("topeltreeexp");
                  $("span", this).toggleClass("topeltreeexp");

              });
              $(".topeltree:first").next(".treeview:first").toggle();
              $("span", ".topeltree:first").toggleClass("topeltreeexp");
          })

          var ShowCropDialog = function(w, h, guid, parser, closeHandler, ar, minSize) {


              var width = w;
              var height = h;
              var aspectRatio = 1;
              if (ar)
                  aspectRatio = ar;

              var ms = [190, 190];
              if (minSize) {
                  ms = minSize;
              }
              var url = "/handlers/tmpimg.ashx?g=" + guid + "&rnd=" + Math.random();


              var param = { css: "dialog-dmo dialog-alert-dmo", width: Math.max(width, 200) + 50,
                  height: height + 180, title: "Загрузка фотографии",
                  open: function(e, ui) {
                      $("#imgUploadCropImg").load(function() {
                          imageLoadingFlag = false;
                          var cropOptions = new Object();
                          cropOptions.aspectRatio = aspectRatio;
                          cropOptions.minSize = ms;
                          cropOptions.setSelect =
									[
										Math.round(width / 2.0 - minSide / 2.0 + 10),
										Math.round(height / 2.0 - minSide / 2.0 + 10),
										Math.round(width / 2.0 + minSide / 2.0 - 10),
										Math.round(height / 2.0 + minSide / 2.0 - 10)
									];

                          var crop = $.Jcrop("#imgUploadCropImg", cropOptions);

                          $("#imgUploadCropDlgButOk, #imgUploadCropDlgButCancel", cropDialog).attr("disabled", false);

                          $("#imgUploadCropDlgButOk", cropDialog).click(function() {
                              if (imageLoadingFlag) return;
                              var s = crop.tellSelect();

                              if (s.w <= 0 || s.h <= 0) {
                                  alert("Необходимо выбрать часть изображения");
                                  return false;
                              }

                              var params = { guid: guid, x: s.x, y: s.y, w: s.w, h: s.h };

                              parser(params);



                              return false;
                          });

                          $("#imgUploadCropDlgButCancel", cropDialog).click(function() {
                              imageLoadingFlag = false;
                              closeHandler();
                              cropDialog.dialog("close");
                              return false;
                          });
                      });
                  },
                  close: function(e, ui) {
                      imageLoadingFlag = false;
                      closeHandler();
                      cropDialog.dialog("destroy").remove();
                      return false;
                  }
              };

              // start crop dialog
              var html = '<div>' +



                                           '<div class="text" style="padding:5px 0 18px">Выберите видимую область изображения, перетаскивая маркеры или рамку</div><img id="imgUploadCropImg" src="' + url + '"/><div class="clear mb10">&#160;</div>' +

                                          '<div class="dialog-btns-dmo" style="margin:0px -20px;">' +
                                            '<a id="imgUploadCropDlgButOk" class="btn"><span>Сохранить</span></a> ' +
                                            '<a id="imgUploadCropDlgButCancel" class="btn"><span>Отменить</span></a>' +
                                          '</div>' +

                                '</div>';

              var minSide = Math.min(width, height);
              cropDialog = DialogAutoMain(html, param);



          };

function resizeOffer() {

    if (document.body.offsetWidth >= 1100) {
        $(".offers_card li.for_hide").show()
        $(".offers_card_in_offer li").css({"width":"25%"});
    }
    else {
        $(".offers_card li.for_hide").hide();
        $(".offers_card_in_offer li").css({"width":"33%"});
    }
};

var resizeImg = function(originals, wrapperId) {
    var width = $("#" + wrapperId).width();
    var ratio = 1;
    if (originals.width > originals.height) { //LANDSCAPE
        if (width <= originals.maxWidth) {
            ratio = originals.width / width;
        }
        else {
            ratio = originals.width / originals.maxWidth;
        }
    }
    else {//portrait
        if (width <= originals.maxWidth) {
            if (originals.height > originals.maxHeight)
                ratio = originals.height / originals.maxHeight;
        }
        else {
            if (originals.height > originals.maxHeight)
                ratio = originals.height / originals.maxHeight;
        }
    }

    $("#largeImg").css({ width: originals.width / ratio });
    $("#largeImg").css({ height: originals.height / ratio });
}

var refreshImage = function() {
    if ($(this).attr("src") == "#") {
    }
    else {
        //var largePath = $(this).attr("href");
        $("#largeImg").css({ width: 'auto' });
        $("#largeImg").css({ height: 'auto' });

        //$("#largeImg").attr({ src: largePath });

        var origwidth = $("#largeImg").width();
        var origheight = $("#largeImg").height();
        resizeImg({ width: parseInt(origwidth), height: parseInt(origheight), maxWidth: 480, maxHeight: 320 }, 'imageWrapper')
    }
}

var lock_like = false;

var setLike = function(ObjectID, ObjectType) {
    if (lock_like)
        return;
    if (RegisteredConfirmation()) {
        lock_like = true;
        $.jmsajax(
        {
            url: "/WebServices/Clubs.asmx/SetLike",
            data: { "ObjectID": ObjectID, "ObjectType": ObjectType },
            success: function() {
                changeLike(ObjectID, ObjectType);
        }
    });
    }
};

var changeLike = function(ObjectID, ObjectType) {

    var lobj = $(".like_" + ObjectType + "_" + ObjectID);
    var countobj = lobj.find(".count");
    var N = Number(countobj.html()) + 1;
    countobj.html(N);
    var obj = lobj.find(".plusOne");
    obj.replaceWith("<span class='plusOne'>" + obj.html() + "</span>");

    lobj.addClass("liked");
    lock_like = false;

};


var refreshLike = function(ObjectID, ObjectType) {
    $.jmsajax(
        {
            url: "/WebServices/Clubs.asmx/GetLike",
            data: { "ObjectID": ObjectID, "ObjectType": ObjectType },
            success: function(obj) {
                refreshLikeResult(ObjectID, ObjectType, obj);
            }
        });


};

var refreshLikeResult = function(ObjectID, ObjectType, d) {


    var lobj = $(".like_" + ObjectType + "_" + ObjectID);
    var countobj = lobj.find(".count");
    countobj.html(d.N);
    if (d.A == "0") {
        var obj = lobj.find(".plusOne");
        obj.replaceWith("<span class='plusOne'>" + obj.html() + "</span>");

        lobj.addClass("liked");

    }
};



var RegisteredConfirmation = function() {

    if (CurrentUserID == -1 || CurrentClubUserIDStatus > 2)
        NotRegisteredMessage();
    else
        return true;


};

var goToRegistration = function() {

    if (CurrentClubUserIDStatus > 2) {
        document.location = "/drivers/add1/" + CurrentClubUserID + "/?returnurl=" + encodeURIComponent(returnUrl);
    }
    else
        document.location = "/drivers/add1/" + "?returnurl=" + encodeURIComponent(returnUrl); ;
    return false;
};


var NotRegisteredMessageDlg = null;

var NotRegisteredMessage = function() {

    if (NotRegisteredMessageDlg != null)
        NotRegisteredMessageDlg.dialog("close");


    var messge = "<div style='padding-bottom:15px;'>Для комментирования, создания новых тем, вступления в клуб "
    + "или создания нового клуба требуется регистрация на проекте и заполненная анкета "
    + "автомобилиста.<br /><br /> Пожалуйста, ";
    if (CurrentUserID < 0)
        messge += "<a href='#' onclick='goToAuthorization(); return false;'>авторизуйтесь</a>, если у вас уже есть регистрация и заполнена анкета<br /> или ";

    messge += "<a href='#' onclick='goToRegistration(); return false;'>заполните анкету автомобилиста</a>.</div>";

    NotRegisteredMessageDlg = ShowMessageBoxAuto(messge);

};


var mf_scroll = function(el) {
    var autoScrollDelay = 8000;
    var scroll_duration = 200;
    var artTip = $('.articles_carousel_box li a span');
    var point_nmb = $('.point').index(el); // index clicked element
    var margin_left = artItemWidth * point_nmb;
    $('.articles_carousel_box li, .articles_carousel_box li a').width(artItemWidth);
    artTip.width(artItemWidth - 40).css({ 'bottom': '-100%' });
    $('.point').removeClass('active_point');
    $('.point:eq(' + point_nmb + ')').addClass('active_point');
    $('.articles_carousel').animate({ marginLeft: '-' + margin_left + 'px' }, scroll_duration, function() { artTip.animate({ 'bottom': '0px' }, 250) });
    currentArtPosition = point_nmb;
};

var mf_autoScroll = function(currentArticle) {
    var autoScrollDelay = 8000;
    var scroll_duration = 500;
    var point_nmb = currentArticle;
    var artNmb = $('.articles_carousel li').length;
    var artTip = $('.articles_carousel_box li a span');
    var margin_left = artItemWidth * point_nmb;
    $('.point').removeClass('active_point');
    $('.point:eq(' + point_nmb + ')').addClass('active_point');
    $('.articles_carousel_box li, .articles_carousel_box li a').width(artItemWidth);
    artTip.width(artItemWidth - 40).css({ 'bottom': '-100%' });
    $('.articles_carousel').animate({ marginLeft: '-' + margin_left + 'px' }, scroll_duration, function() { artTip.animate({ 'bottom': '0px' }, 250) });
    currentArtPosition = currentArticle;
    currentArticle = currentArticle + 1;    
    if (currentArticle == artNmb) {
        currentArticle = 0;
        var autoScrollTimeout = setTimeout("mf_autoScroll(" + currentArticle + ")", autoScrollDelay);
    } else {
        var autoScrollTimeout = setTimeout("mf_autoScroll(" + currentArticle + ")", autoScrollDelay);
    };
    $('.points .point').click(function() {
        clearTimeout(autoScrollTimeout);
    });
};



var NotRegisteredManagerDlg = null;

var NotRegisteredManager = function() {

    if (NotRegisteredManagerDlg != null)
        NotRegisteredManagerDlg.dialog("close");


    var messge = "<div style='padding-bottom:15px;'>Вы можете поменять свой статус на менеджера компании в личном кабинете. <br /><br />";

    messge += "<a href='/user/profile/default.aspx?page=regdata'>Перейти в личный кабинет</a></div>";

    NotRegisteredManagerDlg = ShowMessageBoxAuto(messge);

};


var registerManager = function() {
    if (CurrentUserID == -1) {
        goRegister();
    }
    else {
        NotRegisteredManager();
    }
};




var registerManager = function() {
    if (CurrentUserID == -1) {
        goRegister();
    }
    else {
        NotRegisteredManager();
    }
};


// slideInformer
var scrollMessageActive = false;
var scrollMessageClosed = false;

$(window).load(function() { initScroll(); });

function initScroll() {
    var topAncor = $('.main .wrapper').height() * 2 / 3;

    if (topAncor) {

        $(window).scroll(function() {

            if (scrollMessageClosed)
                return;

            if (isScrollAfter(topAncor)) {
                if (!scrollMessageActive) { $("#scrollMessage").css("left", "-400px").show().animate({ left: "0" }, 500); scrollMessageActive = true; }
            }
            else {

                if (scrollMessageActive) { $("#scrollMessage").animate({ left: "-400" }, 500, null, function() { /*$("#scrollMessage").hide();*/ }); scrollMessageActive = false; }
            }
        });

    } // if (topAncor)

}
function isScrollAfter(top) {
    //var documentHeight = $(document).height();
    var windowHeight = $(window).height();
    var messageHeight = $("#scrollMessage").height() + 30;  //30 is for bottom space
    var scrollPosition = $(window).height() + $(window).scrollTop();
    return (scrollPosition > top && windowHeight > messageHeight);
}
function closeScrollMessage() {
    $("#scrollMessage").animate({ left: "-400" }, 500, function() { $(this).hide() });
    scrollMessageClosed = true;
}

// / slideInformer

