// promo
function checkPromo()
{
    if (!$('#promo_name').val())
    {
        warningPromo('promo_name', 'Не заполнено поле "Ваше имя"!');
        return false;
    }
    if (!$('#promo_contacts').val())
    {
        warningPromo('promo_contacts', 'Не заполнено поле "Ваши контакты"!');
        return false;
    }
    if (!$('#promo_captcha').val())
    {
        warningPromo('promo_captcha', 'Не заполнено поле "Введите символы"!');
        return false;
    }
    $('#promo_form').submit();
}
function nextPromo()
{
    if ($('input[name=answer]').is(':checked'))
    {
        $('#promo_1').css('display','none');
        if ($('input[name=answer].promo_r:checked').val()) $('#promo_2').css('display','block');
        else $('#promo_3').css('display','block')
    }
}
function prevPromo()
{
    $('#promo_1').css('display','block');
    $('#promo_2,#promo_3').css('display','none');
}
function warningPromo(id, error)
{
    if (id)
    {
        $('*.promo-form').css('border', '1px solid #CCC');
        $('#promo_error').html(error);
        $('#promo_error').css('color', 'red');
        $('#' + id).focus();
        $('#' + id).select();
        $('#' + id).css('border', '1px solid red');
    }
}
// gallery
function checkImage()
{
    if (!$('#image').val())
    {
        gallery_warning('image','Не заполнено поле "Фотография"!');
        return false;
    }
    else
    {
        if (!$('#image').val().match('.jpg|.jpeg|.jpe|.gif|.png'))
        {
            gallery_warning('image','Фотография может быть в одном из перечисленных форматов: <strong>JPEG, GIF, PNG</strong>!');
            return false;
        }
    }
    if (!$('#author').val())
    {
        gallery_warning('author','Не заполнено поле "Автор"!');
        return false;
    }
    if (!$('#comment_captcha').val())
    {
        gallery_warning('comment_captcha','Не заполнено поле кода картинки!');
        return false;
    }
    return true;
}

function gallery_warning(id, error)
{
    $('*.gallery-form').css('border', '1px solid #CCC');
    $('#gallery_error').html(error);
    $('#gallery_error').css('color', 'red');
    $('#' + id).focus();
    $('#' + id).select();
    $('#' + id).css('border', '1px solid red');
}
// vote
function sendVoice(vid, answer)
{
    $.ajax({
        type: "POST",
        url: "/ajax/sendvoice/",
        data: "vid=" + vid + "&answer=" + answer,
        dataType: "json",
        success: function(data)
                 {
                    var body = '';
                    var i = 0;
                    for (answer in data['voices'])
                    {
                        body += '<div><span class="answer">'+answer+' ('+data['voices'][answer]['value']+')</span><br /><div id="gauge_block"><div class="voices"><div class="gauge'+i+'" style="width:'+data['voices'][answer]['position']+'%;"></div></div></div></div>';
                        i += 1;
                    }
                    body += '<div class="clear"></div><div class="total">Голосов: '+data['total']+'</div>';
                    $('#vote_content').html(body);
                 }
    });
}

// rate
function sendRate(pid, rate, section)
{
    $.ajax({
        type: "POST",
        url: "/ajax/sendrate/",
        data: "pid=" + pid + "&rate=" + rate + "&section=" + section,
        dataType: "json",
        success: function(data)
                 {
                    var body = '<div class="rating-title" style="margin-top:0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Рейтинг</div><div class="rating-stars"><div class="base"></div><div class="level" style="width:'+data.percent+'%"></div></div><div class="rating-caption">'+data.overage+' / 5.0<br />('+data.voices+' '+data.voices_caption+')</div>';
                    $('div.voting-block').html(body);
                 }
    });
}

// slider
$(document).ready(function() {
    if ($('#portal_slider')[0])
    $('#portal_slider').jcarousel({
        visible: 1,
        scroll: 1,
        auto: portal_slider_itemList.length > 1 ? 5 : 0,
        wrap: 'circular',
        animation: 500,
        itemVisibleInCallback: {onBeforeAnimation: portal_slider_itemVisibleInCallback},
        itemVisibleOutCallback: {onAfterAnimation: portal_slider_itemVisibleOutCallback}
    });
});

function portal_slider_itemVisibleInCallback(carousel, item, i, state, evt)
{
    var idx = carousel.index(i, portal_slider_itemList.length);
    carousel.add(i, portal_slider_getItemHTML(portal_slider_itemList[idx - 1]));
};

function portal_slider_itemVisibleOutCallback(carousel, item, i, state, evt)
{
    carousel.remove(i);
};

function portal_slider_getItemHTML(item)
{
    return '<img src="/public/images/new/' + item.icon + '" width="48" height="48" alt="' + item.title + '" title="' + item.title + '" align="left" />' + (item.link ? '<a href="' + item.link + '">' + item.title + '</a>' : item.title) + '<p>' + item.description + '</p>';
};
// slider
function setCategory(id)
{
    window.location.href = '/firms/category/' + id + '/';
}

