/*
 * ===============================
 * AutoPortal CMS
 * -------------------------------
 * Developed by Dmitriy Ulyanov
 * -------------------------------
 * Copyright (c) 2009
 * ===============================
 */

function getAbsoluteLocation() {

    var re1 = new RegExp(/\/[^\/]+$/g)
    return location.protocol + '//' + location.hostname + location.pathname.replace(re1, '');

}

var locationAbsolute = getAbsoluteLocation();
var locationBase = location.protocol + '//' + location.hostname;

function doRate( rate, id ) {
    $(document).ready(function(){
        $.ajax({
            type: "GET",
            url: locationBase + "/index.php",
            cache: false,
            data: "mod=category&act=ajax&do=updateRating&rate=" + rate + "&post_id="+id,
            dataType: 'json',
            beforeSend: function() {
                $("div.ratingInfo").html("<div class='wait'>&nbsp;</div>");
            },
            success: function(data, status) {
                if (data.result == 'OK') {
                    $('#ratig-layer').html(data.new_rating);
                    $("div.ratingInfo").html("<span class='green'>Р’Р°С€ РіРѕР»РѕСЃ СѓС‡С‚РµРЅ!</span>");
                } else if (data.result == 'ALREADY_VOTED') {
                    $('#ratig-layer').html(data.new_rating);
                    $("div.ratingInfo").html("<span class='red'>Р’С‹ СѓР¶Рµ РіРѕР»РѕСЃРѕРІР°Р»Рё!</span>");
                } else {
                    $("div.ratingInfo").html("<span class='red'>"+data.result+"</span>");
                }
            },
            error: function(data, status, e){
                $("div.ratingInfo").html("<span class='red'>РћС€РёР±РєР°: "+e+"</span>");
            }
        });
    });
}

function doShortRate( rate, id ) {
    $(document).ready(function(){
        $.ajax({
            type: "GET",
            url: locationBase + "/index.php",
            cache: false,
            data: "mod=category&act=ajax&do=updateRating&type=short&rate=" + rate + "&post_id="+id,
            dataType: 'json',
            beforeSend: function() {
                $("#ratingInfo-"+id).show().html("<div class='wait'>&nbsp;</div>");
            },
            success: function(data, status) {
                if (data.result == 'OK') {
                    $('#ratig-layer-'+id).html(data.new_rating);
                } else if (data.result == 'ALREADY_VOTED') {
                    $('#ratig-layer-'+id).html(data.new_rating);
                    $("#ratingInfo-"+id).html("<span class='red'>Р’С‹ СѓР¶Рµ РіРѕР»РѕСЃРѕРІР°Р»Рё!</span>");
                } else {
                    $("#ratingInfo-"+id).html("<span class='red'>"+data.result+"</span>");
                }
            },
            error: function(data, status, e){
                $("#ratingInfo-"+id).html("<span class='red'>РћС€РёР±РєР°: "+e+"</span>");
            }
        });
    });
}

function updateCitiesByRegion(region_id) {
    $(document).ready(function(){
            $("select#city_id").empty();
            $("select#city_id").append($("<option value=''>---</option>"));
            $("select#city_id").removeAttr('disabled');

            $.ajax({
                    type: "GET",
                    url: locationBase + "/ajax/updatecitiesbyregion/" + region_id,
                    cache: false,
                    dataType: 'json',
                    beforeSend: function() {
                            $("#wait").show();
                    },
                    success: function(data, status) {
                        for (var i = 0; i < data.cities.length; i++) {
                                $("select#city_id").append($("<option value='"+data.cities[i].city_id+"'>"+data.cities[i].city+"</option>") );
                        }
                        $("#wait").hide();
                    },
                    error: function(data, status, e){
                        $("#wait").hide();
                    }
            });
    });
}

function updatePerPage(per_page, baseUrl) {
	var get = location.search;
	var url = 'http://'+location.hostname+baseUrl+'?';
	var param = {};

	if(get != '') {
		tmp = (get.substr(1)).split('&');
		for(var i=0; i < tmp.length; i++) {
			tmp2 = tmp[i].split('=');
			param[tmp2[0]] = tmp2[1];
		}

		for (var key in param) {
			if (key != 'page' && key != 'per_page') url += key+"="+param[key]+"&";
		}
	}
	top.location.href = url+'per_page='+per_page;
}

