function search_query(query){
    goToUrl("search/" + query);
    return false;
}


search = {
    init: function(data){
        var t = this;
        t.data = data;
        t.pages.p = this;
        return this;
    },
    pages: {
        main: function(){
            var p = this.p; //parent object
            var data = p.data;
            isFound = 0;
            /*h += '<div style="font-size:12pt; color: #333; margin-bottom:20px;" >';
             if (data.synonym) {
             h += 'Может быть вы имели ввиду <a style="font-size:12pt; color: #626262; top:0px;" href="/#search/' + data.synonym + '">' + data.synonym + '</a>?<br/>';
             }
             if((data.tracks.length + data.users.length + data.performers.length)< 1 ){
             h+='Ничего не нашли? Робот получил ваш запрос и уже завтра информация по нему будет добавлена!';
             }
             h += "</div>";
             h += '<div class="resultMessage">';
             h += "По запросу найдено: <a href='/#search/" + data.query + "/performers'>исполнителей</a> - ";
             if (data.performers.length > 0)
             h += data.performers[data.performers.length - 1];
             else
             h += '0';
             h += ", <a href='/#search/" + data.query + "/tracks'>треков</a> - ";
             if (data.tracks.length > 0)
             h += data.tracks[data.tracks.length - 1];
             else
             h += '0';
             h += ", <a href='/#search/" + data.query + "/albums'>альбомов</a> - ";
             if (data.albums.length > 0)
             h += data.albums[data.albums.length - 1];
             else
             h += '0';
             h += ", <a href='/#search/" + data.query + "/users'>пользователей</a> - ";
             if (data.users.length > 0) {
             h += data.users[data.users.length - 1];
             }
             else {
             h += '0';
             }
             h += '</div>';
             */
            var h = search.menu();
            h += "<div class='search-result'>";
            
            
            if (data.tracks.length > 0) {
                h += "<div class='track-block'>";
                h += "<span class='search-title'>Треки <span class='number-of-found'><sup>(<a href='/#search/" + data.query + "/tracks' style='z-index:1000;'>" + data.tracks[data.tracks.length - 1] + "</a>)</sup></span>";
                h += "<span class='watchAll'><a href='/#search/" + data.query + "/tracks'>Посмотреть все найденные треки</a></span></span><br clear='all'/>";
                h += '<div id="longTrack" class="trackBlock" style="padding-top:2px;">';
                for (key = 0; key < data.tracks.length - 1; key++) {
                    h += generateTrackLine({
                        element: 'div',
                        addClass: '',
                        id: '',
                        trackId: data.tracks[key].id,
                        performerId: data.tracks[key].performer_id,
                        trackLength: data.tracks[key].length,
                        performer: data.tracks[key].performer,
                        title: data.tracks[key].name,
                        ownerNick: 1,
                        color: 'red',
                        tooltipLen: 30
                    });
                }
                h += '</div>';
                h += "</div>";
                h += "<br clear='all' />";
            }
            
            
            if (data.performers.length > 0) {
                h += "<div class='performer-block'>";
                h += "<span class='search-title'>Исполнители <span class='number-of-found'><sup>(<a href='/#search/" + data.query + "/performers' style='z-index:1000;'>" + data.performers[data.performers.length - 1] + "</a>)</sup></span>";
                h += "<span class='watchAll' style='top:6px;'><a href='/#search/" + data.query + "/performers'>Посмотреть всех найденных исполнителей</a></span></span><br clear='all'/>";
                for (key = 0; key < data.performers.length - 1; key++) {
                    if ((key + 1) % 3 == 0) 
                        h += '<div class="performerLink last-child">';
                    else 
                        h += '<div class="performerLink">';
                    h += "<a class='photo' href='#performers/" + data.performers[key].id + "'><img src='" + data.performers[key].cover_path + "'/></a>";
                    h += "<span class='performerName'>";
                    h += "<a href='#performers/" + data.performers[key].id + "'>" + data.performers[key].name + "</a><br/>";
                    h += "</span>";
                    h += "<div class='content'>";
                    h += "Треков: " + data.performers[key].tracks_num;
                    h += "<a class='performerTracksToPlayer' id='id_" + data.performers[key].id + "' href='javascript:;'>Добавить в плейлист</a>";
                    h += "</div>";
                    h += '</div>'
                }
                h += "</div>";
                h += "<br clear='all' />";
            }
            
            
            if (data.albums.length > 0) {
                h += "<div class='albums-block'>";
                h += "<span class='search-title'>Альбомы <span class='number-of-found'><sup>(<a href='/#search/" + data.query + "/albums' style='z-index:1000;'>" + data.albums[data.albums.length - 1] + "</a>)</sup></span>";
                h += "<span class='watchAll' style='top:10px;'><a href='/#search/" + data.query + "/albums'>Посмотреть все найденные альбомы</a></span></span><br clear='all'/>";
                for (key = 0; key < data.albums.length - 1; key++) {
                    if ((key + 1) % 3 == 0) 
                        h += '<div class="album last-child">';
                    else 
                        h += '<div class="album">';
                    h += '<table valign="center" style="font-size: 8pt;">';
                    h += '<tr><td style="font-size: 8pt;">';
                    h += '<a href="/#albums/' + data.albums[key].id + '" class="albumPicture">';
                    h += '<img src="' + data.albums[key].cover + '">';
                    h += '<div class="albumCover">';
                    h += '</div>';
                    h += '</a></td><td style="font-size: 8pt;"><p>';
                    h += '<strong>';
                    h += '<a href="/#albums/' + data.albums[key].id + '" style="text-decoration: none;font-size:8pt;top:0;">';
                    h += data.albums[key].name + '</a></strong><br/>';
                    h += '<span class="performer-bg" style="padding-left: 1px;font-size:8pt;">';
                    h += data.albums[key].performer + '</span></p></td></tr></tbody></table></div>';
                }
                h += "</div>";
                h += "<br clear='all' />";
            }
            
            
            if (data.users && data.users.length > 0) {
                h += "<div class='user-block'>";
                h += "<span class='search-title'>Пользователи <span class='number-of-found'><sup>(<a href='/#search/" + data.query + "/users' style='z-index:1000;'>" + data.users[data.users.length - 1] + "</a>)</sup></span>";
                h += "<span class='watchAll' style='top:6px;'><a href='/#search/" + data.query + "/users'>Посмотреть всех найденных пользователей</a></span></span><br clear='all'/>";
                for (key = 0; key < data.users.length - 1; key++) {
                    h += '<div class="userLink">';
                    h += '<div class="karmaField"></div>';
                    h += "<a class='avatar' href='#users/" + data.users[key].nick + "'><img src='" + data.users[key].avatar.replace(".jpg", "_55x55.jpg") + "'/></a>";
                    h += "<span class='infoText'>";
                    h += "<a href='#users/" + data.users[key].nick + "'>" + data.users[key].nick + "</a>";
                    if (data.users[key].name != '') {
                        h += ', ' + data.users[key].name + " " + data.users[key].surname + "";
                    }
                    else {
                        h += ', пользователь пожелал остаться анонимом';
                    }
                    if (data.users[key].age > 0) {
                        h += ', ' + data.users[key].age;
                        var yearform;
                        if (data.users[key].age % 10 == 0 || (data.users[key].age % 10 > 4 && data.users[key].age % 10 <= 9)) 
                            yearform = ' лет';
                        else 
                            if (data.users[key].age % 10 == 1) 
                                yearform = ' год';
                            else 
                                if (data.users[key].age % 10 > 1 && data.users[key].age % 10 < 5) 
                                    yearform = ' года';
                        if (data.users[key].age % 10 > 10 && data.users[key].age % 10 < 15) 
                            yearform = ' лет';
                        h += yearform;
                    }
                    if (data.users[key].region != '') {
                        h += ', г. ' + data.users[key].region;
                    }
                    if (data.users[key].fav_music != '') {
                        h += '<br/><span class="listens">Слушает: ' + data.users[key].fav_music + '</span>';
                    }
                    h += "</span>";
                    h += "<span class='functionalField'>";
                    if (data.isLogin > 0) {
                        if (data.users[key].isFriend != 1) 
                            h += "<a id='id_" + data.users[key].id + "' class='addToFriends' href='javascript:;'>Добавить в друзья</a>";
                        else 
                            h += "<a id='id_" + data.users[key].id + "' class='removeFromFriends' href='javascript:;'>Убрать из друзей</a>";
                        h += "<a class='sendMessage' id='" + data.users[key].nick + "' href='javascript:;'>Отправить сообщение</a>";
                    }
                    h += "<span class='tracksPlaylists'>";
                    h += "Кол-во плейлистов: " + data.users[key].n_playlists;
                    h += ", в них треков: " + data.users[key].tracks;
                    h += "</span>";
                    h += "</span>";
                    h += '</div>';
                }
                h += "</div>";
                h += "<br clear='all' />";
            }
            
            
            if (data.tags.length > 1) {
                h += "<div class='tags-block'>";
                h += "<span class='search-title'>Теги <span class='number-of-found'><sup>(<a href='/#search/" + data.query + "/tags' style='z-index:1000;'>" + data.tags[data.tags.length - 1] + "</a>)</sup></span>";
                h += "<span class='watchAll' style='top:10px;'><a href='/#search/" + data.query + "/tags'>Посмотреть все найденные теги</a></span></span><br clear='all'/>";
                for (key = 0; key < data.tags.length - 1; key++) {
                    h += "<div class='tagLink'>";
                    h += "<span class='tag'>" + data.tags[key].tag + "</span>";
                    h += "<span class='performerLinks'><span class='performer-bg' style='float:left;'>Исполнители с тегом:</span><span style='height:28px;overflow:hidden;display:block;width:490px;position:relative;color:#615f5e;float:left;padding-left:5px;'>";
                    var performers = data.tags[key].performers.split('||');
                    var ids = data.tags[key].pids.split(',');
                    for (i = 0; i < performers.length; i++) {
                        h += '<a href="/#performers/' + ids[i] + '">';
                        if (performers[i].substr(0, 1) == ',') 
                            h += performers[i].substr(1, performers[i].length);
                        else 
                            h += performers[i];
                        h += '</a>';
                        if (i < performers.length - 2) 
                            h += ', ';
                    }
                    h += "</span></span>";
                    h += "</div>";
                }
                h += "</div>";
            }
            
            
            h += "</div>";
            $('#leftContent').html(h);
            $('#leftContent .trackBlock a.plusButton').bind("click", function(){
                pPopup.openWnd(this);
            });
            
            $('#leftContent .trackBlock a.playButton').bind("click", function(){
                sendTrackToPlayer(this, '#f72203');
            });
            
            $('.performerTracksToPlayer').bind('click', function(){
                var th = this;
                load_track_in_player('/performers/getxml/' + parseId(this.id));
                $(this).css("background-position", "0 -34px");
                $(this).html("Все треки добавлены");
                setTimeout(function(){
                    $(th).css("background-position", "0 0");
                    $(th).html("Добавить в плейлист");
                }, 1300);
            });
            
            $('.addToFriends').bind('click', function(){
                makeFriend(this);
            });
            
            $('.removeFromFriends').bind('click', function(){
                unFriend(this);
            });
            
            $('.sendMessage').bind('click', function(){
                write_to_user(this.id);
            });
        },
        
        tracks: function(){
        
            var p = this.p; //parent object
            var data = p.data;
            var nFound = 0;
            var h = search.menu();
            h += "<div class='search-result'>";
            /*
             h += '<div class="resultMessage">';
             h += "По запросу найдено треков: ";*/
            if (data.tracks.length > 0) {
                //h += data.tracks[data.tracks.length - 1];
                nFound = data.tracks[data.tracks.length - 1];
            }
            else {
                //	h += '0';
                nFound = 0;
            }
            
            if (data.tracks.length > 0) {
                h += "<div class='track-block'>";
                
                h += '<div id="longTrack" class="trackBlock">';
                for (key = 0; key < data.tracks.length - 1; key++) {
                    h += generateTrackLine({
                        element: 'div',
                        addClass: '',
                        id: '',
                        trackId: data.tracks[key].id,
                        performerId: data.tracks[key].performer_id,
                        trackLength: data.tracks[key].length,
                        performer: data.tracks[key].performer,
                        title: data.tracks[key].name,
                        ownerNick: 1,
                        color: 'red',
                        tooltipLen: 30
                    });
                }
                h += '</div>';
                h += "</div>";
                h += "<br clear='all' />";
            }
            
            if (nFound > 27) {
                h += '<div class="paging">';
                h += '</div>';
            }
            
            h += "</div>";
            
            $('#leftContent').html(h);
            
            $('#leftContent .trackBlock a.plusButton').bind("click", function(){
                pPopup.openWnd(this);
            });
            
            $('#leftContent .trackBlock a.playButton').bind("click", function(){
                sendTrackToPlayer(this, '#f72203');
            });
            
            refreshPaging('tracks', 0, 'red', data.query, data.tracks[data.tracks.length - 1], 27);
            
        },
        
        artists: function(){
            var p = this.p; //parent object
            var data = p.data;
            var nFound = 0;
            var h = search.menu();
            h += "<div class='search-result'>";
            /* h += '<div class="resultMessage">';
             h += "По запросу найдено исполнителей: ";
             if (data.performers.length > 0)
             h += data.performers[data.performers.length - 1];
             else
             h += '0';
             h += '</div>';
             */
            if (data.performers.length > 0) {
                h += "<div class='performer-block'>";
                for (key = 0; key < data.performers.length - 1; key++) {
                    if ((key + 1) % 3 == 0) 
                        h += '<div class="performerLink last-child">';
                    else 
                        h += '<div class="performerLink">';
                    h += "<a class='photo' href='#performers/" + data.performers[key].id + "'><img src='" + data.performers[key].cover_path + "'/></a>";
                    h += "<span class='performerName'>";
                    h += "<a href='#performers/" + data.performers[key].id + "'>" + data.performers[key].name + "</a><br/>";
                    h += "</span>";
                    h += "<div class='content'>";
                    h += "Треков: " + data.performers[key].tracks_num;
                    h += "<a class='performerTracksToPlayer' id='id_" + data.performers[key].id + "' href='javascript:;'>Добавить в плейлист</a>";
                    h += "</div>";
                    h += '</div>'
                }
                h += "</div>";
                h += "<br clear='all' />";
            }
            
            if (data.performers[data.performers.length - 1] > 27) {
                h += '<div class="paging">';
                h += '</div>';
            }
            
            h += "</div>";
            $('#leftContent').html(h);
            
            $('.performerTracksToPlayer').bind('click', function(){
                var th = this;
                load_track_in_player('/performers/getxml/' + parseId(this.id));
                $(this).css("background-position", "0 -34px");
                $(this).html("Все треки добавлены");
                setTimeout(function(){
                    $(th).css("background-position", "0 0");
                    $(th).html("Добавить в плейлист");
                }, 1300);
            });
            
            refreshPaging('performers', 0, 'purple', data.query, data.performers[data.performers.length - 1], 21);
        },
        
        albums: function(){
            var p = this.p; //parent object
            var data = p.data;
            var nFound = 0;
            var h = search.menu();
            h += "<div class='search-result'>";
            /*  h += '<div class="resultMessage">';
             h += "По запросу найдено альбомов: ";
             
             if (data.albums.length > 0)
             h += data.albums[data.albums.length - 1];
             else
             h += '0';
             
             h += '</div>';*/
            if (data.albums.length > 0) {
                h += "<div class='albums-block'>";
                
                for (key = 0; key < data.albums.length - 1; key++) {
                    if ((key + 1) % 3 == 0) 
                        h += '<div class="album last-child">';
                    else 
                        h += '<div class="album">';
                    h += '<table valign="center" style="font-size: 8pt;">';
                    h += '<tr><td style="font-size: 8pt;">';
                    h += '<a href="/#albums/' + data.albums[key].id + '" class="albumPicture">';
                    h += '<img src="' + data.albums[key].cover + '">';
                    h += '<div class="albumCover">';
                    h += '</div>';
                    h += '</a></td><td style="font-size: 8pt;"><p>';
                    h += '<strong>';
                    h += '<a href="/#albums/' + data.albums[key].id + '" style="text-decoration: none;font-size:8pt;top:0;">';
                    h += data.albums[key].name + '</a></strong><br/>';
                    h += '<span class="performer-bg" style="padding-left: 1px;font-size:8pt;">';
                    h += data.albums[key].performer + '</span></p></td></tr></tbody></table></div>';
                }
                h += "</div>";
                h += "<br clear='all' />";
            }
            
            if (data.albums[data.albums.length - 1] > 21) {
                h += '<div class="paging">';
                h += '</div>';
            }
            
            h += "</div>";
            
            $('#leftContent').html(h);
            
            refreshPaging('albums', 0, 'purple', data.query, data.albums[data.albums.length - 1], 21);
        },
        
        users: function(){
            var p = this.p; //parent object
            var data = p.data;
            var nFound = 0;
            var h = search.menu();
            h += "<div class='search-result'>";
            
            /*  h += '<div class="resultMessage">';
             h += "По запросу найдено пользователей: ";
             if (data.users.length > 0) {
             h += data.users[data.users.length - 1];
             }
             else {
             h += '0';
             }
             h += '</div>';*/
            if (data.users && data.users.length > 0) {
                h += "<div class='user-block'>";
                for (key = 0; key < data.users.length - 1; key++) {
                    h += '<div class="userLink">';
                    h += '<div class="karmaField"></div>';
                    h += "<a class='avatar' href='#users/" + data.users[key].nick + "'><img src='" + data.users[key].avatar.replace(".jpg", "_55x55.jpg") + "'/></a>";
                    h += "<span class='infoText'>";
                    h += "<a href='#users/" + data.users[key].nick + "'>" + data.users[key].nick + "</a>";
                    if (data.users[key].name != '') {
                        h += ', ' + data.users[key].name + " " + data.users[key].surname + "";
                    }
                    else {
                        h += ', пользователь пожелал остаться анонимом';
                    }
                    
                    if (data.users[key].age > 0) {
                        h += ', ' + data.users[key].age;
                        var yearform;
                        if (data.users[key].age % 10 == 0 || (data.users[key].age % 10 > 4 && data.users[key].age % 10 <= 9)) 
                            yearform = ' лет';
                        else 
                            if (data.users[key].age % 10 == 1) 
                                yearform = ' год';
                            else 
                                if (data.users[key].age % 10 > 1 && data.users[key].age % 10 < 5) 
                                    yearform = ' года';
                        if (data.users[key].age % 10 > 10 && data.users[key].age % 10 < 15) 
                            yearform = ' лет';
                        h += yearform;
                    }
                    
                    if (data.users[key].region != '') {
                        h += ', г. ' + data.users[key].region;
                    }
                    
                    if (data.users[key].fav_music != '') {
                        h += '<br/><span class="listens">Слушает: ' + data.users[key].fav_music + '</span>';
                    }
                    h += "</span>";
                    if (data.isLogin == 1) {
                        h += "<span class='functionalField'>";
                        if (data.users[key].isFriend != 1) 
                            h += "<a id='id_" + data.users[key].id + "' class='addToFriends' href='javascript:;'>Добавить в друзья</a>";
                        else 
                            h += "<a id='id_" + data.users[key].id + "' class='removeFromFriends' href='javascript:;'>Убрать из друзей</a>";
                        h += "<a class='sendMessage' id='" + data.users[key].nick + "' href='javascript:;'>Отправить сообщение</a>";
                        h += "<span class='tracksPlaylists'>";
                        h += "Кол-во плейлистов: " + data.users[key].n_playlists;
                        h += ", в них треков: " + data.users[key].tracks;
                        h += "</span>";
                        h += "</span>";
                    }
                    h += '</div>';
                }
                h += "</div>";
                h += "<br clear='all' />";
            }
            
            if (data.users[data.users.length - 1] > 8) {
                h += '<div class="paging">';
                h += '</div>';
            }
            h += "</div>";
            $('#leftContent').html(h);
            
            $('.addToFriends').bind('click', function(){
                makeFriend(this);
            });
            
            $('.removeFromFriends').bind('click', function(){
                unFriend(this);
            });
            
            $('.sendMessage').bind('click', function(){
                write_to_user(this.id);
            });
            
            refreshPaging('users', 0, 'yellow', data.query, data.users[data.users.length - 1], 8);
        },
        
        tags: function(){
            var p = this.p; //parent object
            var data = p.data;
            var nFound = 0;
            var h = search.menu();
            h += "<div class='search-result'>";
            /* h += '<div class="resultMessage">';
             h += "По запросу найдено Тегов: ";
             h += data.tags[data.tags.length - 1];
             h += '</div>';*/
            if (data.tags.length > 1) {
                h += "<div class='tags-block'>";
                for (key = 0; key < data.tags.length - 1; key++) {
                    h += "<div class='tagLink'>";
                    h += "<span class='tag'>" + data.tags[key].tag + "</span>";
                    h += "<span class='performerLinks'><span class='performer-bg' style='float:left;'>Исполнители с тегом:</span><span style='height:28px;overflow:hidden;display:block;width:490px;position:relative;color:#615f5e;float:left;padding-left:5px;'>";
                    var performers = data.tags[key].performers.split('||');
                    var ids = data.tags[key].pids.split(',');
                    for (i = 0; i < performers.length; i++) {
                        h += '<a href="/#performers/' + ids[i] + '">';
                        if (performers[i].substr(0, 1) == ',') 
                            h += performers[i].substr(1, performers[i].length);
                        else 
                            h += performers[i];
                        h += '</a>';
                        if (i < performers.length - 2) 
                            h += ', ';
                    }
                    h += "</span></span>";
                    h += "</div>";
                }
                h += "</div>";
            }
            
            if (data.tags[data.tags.length - 1] > 11) {
                h += '<br clear="All"/><div class="paging">';
                h += '</div>';
            }
            
            h += "</div>";
            $('#leftContent').html(h);
            
            refreshPaging('tags', 0, 'purple', data.query, data.tags[data.tags.length - 1], 11);
        },
        
        lyrics: function(){
            var p = this.p; //parent object
            var data = p.data;
            var nFound = 0;
            var h = search.menu();
            h += "<div class='search-result'>";
            h += '<div class="resultMessage">';
          /*  h += "По запросу найдено Треков: "
            if (data.lyrics.length > 0) 
                h += data.lyrics[data.lyrics.length - 1];
            else 
                h += '0';
            
            h += '</div>';*/
            
            
            if (data.lyrics.length > 1) {
                h += "<div id='longTrack' class='lyrics-block trackBlock'>";
                for (key = 0; key < data.lyrics.length - 1; key++) {
                    h += "<div class='lyricsLink'>";
                    h += generateTrackLine({
                        element: 'div',
                        addClass: '',
                        id: '',
                        trackId: data.lyrics[key].id,
                        performerId: data.lyrics[key].performer_id,
                        trackLength: data.lyrics[key].length,
                        performer: data.lyrics[key].performer,
                        title: data.lyrics[key].name,
                        ownerNick: 1,
                        color: 'red',
                        tooltipLen: 30
                    });
                    var text = data.lyrics[key].song_text;
                    var lastBr = 0;
                    var tmp = 0;
                    
                    var brStr = '<br\/>';
                    if (text.toLowerCase().indexOf('<br\/>') == -1) 
                        brStr = '<br \/>';
                    
                    while (tmp < text.toLowerCase().indexOf(data.query.toLowerCase()) && tmp != -1) {
                        tmp = text.toLowerCase().indexOf(brStr, tmp + 5);
                        if (tmp < text.toLowerCase().indexOf(data.query.toLowerCase()) && tmp != -1) 
                            lastBr = tmp;
                    }
                    if (lastBr == -1) 
                        lastBr = 0;
                    
                    text = text.substr(lastBr, text.length);
                    text = StripTags(text);
                    ntext = text.substr(0, text.toLowerCase().indexOf(data.query.toLowerCase()));
                    ntext += '<span class="music-bg">';
                    ntext += text.substr(text.toLowerCase().indexOf(data.query.toLowerCase()), data.query.length);
                    ntext += '</span>';
                    ntext += text.substr(text.toLowerCase().indexOf(data.query.toLowerCase()) + data.query.length, text.length);
                    h += '<br clear="All"/><span class="songText">' + ntext + '</span>';
                    h += "</div>";
                }
                
                h += "</div>";
            }
            
            if (data.lyrics[data.lyrics.length - 1] > 11) {
                h += '<br clear="All"/><div class="paging">';
                h += '</div>';
            }
            
            h += "</div>";
            $('#leftContent').html(h);
            
            $('#leftContent .trackBlock a.plusButton').bind("click", function(){
                pPopup.openWnd(this);
            });
            
            $('#leftContent .trackBlock a.playButton').bind("click", function(){
                sendTrackToPlayer(this, '#f72203');
            });
            
            refreshPaging('lyrics', 0, 'red', data.query, data.lyrics[data.lyrics.length - 1], 11);
        }
        
        
    },
    menu: function(){
		var url = location.hash;
		function active (reg) {
			return ((reg.test(url))?" active":"")
		}
        var data = this.data;
        var h = "<div class='subMenu search'>";
        h += "<a href='/#search/" + data.query + "' class='menuItem " + active(/^#search(\/[a-zA-Zа-яА-Я]*)$/i) + "' >Общий поиск</a>";
        h += '<a class="menuItem ' + active(/tracks/i) + '" href="/#search/' + data.query + '/tracks">Треки</a>';
        h += '<a class="menuItem ' + active(/performers/i) + '" href="/#search/' + data.query + '/performers">Исполнители</a>';
        h += '<a class="menuItem ' + active(/albums/i) + '" href="/#search/' + data.query + '/albums" >Альбомы</a>';
        h += '<a class="menuItem ' + active(/users/i) + '" href="/#search/' + data.query + '/users" >Пользователи</a>';
        h += '<a class="menuItem ' + active(/tags/i) + '" href="/#search/' + data.query + '/tags" >Теги</a>';
        h += '<a class="menuItem ' + active(/lyrics/i) + '" href="/#search/' + data.query + '/lyrics" >Тексты песен</a>';
        h += "</div>";
        return h;
    }
}


function search_page(data){
    search.init(data).pages.main();
}

function searchTracks_page(data){
    search.init(data).pages.tracks();
}

function searchPerformers_page(data){
    search.init(data).pages.artists();
}

function searchAlbums_page(data){
    search.init(data).pages.albums();
}

function searchUsers_page(data){
    search.init(data).pages.users();
}

function searchTags_page(data){
    search.init(data).pages.tags();
}

function searchLyrics_page(data){
 	search.init(data).pages.lyrics();
}









function nextPage(type, number, query, nItems){
    if (type == 'tracks') {
        $.post('/searchPage/' + type + '/' + number + '/' + query, function(data){
            var h = '';
            for (key = 0; key < data.tracks.length - 1; key++) {
                h += generateTrackLine({
                    element: 'div',
                    addClass: '',
                    id: '',
                    trackId: data.tracks[key].id,
                    performerId: data.tracks[key].performer_id,
                    trackLength: data.tracks[key].length,
                    performer: data.tracks[key].performer,
                    title: data.tracks[key].name,
                    ownerNick: 1,
                    color: 'red',
                    tooltipLen: 30
                });
            }
            $('#longTrack').html(h);
            refreshPaging(type, data.pageNumber, 'red', query, data.tracks[data.tracks.length - 1], nItems);
            $('#leftContent .trackBlock a.plusButton').bind("click", function(){
                pPopup.openWnd(this);
            });
            
            $('#leftContent .trackBlock a.playButton').bind("click", function(){
                sendTrackToPlayer(this, '#f72203');
            });
        });
    }
    else 
        if (type == 'performers') {
            $.post('/searchPage/' + type + '/' + number + '/' + query, function(data){
                var h = '';
                for (key = 0; key < data.performers.length - 1; key++) {
                    if ((key + 1) % 3 == 0) 
                        h += '<div class="performerLink last-child">';
                    else 
                        h += '<div class="performerLink">';
                    h += "<a class='photo' href='#performers/" + data.performers[key].id + "'><img src='" + data.performers[key].cover_path + "'/></a>";
                    h += "<span class='performerName'>";
                    h += "<a href='#performers/" + data.performers[key].id + "'>" + data.performers[key].name + "</a><br/>";
                    h += "</span>";
                    h += "<div class='content'>";
                    h += "Треков: " + data.performers[key].tracks_num;
                    h += "<a class='performerTracksToPlayer' id='id_" + data.performers[key].id + "' href='javascript:;'>Добавить в плейлист</a>";
                    h += "</div>";
                    h += '</div>'
                }
                $('.performer-block').html(h);
                refreshPaging(type, data.pageNumber, 'purple', query, data.performers[data.performers.length - 1], nItems);
            });
        }
        else 
            if (type == 'albums') {
                $.post('/searchPage/' + type + '/' + number + '/' + query, function(data){
                    var h = '';
                    for (key = 0; key < data.albums.length - 1; key++) {
                        if ((key + 1) % 3 == 0) 
                            h += '<div class="album last-child">';
                        else 
                            h += '<div class="album">';
                        h += '<table valign="center" style="font-size: 8pt;">';
                        h += '<tr><td style="font-size: 8pt;">';
                        h += '<a href="/#albums/' + data.albums[key].id + '" class="albumPicture">';
                        h += '<img src="' + data.albums[key].cover + '">';
                        h += '<div class="albumCover">';
                        h += '</div>';
                        h += '</a></td><td style="font-size: 8pt;"><p>';
                        h += '<strong>';
                        h += '<a href="/#albums/' + data.albums[key].id + '" style="text-decoration: none;font-size:8pt;top:0;">';
                        h += data.albums[key].name + '</a></strong><br/>';
                        h += '<span class="performer-bg" style="padding-left: 1px;font-size:8pt;">';
                        h += data.albums[key].performer + '</span></p></td></tr></tbody></table></div>';
                    }
                    $('.albums-block').html(h);
                    refreshPaging(type, data.pageNumber, 'purple', query, data.albums[data.albums.length - 1], nItems);
                });
            }
            else 
                if (type == 'users') {
                    $.post('/searchPage/' + type + '/' + number + '/' + query, function(data){
                        var h = '';
                        for (key = 0; key < data.users.length - 1; key++) {
                            h += '<div class="userLink">';
                            h += '<div class="karmaField"></div>';
                            h += "<a class='avatar' href='#users/" + data.users[key].nick + "'><img src='" + data.users[key].avatar.replace('.jpg', '_55x55.jpg') + "'/></a>";
                            h += "<span class='infoText'>";
                            h += "<a href='#users/" + data.users[key].nick + "'>" + data.users[key].nick + "</a>";
                            if (data.users[key].name != '') {
                                h += ', ' + data.users[key].name + " " + data.users[key].surname + "";
                            }
                            else {
                                h += ', пользователь пожелал остаться анонимом';
                            }
                            
                            if (data.users[key].age > 0) {
                                h += ', ' + data.users[key].age;
                                var yearform;
                                if (data.users[key].age % 10 == 0 || (data.users[key].age % 10 > 4 && data.users[key].age % 10 <= 9)) 
                                    yearform = ' лет';
                                else 
                                    if (data.users[key].age % 10 == 1) 
                                        yearform = ' год';
                                    else 
                                        if (data.users[key].age % 10 > 1 && data.users[key].age % 10 < 5) 
                                            yearform = ' года';
                                if (data.users[key].age % 10 > 10 && data.users[key].age % 10 < 15) 
                                    yearform = ' лет';
                                h += yearform;
                            }
                            
                            if (data.users[key].region != '') {
                                h += ', г. ' + data.users[key].region;
                            }
                            
                            if (data.users[key].fav_music != '') {
                                h += '<br/><span class="listens">Слушает: ' + data.users[key].fav_music + '</span>';
                            }
                            h += "</span>";
                            h += "<span class='functionalField'>";
                            if (data.isLogin > 0) {
                                if (data.users[key].isFriend != 1) 
                                    h += "<a id='id_" + data.users[key].id + "' class='addToFriends' href='javascript:;'>Добавить в друзья</a>";
                                else 
                                    h += "<a id='id_" + data.users[key].id + "' class='removeFromFriends' href='javascript:;'>Убрать из друзей</a>";
                                h += "<a class='sendMessage' id='" + data.users[key].nick + "' href='javascript:;'>Отправить сообщение</a>";
                            }
                            h += "<span class='tracksPlaylists'>";
                            h += "Кол-во плейлистов: " + data.users[key].n_playlists;
                            h += ", в них треков: " + data.users[key].tracks;
                            h += "</span>";
                            h += "</span>";
                            h += '</div>';
                        }
                        $('.user-block').html(h);
                        refreshPaging(type, data.pageNumber, 'yellow', query, data.users[data.users.length - 1], nItems);
                    });
                }
                else 
                    if (type == 'tags') {
                        $.post('/searchPage/' + type + '/' + number + '/' + query, function(data){
                            var h = '';
                            for (key = 0; key < data.tags.length - 1; key++) {
                                h += "<div class='tagLink'>";
                                h += "<span class='tag'>" + data.tags[key].tag + "</span>";
                                h += "<span class='performerLinks'><span class='performer-bg' style='float:left;'>Исполнители с тегом:</span><span style='height:28px;overflow:hidden;display:block;width:490px;position:relative;color:#615f5e;float:left;padding-left:5px;'>";
                                var performers = data.tags[key].performers.split('||');
                                var ids = data.tags[key].pids.split(',');
                                for (i = 0; i < performers.length; i++) {
                                    h += '<a href="/#performers/' + ids[i] + '">';
                                    if (performers[i].substr(0, 1) == ',') 
                                        h += performers[i].substr(1, performers[i].length);
                                    else 
                                        h += performers[i];
                                    h += '</a>';
                                    if (i < performers.length - 2) 
                                        h += ', ';
                                }
                                h += "</span></span>";
                                h += "</div>";
                            }
                            $('.tags-block').html(h);
                            refreshPaging(type, data.pageNumber, 'purple', query, data.tags[data.tags.length - 1], nItems);
                        });
                    }
                    else 
                        if (type == 'lyrics') {
                            $.post('/searchPage/' + type + '/' + number + '/' + query, function(data){
                                var h = '';
                                
                                for (key = 0; key < data.lyrics.length - 1; key++) {
                                    h += "<div class='lyricsLink'>";
                                    h += generateTrackLine({
                                        element: 'div',
                                        addClass: '',
                                        id: '',
                                        trackId: data.lyrics[key].id,
                                        performerId: data.lyrics[key].performer_id,
                                        trackLength: data.lyrics[key].length,
                                        performer: data.lyrics[key].performer,
                                        title: data.lyrics[key].name,
                                        ownerNick: 1,
                                        color: 'red',
                                        tooltipLen: 30
                                    });
                                    var text = data.lyrics[key].song_text;
                                    var lastBr = 0;
                                    var tmp = 0;
                                    
                                    while (tmp < text.toLowerCase().indexOf(data.query) && tmp != -1) {
                                        tmp = text.indexOf('<br\/>', tmp + 6);
                                        if (tmp < text.toLowerCase().indexOf(data.query)) 
                                            lastBr = tmp;
                                    }
                                    if (lastBr == -1) 
                                        lastBr = 0;
                                    text = text.substr(lastBr, text.length);
                                    text = StripTags(text);
                                    ntext = text.substr(0, text.toLowerCase().indexOf(data.query));
                                    ntext += '<span class="music-bg">';
                                    ntext += text.substr(text.toLowerCase().indexOf(data.query), data.query.length);
                                    ntext += '</span>';
                                    ntext += text.substr(text.toLowerCase().indexOf(data.query) + data.query.length, text.length);
                                    h += '<br clear="All"/><span class="songText">' + ntext + '</span>';
                                    h += "</div>";
                                }
                                
                                $('.lyrics-block').html(h);
                                refreshPaging(type, data.pageNumber, 'red', query, data.lyrics[data.lyrics.length - 1], nItems);
                            });
                        }
}

function refreshPaging(type, pagenumber, color, query, nFound, nItems){
    var colors = {
        red: '#f8212a',
        yellow: '#f89c21',
        purple: '#ba26f3'
    };
    var h = '';
    if (pagenumber > 0) 
        h += '<span style="background:url(\'/media/images/paging/left_arrow_' + color + '.gif\') no-repeat 0 4px;color:' + eval('colors.' + color) + ';" onclick="nextPage(\'' + type + '\', ' + (pagenumber - 1) + ', \'' + query + '\', ' + nItems + ');" class="previousPage">ctrl&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:;" style="color:' + eval('colors.' + color) + ';">предыдущая</a></span>';
    else 
        h += '<span class="previousPage" style="background:url(\'/media/images/paging/left_arrow_unactive.gif\') no-repeat 0 4px;">ctrl&nbsp;&nbsp;&nbsp;&nbsp;предыдущая</span>';
    var pages = Math.floor(nFound / nItems);
    if (nFound % nItems > 0) 
        pages++;
    h += '<span class="numbers">';
    var startPage = 0;
    if (pages > 7) {
        if (pagenumber > 1) {
            startPage = pagenumber - 2;
        }
        
        if (pagenumber > pages - 6) {
            startPage = pages - 7;
        }
    }
    var j = 0;
    var flag = 0;
    for (i = startPage; i < pages; i++) {
        if (pages <= 7) {
            if (i == pagenumber) {
                h += '<span class="pageNumber ' + color + '">' + (i + 1) + '</span>';
            }
            else {
                h += '<a href="javascript:;" onclick="nextPage(\'' + type + '\', ' + i + ', \'' + query + '\', ' + nItems + ');" class="pageNumber">';
                h += i + 1;
                h += '</a>';
            }
        }
        else {
        
            if (startPage + 2 < pages / 2) {
                if (i == pagenumber) {
                    h += '<span class="pageNumber ' + color + '">' + (i + 1) + '</span>';
                }
                else {
                    if ((pages > 7 && j < 6) || i == pages - 1) {
                        h += '<a href="javascript:;" onclick="nextPage(\'' + type + '\', ' + i + ', \'' + query + '\', ' + nItems + ');" class="pageNumber">';
                        h += i + 1;
                        h += '</a>';
                    }
                    else {
                        if (flag == 0) {
                            h += '<span class="pageNumber">...</span>';
                            flag = 1;
                        }
                    }
                }
            }
            else {
                if (flag == 0) {
                    h += '<a href="javascript:;" onclick="nextPage(\'' + type + '\', 1, \'' + query + '\', ' + nItems + ');" class="pageNumber">1</a>';
                    h += '<span class="pageNumber">...</span>';
                    flag = 1;
                }
                if (i == pagenumber) {
                    h += '<span class="pageNumber ' + color + '">' + (i + 1) + '</span>';
                }
                else {
                    if (pages > 7 && j > 0) {
                        h += '<a href="javascript:;" onclick="nextPage(\'' + type + '\', ' + i + ', \'' + query + '\', ' + nItems + ');" class="pageNumber">';
                        h += i + 1;
                        h += '</a>';
                    }
                }
            }
            j++;
        }
    }
    h += '</span>';
    if (pagenumber == pages - 1) 
        h += '<span class="nextPage" style="background:url(\'/media/images/paging/right_arrow_unactive.gif\') no-repeat right 4px;">следующая&nbsp;&nbsp;&nbsp;&nbsp;ctrl</span>';
    else 
        h += '<span class="nextPage" style="color:' + eval('colors.' + color) + ';background:url(\'/media/images/paging/right_arrow_' + color + '.gif\') no-repeat right 4px;" onclick="nextPage(\'' + type + '\', ' + (pagenumber * 1 + 1) + ', \'' + query + '\', ' + nItems + ');"><a href="javascript:;" style="color:' + eval('colors.' + color) + ';">следующая</a>&nbsp;&nbsp;&nbsp;&nbsp;ctrl</span>';
    $('.paging').html(h);
    var cur_hash = location.hash
    
    document.onkeydown = function(event){
        if (window.event) 
            event = window.event;
        if (event.ctrlKey) {
            switch (event.keyCode ? event.keyCode : event.which ? event.which : null) {
                case 0x25:
                    location.hash = cur_hash;
                    $('.previousPage').trigger('click');
                    break;
                case 0x27:
                    location.hash = cur_hash;
                    $('.nextPage').trigger('click');
                    break;
            }
        }
    }
}


function makeFriend(th){
    $.get('/user/makefriend/' + parseId(th.id), function(){
        $(th).css('background-position', '0 -34px')
        $(th).css('padding-left', '33px');
        $(th).css('width', '101px');
        $(th).html("У вас +1 друг");
    });
    setTimeout(function(){
        $(th).addClass('removeFromFriends').removeClass('addToFriends');
        $(th).css("background-position", "0 -51px");
        $(th).css('padding-left', '25px');
        $(th).css('width', '109px');
        $(th).html("Убрать из друзей");
        $(th).unbind('click');
        $(th).bind('click', function(){
            unFriend(th)
        });
    }, 1300);
}

function unFriend(th){
    $.get('/user/removefriend/' + parseId(th.id), function(){
        $(th).css('background-position', '0 -34px')
        $(th).css('padding-left', '33px');
        $(th).css('width', '101px');
        $(th).html("У вас -1 друг");
    });
    setTimeout(function(){
        $(th).addClass('addToFriends').removeClass('removeFromFriends');
        $(th).css("background-position", "0 0");
        $(th).css('padding-left', '23px');
        $(th).css('width', '111px');
        $(th).html("Добавить в друзья");
        $(th).unbind('click');
        $(th).bind('click', function(){
            makeFriend(th)
        });
    }, 1300);
}

function StripTags(strMod){
    if (arguments.length < 3) 
        strMod = strMod.replace(/<\/?(?!\!)[^>]*>/gi, '&nbsp;');
    else {
        var IsAllowed = arguments[1];
        var Specified = eval("[" + arguments[2] + "]");
        if (IsAllowed) {
            var strRegExp = '</?(?!(' + Specified.join('|') + '))\b[^>]*>';
            strMod = strMod.replace(new RegExp(strRegExp, 'gi'), '&nbsp;');
        }
        else {
            var strRegExp = '</?(' + Specified.join('|') + ')\b[^>]*>';
            strMod = strMod.replace(new RegExp(strRegExp, 'gi'), '&nbsp;');
        }
    }
    return strMod;
}