function flashnew()
{
    $('a.new').css('color', $('a.new').css('color')=='#7f7f7f' ? '#4f4f4f' : '#7f7f7f');
}
self.setInterval("flashnew()", 1000);

function loadfirmmap (coordparams, firm_marker)
{
    if (GBrowserIsCompatible())
    {

        coordparams = coordparams ? coordparams.substr(1, coordparams.length-2) : '';
        coordArray = coordparams.split('][');

        if (coordArray.length > 0)
        {
            fmap = new GMap2(document.getElementById('firmlocation'));
            fmap.addControl(new GSmallMapControl());

            tinyIcon = new GIcon();
            tinyIcon.image = '/public/images/firms/marker_' + (firm_marker != '' ? firm_marker : 'default.png');
            tinyIcon.shadow = '/public/images/firms/marker_shadow.png';
            tinyIcon.iconSize = new GSize(32, 32);
            tinyIcon.shadowSize = new GSize(62, 31);
            tinyIcon.iconAnchor = new GPoint(16, 32);
            tinyIcon.infoWindowAnchor = new GPoint(16, 1);

            coordItem = coordArray[0].split('|');
            eval('fmap.setCenter(new GLatLng('+coordItem[0]+'), 14);');
            for (i in coordArray)
            {
                coordItem = coordArray[i].split('|');
                eval('var marker = new GMarker(new GLatLng('+coordItem[0]+'),{icon:tinyIcon});');

                if (coordItem[1] || coordItem[2])
                {
                    if (coordItem[1]) $('#firmlocation_places').append('<a href="" onclick="mapPanTo(\''+coordItem[0]+'\');return false;">'+coordItem[1]+'</a>&nbsp&nbsp');
                    var html = '<p><table id="map_table" border="0">'+(coordItem[1] ? '<tr><td><b>Адрес:</b></td><td nowrap="nowrap">'+coordItem[1]+'</td></tr>' : '')+(coordItem[2] ? '<tr><td nowrap="nowrap"><b>Телефон:</b></td><td>'+coordItem[2]+'</td></tr>' : '')+'</table></p>';
                    marker.bindInfoWindow(html);
                }
                fmap.addOverlay(marker);
            }
        }
    }
    else
    {
        $('#firmlocation').hide();
    }
}

function mapPanTo(coords)
{
    if (coords && fmap && fmap.isLoaded())
    {
        eval('fmap.panTo(new GLatLng('+coords+'));');
    }
}

function loadmap ()
{
    if (GBrowserIsCompatible())
    {
        var map = new GMap2(document.getElementById('ulmap'));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(54.320548,48.441293), 12);
    }
    else
    {
        $('#ulmap').html('К сожалению Ваш браузер не поддерживает API Google Maps от © Google.');
    }
}

function loadtestmap ()
{
    if (GBrowserIsCompatible())
    {
        var map = new GMap2(document.getElementById('ulmap'));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(54.320548,48.441293), 12);
        map.disableDoubleClickZoom();

//         var str = '';
//         strArr = str.substr(1, str.length-2).split(')(');
//         var points = [];
//         for (i in strArr) eval('points.push(new GLatLng('+strArr[i]+'));');
//         map.addOverlay(new GPolyline(points, "#0000ff", 2, 0.7));

        GEvent.addListener(map,'click',
            function (marker, point)
            {
                if (marker)
                {
                    alert($('#mapcoords').val());
                }
                else
                {
                    var marker = new GMarker(point, {draggable:true});
                    $('#mapcoords').val($('#mapcoords').val() + '('+point.lat()+','+point.lng()+')');
                    map.addOverlay(marker);
                    GEvent.addListener(marker, 'dragstart',
                        function ()
                        {
                            var coords = '('+marker.getPoint().lat()+','+marker.getPoint().lng();
                            var start = $('#mapcoords').val().indexOf(coords);
                            var end = $('#mapcoords').val().indexOf(')', start);
                            if ($('#mapcoords').val().length > coords.length)
                            {
                                $('#mapcoords').val($('#mapcoords').val().substr(0, start)+$('#mapcoords').val().substr(end+1));
                            }
                            else $('#mapcoords').val('');
                            alert($('#mapcoords').val());

                            map.removeOverlay(marker);
                        }
                    );
                }
            }
        );
    }
    else
    {
        $('#ulmap').html('К сожалению Ваш браузер не поддерживает API Google Maps от © Google.');
    }
}

// == comments

function insertSmile(sm)
{
    var pos = getCaretPos($('textarea[name=comment]')[0]);
    var comment = $('textarea[name=comment]').val().substr(0, pos) + sm + $('textarea[name=comment]').val().substr(pos);
    $('textarea[name=comment]').val(comment);
    $('#comment_smiles').hide();
}

function getCaretPos(obj)
{
    obj.focus();
    if(obj.selectionStart) return obj.selectionStart;//Gecko
    else if (document.selection)//IE
    {
        var sel = document.selection.createRange();
        if (!isNaN(sel))
        {
            var clone = sel.duplicate();
            sel.collapse(true);
            clone.moveToElementText(obj);
            clone.setEndPoint('EndToEnd', sel);
            return clone.text.length;
        }
    }
    return 0;
}

