(function($){
    $.fn.currentDate = function() {
        console.log(this);
    }
})(jQuery);


// jQuery
var inforos = {
    getCurrentDate: function () {
	var monthes = [];
	var tmp = [];
	
	monthes['ru'] = ['января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря'];
	monthes['en'] = ['january','february','march','april','may','june','july','august','september','october','november','december'];
        
	var time;
	time = new Date();
	//time = new Date(time.getTime() + timeDelta);	
		//console.log(timeDelta);
        var day = time.getDate();
        if (day < 10) day = '0'+day;

        var month = time.getMonth() + 1;
        //if (month < 10) month = '0'+month;

        var year = time.getFullYear();

        var hour = time.getHours();
        if (hour < 10) hour = '0'+hour;

        var minute = time.getMinutes();
        if (minute < 10) minute = '0'+minute;

        var second = time.getSeconds();
        if (second < 10) second = '0'+second;	

        tmp['ru'] = 'Сегодня <del class="red">'+day+' '+monthes[lng][month-1]+' '+year+' года,<\/del> текущее время <del class="red">'+hour+':'+minute+':'+second+'</del>';
	tmp['en'] = 'Today <del class="red">'+monthes[lng][month-1]+' '+day+', '+year+' year</del>, current time <del class="red">'+hour+':'+minute+':'+second+'</del>';
	document.getElementById('date').innerHTML = tmp[lng];
	
	t = setTimeout("inforos.getCurrentDate()", 500);
	
    },
	printPage: function () {
		window.print();
	}
}

function getArrayByJson (id, url) {
    $.ajax({
        url: url,
        dataType: "json",
        success: function (data, status, request) {
            if (status == "success") {
                var len = data.id.length;
                if (len) {
                    setSelect(id, data);
                }
            }
        }
    });
}

function getValueByJson(id, url) {
    $.ajax({
        url: url,
        dataType: "json",
        success: function (data, status, request) {
            if (status == "success") {
                //if (data.length) {
                    //console.log(data);
                    $('#'+id).val(data);
                //}
            }
        }
    });
}

function setSelect(id, data) {
    var len = data.id.length;
    var select = $("#"+id);
    // Заполнить селект
    for(i = 0; i < len;i++) {
        select.append("<option value="+data.id[i]+">"+data.name[i]+"</option>");
    }
    // Разлочить селект
    select.removeAttr('disabled');
}

function addToBookmark(url, title) {
    url = (!url) ? location.href : url;
    title = (!title) ? document.title : title;

    //Gecko
    if ((typeof window.sidebar == "object")
        &&
        (typeof window.sidebar.addPanel == "function")) {
        window.sidebar.addPanel (title, url, "");
    }
    //IE4+
    else if (typeof window.external == "object") {
        window.external.AddFavorite(url, title);
    }
    //Opera7+
    else if (window.opera && document.createElement) {
        var a = document.createElement('A');
        if (!a) return false; //IF Opera 6
        a.setAttribute('rel','sidebar');
        a.setAttribute('href',url);
        a.setAttribute('title',title);
        a.click();
    } else {
        alert ("Ваш браузер не поддерживает автоматическое добавление сайта в закладки.\nНажмите на клавиатуре комбинацию кдавиш CTRL+D");
    }
}