function checkCaptcha(inputId, submitId, waitId, doNotLockSubmit) {

    if ($("#"+inputId).val() == '') {
        alert('Введите проверочный код!');
        $("#"+submitId).removeAttr('disabled');
        return false;
    }

    codePassed = 0;

    var request = $.ajax({
            type: "GET",
            url: locationBase + "/ajax/checkcaptcha/" + $("#"+inputId).val(),
            cache: false,
            dataType: 'json',
            async: false,
            beforeSend: function() {
                    if (doNotLockSubmit != true)
                        $("#"+submitId).attr('disabled', 'disabled');
                    $("#"+waitId).show();
            },
            success: function(data, status) {
                if (data.result == 'FAIL') {
                    alert('Неверно введен проверочный код!');
                    $("#"+submitId).removeAttr('disabled');
                    $("#"+waitId).hide();
                    return false;
                } else if (data.result == 'OK') {
                    $("#"+submitId).removeAttr('disabled');
                    $("#"+waitId).hide();
                    codePassed = 1;
                    return true;
                }
            },
            error: function(data, status, e){
                $("#"+waitId).hide();
                $("#"+submitId).removeAttr('disabled');
                return false;
            }
    });

    if (codePassed) return true;
    else return false;

}

function getModelsJSON() {
	$(document).ready(function(){

		$("select#model_id").empty();
		$("select#model_id").append($("<option value=''>Все модели</option>") );
                $("select#model_id").jqTransSelect({updateForm:true});

		$.ajax({
			type: "GET",
			url: "http://" + location.hostname + "/ajax/get_models_json/" + $("select#mark_id").val(),
			cache: false,
			dataType: 'json',
			beforeSend: function() {
				$("#loading, #loading_expanded").css("display", "block");
			},
			success: function(data, status) {
                            // HANDLE INCOMING JSON
                            if (data.result == 'OK') {
                                for (var i = 0; i < data.models.length; i++)
                                {
                                    $("select#model_id").append($("<option value='"+data.models[i].id+"'>"+data.models[i].model+"</option>") );
                                }
                            }
                            $("#loading, #loading_expanded").css("display", "none");
                            $("select#model_id").jqTransSelect({updateForm:true});
			},
            error: function(data, status, e){
            	$("#loading, #loading_expanded").css("display", "none");
            }
		});
	});
}

function getModelsTransformed() {
    $(document).ready(function(){

            $('#auto-filter-model-selector span').html('Все модели');
            var $model_ul = $('#auto-filter-model-selector ul');
            $model_ul.empty().append($('<li><a href="#" onclick="return false;" value="" class="selected">Все модели</a></li>') );

            $.ajax({
                    type: "GET",
                    url: "http://" + location.hostname + "/ajax/get_models_transformed/" + $("#mark_id").val(),
                    cache: false,
                    dataType: 'html',
                    beforeSend: function() {
                        $("#loading, #loading_expanded").css("display", "block");
                    },
                    success: function(data, status) {
                        $model_ul.append(data);
                        $('#auto-filter-model-selector').niceSelector();
                        $("#loading, #loading_expanded").css("display", "none");
                    },
                    error: function(data, status, e){
                        $("#loading, #loading_expanded").css("display", "none");
                    }
            });
    });
}

function getMarksTransformed() {
    
	$(document).ready(function(){

                $('#model_id_selector span').html('Все модели');
                var $ul = $('#model_id_selector ul');
                $ul.empty();
		$ul.append($('<li><a href="#" onclick="return false;" value="" class="selected">Все модели</a></li>') );

		$.ajax({
			type: "GET",
			url: "http://" + location.hostname + "/ajax/get_models_transformed/" + $("#mark_id").val(),
			cache: false,
			dataType: 'html',
			beforeSend: function() {
				$("#loading, #loading_expanded").css("display", "block");
			},
			success: function(data, status) {
                            $ul.append(data);
                            $('#model_id_selector').niceSelector();
                            $("#loading, #loading_expanded").css("display", "none");
			},
                        error: function(data, status, e){
                            $("#loading, #loading_expanded").css("display", "none");
                        }
		});
	});
}

function getRadioGroupValue(radioGroupObj){
	for (var i=0; i < radioGroupObj.length; i++)
	    if (radioGroupObj[i].checked) return radioGroupObj[i].value;
	   return null;
}

function showOverlay() {
    $('body').prepend($("<div id='pageDarkOverlay' style='height: "+$(document).height()+"px;'></div>"));
}

function hideOverlay() {
    $('#pageDarkOverlay').remove()
}

function authOpen(scrollToAuth)
{
    var offset = $('#link_login').offset();
    var auth = $('#auth-box');
    auth.css({'top' : (offset.top - 25) + 'px', 'left' : (offset.left - auth.width() + 50) + 'px'}).show();

    if (scrollToAuth == true) {
        $("html,body").stop().animate({scrollTop: 0}, 700 );
    }
}

