jQuery(document).ready( function() {
    if (!jQuery('a.link_add_comment').hasClass('hidden')) {
        jQuery('#form_add_comment').hide();
        jQuery('a.link_add_comment').show();
    }

    jQuery('a.link_add_comment').click( function() {
        jQuery('#form_add_comment').show();
        jQuery('a.link_add_comment').hide();
        //return false;
    });

    jQuery('#link_place_about').click( function() {
        popupWindowShow('form_place_about');
        return false;
    });
    
    jQuery('a.link_add_club').click( function() {
        popupWindowShow('form_add_club');
        return false;
    });
    
    jQuery('a.link_report_error').click( function() {
        popupWindowShow('form_report_error');
        return false;
    });
    
    jQuery('a.rules_link').click( function() {
        popupWindowShow('rules_items');
        return false;
    });

    jQuery('a.service_about').click( function() {
        jQuery('#service_about div.popup_window_title span').text(jQuery(this).prev('span').text());
        jQuery('#service_about div.popup_window_content').html(jQuery(this).attr('rel'));
        popupWindowShow('service_about');
        return false;
    });
    
    var img = new Array();
    jQuery('#photos td.photos_main a.hidden').each( function(i) {
        var item = jQuery(this);
        
        img[i] = new Image();
        img[i] = jQuery(img[i])
            .attr('src', item.find('img').attr('rel'))
            .load( function() {
                item.empty().append(this);
            });
    });
    
    jQuery('#photo_gallery').jcarousel({
        scroll: 1
    });
    
    jQuery('#photo_prev').click( function() {
        var item = jQuery('#photos td.photos_main a.this');
        
        if (item.prev('a').length) {
            item.addClass('hidden').removeClass('this').prev('a').removeClass('hidden').addClass('this');
            jQuery('#photo_items div.this').removeClass('this').prev('div').addClass('this');
        } else {
            item.addClass('hidden').removeClass('this').parent().find('a:last-child').removeClass('hidden').addClass('this');
            jQuery('#photo_items div.this').removeClass('this').parent().find('div:last-child').addClass('this');
        }
        return false;
    });
    
    jQuery('#photo_next').click( function() {
        var item = jQuery('#photos td.photos_main a.this');
        
        if (item.next('a').length) {
            item.addClass('hidden').removeClass('this').next('a').removeClass('hidden').addClass('this');
            jQuery('#photo_items div.this').removeClass('this').next('div').addClass('this');
        } else {
            item.addClass('hidden').removeClass('this').parent().find('a:eq(0)').removeClass('hidden').addClass('this');
            jQuery('#photo_items div.this').removeClass('this').parent().find('div:eq(0)').addClass('this');
        }
        return false;
    });
    
    jQuery('#photo_items div div a').click( function() {
        var id = jQuery(this).attr('rel');
        
        jQuery('#photos td.photos_main a').addClass('hidden').removeClass('this');
        jQuery('#photo_item_'+id).removeClass('hidden').addClass('this');
        jQuery('#photo_items div').removeClass('this');
        jQuery(this).parent().parent().addClass('this');
        return false;
    });
    
    /*
    jQuery('a.photo_item_link').click( function() {
        var id = jQuery(this).attr('rel');
        
        jQuery('#photos td.photos_main a').addClass('hidden');
        jQuery('#photo_item_'+id).removeClass('hidden');
        jQuery('#photo_gallery li').removeClass('this');
        jQuery(this).parent().addClass('this');
        return false;
    });
    */
    
    jQuery('#photos td.photos_main a').click( function() {
        if (jQuery(this).next('a').length) {
            jQuery(this).addClass('hidden').removeClass('this').next('a').removeClass('hidden').addClass('this');
            jQuery('#photo_items div.this').removeClass('this').next('div').addClass('this');
        } else {
            jQuery(this).addClass('hidden').removeClass('this').parent().find('a:eq(0)').removeClass('hidden').addClass('this');
            jQuery('#photo_items div.this').removeClass('this').parent().find('div:eq(0)').addClass('this');
        }
        return false;
    });
    
    //registerPhotoItemClick();

    //jQuery('a.next').click( function() {
    //    getNextPhotos();
    //    return false;
    //});

    //jQuery('a.prev').click( function() {
    //    getPrevPhotos();
    //    return false;
    //});

    var SendDataErrorsWithScreen = false;
    var DataErrors = new AjaxUpload('form_report_error_screen', {
        action: jQuery('#form_report_error').attr('rel'),
        name: 'screen',
        autoSubmit: false,
        responseType: 'json',
        onChange: function(file, ext) {
            jQuery('#form_report_error_screen').next('br').next('div.help').text(file);
            if (!(ext && /^(jpg|png|jpeg|gif)$/i.test(ext))){
                SendDataErrorsWithScreen = false;
                jQuery('#form_report_error div.popup_window_messages')
                    .removeClass('message_success message_loading')
                    .addClass('message_error')
                    .text('Не допустимый тип файла')
                    .fadeIn();
                return false;
            }
            jQuery('#form_report_error div.popup_window_messages').fadeOut();
            SendDataErrorsWithScreen = true;
        },
        onSubmit: function(file, ext) {
            if (!(ext && /^(jpg|png|jpeg|gif)$/i.test(ext))){
                jQuery('#form_report_error div.popup_window_messages')
                    .removeClass('message_success message_loading')
                    .addClass('message_error')
                    .text('Не допустимый тип файла').fadeIn();
                return false;
            }
        },
        onComplete: function(file, response) {
            reportErrorResult(response);
        }
    });

    jQuery('#form_report_error_send_btn').click( function() {
        jQuery('#form_report_error div.popup_window_messages')
            .removeClass('message_error message_success')
            .empty()
            .addClass('message_loading')
            .fadeIn();

        var errors = new Array();
        jQuery('#form_report_error input[name^=error]:checked').each( function(i) {
            errors[i] = jQuery(this).parent().text();
        });

        var data = {
            errors:  errors.join(', '),
            //place:   jQuery('#form_report_error input[name=place]').val(),
            url:     window.location.href,
            text:    jQuery('#form_report_error textarea[name=text]').val(),
            mail:    jQuery('#form_report_error input[name=mail]').val(),
            captcha: jQuery('#form_report_error input[name=captcha]').val()
        }
        DataErrors.setData(data);

        if (SendDataErrorsWithScreen) {
            DataErrors.submit();
            SendDataErrorsWithScreen = false;
        } else {
            jQuery.post(
                jQuery('#form_report_error').attr('rel'),
                data,
                function(response) {
                    reportErrorResult(response);
                    SendDataErrorsWithScreen = false;
                },
                'json'
            );
        }
        captchaRefresh();

        return false;
    });

    jQuery('#form_add_club_send_btn').click( function() {
        addClub();
        captchaRefresh();
        return false;
    });
    
    jQuery('div.rating_stars a')
        .mouseover( function() {
            jQuery('div.rating_stars a').css('backgroundColor', '#c00');
            jQuery(this)
                .nextAll('a')
                .css('backgroundColor', 'transparent')
                .end()
                .parent()
                .next('span.rating_stars_title')
                .text(jQuery(this).attr('title'));
        })
        .mouseout( function() {
            jQuery('div.rating_stars a')
                .css('backgroundColor', 'transparent')
                .parent()
                .next('span.rating_stars_title')
                .text(jQuery('div.rating_stars a').parent().next('span.rating_stars_title').attr('rel'));
        })
        .click( function() {
            setRating(jQuery(this));
            return false;
        });
    
    jQuery('a.link_user_add_place').click( function() {
        userAddPlace(jQuery(this));
        return false;
    });

});