$(function() {

    // Календарь
    if ($().dateinput) {
        $('input.b_datepicker').dateinput({
            lang: lng
            ,firstDay: 1
            ,format: 'yyyy-mm-dd'
            ,selectors: true,
            yearRange: [-80, 10]
        });
    }

    $('.b_toggle_fieldset').click(function() {
        $(this).parents('fieldset').find('.ui_fieldset_content').slideToggle();
    });

    /* Валидация форм */
    if ($().validate && $().metadata) {
        // Впарим нашу локализацию
        jQuery.extend(jQuery.validator.messages, {
                required: localization['validator']['required'][lng],
                remote: localization['validator']['remote'][lng],
                email: localization['validator']['email'][lng],
                url: localization['validator']['url'][lng],
                date: localization['validator']['url'][lng],
                dateISO: localization['validator']['dateISO'][lng],
                number: localization['validator']['number'][lng],
                digits: localization['validator']['digits'][lng],
                creditcard: localization['validator']['creditcard'][lng],
                equalTo: localization['validator']['equalTo'][lng],
                accept: localization['validator']['accept'][lng],
                maxlength: jQuery.validator.format(localization['validator']['maxlength'][lng]),
                minlength: jQuery.validator.format(localization['validator']['minlength'][lng]),
                rangelength: jQuery.validator.format(localization['validator']['rangelength'][lng]),
                range: jQuery.validator.format(localization['validator']['range'][lng]),
                max: jQuery.validator.format(localization['validator']['max'][lng]),
                min: jQuery.validator.format(localization['validator']['min'][lng])
        });

        $('form').each(function(){
            $(this).validate({
                meta: "validate",
                errorElement: "span",
                errorPlacement: function (error, element) {
                    // Ищем брата с классом example и в него пхаем ошибку
                    $('~ .example', element).html(error.text());
                },
                submitHandler: function(form) {
                    var self = form;
                    $('#prettyPopinShow').click();
                    setTimeout(function(){self.submit();}, 1500);
                }
            });
        });
    }

    $('#company_country').change(function() {
            var id = $(this).val();

            // Блокируем и затем очищаем связанные селекты
            $("#company_region").attr('disabled', 'disabled').find('option:not(:first)').remove();
            $("#company_city").attr('disabled', 'disabled').find('option:not(:first)').remove();

            // Получить массив регионов
            getArrayByJson('company_region', '?module=firms&action=getregions&id='+id);
            getValueByJson('company_phone_country', '?module=firms&action=getphonecountrycode&id='+id);

            // Показать скрытый селект
            $('.company_region_hidden').show('slow').removeClass('hidden');
    });

    $('#company_country_ru').change(function() {
        $("#company_region_ru").attr('disabled', 'disabled').find('option:not(:first)').remove();
        $("#company_city_ru").attr('disabled', 'disabled').find('option:not(:first)').remove();
        $("#company_subway_ru").attr('disabled', 'disabled').find('option:not(:first)').remove();
        getArrayByJson('company_region_ru', '?module=firms&action=getregions&id=' + $(this).val());
    });

    $('#company_region').change(function() {
        var id = $(this).val();

            // Блокируем и затем очищаем связанные селекты
            $("#company_city").attr('disabled', 'disabled').find('option:not(:first)').remove();

            // Получить массив регионов
            getArrayByJson('company_city', '?module=firms&action=getcities&id='+id);

            // Показать скрытый селект
            $('.company_city_hidden').show('slow').removeClass('hidden');
            $('.company_phone_number_hidden').show('slow').removeClass('hidden');
    });

    $('#company_region_ru').change(function() {
        $("#company_city_ru").attr('disabled', 'disabled').find('option:not(:first)').remove();
        $("#company_subway_ru").attr('disabled', 'disabled').find('option:not(:first)').remove();
        getArrayByJson('company_city_ru', '?module=firms&action=getcities&id=' + $(this).val());
    });

    $('#company_city_ru').change(function() {
        $("#company_subway_ru").attr('disabled', 'disabled').find('option:not(:first)').remove();
        getArrayByJson('company_subway_ru', '?module=firms&action=get_subway&id=' + $(this).val());
    });

        $('#company_city').change(function() {
            var wrap = $('#company-phone-wrap');
            var id = $(this).val();

            getValueByJson('company_phone_city', '?module=firms&action=getphonecitycode&id='+id);

        });


    swaps = [];
    $(".swap").each(function(i){
        swaps[i] = $(this).val();
        $(this).focus(function(){
            if ($(this).val() == swaps[i]) {
                $(this).val("");
            }
        }).blur(function(){
            if ($.trim($(this).val()) == "") {
                $(this).val(swaps[i]);
            }
        });
    });
    $('#calendar-content')
    .datePicker({inline:true, startDate: '01/01/1970'})
    .bind('dateSelected', function(event, date, $td, status) {
        day = date.getDate();
        month = date.getMonth() + 1;
        year = date.getFullYear();
        document.location.href = '?module=news&action=list&day='+day+'&month='+month+'&year='+year;
    });
    if ($('#banner').css('display') == 'block') {
		$('#ring').css('top', '0px');
		$('#canvas').css('background-position', '0px 0px');
	}
	$("#themes ul").collapsorz({
	  minimum: 15,
	  showText: "Показать все <span>&#x25BC;</span>",
	  hideText: "Свернуть <span>&#x25B2;</span>",
	  wrapLink: '<p class="more">'
	}); 
    
	$('#top_stories li a').featureList({output:'#output li', transition_interval: 8000});

    //$('#date').html(inforos.getCurrentDate());
	
	$('table.featurelist').each(function() {
		var table = $(this);
		var cells = table.find('td');
		cells.filter(":eq(0)").addClass('current');
		cells.mouseover(function(e) {				
			$(this).parent().parent().parent().parent().find('div.featurelist_arrow').css('top', $(this).position().top);
			cells.removeClass('current');
			$(this).addClass('current');
			e.stopPropagation();
		});
	});
	
    /*
     * Отметить все checkbox
     * И выделить строку в которой они находятся
     */
	$('input.checkall').click(function() {
        var self = $(this);
		$('.'+self.attr('rel'))
            .attr('checked', self.attr('checked'))            
            .parents('tr.row-item').toggleClass('clickedRow');
	});
	
	/*
    if ($().collapsibleCheckboxTree) {
		$('ul.FormCheckboxTree').collapsibleCheckboxTree({
			checkChildren: false
		});
	}
	*/

    if ($().autocolumnlist) {
        $('ul.autocolumnlist').autocolumnlist();
    }
	
	/*
     * Модальные окна
     */
    if ($().prettyPopin) {
        $("a[rel^='prettyPopin']").each(function(e) {

            var $this = $(this);
            var $width = $this.attr('data-width') || 900;
            var $height = $this.attr('data-height') || 840;
            var $modal = $this.attr('data-modal') || false;
            //alert($width);
            $this.prettyPopin({
                 width: $width
                ,height: $height
                ,opacity: 0.6
                ,modal: $modal
                ,followScroll: false
            });
        });


    }

    if ($().livequery) {
        // Колнирование полей
        $('.b_button_clone').livequery('click', function() {
            var template = $(this).parent().parent();
            var html = template.clone();
            $('.b_button_clone', html).val('-').removeClass('b_button_clone').addClass('b_button_delete');
            template.after(html);
        });
        // Удаление полей
        $('.b_button_delete').livequery('click', function() {
            $(this).parent().parent().remove();
        });
        // Подсказки к полям формы и ссылкам
        $('[data-title]').livequery(function() {
            $(this).tipTip({
                attribute: 'data-title'
                ,delay: 200
                ,fadeIn: 200
                ,fadeOut: 200
            });
        });
    }

    /**/
    if ($().autocomplete) {
        var ac = $('#company_rubrics').autocomplete('?module=firms&action=get_rubric_list', {
            minChars: 2,
            max: 500,
            mouseDownOnSelect: true
        });

        ac.result(function(event, data, formatted) {
            //console.log(data);
            //console.log(formatted);

            var container = $('#company_rubric_list>ul');
            if ($('#company_rubric_' + data[1]).length) {} else{
                container.prepend('<li><input type="checkbox" name="company_rubrics[]" value="' + data[1] + '" checked="checked" id="company_rubric_' + data[1] + '" class="b_checkbox" /><label for="company_rubric_' + data[1] + '">' + data[0] + '</label></li>');
            }
            //ac.val('');
        });
    }

    $('a.pseudo_link').click(function(e) {
        e.preventDefault();
        $('#' + $(this).attr('rel')).slideToggle().toggleClass('hidden');
    });

    $('#category_list a').click(function(e) {
        e.preventDefault();
        $.ajax({
            url: $(this).attr('href'),
            dataType: "json",
            success: function (data, status, request) {
                if (status == "success") {
                    var len = data.id.length;
                    //console.log(len);
                    if (len > 0) {
                        var container = $('#subcategory_list');
                        container.empty();
                        for (var i = 0; i < len; i++) {
                            container.append('<li><a href="#' + data.id[i] + '" data-title="Нажмите на ссылку для выбора подрубрики">' + data.name[i] + '</a></li>');
                        }
                    }
                }
            }
        });
    });

    $('#subcategory_list a').live('click', function(e) {
        e.preventDefault();
        var name = $(this).text();
        var id = this.hash.substring(1, this.hash.length);
        var container = $('#company_rubric_list>ul');
        if ($('#company_rubric_' + id).length) {} else{
            container.prepend('<li><input type="checkbox" name="company_rubrics[]" value="' + id + '" checked="checked" id="company_rubric_' + id + '" class="b_checkbox" /><label for="company_rubric_' + id + '">' + name + '</label></li>');
        }
    });

    $('#company_confirm').click(function() {
        var checked = $(this).attr('checked');
        var button = $('#company_confirm_button');
        if (checked) {
            button.removeClass('b_submit_disabled').removeAttr('disabled');
        } else {
            button.addClass('b_submit_disabled').attr('disabled', 'disabled');
        }
    });

    $('#set_shedule_daily').click(function(e) {
        e.preventDefault();
        $('#company_shedule_from').val('1');
        $('#company_shedule_to').val('7');
    });

    var form = $('#firm_registration_form');

    toggleLangFields(form, lng);

    $('dl.ui_tabs dt.ui_tab_header').click(function(e) {
            /*$(this)
                .siblings()
                .removeClass('selected')
                .end()
                .next('dd.ui_tab_wrap')
                .andSelf()
                .addClass('selected');*/
            $('dl.ui_tabs dt.ui_tab_header').removeClass('selected');
            $(this).addClass('selected');

            toggleLangFields(form, $(this).attr('rel'));

        });

    // Запомним в куках ихмененные поля
    var form = $('#firm_registration_form');

    $('input, textarea, select', form).livequery('change', function() {
        $.ajax({
            url: '?module=firms&action=upgrade&field=' + $(this).attr('name') + '&data=' + encodeURIComponent($(this).val()) + '&id=' + $('#id').val(),
            dataType: "text",
            success: function (data, status, request) {
                if (status == "success") {
                    //alert(data);
                }
            }
        });
    });

    if ($().cycle && $().mousewheel) {
        var topics_list = $('#topics_list');
        var els = $('li', topics_list);
        var dimension = els.size();
        var columns = 4;
        var min = 1;

        if (dimension) {
            var elCol = Math.ceil(dimension/columns);
            if (elCol < min) {
                elCol = min;
            }
            var start = 0;
            //var end = elCol;
            for (i=0; i<columns; i++) {
                els.slice(start, start+12).wrapAll('<div />');
                start = start+12;
                //end = end+elCol;
            }
        }

        topics_list.cycle({
            fx: 'scrollHorz'
            ,slideExpr: 'div'
            ,next: '#topic_next'
            ,prev:   '#topic_prev'
            ,timeout: 0
            ,speed: 2000
        });

        topics_list.mousewheel(function(event, delta) {
            topics_list.cycle((delta > 0) ? 'prev' : 'next');
            return false;
        });
    }
});

