[{"_id":"_design/album","views":{"name":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.album.length > 0 \n       && doc.valid\n       && doc.reviewed ) {\n    if ( doc.tracknumber ) {\n      emit ([doc.album,doc.tracknumber], null);\n    } else {\n      emit ([doc.album,0], null);\n    }\n  }\n}","reduce":"_count"},"search":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.album.length > 0 \n       && doc.valid\n       && doc.reviewed ) {\n \n    var nochar=new RegExp(\"[\\.,_?!\\\\[\\\\]\\\\{\\\\}\\\\(\\\\)]\",\"g\");\n    var reg=new RegExp(\" \", \"g\");\n    var tab=doc.album.replace(nochar,'').split(reg);\n    for ( var index in tab ) {\n      if ( tab[index].length > 2 ) {\n         emit ( [tab[index],doc.album], null);\n      }\n    }\n    emit ( [ doc.album, doc.album ], null );\n  }\n}"},"album":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.album.length > 0 \n       && doc.valid\n       && doc.reviewed ) {\n\n      emit (doc.album, null);\n\n  }\n}","reduce":"_count"},"artists":{"map":"function (doc) {\n\tif ( ! doc._id.substring(0,2) == 'aa' || !doc.reviewed || !doc.valid || !doc.album ) {\n\t\treturn ;\n\t}\n\n\nvar getArtists = function(no_full_artist) {\n\tvar featuring_separator = [ \"Featuring \", \"featuring \",\"Feat.\", \"feat.\",\"Feat \",\"feat \" , \"Ft.\",\"ft.\", \"Ft \",\"ft \",\"F/\",\"f/\" ];\n\tvar final_artists = [];\n\tvar artists;\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.artist.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\") ;\n\t\t\t\t\tvar lastartist = artists.pop();\n\t\t\t\t\tartists = artists.concat( lastartist.split(/ And | & /) );\n\t\t\t\t\tartists.unshift(spl[0].replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t\t\t\t\tfinal_artists = artists;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\tif ( !final_artists.length ) {\n\t\t\tfinal_artists.push(doc.artist);\n\t}\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.title.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\");\n\t\t\t\t\tvar lastItem= artists.pop();\n\t\t\t\t\tif ( \n\t\t\t\t\t\t(lastItem.substr(-1) == \"]\" && lastItem.indexOf(\"[\") == -1 ) ||\n\t\t\t\t\t\t(lastItem.substr(-1) == \")\" && lastItem.indexOf(\"(\") == -1 )\n\t\t\t\t\t) {\n\t\t\t\t\t\tlastItem = lastItem.slice(0,-1);\n\t\t\t\t\t}\n\n\t\t\t\t\tartists = artists.concat( lastItem.split(/ And | & /) )\n\t\t\t\t\t\t.forEach(function(v) {\n\t\t\t\t\t\t\tif ( final_artists.indexOf(v) < 0 ) {\n\t\t\t\t\t\t\t\tfinal_artists.push(v);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\n\tvar allArtists = [];\n\tfinal_artists.forEach(function(a) {\n\t\tif ( a.indexOf(\"(\") > -1 && a.indexOf(\")\") < 0 ) {\n\t\t\ta = a.replace(\"(\",\"\");\n\t\t} else if ( a.indexOf(\")\") > -1 && a.indexOf(\"(\") < 0 ) {\n\t\t\ta = a.replace(\")\",\"\");\n\t\t}\n\t\tif ( a.indexOf(\"[\") > -1 && a.indexOf(\"]\") < 0 ) {\n\t\t\ta = a.replace(\"[\",\"\");\n\t\t} else if ( a.indexOf(\"]\") > -1 && a.indexOf(\"[\") < 0 ) {\n\t\t\ta = a.replace(\"]\",\"\");\n\t\t}\n\t\tallArtists.push(a.replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t});\n\tfinal_artists = allArtists;\n\tif ( !no_full_artist && final_artists.indexOf(doc.artist) < 0 ) { final_artists.push(doc.artist) };\n\treturn final_artists;\n}\n\n\n\n\n\tvar all = getArtists(true),one;\n\twhile ( one = all.pop() ) {\n\t\temit([doc.album,one],null);\n\t}\n}","reduce":"_count"},"firstLetter":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.album.length > 0 \n       && doc.valid\n       && doc.reviewed ) {\n\n      emit (doc.album[0], null);\n\n  }\n}","reduce":"_count"}},"lists":{"search":"function (head, ctx) {\n var back = {\"albums\": []};\n var row;\n \n\twhile (row = getRow() ) {\n\t\tif ( row.key ) {\n\t\t      var key = row.key.pop();\n\t\t      if ( back.albums.indexOf(key) < 0 ) {\n\t\t        \n  \t\t      back.albums.push(key);\n  \t\t    }\n  }\n\t}\n back.albums.sort();\n\treturn JSON.stringify(back);\n}"},"language":"javascript"},{"_id":"_design/albumHits","language":"javascript","views":{"albums":{"map":"function (doc) {\n\tif ( doc._id != \"albumHits\" || ! ( \"albumsGenres\" in doc ) ) {\n\t\treturn ;\n\t}\n\tfor ( var genre in doc.albumsGenres ) {\n\t\tfor (var album in doc.albumsGenres[genre] ) {\n\t\t\temit([genre, doc.albumsGenres[genre][album], album],null);\n\t\t}\n\t}\n\t\n}"}}},{"_id":"_design/artist","language":"javascript","views":{"name":{"map":"function(doc) {\n\n\t\tif ( ! doc._id.substring(0,2) == 'aa' || !doc.reviewed || !doc.valid ) {\n\t\t\treturn ;\n\t\t}\n\n\nvar getArtists = function(no_full_artist) {\n\tvar featuring_separator = [ \"Featuring \", \"Feat.\",\"Feat \", \"Ft.\", \"Ft \",\"F/\" ];\n\tvar final_artists = [];\n\tvar artists;\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.artist.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\") ;\n\t\t\t\t\tvar lastartist = artists.pop();\n\t\t\t\t\tartists = artists.concat( lastartist.split(/ And | & /) );\n\t\t\t\t\tartists.unshift(spl[0].replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t\t\t\t\tfinal_artists = artists;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\tif ( !final_artists.length ) {\n\t\t\tfinal_artists.push(doc.artist);\n\t}\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.title.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\");\n\t\t\t\t\tvar lastItem= artists.pop();\n\t\t\t\t\tif ( \n\t\t\t\t\t\t(lastItem.substr(-1) == \"]\" && lastItem.indexOf(\"[\") == -1 ) ||\n\t\t\t\t\t\t(lastItem.substr(-1) == \")\" && lastItem.indexOf(\"(\") == -1 )\n\t\t\t\t\t) {\n\t\t\t\t\t\tlastItem = lastItem.slice(0,-1);\n\t\t\t\t\t}\n\n\t\t\t\t\tartists = artists.concat( lastItem.split(/ And | & /) )\n\t\t\t\t\t\t.forEach(function(v) {\n\t\t\t\t\t\t\tif ( final_artists.indexOf(v) < 0 ) {\n\t\t\t\t\t\t\t\tfinal_artists.push(v);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\n\tvar allArtists = [];\n\tfinal_artists.forEach(function(a) {\n\t\tif ( a.indexOf(\"(\") > -1 && a.indexOf(\")\") < 0 ) {\n\t\t\ta = a.replace(\"(\",\"\");\n\t\t} else if ( a.indexOf(\")\") > -1 && a.indexOf(\"(\") < 0 ) {\n\t\t\ta = a.replace(\")\",\"\");\n\t\t}\n\t\tif ( a.indexOf(\"[\") > -1 && a.indexOf(\"]\") < 0 ) {\n\t\t\ta = a.replace(\"[\",\"\");\n\t\t} else if ( a.indexOf(\"]\") > -1 && a.indexOf(\"[\") < 0 ) {\n\t\t\ta = a.replace(\"]\",\"\");\n\t\t}\n\t\tallArtists.push(a.replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t});\n\tfinal_artists = allArtists;\n\tif ( !no_full_artist && final_artists.indexOf(doc.artist) < 0 ) { final_artists.push(doc.artist) };\n\treturn final_artists;\n}\n\n\n\n\tvar all = getArtists(), artist ;\n\twhile ( artist = all.pop() ) {\n\t\temit([artist, doc.title],null);\n\t}\n}","reduce":"_count"},"search":{"map":"function (doc) {\n\tif ( ! doc._id.substring(0,2) == 'aa' || !doc.reviewed || !doc.valid ) {\n\t\treturn ;\n\t}\n\n\nvar getArtists = function(no_full_artist) {\n\tvar featuring_separator = [ \"Featuring \", \"Feat.\", \"Feat \", \"Ft.\", \"Ft \",\"F/\" ];\n\tvar final_artists = [];\n\tvar artists;\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.artist.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\") ;\n\t\t\t\t\tvar lastartist = artists.pop();\n\t\t\t\t\tartists = artists.concat( lastartist.split(/ And | & /) );\n\t\t\t\t\tartists.unshift(spl[0].replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t\t\t\t\tfinal_artists = artists;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\tif ( !final_artists.length ) {\n\t\t\tfinal_artists.push(doc.artist);\n\t}\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.title.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\");\n\t\t\t\t\tvar lastItem= artists.pop();\n\t\t\t\t\tif ( \n\t\t\t\t\t\t(lastItem.substr(-1) == \"]\" && lastItem.indexOf(\"[\") == -1 ) ||\n\t\t\t\t\t\t(lastItem.substr(-1) == \")\" && lastItem.indexOf(\"(\") == -1 )\n\t\t\t\t\t) {\n\t\t\t\t\t\tlastItem = lastItem.slice(0,-1);\n\t\t\t\t\t}\n\n\t\t\t\t\tartists = artists.concat( lastItem.split(/ And | & /) )\n\t\t\t\t\t\t.forEach(function(v) {\n\t\t\t\t\t\t\tif ( final_artists.indexOf(v) < 0 ) {\n\t\t\t\t\t\t\t\tfinal_artists.push(v);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\n\tvar allArtists = [];\n\tfinal_artists.forEach(function(a) {\n\t\tif ( a.indexOf(\"(\") > -1 && a.indexOf(\")\") < 0 ) {\n\t\t\ta = a.replace(\"(\",\"\");\n\t\t} else if ( a.indexOf(\")\") > -1 && a.indexOf(\"(\") < 0 ) {\n\t\t\ta = a.replace(\")\",\"\");\n\t\t}\n\t\tif ( a.indexOf(\"[\") > -1 && a.indexOf(\"]\") < 0 ) {\n\t\t\ta = a.replace(\"[\",\"\");\n\t\t} else if ( a.indexOf(\"]\") > -1 && a.indexOf(\"[\") < 0 ) {\n\t\t\ta = a.replace(\"]\",\"\");\n\t\t}\n\t\tallArtists.push(a.replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t});\n\tfinal_artists = allArtists;\n\tif ( !no_full_artist && final_artists.indexOf(doc.artist) < 0 ) { final_artists.push(doc.artist) };\n\treturn final_artists;\n}\n\n\n\n\tvar all = getArtists(true),one, temp = {};\n\n        if ( !all.indexOf(doc.artist) ) {\n                emit([doc.artist,doc.artist],null);\n        }\n\n\twhile ( one = all.pop() ) {\n           var spl = one.split(/\\s+/g);\n           spl.forEach ( function(v) {\n               if ( v.match(/\\w/) ) {\n               temp[v+' '+one] = true;\n               }\n           });\n//emit(temp,null);\n\t}\n\n        for ( var t in temp ) {\n                var i = t.indexOf(\" \");\n                var t2 = [ t.substring(0, (i)), t.substring((i+1)) ];\n                emit([t2[0],doc.artist],null);\n                emit([t2[0],t2[1]],null);\n        }\n\n\n}","reduce":"_count"},"artist":{"map":"function (doc) {\n\tif ( ! doc._id.substring(0,2) == 'aa' || !doc.reviewed || !doc.valid ) {\n\t\treturn ;\n\t}\n\n\nvar getArtists = function(no_full_artist) {\n\tvar featuring_separator = [ \"Featuring \",\"Feat.\",\"Feat \", \"Ft.\", \"Ft \",\"F/\" ];\n\tvar final_artists = [];\n\tvar artists;\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.artist.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\") ;\n\t\t\t\t\tvar lastartist = artists.pop();\n\t\t\t\t\tartists = artists.concat( lastartist.split(/ And | & /) );\n\t\t\t\t\tartists.unshift(spl[0].replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t\t\t\t\tfinal_artists = artists;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\tif ( !final_artists.length ) {\n\t\t\tfinal_artists.push(doc.artist);\n\t}\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.title.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\");\n\t\t\t\t\tvar lastItem= artists.pop();\n\t\t\t\t\tif ( \n\t\t\t\t\t\t(lastItem.substr(-1) == \"]\" && lastItem.indexOf(\"[\") == -1 ) ||\n\t\t\t\t\t\t(lastItem.substr(-1) == \")\" && lastItem.indexOf(\"(\") == -1 )\n\t\t\t\t\t) {\n\t\t\t\t\t\tlastItem = lastItem.slice(0,-1);\n\t\t\t\t\t}\n\n\t\t\t\t\tartists = artists.concat( lastItem.split(/ And | & /) )\n\t\t\t\t\t\t.forEach(function(v) {\n\t\t\t\t\t\t\tif ( final_artists.indexOf(v) < 0 ) {\n\t\t\t\t\t\t\t\tfinal_artists.push(v);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\n\tvar allArtists = [];\n\tfinal_artists.forEach(function(a) {\n\t\tif ( a.indexOf(\"(\") > -1 && a.indexOf(\")\") < 0 ) {\n\t\t\ta = a.replace(\"(\",\"\");\n\t\t} else if ( a.indexOf(\")\") > -1 && a.indexOf(\"(\") < 0 ) {\n\t\t\ta = a.replace(\")\",\"\");\n\t\t}\n\t\tif ( a.indexOf(\"[\") > -1 && a.indexOf(\"]\") < 0 ) {\n\t\t\ta = a.replace(\"[\",\"\");\n\t\t} else if ( a.indexOf(\"]\") > -1 && a.indexOf(\"[\") < 0 ) {\n\t\t\ta = a.replace(\"]\",\"\");\n\t\t}\n\t\tallArtists.push(a.replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t});\n\tfinal_artists = allArtists;\n\tif ( !no_full_artist && final_artists.indexOf(doc.artist) < 0 ) { final_artists.push(doc.artist) };\n\treturn final_artists;\n}\n\n\n\n\n\tvar all = getArtists(),one;\n\twhile ( one = all.pop() ) {\n\t\temit(one,null);\n\t}\n}","reduce":"_count"},"tokenized":{"map":"function (doc) {\n\tif ( ! doc._id.substring(0,2) == 'aa' || !doc.reviewed || !doc.valid ) {\n\t\treturn ;\n\t}\n\n\nvar getArtists = function(no_full_artist) {\n\tvar featuring_separator = [ \"Featuring \",\"Feat.\",\"Feat \", \"Ft.\", \"Ft \",\"F/\"];\n\tvar final_artists = [];\n\tvar artists;\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.artist.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\") ;\n\t\t\t\t\tvar lastartist = artists.pop();\n\t\t\t\t\tartists = artists.concat( lastartist.split(/ And | & /) );\n\t\t\t\t\tartists.unshift(spl[0].replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t\t\t\t\tfinal_artists = artists;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\tif ( !final_artists.length ) {\n\t\t\tfinal_artists.push(doc.artist);\n\t}\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.title.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\");\n\t\t\t\t\tvar lastItem= artists.pop();\n\t\t\t\t\tif ( \n\t\t\t\t\t\t(lastItem.substr(-1) == \"]\" && lastItem.indexOf(\"[\") == -1 ) ||\n\t\t\t\t\t\t(lastItem.substr(-1) == \")\" && lastItem.indexOf(\"(\") == -1 )\n\t\t\t\t\t) {\n\t\t\t\t\t\tlastItem = lastItem.slice(0,-1);\n\t\t\t\t\t}\n\n\t\t\t\t\tartists = artists.concat( lastItem.split(/ And | & /) )\n\t\t\t\t\t\t.forEach(function(v) {\n\t\t\t\t\t\t\tif ( final_artists.indexOf(v) < 0 ) {\n\t\t\t\t\t\t\t\tfinal_artists.push(v);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\n\tvar allArtists = [];\n\tfinal_artists.forEach(function(a) {\n\t\tif ( a.indexOf(\"(\") > -1 && a.indexOf(\")\") < 0 ) {\n\t\t\ta = a.replace(\"(\",\"\");\n\t\t} else if ( a.indexOf(\")\") > -1 && a.indexOf(\"(\") < 0 ) {\n\t\t\ta = a.replace(\")\",\"\");\n\t\t}\n\t\tif ( a.indexOf(\"[\") > -1 && a.indexOf(\"]\") < 0 ) {\n\t\t\ta = a.replace(\"[\",\"\");\n\t\t} else if ( a.indexOf(\"]\") > -1 && a.indexOf(\"[\") < 0 ) {\n\t\t\ta = a.replace(\"]\",\"\");\n\t\t}\n\t\tallArtists.push(a.replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t});\n\tfinal_artists = allArtists;\n\tif ( !no_full_artist && final_artists.indexOf(doc.artist) < 0 ) { final_artists.push(doc.artist) };\n\treturn final_artists;\n}\n\n\n\tvar all = getArtists(true),one;\n\twhile ( one = all.pop() ) {\n\t\temit([one,doc.title],null);\n\t}\n}","reduce":"_count"},"related":{"map":"function (doc) {\n\tif ( ! doc._id.substring(0,2) == 'aa' || !doc.reviewed || !doc.valid ) {\n\t\treturn ;\n\t}\n\n\n\nvar getArtists = function(no_full_artist) {\n\tvar featuring_separator = [ \"Featuring \", \"Feat.\",\"Feat \" , \"Ft.\", \"Ft \",\"F/\" ];\n\tvar final_artists = [];\n\tvar artists;\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.artist.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\") ;\n\t\t\t\t\tvar lastartist = artists.pop();\n\t\t\t\t\tartists = artists.concat( lastartist.split(/ And | & /) );\n\t\t\t\t\tartists.unshift(spl[0].replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t\t\t\t\tfinal_artists = artists;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\tif ( !final_artists.length ) {\n\t\t\tfinal_artists.push(doc.artist);\n\t}\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.title.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\");\n\t\t\t\t\tvar lastItem= artists.pop();\n\t\t\t\t\tif ( \n\t\t\t\t\t\t(lastItem.substr(-1) == \"]\" && lastItem.indexOf(\"[\") == -1 ) ||\n\t\t\t\t\t\t(lastItem.substr(-1) == \")\" && lastItem.indexOf(\"(\") == -1 )\n\t\t\t\t\t) {\n\t\t\t\t\t\tlastItem = lastItem.slice(0,-1);\n\t\t\t\t\t}\n\n\t\t\t\t\tartists = artists.concat( lastItem.split(/ And | & /) )\n\t\t\t\t\t\t.forEach(function(v) {\n\t\t\t\t\t\t\tif ( final_artists.indexOf(v) < 0 ) {\n\t\t\t\t\t\t\t\tfinal_artists.push(v);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\n\tvar allArtists = [];\n\tfinal_artists.forEach(function(a) {\n\t\tif ( a.indexOf(\"(\") > -1 && a.indexOf(\")\") < 0 ) {\n\t\t\ta = a.replace(\"(\",\"\");\n\t\t} else if ( a.indexOf(\")\") > -1 && a.indexOf(\"(\") < 0 ) {\n\t\t\ta = a.replace(\")\",\"\");\n\t\t}\n\t\tif ( a.indexOf(\"[\") > -1 && a.indexOf(\"]\") < 0 ) {\n\t\t\ta = a.replace(\"[\",\"\");\n\t\t} else if ( a.indexOf(\"]\") > -1 && a.indexOf(\"[\") < 0 ) {\n\t\t\ta = a.replace(\"]\",\"\");\n\t\t}\n\t\tallArtists.push(a.replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t});\n\tfinal_artists = allArtists;\n\tif ( !no_full_artist && final_artists.indexOf(doc.artist) < 0 ) { final_artists.push(doc.artist) };\n\treturn final_artists;\n}\n\n\n\tvar all = getArtists(true), tpl = all.slice(0), index = tpl.length;\n\tif (all.length<2 ) return ;\n\tfor ( var i = 0; i<index; i++ ) {\n\t\tvar value = tpl.slice(0);\n\t\tvalue.splice(i,1);\n\t\tfor ( var j=0, len = value.length;j<len; j++ ) {\n\t\t\temit(all[i], value[j] );\n\t\t\t\n\t\t}\n\t}\n}"},"basename":{"map":"function(doc) {\n\n\t\tif ( ! doc._id.substring(0,2) == 'aa' || !doc.reviewed || !doc.valid ) {\n\t\t\treturn ;\n\t\t}\n\t\temit([doc.artist, doc.title],null);\n}"},"albums":{"map":"function (doc) {\n\tif ( ! doc._id.substring(0,2) == 'aa' || !doc.reviewed || !doc.valid || !doc.album ) {\n\t\treturn ;\n\t}\n\n\nvar getArtists = function(no_full_artist) {\n\tvar featuring_separator = [ \"Featuring \", \"featuring \",\"Feat.\", \"feat.\",\"Feat \",\"feat \" , \"Ft.\",\"ft.\", \"Ft \",\"ft \",\"F/\",\"f/\" ];\n\tvar final_artists = [];\n\tvar artists;\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.artist.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\") ;\n\t\t\t\t\tvar lastartist = artists.pop();\n\t\t\t\t\tartists = artists.concat( lastartist.split(/ And | & /) );\n\t\t\t\t\tartists.unshift(spl[0].replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t\t\t\t\tfinal_artists = artists;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\tif ( !final_artists.length ) {\n\t\t\tfinal_artists.push(doc.artist);\n\t}\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.title.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\");\n\t\t\t\t\tvar lastItem= artists.pop();\n\t\t\t\t\tif ( \n\t\t\t\t\t\t(lastItem.substr(-1) == \"]\" && lastItem.indexOf(\"[\") == -1 ) ||\n\t\t\t\t\t\t(lastItem.substr(-1) == \")\" && lastItem.indexOf(\"(\") == -1 )\n\t\t\t\t\t) {\n\t\t\t\t\t\tlastItem = lastItem.slice(0,-1);\n\t\t\t\t\t}\n\n\t\t\t\t\tartists = artists.concat( lastItem.split(/ And | & /) )\n\t\t\t\t\t\t.forEach(function(v) {\n\t\t\t\t\t\t\tif ( final_artists.indexOf(v) < 0 ) {\n\t\t\t\t\t\t\t\tfinal_artists.push(v);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\n\tvar allArtists = [];\n\tfinal_artists.forEach(function(a) {\n\t\tif ( a.indexOf(\"(\") > -1 && a.indexOf(\")\") < 0 ) {\n\t\t\ta = a.replace(\"(\",\"\");\n\t\t} else if ( a.indexOf(\")\") > -1 && a.indexOf(\"(\") < 0 ) {\n\t\t\ta = a.replace(\")\",\"\");\n\t\t}\n\t\tif ( a.indexOf(\"[\") > -1 && a.indexOf(\"]\") < 0 ) {\n\t\t\ta = a.replace(\"[\",\"\");\n\t\t} else if ( a.indexOf(\"]\") > -1 && a.indexOf(\"[\") < 0 ) {\n\t\t\ta = a.replace(\"]\",\"\");\n\t\t}\n\t\tallArtists.push(a.replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t});\n\tfinal_artists = allArtists;\n\tif ( !no_full_artist && final_artists.indexOf(doc.artist) < 0 ) { final_artists.push(doc.artist) };\n\treturn final_artists;\n}\n\n\n\n\n\tvar all = getArtists(),one;\n\twhile ( one = all.pop() ) {\n\t\temit([one,doc.album],null);\n\t}\n}","reduce":"_count"},"genres":{"map":"function (doc) {\n\tif ( ! doc._id.substring(0,2) == 'aa' || !doc.reviewed || !doc.valid ) {\n\t\treturn ;\n\t}\n\n\nvar getArtists = function(no_full_artist) {\n\tvar featuring_separator = [ \"Featuring \", \"featuring \",\"Feat.\", \"feat.\",\"Feat \",\"feat \" , \"Ft.\",\"ft.\", \"Ft \",\"ft \",\"F/\",\"f/\" ];\n\tvar final_artists = [];\n\tvar artists;\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.artist.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\") ;\n\t\t\t\t\tvar lastartist = artists.pop();\n\t\t\t\t\tartists = artists.concat( lastartist.split(/ And | & /) );\n\t\t\t\t\tartists.unshift(spl[0].replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t\t\t\t\tfinal_artists = artists;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\tif ( !final_artists.length ) {\n\t\t\tfinal_artists.push(doc.artist);\n\t}\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.title.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\");\n\t\t\t\t\tvar lastItem= artists.pop();\n\t\t\t\t\tif ( \n\t\t\t\t\t\t(lastItem.substr(-1) == \"]\" && lastItem.indexOf(\"[\") == -1 ) ||\n\t\t\t\t\t\t(lastItem.substr(-1) == \")\" && lastItem.indexOf(\"(\") == -1 )\n\t\t\t\t\t) {\n\t\t\t\t\t\tlastItem = lastItem.slice(0,-1);\n\t\t\t\t\t}\n\n\t\t\t\t\tartists = artists.concat( lastItem.split(/ And | & /) )\n\t\t\t\t\t\t.forEach(function(v) {\n\t\t\t\t\t\t\tif ( final_artists.indexOf(v) < 0 ) {\n\t\t\t\t\t\t\t\tfinal_artists.push(v);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\n\tvar allArtists = [];\n\tfinal_artists.forEach(function(a) {\n\t\tif ( a.indexOf(\"(\") > -1 && a.indexOf(\")\") < 0 ) {\n\t\t\ta = a.replace(\"(\",\"\");\n\t\t} else if ( a.indexOf(\")\") > -1 && a.indexOf(\"(\") < 0 ) {\n\t\t\ta = a.replace(\")\",\"\");\n\t\t}\n\t\tif ( a.indexOf(\"[\") > -1 && a.indexOf(\"]\") < 0 ) {\n\t\t\ta = a.replace(\"[\",\"\");\n\t\t} else if ( a.indexOf(\"]\") > -1 && a.indexOf(\"[\") < 0 ) {\n\t\t\ta = a.replace(\"]\",\"\");\n\t\t}\n\t\tallArtists.push(a.replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t});\n\tfinal_artists = allArtists;\n\tif ( !no_full_artist && final_artists.indexOf(doc.artist) < 0 ) { final_artists.push(doc.artist) };\n\treturn final_artists;\n}\n\n\n\n\n\tvar all = getArtists(),one;\n\twhile ( one = all.pop() ) {\n\t\temit([one,doc.genre],null);\n\t}\n}","reduce":"_count"},"genre":{"map":"function (doc) {\n\tif ( ! doc._id.substring(0,2) == 'aa' || !doc.reviewed || !doc.valid ) {\n\t\treturn ;\n\t}\n\n\nvar getArtists = function(no_full_artist) {\n\tvar featuring_separator = [ \"Featuring \", \"Feat.\", \"Feat \", \"Ft.\", \"Ft \",\"F/\" ];\n\tvar final_artists = [];\n\tvar artists;\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.artist.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\") ;\n\t\t\t\t\tvar lastartist = artists.pop();\n\t\t\t\t\tartists = artists.concat( lastartist.split(/ And | & /) );\n\t\t\t\t\tartists.unshift(spl[0].replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t\t\t\t\tfinal_artists = artists;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\tif ( !final_artists.length ) {\n\t\t\tfinal_artists.push(doc.artist);\n\t}\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.title.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\");\n\t\t\t\t\tvar lastItem= artists.pop();\n\t\t\t\t\tif ( \n\t\t\t\t\t\t(lastItem.substr(-1) == \"]\" && lastItem.indexOf(\"[\") == -1 ) ||\n\t\t\t\t\t\t(lastItem.substr(-1) == \")\" && lastItem.indexOf(\"(\") == -1 )\n\t\t\t\t\t) {\n\t\t\t\t\t\tlastItem = lastItem.slice(0,-1);\n\t\t\t\t\t}\n\n\t\t\t\t\tartists = artists.concat( lastItem.split(/ And | & /) )\n\t\t\t\t\t\t.forEach(function(v) {\n\t\t\t\t\t\t\tif ( final_artists.indexOf(v) < 0 ) {\n\t\t\t\t\t\t\t\tfinal_artists.push(v);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\n\tvar allArtists = [];\n\tfinal_artists.forEach(function(a) {\n\t\tif ( a.indexOf(\"(\") > -1 && a.indexOf(\")\") < 0 ) {\n\t\t\ta = a.replace(\"(\",\"\");\n\t\t} else if ( a.indexOf(\")\") > -1 && a.indexOf(\"(\") < 0 ) {\n\t\t\ta = a.replace(\")\",\"\");\n\t\t}\n\t\tif ( a.indexOf(\"[\") > -1 && a.indexOf(\"]\") < 0 ) {\n\t\t\ta = a.replace(\"[\",\"\");\n\t\t} else if ( a.indexOf(\"]\") > -1 && a.indexOf(\"[\") < 0 ) {\n\t\t\ta = a.replace(\"]\",\"\");\n\t\t}\n\t\tallArtists.push(a.replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t});\n\tfinal_artists = allArtists;\n\tif ( !no_full_artist && final_artists.indexOf(doc.artist) < 0 ) { final_artists.push(doc.artist) };\n\treturn final_artists;\n}\n\n\n\n\n\tvar all = getArtists(),one;\n\twhile ( one = all.pop() ) {\n\t\temit([doc.genre,one],null);\n\t}\n}","reduce":"_count"},"hits":{"map":"function (doc) {\n\tif ( ! doc._id.substring(0,2) == 'aa' || !doc.reviewed || !doc.valid \n\t\t|| !doc.hits\n\t\t) {\n\t\treturn ;\n\t}\n\n\nvar getArtists = function(no_full_artist) {\n\tvar featuring_separator = [ \"Featuring \",\"Feat.\",\"Feat \", \"Ft.\", \"Ft \",\"F/\"];\n\tvar final_artists = [];\n\tvar artists;\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.artist.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\") ;\n\t\t\t\t\tvar lastartist = artists.pop();\n\t\t\t\t\tartists = artists.concat( lastartist.split(/ And | & /) );\n\t\t\t\t\tartists.unshift(spl[0].replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t\t\t\t\tfinal_artists = artists;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\tif ( !final_artists.length ) {\n\t\t\tfinal_artists.push(doc.artist);\n\t}\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.title.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\");\n\t\t\t\t\tvar lastItem= artists.pop();\n\t\t\t\t\tif ( \n\t\t\t\t\t\t(lastItem.substr(-1) == \"]\" && lastItem.indexOf(\"[\") == -1 ) ||\n\t\t\t\t\t\t(lastItem.substr(-1) == \")\" && lastItem.indexOf(\"(\") == -1 )\n\t\t\t\t\t) {\n\t\t\t\t\t\tlastItem = lastItem.slice(0,-1);\n\t\t\t\t\t}\n\n\t\t\t\t\tartists = artists.concat( lastItem.split(/ And | & /) )\n\t\t\t\t\t\t.forEach(function(v) {\n\t\t\t\t\t\t\tif ( final_artists.indexOf(v) < 0 ) {\n\t\t\t\t\t\t\t\tfinal_artists.push(v);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\n\tvar allArtists = [];\n\tfinal_artists.forEach(function(a) {\n\t\tif ( a.indexOf(\"(\") > -1 && a.indexOf(\")\") < 0 ) {\n\t\t\ta = a.replace(\"(\",\"\");\n\t\t} else if ( a.indexOf(\")\") > -1 && a.indexOf(\"(\") < 0 ) {\n\t\t\ta = a.replace(\")\",\"\");\n\t\t}\n\t\tif ( a.indexOf(\"[\") > -1 && a.indexOf(\"]\") < 0 ) {\n\t\t\ta = a.replace(\"[\",\"\");\n\t\t} else if ( a.indexOf(\"]\") > -1 && a.indexOf(\"[\") < 0 ) {\n\t\t\ta = a.replace(\"]\",\"\");\n\t\t}\n\t\tallArtists.push(a.replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t});\n\tfinal_artists = allArtists;\n\tif ( !no_full_artist && final_artists.indexOf(doc.artist) < 0 ) { final_artists.push(doc.artist) };\n\treturn final_artists;\n}\n\n\n\tvar all = getArtists(),one;\n\twhile ( one = all.pop() ) {\n\t\temit([one,doc.hits],null);\n\t}\n}","reduce":"_count"},"songsOrderedByAlbums":{"map":"function (doc) {\n\tif ( ! doc._id.substring(0,2) == 'aa' || !doc.reviewed || !doc.valid  ) {\n\t\treturn ;\n\t}\n\n\nvar getArtists = function(no_full_artist) {\n\tvar featuring_separator = [ \"Featuring \", \"featuring \",\"Feat.\", \"feat.\",\"Feat \",\"feat \" , \"Ft.\",\"ft.\", \"Ft \",\"ft \",\"F/\",\"f/\" ];\n\tvar final_artists = [];\n\tvar artists;\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.artist.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\") ;\n\t\t\t\t\tvar lastartist = artists.pop();\n\t\t\t\t\tartists = artists.concat( lastartist.split(/ And | & /) );\n\t\t\t\t\tartists.unshift(spl[0].replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t\t\t\t\tfinal_artists = artists;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\tif ( !final_artists.length ) {\n\t\t\tfinal_artists.push(doc.artist);\n\t}\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.title.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\");\n\t\t\t\t\tvar lastItem= artists.pop();\n\t\t\t\t\tif ( \n\t\t\t\t\t\t(lastItem.substr(-1) == \"]\" && lastItem.indexOf(\"[\") == -1 ) ||\n\t\t\t\t\t\t(lastItem.substr(-1) == \")\" && lastItem.indexOf(\"(\") == -1 )\n\t\t\t\t\t) {\n\t\t\t\t\t\tlastItem = lastItem.slice(0,-1);\n\t\t\t\t\t}\n\n\t\t\t\t\tartists = artists.concat( lastItem.split(/ And | & /) )\n\t\t\t\t\t\t.forEach(function(v) {\n\t\t\t\t\t\t\tif ( final_artists.indexOf(v) < 0 ) {\n\t\t\t\t\t\t\t\tfinal_artists.push(v);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\n\tvar allArtists = [];\n\tfinal_artists.forEach(function(a) {\n\t\tif ( a.indexOf(\"(\") > -1 && a.indexOf(\")\") < 0 ) {\n\t\t\ta = a.replace(\"(\",\"\");\n\t\t} else if ( a.indexOf(\")\") > -1 && a.indexOf(\"(\") < 0 ) {\n\t\t\ta = a.replace(\")\",\"\");\n\t\t}\n\t\tif ( a.indexOf(\"[\") > -1 && a.indexOf(\"]\") < 0 ) {\n\t\t\ta = a.replace(\"[\",\"\");\n\t\t} else if ( a.indexOf(\"]\") > -1 && a.indexOf(\"[\") < 0 ) {\n\t\t\ta = a.replace(\"]\",\"\");\n\t\t}\n\t\tallArtists.push(a.replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t});\n\tfinal_artists = allArtists;\n\tif ( !no_full_artist && final_artists.indexOf(doc.artist) < 0 ) { final_artists.push(doc.artist) };\n\treturn final_artists;\n}\n\n\n\tvar album = doc.album || null;\n        var tracknumber = doc.tracknumber || 0;\n\n\tvar all = getArtists(),one;\n\twhile ( one = all.pop() ) {\n\t\temit([one, album, tracknumber],null);\n\t}\n}"}},"lists":{"search":"function (head, ctx) {\n var back = {\"artists\": []};\n var row;\n \n\twhile (row = getRow() ) {\n\t\tif ( row.key ) {\n\t\t      var key = row.key[0];\n\t\t      if ( back.artists.indexOf(key) < 0 ) {\n\t\t        \n  \t\t      back.artists.push(key);\n  \t\t    }\n  }\n\t}\n back.artists.sort();\n\treturn JSON.stringify(back);\n}"}},{"_id":"_design/artistHits","language":"javascript","views":{"artists":{"map":"function (doc) {\n\tif ( doc._id != \"artistHits\" || ! ( \"artistsGenres\" in doc ) ) {\n\t\treturn ;\n\t}\n\tfor ( var genre in doc.artistsGenres ) {\n\t\tfor (var artist in doc.artistsGenres[genre] ) {\n\t\t\temit([genre, doc.artistsGenres[genre][artist], artist],null);\n\t\t}\n\t}\n\t\n}"}}},{"_id":"_design/genre","language":"javascript","views":{"name":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.genre.length > 0 \n       && doc.valid\n       && doc.reviewed ) {\n    emit ([doc.genre,doc.title], null);\n  }\n}","reduce":"_count"},"unsorted":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.genre.length > 0 \n       && doc.valid\n       && doc.reviewed ) {\n    emit (doc.genre, null);\n  }\n}"},"artist":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.genre.length > 0 \n       && doc.valid\n       && doc.reviewed ) {\n    emit ([doc.genre,doc.artist], null);\n  }\n}","reduce":"function (keys,values,rereduce) {\n\tvar maxlen=5;\n\t// { \"genre\": {\"count\": .. , \"artists\": [ \"artist\",\"artist\",\"artist\"] }\n\tif ( !rereduce ) {\n\t\tvar back = { count: 0, artists: [] };\n\t\tfor ( var k in keys ) {\n\t\t\tvar genre = keys[k][0][0];\n\t\t\tvar artist = keys[k][0][1];\n\t\t\tback.count ++;\n\t\t\tif ( back.artists.length < maxlen && back.artists.indexOf(artist) < 0 ) {\n\t\t\t\tback.artists.push(artist);\n\t\t\t}\n\t\t}\n\t\treturn back;\n\t}\n\tvar back = values.pop();\n\tfor ( var v in values ) {\n\t\tback.count += values[v].count;\n\t\tfor ( var a in values[v].artists ) {\n\t\t\tif ( back.artists.count < maxlen && back.artists.indexOf(values[v].artists[a]) < 0 ) {\n\t\t\t\tback.artists.push(values[v].artists[a]);\n\t\t\t}\n\t\t}\n\t}\n\treturn back;\n}"},"artists":{"map":"function (doc) {\n\n\n\nvar getArtists = function(no_full_artist) {\n\tvar featuring_separator = [ \"Featuring \", \"featuring \",\"Feat.\", \"feat.\",\"Feat \",\"feat \" , \"Ft.\",\"ft.\", \"Ft \",\"ft \",\"F/\",\"f/\" ];\n\tvar final_artists = [];\n\tvar artists;\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.artist.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\") ;\n\t\t\t\t\tvar lastartist = artists.pop();\n\t\t\t\t\tartists = artists.concat( lastartist.split(/ And | & /) );\n\t\t\t\t\tartists.unshift(spl[0].replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t\t\t\t\tfinal_artists = artists;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\tif ( !final_artists.length ) {\n\t\t\tfinal_artists.push(doc.artist);\n\t}\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.title.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\");\n\t\t\t\t\tvar lastItem= artists.pop();\n\t\t\t\t\tif ( \n\t\t\t\t\t\t(lastItem.substr(-1) == \"]\" && lastItem.indexOf(\"[\") == -1 ) ||\n\t\t\t\t\t\t(lastItem.substr(-1) == \")\" && lastItem.indexOf(\"(\") == -1 )\n\t\t\t\t\t) {\n\t\t\t\t\t\tlastItem = lastItem.slice(0,-1);\n\t\t\t\t\t}\n\n\t\t\t\t\tartists = artists.concat( lastItem.split(/ And | & /) )\n\t\t\t\t\t\t.forEach(function(v) {\n\t\t\t\t\t\t\tif ( final_artists.indexOf(v) < 0 ) {\n\t\t\t\t\t\t\t\tfinal_artists.push(v);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\n\tvar allArtists = [];\n\tfinal_artists.forEach(function(a) {\n\t\tif ( a.indexOf(\"(\") > -1 && a.indexOf(\")\") < 0 ) {\n\t\t\ta = a.replace(\"(\",\"\");\n\t\t} else if ( a.indexOf(\")\") > -1 && a.indexOf(\"(\") < 0 ) {\n\t\t\ta = a.replace(\")\",\"\");\n\t\t}\n\t\tif ( a.indexOf(\"[\") > -1 && a.indexOf(\"]\") < 0 ) {\n\t\t\ta = a.replace(\"[\",\"\");\n\t\t} else if ( a.indexOf(\"]\") > -1 && a.indexOf(\"[\") < 0 ) {\n\t\t\ta = a.replace(\"]\",\"\");\n\t\t}\n\t\tallArtists.push(a.replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t});\n\tfinal_artists = allArtists;\n\tif ( !no_full_artist && final_artists.indexOf(doc.artist) < 0 ) { final_artists.push(doc.artist) };\n\treturn final_artists;\n}\n\n\n\n\n\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.genre.length > 0 \n       && doc.valid\n       && doc.reviewed ) {\n\n\n\n\n\n\n\n\n\n\tvar artists = getArtists(true);\n\tartists.forEach(function(a) {\n\t    emit ([doc.genre,a], null);\n\t});\n  }\n}","reduce":"_count"},"albums":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.genre.length > 0 \n       && doc.valid\n       && doc.reviewed\n\t&& doc.album ) {\n    emit ([doc.genre,doc.album], null);\n  }\n}","reduce":"_count"},"song-hits":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.genre.length > 0 \n       && doc.valid\n       && doc.reviewed\n\t&& \"hits\" in doc && doc.hits) {\n    emit ([doc.genre,doc.hits], null);\n  }\n}"},"artist-hits":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.genre.length > 0 \n       && doc.valid\n       && doc.reviewed\n\t&& \"hits\" in doc && doc.hits) {\nvar getArtists = function(no_full_artist) {\n\tvar featuring_separator = [ \"Featuring \",\"Feat.\",\"Feat \", \"Ft.\", \"Ft \",\"F/\"];\n\tvar final_artists = [];\n\tvar artists;\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.artist.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\") ;\n\t\t\t\t\tvar lastartist = artists.pop();\n\t\t\t\t\tartists = artists.concat( lastartist.split(/ And | & /) );\n\t\t\t\t\tartists.unshift(spl[0].replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t\t\t\t\tfinal_artists = artists;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\tif ( !final_artists.length ) {\n\t\t\tfinal_artists.push(doc.artist);\n\t}\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.title.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\");\n\t\t\t\t\tvar lastItem= artists.pop();\n\t\t\t\t\tif ( \n\t\t\t\t\t\t(lastItem.substr(-1) == \"]\" && lastItem.indexOf(\"[\") == -1 ) ||\n\t\t\t\t\t\t(lastItem.substr(-1) == \")\" && lastItem.indexOf(\"(\") == -1 )\n\t\t\t\t\t) {\n\t\t\t\t\t\tlastItem = lastItem.slice(0,-1);\n\t\t\t\t\t}\n\n\t\t\t\t\tartists = artists.concat( lastItem.split(/ And | & /) )\n\t\t\t\t\t\t.forEach(function(v) {\n\t\t\t\t\t\t\tif ( final_artists.indexOf(v) < 0 ) {\n\t\t\t\t\t\t\t\tfinal_artists.push(v);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\n\tvar allArtists = [];\n\tfinal_artists.forEach(function(a) {\n\t\tif ( a.indexOf(\"(\") > -1 && a.indexOf(\")\") < 0 ) {\n\t\t\ta = a.replace(\"(\",\"\");\n\t\t} else if ( a.indexOf(\")\") > -1 && a.indexOf(\"(\") < 0 ) {\n\t\t\ta = a.replace(\")\",\"\");\n\t\t}\n\t\tif ( a.indexOf(\"[\") > -1 && a.indexOf(\"]\") < 0 ) {\n\t\t\ta = a.replace(\"[\",\"\");\n\t\t} else if ( a.indexOf(\"]\") > -1 && a.indexOf(\"[\") < 0 ) {\n\t\t\ta = a.replace(\"]\",\"\");\n\t\t}\n\t\tallArtists.push(a.replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t});\n\tfinal_artists = allArtists;\n\tif ( !no_full_artist && final_artists.indexOf(doc.artist) < 0 ) { final_artists.push(doc.artist) };\n\treturn final_artists;\n}\n\n\n\tvar all = getArtists(),one;\n\twhile ( one = all.pop() ) {\n\t\temit([doc.genre,one, doc.hits],null);\n\t}\n  }\n}","reduce":"_count"},"creation":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.genre.length > 0 \n       && doc.valid\n       && doc.reviewed ) {\n    emit ([doc.genre,doc.ts_creation], null);\n  }\n}"},"songInfos":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.genre.length > 0 \n       && doc.valid\n       && doc.reviewed\n\t&& doc.album ) {\n    emit (doc.genre, {count: 1, duration: doc.duration});\n  }\n}","reduce":"function(keys, values) {\n\tvar back = {count: 0, duration: 0};\n\tfor ( var i in values ) {\n            back.count += values[i].count;\n            back.duration += values[i].duration;\n        }\n\treturn back;\n}"}}},{"_id":"_design/images","language":"javascript","views":{"sha1":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.valid\n       && doc.reviewed && doc.images && doc.images.length ) {\n\n\tdoc.images.forEach(function(img) {\n\t\temit (img.sha1, img.filename);\n\t});\n\n\n\n  }\n}"},"filename":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.valid\n       && doc.reviewed && doc.images && doc.images.length ) {\n\n\tdoc.images.forEach(function(img) {\n\t\temit (img.filename,null);\n\t});\n\n\n\n  }\n}"}}},{"_id":"_design/pagination","lists":{"mapping":"function (head, ctx) {\n var back = {\"id\": [], \"key\": [], \"count\": 0};\n// var dbg = [];\n\tvar row ;\n\tvar rpp = ctx.query.rpp ? ctx.query.rpp : 20;\n\tvar i = 1;\n\twhile (row = getRow() ) {\n \t//dbg.push ( {\"i\": i, \"doc\": row.id} );\n\t\tif ( i == 1 ) {\n\t\t  back.id.push ( row.id  ) ;\n\t\t  back.key.push ( row.key ) ;\n\t\t} else if ( i == rpp ) {\n\t\t  i=0;\n\t\t}\n\t\ti++;back.count++;\n\t}\n\treturn JSON.stringify({\"pages\":back});\n}"}},{"_id":"_design/references","language":"javascript","views":{"songs":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'pl' && doc.songs) {\n    for ( var i in doc.songs ) {\n      emit (doc.songs[i], null);\n    }\n  } else if ( doc._id.substr(0,2) == \"aa\" ) {\n    emit (doc._id, null);\n  }\n}"}}},{"_id":"_design/s_user","language":"javascript","views":{"name":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.valid\n       && doc.reviewed ) {\n    emit ([doc.user, doc.title], null);\n  }\n}"}}},{"_id":"_design/song","language":"javascript","views":{"artist":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.artist.length > 0 \n       && doc.valid && doc.reviewed ) {\n    emit (doc.artist, 1);\n  }\n}","reduce":"function (key, values, rereduce) {\n    return sum(values);\n}\n"},"search":{"map":"function (doc) {\n\tif ( doc._id.substring(0,2) == 'aa' \n\t\t\t&& doc.valid && doc.valid == true && doc.reviewed == true ) {\n\t\tvar nochar=new RegExp(\"[\\.,_?!\\\\[\\\\]\\\\{\\\\}\\\\(\\\\)]\",\"g\");\n\t\tvar reg=new RegExp(\" \", \"g\");\n\n\n\nvar getArtists = function(no_full_artist) {\n\tvar featuring_separator = [ \"Featuring \", \"featuring \",\"Feat.\", \"feat.\",\"Feat \",\"feat \" , \"Ft.\",\"ft.\", \"Ft \",\"ft \",\"F/\",\"f/\" ];\n\tvar final_artists = [];\n\tvar artists;\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.artist.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\") ;\n\t\t\t\t\tvar lastartist = artists.pop();\n\t\t\t\t\tartists = artists.concat( lastartist.split(/ And | & /) );\n\t\t\t\t\tartists.unshift(spl[0].replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t\t\t\t\tfinal_artists = artists;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\tif ( !final_artists.length ) {\n\t\t\tfinal_artists.push(doc.artist);\n\t}\n\n\tfor ( var i in featuring_separator ) {\n\t\t\tvar spl = doc.title.split(featuring_separator[i],2);\n\t\t\tif ( spl.length == 2 ) {\n\t\t\t\t\tartists = spl[1].split(\",\");\n\t\t\t\t\tvar lastItem= artists.pop();\n\t\t\t\t\tif ( \n\t\t\t\t\t\t(lastItem.substr(-1) == \"]\" && lastItem.indexOf(\"[\") == -1 ) ||\n\t\t\t\t\t\t(lastItem.substr(-1) == \")\" && lastItem.indexOf(\"(\") == -1 )\n\t\t\t\t\t) {\n\t\t\t\t\t\tlastItem = lastItem.slice(0,-1);\n\t\t\t\t\t}\n\n\t\t\t\t\tartists = artists.concat( lastItem.split(/ And | & /) )\n\t\t\t\t\t\t.forEach(function(v) {\n\t\t\t\t\t\t\tif ( final_artists.indexOf(v) < 0 ) {\n\t\t\t\t\t\t\t\tfinal_artists.push(v);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\n\tvar allArtists = [];\n\tfinal_artists.forEach(function(a) {\n\t\tif ( a.indexOf(\"(\") > -1 && a.indexOf(\")\") < 0 ) {\n\t\t\ta = a.replace(\"(\",\"\");\n\t\t} else if ( a.indexOf(\")\") > -1 && a.indexOf(\"(\") < 0 ) {\n\t\t\ta = a.replace(\")\",\"\");\n\t\t}\n\t\tif ( a.indexOf(\"[\") > -1 && a.indexOf(\"]\") < 0 ) {\n\t\t\ta = a.replace(\"[\",\"\");\n\t\t} else if ( a.indexOf(\"]\") > -1 && a.indexOf(\"[\") < 0 ) {\n\t\t\ta = a.replace(\"]\",\"\");\n\t\t}\n\t\tallArtists.push(a.replace(/^\\s+/,\"\").replace(/\\s+$/,\"\"));\n\t});\n\tfinal_artists = allArtists;\n\tif ( !no_full_artist && final_artists.indexOf(doc.artist) < 0 ) { final_artists.push(doc.artist) };\n\treturn final_artists;\n}\n\n\n\n\t\tvar tab=doc.title\n\t\t\t\t.replace(nochar,'').split(reg);\n\t\tfor ( var index in tab ) {\n\t\t\tif ( tab[index].length > 2 ) {\n\t\t\t\temit ( tab[index], {\n\t\t\t\t\t'text': doc.title+' (by '+doc.artist+')',\n\t\t\t\t\t'json': { 'field': 'title', 'value': doc.title }\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\temit ( doc.title, {\n\t\t\t'text': doc.title+' (by '+doc.artist+')',\n\t\t\t'json': { 'field': 'title', 'value': doc.title }\n\t\t\t});\n\t\t\n\t\tvar tab=getArtists();\n\t\tfor ( var index in tab ) {\n\t\t\tvar tab2 = tab[index].replace(nochar,'').split(reg);\n\t\t\tfor (var index2 in tab2 ) {\n\t\t\tif ( tab2[index2].length > 2 ) {\n\t\t\t\temit ( tab2[index2], {\n\t\t\t\t\t'text': 'artist: '+tab[index],\n\t\t\t\t\t'json': { 'field': 'artist', 'value': tab[index] }\n\t\t\t\t});\n\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\temit ( doc.artist, {\n\t\t\t'text': 'artist: '+doc.artist,\n\t\t\t'json': { 'field': 'artist', 'value': doc.artist }\n\t\t});\n\n\n\t\tif ( doc.album && doc.album.length ) {\n\t\t\temit ( doc.album, {\n\t\t\t\t'text': 'album: '+doc.album+' (by '+doc.artist+')',\n\t\t\t\t'json': { 'field': 'album', 'value': doc.album }\n\t\t\t\t});\n\n\t\t\tvar tab=doc.album\n\t\t\t\t\t.replace(nochar,'').split(reg);\n\t\t\tfor ( var index in tab ) {\n\t\t\t\tif ( tab[index].length > 2 ) {\n\t\t\t\t\temit ( tab[index], {\n\t\t\t\t\t'text': 'album: '+doc.album+' (by '+doc.artist+')',\n\t\t\t\t\t'json': { 'field': 'album', 'value': doc.album }\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}"},"title":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.title.length > 0 \n       && doc.valid && doc.reviewed ) {\n    emit (doc.title, null);\n  }\n}","reduce":"_count"},"sha1":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.sha1 ) {\n    emit (doc.sha1, null);\n  }\n}"},"length":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.duration \n       && doc.valid && doc.reviewed ) {\n    emit (doc._id, doc.duration);\n  }\n}","reduce":"_sum"}}},{"_id":"_design/title","views":{"name":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.title.length > 0 \n       && doc.valid\n       && doc.reviewed ) {\n    emit ([doc.title,doc.artist], null);\n  }\n}","reduce":"_count"},"search":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.valid\n       && doc.reviewed ) {\n \n    var nochar=new RegExp(\"[\\.,_?!\\\\[\\\\]\\\\{\\\\}\\\\(\\\\)]\",\"g\");\n    var reg=new RegExp(\" \", \"g\");\n    var tab=doc.title\n              .replace(nochar,'').split(reg);\n    for ( var index in tab ) {\n      if ( tab[index].length > 2 ) {\n         emit ( [tab[index],doc.title], null);\n      }\n    }\n  } \n}"}},"lists":{"search":"function (head, ctx) {\n var back = {\"titles\": []};\n var row;\n var lastKey = \"\";\n\twhile (row = getRow() ) {\n\t\tif ( row.key ) {\n\t\t      var key = row.key.pop();\n\t\t      if ( lastKey != key ) {\n\t\t        lastKey = key;\n  \t\t      back.titles.push(key);\n  \t\t    }\n  }\n\t}\n back.titles.sort();\n\treturn JSON.stringify(back);\n}"},"language":"javascript"},{"_id":"_design/ts_creation","views":{"name":{"map":"function (doc) {\n  if ( doc._id.substring(0,2) == 'aa' \n       && doc.valid\n       && doc.reviewed ) {\n    emit ([doc.ts_creation,doc.title], null);\n  }\n}","reduce":"_count"}}},{"_id":"_design/user","language":"javascript","views":{"song":{"map":"function(doc) {\n  if ( doc._id.substring(0,2) == 'aa' ) {\n    emit([doc.user,doc.reviewed] ,null);\n  }\n}"},"all_infos":{"map":"function(doc) {\n  if ( doc._id.substring(0,2) == 'us' ) {\n    emit([ doc._id.substr(2) ,'us'] ,null);\n  } else if ( doc._id.substring(0,2) == 'pr' ) {\n    emit([ doc._id.substr(2) ,'pr'] ,null);\n  } else if ( doc._id.substring(0,2) == 'up' ) {\n    emit([ doc._id.substr(2) ,'up'] ,null);\n  } else if ( doc._id.substring(0,2) == 'pl' ) {\n    emit([ doc.user.substr(2) ,'pl'] ,null);\n  } else if ( doc._id.substring(0,2) == 'se' ) {\n    emit([ doc.user.substr(2) ,'se'] ,null);\n  }\n}"}}}]