function registerPhotoItemClick()
{
    jQuery('a.photo_item').click( function() {
        jQuery('#photos td.photos_main')
            .find('a')
            .hide()
            .after('<img class="loading" src="/assets/img/loading/loading20tr.gif" />')
            .end()
            .toggleClass('vmiddle');

            var href = jQuery(this).attr('href');
            var rel  = jQuery(this).attr('rel');

            var img = new Image();
            img = jQuery(img)
                .attr('src', rel)
                .load( function() {
                    jQuery('#photos td.photos_main')
                        .find('a')
                        .empty()
                        .append(this)
                        .attr('href', href)
                        .show()
                        .end()
                        .find('img.loading')
                        .remove()
                        .end()
                        .toggleClass('vmiddle');
                })
                .error( function() {
                    alert('Error load image');
                });
        //jQuery('#photos td.photos_name').text(jQuery(this).attr('title'));

        return false;
    });
}

function setRating(item)
{
    var rate    = item.attr('rel');
    var placeId = item.parent().attr('rel');
    
    jQuery.get(
        item.parent().parent().attr('rel'),
        {
            id: placeId,
            rate: rate
        },
        function(response) {
            switch (response) {
                case -1:
                    alert('Ошибка при добавлении оценки');
                    break;
                case 0:
                    alert('Вы уже голосовали');
                    break;
                default:
                    item
                        .parent()
                        .parent()
                        .find('div.rating_item')
                        .find('span.rating_item_progress')
                        .css('width', response.width+'px')
                        .end()
                        .end()
                        .find('span.rating_counts')
                        .find('span')
                        .text(response.counts)
                        .end()
                        .end()
                        .find('span.rating_stars_title')
                        .remove()
                        .end()
                        .find('div.rating_stars')
                        .remove();
                    break;
            }
        },
        'json'
    );
}