function authClose()
{
    $('#auth-box').hide();
}

function userpanelOpen(scrollToAuth)
{
    var offset = $('#link_userpanel').offset();
    var auth = $('#userpanel-box');
    auth.css({'top' : (offset.top - 25) + 'px', 'left' : (offset.left - auth.width() + 50) + 'px'}).show();

    if (scrollToAuth == true) {
        $("html,body").stop().animate({scrollTop: 0}, 700 );
    }
}

function userpanelClose()
{
    $('#userpanel-box').hide();
}

function commResponseClose() {
    $('#comments-list').after($('#add-comment'));
    $('#add-comm-text').html('Написать комментарий:');
    $("#comm-parent-id").val('');
    return false;
}

function showPopupAutoSearch() {
    var filterOffset = $('#auto-filter').offset();
    showOverlay();
    $('#auto-filter-overlay-wrapper').css({'left': '0px', 'top': '0px'}).offset(filterOffset).show();
    $('#auto-filter-full-table .select-box').jqTransform({imgPath:'js/jqtransformplugin/img/'});
}

function hidePopupAutoSearch() {
            $('#auto-filter-overlay-wrapper').hide();
            hideOverlay();    
}

// AutoSearchExpanded
function updateExpandedSearch(getMarks) {

        if (getMarks == true) {
            getExpandedMarksJSON();
        }

        hideUnusefullExpandedSearchRows();
}

function getExpandedMarksJSON() {
    $(document).ready(function(){
        
            var mark_expanded_select = $("select#mark_expanded_id");
            var model_expanded_select = $("select#model_expanded_id");

            mark_expanded_select.empty().append($("<option value=''>Все марки</option>"));
            model_expanded_select.empty().append($("<option value=''>Все модели</option>") );
            mark_expanded_select.jqTransSelect({updateForm:true});
            model_expanded_select.jqTransSelect({updateForm:true});

            $.ajax({
                    type: "GET",
                    url: "http://" + location.hostname + "/ajax/get_marks_json/" + $("#type-expanded").val(),
                    cache: false,
                    dataType: 'json',
                    beforeSend: function() {
                            $("#loading_expanded").css("display", "block");
                    },
                    success: function(data, status) {
                            if (data.result == 'OK') {
                                for (var i = 0; i < data.marks.length; i++)
                                {
                                        $("select#mark_expanded_id").append($("<option value='"+data.marks[i].id+"'>"+data.marks[i].name+"</option>") );
                                }
                            }
                            $("#loading_expanded").css("display", "none");
                            $("select#mark_expanded_id").jqTransSelect({updateForm:true});
                    },
                    error: function(data, status, e){
                        $("#loading_expanded").css("display", "none");
                    }
            });
    });
}

function updateExpandedTransformedSearch(getMarks) {

        if (getMarks == true) {
            getExpandedMarksTransformed();
        }

        hideUnusefullExpandedSearchRows();
}

function getExpandedMarksTransformed() {
    $(document).ready(function(){
 
            $('#mark-expanded-selector span').html('Все марки');
            var $mark_ul = $('#mark-expanded-selector ul');
            $mark_ul.empty().append($('<li><a href="#" onclick="return false;" value="" class="selected">Все марки</a></li>') );

            $('#model-expanded-selector span').html('Все модели');
            var $model_ul = $('#model-expanded-selector ul');
            $model_ul.empty().append($('<li><a href="#" onclick="return false;" value="" class="selected">Все модели</a></li>') );

            $.ajax({
                    type: "GET",
                    url: "http://" + location.hostname + "/ajax/get_marks_transformed/" + $("#type-expanded").val(),
                    cache: false,
                    dataType: 'html',
                    beforeSend: function() {
                            $("#loading_expanded").css("display", "block");
                    },
                    success: function(data, status) {
                            $mark_ul.append(data);
                            $('#mark-expanded-selector').niceSelector({'onchange':'getExpandedModelsTransformed()'});
                            $('#model-expanded-selector').niceSelector();
                            $("#loading, #loading_expanded").css("display", "none");
                            $("#loading_expanded").css("display", "none");
                    },
                    error: function(data, status, e){
                        $("#loading_expanded").css("display", "none");
                    }
            });
    });
}