// Скрываем строки с ненужными нам языками, оставляя текущий
function toggleLangFields(form, current) {
    for (var i in langs) {
        if (langs[i] != current) {
            $('tr[id$=_' + langs[i] + ']', form).hide();
        } else {
            $('tr[id$=_' + langs[i] + ']', form).show();
        }
    }
}

/*
 * Создание маркера на карте Яндекса
 * @param point string - координаты маркера
 * @param name string - заголовок маркера
 * @param description string - описание маркера (подсказка)
 * @returns object - ссылка-объект на созданный маркер
 */
function createPlacemark(point, name, description) {
	var style = new YMaps.Style();
	style.balloonContentStyle = new YMaps.BalloonContentStyle(
		new YMaps.Template('<b style="color:#000; font-size: 20px; line-height: 20px;">$[name]</b><div style="color:#000; font-size: 14px;">$[description]</div>')
	);
	style.iconStyle = new YMaps.IconStyle();
	style.iconStyle.offset = new YMaps.Point(-15, -15);
	style.iconStyle.href = "/images/maps/workoffice.png";
	style.iconStyle.size = new YMaps.Point(32, 37);
	
	
	var placemark = new YMaps.Placemark(point, {
		style: style,
		hideIcon: false
	});
	placemark.name = name;
	placemark.description = description;
	placemark.setBalloonOptions({
		maxWidth: 350
	});
	return placemark;
}
// Комментарии от Контакта
VK.init({apiId: '2676043', onlyWidgets: true});

// happy end