function userAddPlace(item)
{
    jQuery.get(
        item.attr('href'),
        {},
        function(response) {
            switch (response) {
                case -2:
                    alert('Для отметки надо авторизоваться');
                    break;
                case -1:
                    alert('Ошибка при отметке в месте');
                    break;
                case 0:
                    alert('Вы уже отмечены в этом месте');
                    break;
                default:
                    //item.prev('span').removeClass('hidden').find('a').text(response+' человек(а)');
                    item.parent().prev('div').find('span').removeClass('hidden').find('a').text(response+' человек(а)');
                    item.remove();
                    break;
            }
        },
        'json'
    );
}

function reportErrorResult(response)
{
    switch (response) {
        case -5:
            jQuery('#form_report_error div.popup_window_messages')
                .removeClass('message_success message_loading')
                .addClass('message_error')
                .text('Не верно заполнено поле "Код"')
                .fadeIn();
            break;
        case -4:
            jQuery('#form_report_error div.popup_window_messages')
                .removeClass('message_success message_loading')
                .addClass('message_error')
                .text('Не заполнено поле "Код"')
                .fadeIn();
            break;
        case -3:
            jQuery('#form_report_error div.popup_window_messages')
                .removeClass('message_success message_loading')
                .addClass('message_error')
                .text('E-mail в неверном формате')
                .fadeIn();
            break;
        case -2:
            jQuery('#form_report_error div.popup_window_messages')
                .removeClass('message_success message_loading')
                .addClass('message_error')
                .text('Не заполнено поле "Комментарий"')
                .fadeIn();
            break;
        case -1:
            jQuery('#form_report_error div.popup_window_messages')
                .removeClass('message_success message_loading')
                .addClass('message_error')
                .text('Должен быть выбран минимум один тип ошибки')
                .fadeIn();
            break;
        case 0:
            jQuery('#form_report_error div.popup_window_messages')
                .removeClass('message_success message_loading')
                .addClass('message_error')
                .text('Ошибка при отправке сообщения')
                .fadeIn();
            break;
        case 1:
            jQuery('#form_report_error div.popup_window_messages')
                .removeClass('message_error message_loading')
                .addClass('message_success')
                .text('Ваше сообщение отправленно')
                .fadeIn();
            break;
    }
}