function getExpandedModelsJSON() {
	$(document).ready(function(){

                var model_expanded_select = $("select#model_expanded_id");
                model_expanded_select.empty().append($("<option value=''>Все модели</option>")).jqTransSelect({updateForm:true});

		$.ajax({
			type: "GET",
			url: "http://" + location.hostname + "/ajax/get_models_json/" + $("select#mark_expanded_id").val(),
			cache: false,
			dataType: 'json',
			beforeSend: function() {
				$("#loading_expanded").css("display", "block");
			},
			success: function(data, status) {
                            // HANDLE INCOMING JSON
                            if (data.result == 'OK') {
                                for (var i = 0; i < data.models.length; i++)
                                {
                                    $("select#model_expanded_id").append($("<option value='"+data.models[i].id+"'>"+data.models[i].model+"</option>") );
                                }
                            }
                            $("#loading_expanded").css("display", "none");
                            $("select#model_expanded_id").jqTransSelect({updateForm:true});
			},
                        error: function(data, status, e){
                            $("#loading_expanded").css("display", "none");
                        }
		});
	});

}

function getExpandedModelsTransformed() {
	$(document).ready(function(){

                $('#model-expanded-selector span').html('Все модели');
                var $model_ul = $('#model-expanded-selector ul');
                $model_ul.empty().append($('<li><a href="#" onclick="return false;" value="" class="selected">Все модели</a></li>') );

		$.ajax({
			type: "GET",
			url: "http://" + location.hostname + "/ajax/get_models_transformed/" + $("#mark_expanded_id").val(),
			cache: false,
			dataType: 'html',
			beforeSend: function() {
				$("#loading_expanded").css("display", "block");
			},
			success: function(data, status) {
                            $model_ul.append(data);
                            $('#model-expanded-selector').niceSelector();
                            $("#loading_expanded").css("display", "none");
			},
                        error: function(data, status, e){
                            $("#loading_expanded").css("display", "none");
                        }
		});
	});
}

function hideUnusefullExpandedSearchRows() {

    var type = $('#type-expanded').val();

    //show all first:
    $('#filter-fuel-div, #filter-body-row, #filter-drive-row, #filter-drive-div, #filter-kpp-div, #filter-helm-div').show().children('td').show().css('visibility', 'visible') //.css('visibility', 'visible');

    if (type == 'truck' || type == 'bus' || type == 'moto' || type == 'spec') {
            $('#filter-body-row, #filter-drive-div').hide();
    }
    if (type == 'moto' || type == 'spec') {
        $('#filter-kpp-div').hide();
        $('#filter-kpp-div, #filter-helm-div').hide();
        $('#filter-fuel-div').hide();
    }
    if (type == 'spec') {
        $('#filter-fuel-div, #filter-drive-row').hide();
    }
}

// Nice selects
(function($){
	var defaultOptions = {defaultListHeight:'300px'};
        
	/* Hide all open selects */
	var niceSelectorHideAll = function(oTarget){
		var ulVisible = $('.jqTransformSelectWrapper ul:visible');
		ulVisible.each(function(){
                        $(this).hide();
		});
	};
	/* Check for an external click */
	var niceSelectorCheckExternalClick = function(event) {
		if ($(event.target).parents('.jqTransformSelectWrapper').length === 0) {
                    niceSelectorHideAll($(event.target));
                }
	};

	/* Apply document listener */
	var niceSelectorAddDocumentListener = function (){
		$(document).mousedown(niceSelectorCheckExternalClick);
	};

        $.fn.addNiceSelectOpenAction = function(options) {
            var opt = $.extend({},defaultOptions,options);
            
            this.each(function(index){
                var $selectOpener = $(this);
                $selectOpener.unbind('click');
                $selectOpener.click(function() {

                    if ($selectOpener.parent().children('ul:hidden').length > 0) { 
                        var ulVisible = $('.jqTransformSelectWrapper ul:visible');
                        ulVisible.each(function(){
                                $(this).hide();
                        });
                        
                        var $ul = $('#'+opt.select_id+' ul');
                        $ul.slideDown(1);
                        var offSet = ($('#'+opt.select_id+' ul li a.selected').offset().top - $('#'+opt.select_id+' ul').offset().top);
                        $ul.animate({scrollTop: offSet}, 1);
                    }
                    else
                        $selectOpener.parent().children('ul').hide();
                })
            });
        }

        $.fn.addNiceSelectChoose = function(options) {
            var opt = $.extend({},defaultOptions,options);

            return this.each(function(){
                var $option = $(this);
                $option.unbind('click');
                $option.click(function() {
                    $('#'+opt.select_id+' a.selected').removeClass('selected');
                    $(this).addClass('selected');
                    $('#'+opt.select_id+' ul').hide();
                    $('#'+opt.select_id+' span').html($option.html());
                    var value = $option.attr('value');
                    $('#'+opt.select_id+' input').val(value);
                    
                    if (opt.onchange !== undefined) {
                        try {
                            eval(opt.onchange);
                        } catch(e) {}
                    }
                })
            });
        }
        
	$.fn.niceSelector = function(options){
		var opt = $.extend({},defaultOptions,options);
                var selfForm = $(this);

                opt['select_id'] = selfForm.attr('id');
                
                niceSelectorAddDocumentListener();
                
		return this.each(function(){
                        $('a.jqTransformSelectOpen', this).addNiceSelectOpenAction(opt);
                        $('div', this).addNiceSelectOpenAction(opt);
                        $('ul li a', this).addNiceSelectChoose(opt);
                        
                        // Calculate the height if necessary
                        var $ul = $('ul', this).css({'overflow':'auto', height: opt.defaultListHeight});
                        $ul.css({display:'block',visibility:'hidden'});
                        var iSelectHeight = ($('li',$ul).length)*($('li:first',$ul).height());//+1 else bug ff
                        (iSelectHeight < $ul.height()) && $ul.css({height:iSelectHeight,'overflow':'hidden'});//hidden else bug with ff
                        $ul.css({display:'none',visibility:'visible'});

		});
	};

})(jQuery);