function checkComment()
{
    // == Portal Send Form
    if ($('#name')[0] && !$('#name').val())
    {
        show_warning('name','Не заполнено поле "Имя"!');
        return false;
    }
    if ($('#email')[0])
    {
        if (!$('#email').val())
        {
            show_warning('email','Не заполнено поле "E-mail"!');
            return false;
        }
        else
        {
            if (!$('#email').val().match(/^([a-z0-9][a-z0-9\-_+.]*)+@([a-z0-9][a-z0-9\-]*\.)+(com|net|org|info|biz|name|gov|[a-z]{2})$/))
            {
                show_warning('email','Поле "E-mail" заполнено неверно!');
                return false;
            }
        }
    }
    if ($('#title')[0] && !$('#title').val())
    {
        show_warning('title','Не заполнено поле "Тема"!');
        return false;
    }
    if ($('#message')[0] && !$('#message').val())
    {
        show_warning('message','Не заполнено поле "Сообщение"!');
        return false;
    }
    // == Add News Form
    if ($('#fio')[0] && !$('#fio').val())
    {
        show_warning('fio','Не заполнено поле "ФИО"!');
        return false;
    }
    if ($('#news')[0] && !$('#news').val())
    {
        show_warning('news','Не заполнено поле "Новость"!');
        return false;
    }
    if ($('#post')[0] && !$('#post').val())
    {
        show_warning('post','Не заполнено поле "Фирма/Должность"!');
        return false;
    }
    // == Comment / Overview Forms
    if ($('#overview')[0] && !$('#overview').val())
    {
        show_warning('overview','Не заполнено поле "Отзыв"!');
        return false;
    }
    if ($('#comment')[0] && !$('#comment').val())
    {
        show_warning('comment','Не заполнено поле "Комментарий"!');
        return false;
    }
    if ($('#who')[0] && !$('#who').val())
    {
        show_warning('who','Не заполнено поле "Имя"!');
        return false;
    }
    if (!$('#comment_captcha').val())
    {
        show_warning('comment_captcha','Не заполнено поле кода картинки!');
        return false;
    }
    return true;
}

function show_warning(id, error)
{
    $('*.comment-form').css('border', '1px solid #CCC');
    $('#comment_error').text(error);
    $('#comment_error').css('color', 'red');
    $('#' + id).focus();
    $('#' + id).select();
    $('#' + id).css('border', '1px solid red');
}

function HideDiv(param)
{
    $('#zakladka0,#zakladka1,#distance_fir_add_comment').hide();
    $('#zakladka' + param).show();
    if (param == 1) $('#distance_fir_add_comment').show();
    $('#zak_0').css('background-image', 'url(/public/images/h4_comment_1.gif)');
    $('#zak_1').css('background-image', 'url(/public/images/h4_add_comment_0.gif)');
    $('#zak_' + param).css('background-image', 'url(/public/images/h4_' + (param == 1 ? 'add_' : '') + 'comment_' + param + '.gif)');
}

// == poster

function setFilter(value)
{
    $('#poster_filter').val(value);
    $('#filter_form').submit();
}

function goToDate(poster_type, poster_place)
{
    $('#poster_form').attr('action', '/poster/' + poster_type + '/' + $('select[name=date_filter]').val() + '/' + (poster_place!=0 ? poster_place + '/' : ''));
    return true;
}

function gotoPoster()
{
    $('#poster_form').attr('action','/poster/' + $('select.type_poster').val() + '/' + $('select.date_poster').val() + '/');
    return true;
}

function showCalendar()
{
    $('#poster_calendar').toggle();
}

function getCalendar(param)
{
    $.ajax({
        type: "GET",
        url: "/poster/calendar/",
        data: "param=" + param,
        dataType: "json",
        success: function(data)
                 {
                     $('#poster_calendar_caption').html("<a href=\"/poster/"+data.prev+"/\" onclick=\"getCalendar('"+data.prev+"');return false;\">&lt;&lt;&nbsp;</a><span>"+data.title+"</span><a href=\"/poster/"+data.next+"/\" onclick=\"getCalendar('"+data.next+"');return false;\">&nbsp;&gt;&gt;</a>");
                     var body = '';
                     for (date in data.calendar)
                     {
                        body += '<a' + (data.calendar[date]['inner'] && !data.calendar[date]['empty'] ? ' href="/poster/'+data.type+'/'+date+'/'+(data.place!=0 ? data.place + '/' : '')+'"' : '') + ' class="' + (data.calendar[date]['inner'] ? 'i' : 'o') + (data.calendar[date]['inner'] && data.calendar[date]['empty'] ? ' e' : '') + (data.calendar[date]['today'] ? ' today' : '') + (data.calendar[date]['inner'] && data.calendar[date]['weekend'] ? ' weekend' : '') + (data.calendar[date]['inner'] && data.calendar[date]['cur'] ? ' cur' : '') + '">' + data.calendar[date]['day'] + '</a>';
                     }
                     $('#poster_calendar_body').html(body);
                 }
    });
}