function addClub()
{
    jQuery('#form_add_club div.popup_window_messages')
        .removeClass('message_error message_success')
        .empty()
        .addClass('message_loading')
        .fadeIn();

    var place       = jQuery('#form_add_club select[name=place] option:selected').val();
    var name        = jQuery('#form_add_club input[name=name]').val();
    var adress      = jQuery('#form_add_club input[name=adress]').val();
    var phone       = jQuery('#form_add_club input[name=phone]').val();
    var url         = jQuery('#form_add_club input[name=url]').val();
    var work_time   = jQuery('#form_add_club input[name=work_time]').val();
    var login       = jQuery('#form_add_club input[name=login]').val();
    var login_phone = jQuery('#form_add_club input[name=login_phone]').val();
    var login_mail  = jQuery('#form_add_club input[name=login_mail]').val();
    var captcha     = jQuery('#form_add_club input[name=captcha]').val();

    jQuery.post(
        jQuery('#form_add_club').attr('rel'),
        {
            place:       place,
            name:        name,
            adress :     adress,
            phone:       phone,
            url:         url,
            work_time:   work_time,
            login:       login,
            login_phone: login_phone,
            login_mail:  login_mail,
            captcha:     captcha
        },
        function(response) {
            switch (response) {
                case -9:
                    jQuery('#form_add_club div.popup_window_messages')
                        .removeClass('message_success message_loading')
                        .addClass('message_error')
                        .text('Не верно заполнено поле "Код"')
                        .fadeIn();
                    break;
                case -8:
                    jQuery('#form_add_club div.popup_window_messages')
                        .removeClass('message_success message_loading')
                        .addClass('message_error')
                        .text('Не заполнено поле "Код"')
                        .fadeIn();
                    break;
                case -7:
                    jQuery('#form_add_club div.popup_window_messages')
                        .removeClass('message_success message_loading')
                        .addClass('message_error')
                        .text('Не заполнено поле "E-mail"')
                        .fadeIn();
                    break;
                case -6:
                    jQuery('#form_add_club div.popup_window_messages')
                        .removeClass('message_success message_loading')
                        .addClass('message_error')
                        .text('Не заполнено поле "Телефон"')
                        .fadeIn();
                    break;
                case -5:
                    jQuery('#form_add_club div.popup_window_messages')
                        .removeClass('message_success message_loading')
                        .addClass('message_error')
                        .text('Не заполнено поле "Контактное лицо"')
                        .fadeIn();
                    break;
                case -4:
                    jQuery('#form_add_club div.popup_window_messages')
                        .removeClass('message_success message_loading')
                        .addClass('message_error')
                        .text('Не заполнено поле "Телефоны"')
                        .fadeIn();
                    break;
                case -3:
                    jQuery('#form_add_club div.popup_window_messages')
                        .removeClass('message_success message_loading')
                        .addClass('message_error')
                        .text('Не заполнено поле "Адрес"')
                        .fadeIn();
                    break;
                case -2:
                    jQuery('#form_add_club div.popup_window_messages')
                        .removeClass('message_success message_loading')
                        .addClass('message_error')
                        .text('Не заполнено поле "Название"')
                        .fadeIn();
                    break;
                case -1:
                    jQuery('#form_add_club div.popup_window_messages')
                        .removeClass('message_success message_loading')
                        .addClass('message_error')
                        .text('Не заполнено поле "Место"')
                        .fadeIn();
                    break;
                case 0:
                    jQuery('#form_add_club div.popup_window_messages')
                        .removeClass('message_success message_loading')
                        .addClass('message_error')
                        .text('Ошибка при отправке сообщения')
                        .fadeIn();
                    break;
                case 1:
                    jQuery('#form_add_club div.popup_window_messages')
                        .removeClass('message_error message_loading')
                        .addClass('message_success')
                        .text('Ваше сообщение отправленно')
                        .fadeIn();
                    break;
            }
        },
        'json'
    );
}

function getNextPhotos()
{
    var page = jQuery('#gallery_page').val();
    page = page < 1 ? 1 : ++page;

    jQuery.get(
        jQuery('td.photos_pages').attr('rel'),
        {
            page: page
        },
        function(response) {
            if (response == -1) {
                alert('Ошибка');
            } else {
                jQuery('#gallery_page').val(response.page);

                jQuery('td.photos_items').empty();
                var n   = 1;
                var img = new Array();
                jQuery.each(response.gallery, function(i, item) {
                    if (++n == 2) {
                        jQuery('td.photos_items').append('<div class="clear"></div>');
                        n = 0;
                    }

                    img[i] = new Image();
                    img[i] = jQuery(img[i])
                        .attr('src', item.url1)
                        .load( function() {
                            jQuery('div.photo_item_container[rel='+i+'] a')
                            .empty()
                            .append(this);
                        });

                    var src = '';
                    src += '<div class="photo_item_outer">';
                    src += '    <div class="photo_item_container" rel="'+i+'">';
                    src += '        <a class="photo_item" href="'+item.url3+'" target="_blank" title="'+item.comment+'" rel="'+item.url2+'">';
                    src += '            <img src="/assets/img/loading/loading19tr.gif" alt="" />';
                    src += '        </a>';
                    src += '    </div>';
                    src += '</div>';
                    jQuery('td.photos_items').append(src);
                });

                registerPhotoItemClick();
            }
        },
        'json'
    );
}