jQuery.preloadImages = function () {
    var images = (typeof arguments[0] == 'object') ? arguments[0] : arguments;
    for (var i = 0; i < images.length; i++) {
        jQuery("").attr("src", images[i]);
    }
}

$.preloadImages('/templates/omsk/img/frame_t.png', '/templates/omsk/img/frame_b.png', '/templates/omsk/img/frame_r.png', '/templates/omsk/img/frame_l.png');

$(function(){

        // IE6 Hover fixes
        if($.browser.msie && $.browser.version=="6.0") {
            $('#menu > li').hover(function() {$(this).addClass('menu_hover')}, function() {$(this).removeClass('menu_hover')});
            $('ul.dropdown-list > li').hover(function() {$(this).addClass('menu_hover')}, function() {$(this).removeClass('menu_hover')});
            $('.drop-menu-header').hover(function() {$(this).addClass('drop-menu-header-hover')}, function() {$(this).removeClass('drop-menu-header-hover')});
            $('#more-menu').hover(function() {$(this).addClass('more_menu_hover')}, function() {$(this).removeClass('more_menu_hover')});
            $('.paid-auto-card').hover(function() {$(this).addClass('paid-auto-card-hover')}, function() {$(this).removeClass('paid-auto-card-hover')});
            $('.main-auto-card').hover(function() {$(this).addClass('main-auto-card-hover')}, function() {$(this).removeClass('main-auto-card-hover')});
            $('.bottom-links').hover(function() {$(this).addClass('bottom-links-hover')}, function() {$(this).removeClass('bottom-links-hover')});

            // Buttons
            $('.button-orange').hover(function() {$(this).addClass('button-orange-hover')}, function() {$(this).removeClass('button-orange-hover')});
            $('.button-gray').hover(function() {$(this).addClass('button-gray-hover')}, function() {$(this).removeClass('button-gray-hover')});
        }

        try {
            $("#paid-auto-ads").jCarouselLite({
                visible: 5,
                auto: 7000,
                speed: 400,
                btnNext: "#paid-auto-right",
                btnPrev: "#paid-auto-left"
            });
        } catch(err) {}

        // Opinions
        $('#opinions-list input[type=radio]').click(function() {
            $('#opinions-list li.opinion-checked').removeClass('opinion-checked');
            $(this).parent('li').addClass('opinion-checked');
        });
        $('#opinions-list li').click(function() {
            $('#opinions-list li.opinion-checked').removeClass('opinion-checked');
            $(this).addClass('opinion-checked').children('input[type=radio]').attr('checked', 'checked');
        });

        // Full article
        $('.share-button').hover(function() {$(this).addClass('share-button-hover')}, function() {$(this).removeClass('share-button-hover')});


        $("a.moveToAnchor").click(function () {
            anchorId = $(this).attr("href");
            destination = $(anchorId).offset().top;
            $("html,body").stop().animate({scrollTop: destination}, 500 );
            return false;
        });

        $('a.do_response').click(function(e) {
            e.preventDefault();
            $(this).parents('div.comm').after($('#add-comment'));
            $('#add-comm-text').html('Ответить на комментарий (<a href="#" onclick="return commResponseClose();">отмена</a>)');
            $("#comm-parent-id").val($(this).attr("id"));
        });


});