function getPrevPhotos()
{
    var page = jQuery('#gallery_page').val();
    page = page < 1 ? 1 : --page;

    jQuery.get(
        jQuery('td.photos_pages').attr('rel'),
        {
            page: page
        },
        function(response) {
            if (response == -1) {
                alert('Ошибка');
            } else {
                jQuery('#gallery_page').val(response.page);

                jQuery('td.photos_items').empty();
                var n   = 1;
                var img = new Array();
                jQuery.each(response.gallery, function(i, item) {
                    if (++n == 2) {
                        jQuery('td.photos_items').append('<div class="clear"></div>');
                        n = 0;
                    }

                    img[i] = new Image();
                    img[i] = jQuery(img[i])
                        .attr('src', item.url1)
                        .load( function() {
                            jQuery('div.photo_item_container[rel='+i+'] a')
                            .empty()
                            .append(this);
                        });

                    var src = '';
                    src += '<div class="photo_item_outer">';
                    src += '    <div class="photo_item_container" rel="'+i+'">';
                    src += '        <a class="photo_item" href="'+item.url3+'" target="_blank" title="'+item.comment+'" rel="'+item.url2+'">';
                    src += '            <img src="/assets/img/loading/loading19tr.gif" alt="" />';
                    src += '        </a>';
                    src += '    </div>';
                    src += '</div>';
                    jQuery('td.photos_items').append(src);
                });

                registerPhotoItemClick();
            }
        },
        'json'
    );
}

/******************************************************************************/
/*                                GOOGLE MAPS                                 */
/******************************************************************************/

/*
google.load("maps", "2.x");     // Call this function when the page has been loaded
function initialize() {
    var map = new GMap2(document.getElementById("GMap"));
    var geocoder = new GClientGeocoder();
    //geocoder.setBaseCountryCode('RU');
            
    var mapTypeControl = new GMapTypeControl();
    var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,10));
    var bottomRight = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,10));
    //gMap.addControl(mapTypeControl, topRight);
    //gMap.addControl(new GLargeMapControl());
    //GEvent.addListener(map, "dblclick", function() { map.removeControl(mapTypeControl);  map.addControl(new GMapTypeControl(), bottomRight);});
    //GEvent.addListener(map, "click", function() { window.open( '/places/popup_gmap/433/', '', 'scrollbars=yes, toolbar=no, status=no, width=820, height=620' ); });
    map.addControl(new GLargeMapControl());
    
    
    var city        = document.getElementById('city').value;
    var address     = document.getElementById('address').value;
    var address_txt = document.getElementById('address').value;
    var club_name   = document.getElementById('name').value;
    var club_phone  = document.getElementById('phone').value;
    
    var gmap_x = document.getElementById('gmap_x').value;
    var gmap_y = document.getElementById('gmap_y').value;
    
    if( gmap_x && gmap_y ) {
        var address = new GLatLng(gmap_x, gmap_y);
    }
    
    geocoder.getLatLng(
        address,
        function(point) {
            if (!point) {
                alert(address + " not found");
            } else {
                map.setCenter(point, 16);
                var icon_resort = new GIcon(G_DEFAULT_ICON);
                icon_resort.image = "/images/icon_resort.png";
                markerOptions = { icon:icon_resort };
                var marker = new GMarker(point, markerOptions);
                map.addOverlay(marker);
                marker.openInfoWindowHtml('<b>'+club_name+'</b>'+"<br />"+address_txt+"<br />"+'тел.: '+club_phone);
            }
        }
    );
}
google.setOnLoadCallback(initialize);
*/

