//<![CDATA[
/*
dafare:
.download
.gestioneutente e amministratore(da index2.asp)
*/
os=new Object()
os.lpag=20 // lunghezza pagina
// utility
os.via=false
os.listabrani=""
os.totrecord=0
os.totresult=0
os.unico=""
os.filtroattivo=0
os.ricerca=""
os.npag=1
os.totpag=0
os.dettaglioattivo=""
os.recordmodificato=false
os.tabedit=new Array()
os.changed1=false
os.changed2=false
os.conmodifiche=false
os.nuovomp3demo=""
os.nuovomp3master=""
isen=("<%=lang%>"=="en")
// legge il file
$(document).ready(function(){
    $.ajax({
        type: "POST",
        url: "os.asp",
        contentType: "Text/Html",
        success: creatab,
        error: errori1
        })
    $.ajax({
        type: "POST",
        url: "os2.asp",
        contentType: "Text/Html",
        success: creatab2,
        error: errori2
        })
    });
//
function errori1(){
    if(!clickedmenu){
        alert(((isen)?"Errors loading browser interface, now redirect on whole list":"Si sono verificati errori nel caricamento dell' interfaccia, ora verrete reindirizzati al catalogo statico."))
        document.location="catalogo2.asp"
        }
    }
function errori2(){
    if(!clickedmenu){
        alert(((isen)?"Errors loading browser interface, please try reloading":"Si sono verificati errori nel caricamento dell' interfaccia, provare a ricaricare l'interfaccia."))
        }
    }

function creatab2(str){
    var tabrecord=str.split("@")
    for(var i=0;i<tabrecord.length;i++){
        var appo1=tabrecord[i].split("~")
        appo2=new Array()
        appo2[0]=appo1[0]           //  0 utilizzo
        appo2[1]=appo1[1]           //  1 atmosfera
        appo2[2]=appo1[2]           //  2 strumenti
        appo2[3]=appo1[3]           //  3 stile
        appo2[4]=appo1[4]           //  4 andamento
        appo2[5]=appo1[5]           //  5 autori
        appo2[6]=appo1[6]           //  6 cd
        appo2[7]=appo1[7]           //  7 codice
        appo2[8]=appo1[8]           //  8 versione
        appo2[9]=appo1[9]           //  9 titolo
        appo2[10]=appo1[10]         // 10 durata
        appo2[11]=appo1[11]         // 11 it
        appo2[12]=appo1[12]         // 12 en
        appo2[13]=traduci(appo1)    // 13 stringa ricerca
        appo2[14]=eval(appo1[13])   // 14 pubblico
        appo2[15]=true              // 15 dafare
        appo2[16]=false             // 16 mp3 demo
        appo2[17]=eval(appo1[14])   // 17 mp3 demo
        appo2[18]=eval(appo1[15])   // 18 mp3 master
        appo2[19]=""                // 19 nome mp3 demo
        appo2[20]=""                // 20 nome wav
        appo2[21]=eval(appo1[16])   // Novità
        os.rec.push(appo2)
        }
    creatabelle()
    dotestata()
    dopaginaricerca()
    os.via=true
    }
function creatab(str){
    var cta=str.split("#")
    var tabfilesupload=cta[0].split("|")
    var tabpermessi=cta[1].split("@")
    var tabtabelle=cta[2].split("@")
    var tabrecord=cta[3].split("@")
    os.totrecord=cta[4]
    os.totresult=cta[4]
    os.tabupload=tabfilesupload
    os.per=new Array()
    os.per[0]=eval(tabpermessi[0])
    os.per[1]=eval(tabpermessi[1])
    os.tab=new Array()
    for(var i=0;i<tabtabelle.length;i++){
        var appo0=new Array()
        var appo1=tabtabelle[i].split("~")
        var nometabella=appo1[0].split("|")
        for(var j=1;j<appo1.length;j++){
            appo0.push(appo1[j].split("^"))
            }
        os.tab.push(new Array(nometabella,new Array(),appo0))
        }
    os.rec=new Array()
    for(var i=0;i<tabrecord.length;i++){
        var appo1=tabrecord[i].split("~")
        appo2=new Array()
        appo2[0]=appo1[0]         //  0 utilizzo
        appo2[1]=appo1[1]         //  1 atmosfera
        appo2[2]=appo1[2]         //  2 strumenti
        appo2[3]=appo1[3]         //  3 stile
        appo2[4]=appo1[4]         //  4 andamento
        appo2[5]=appo1[5]         //  5 autori
        appo2[6]=appo1[6]         //  6 cd
        appo2[7]=appo1[7]         //  7 codice
        appo2[8]=appo1[8]         //  8 versione
        appo2[9]=appo1[9]         //  9 titolo
        appo2[10]=appo1[10]       // 10 durata
        appo2[11]=appo1[11]       // 11 it
        appo2[12]=appo1[12]       // 12 en
        appo2[13]=traduci(appo1)  // 13 stringa ricerca
        appo2[14]=eval(appo1[13]) // 14 pubblico
        appo2[15]=true            // 15 dafare
        appo2[16]=false           // 16 mp3 demo
        appo2[17]=eval(appo1[14]) // 17 mp3 demo
        appo2[18]=eval(appo1[15]) // 18 mp3 master
        appo2[19]=""              // 19 nome mp3 demo
        appo2[20]=""              // 20 nome wav
        appo2[21]=eval(appo1[16]) // Novità
        os.rec.push(appo2)
        //os.totrecord++
        }
    $("#info").empty()
    //$("#testocatalogo").hide()
    $("#filter").html("<br><div align=center class=fontpiccolo><img src='img/aspetta5.gif' align=absmiddle>&nbsp;&nbsp;"+((isen)?"Wait while loading search engine.... meanwhile you can browse the result of the first page":"Attendere il caricamento dell'interfaccia di ricerca, nel frattempo potete visionare i brani della prima pagina")+"</div>")
    dorisultati()
    /*
    */
    }

function traduci(riga){
    var str=""
    $.each(os.tab,function(colonna,valore){
        str+=((str=="")?"":", ")+traducicampo(riga,colonna)
        })
    return(str.toUpperCase())
    }

function traducicampo(riga,colonna){
    var str=""
    var appo3=riga[colonna].split("|")
    $.each(appo3,function(iii,indice){
        str+=((str=="")?"":", ")+cod2nome(indice,colonna)
        })
    return(str)
    }

function cod2nome(ind,tab){
    for(var j=0;j<os.tab[tab][2].length;j++){
        if(ind==os.tab[tab][2][j][2]) return(os.tab[tab][2][j][0])
        }
    return("")
    }
//####################
// funzioni di tabella
//####################
function creatabelle(){
    os.unico=""
    os.totresult=0
    for(var x=0;x<7;x++){
        for(var xx=0;xx<os.tab[x][2].length;xx++){
            os.tab[x][2][xx][1]=0
            }
        }
    $.each(os.rec,function(ind,riga){
        var dafare=true
        if(os.ricerca!=""){
            var val=riga.join(",").toUpperCase()
            dafare=(val.indexOf(os.ricerca.toUpperCase())!=-1)
            z=1
            }
        if(dafare){
            for(var colonna=0;colonna<os.tab.length;colonna++){
                for(var idfiltro=0;idfiltro<os.tab[colonna][1].length;idfiltro++){
                    var dafare=controllafiltro(riga,colonna,os.tab[colonna][1][idfiltro])
                    if(!dafare) break
                    }
                if(!dafare) break
                }
            }
        if(dafare){
            addintab(riga)
            os.totresult++
            os.unico=riga
            }
        riga[15]=dafare
        })
    if(os.totresult>1) os.unico=""
    }
function controllafiltro(riga,colonna,valore){      // prendo il FILTRO e controllo se esiste nel CAMPO
    var val="|"+riga[colonna]+"|"
    return(val.indexOf("|"+valore+"|")!=-1)
    }
function esistenelfiltro(colonna,valore){           // prendo il CAMPO e controllo se esiste nel FILTRO
    var allfiltro="|"+os.tab[colonna][1].join("|")+"|"
    return(allfiltro.indexOf("|"+valore+"|")==-1)
    }
function addintab(riga){
    for(var w=0;w<7;w++){
        trovato=false
        var indtabella=w
        var valoridaaggiungere=riga[w].split("|")
        for(var ww=0;ww<valoridaaggiungere.length;ww++){
            var valoredaaggiungere=valoridaaggiungere[ww]
            for(var www=0;www<os.tab[w][2].length;www++){
                var valoretabella=os.tab[w][2][www][2]
                if(valoretabella==valoredaaggiungere){
                    os.tab[w][2][www][1]++
                    trovato=true
                    break
                    }
                }
            }
        }
    }

//############################
// funzioni di ricerca
//############################
function dotestata(){
    var str=""
        str+="<div id='filtrobutton' class='riga clearfix' >                         "
        str+="    <a href=# onclick='tog(\"filtro\");return(false)'>"+((isen)?"Search":"Ricerca")+"</a>      "
        str+="</div>                                                                 "
        str+="<div id='filtro' ></div>"
        str+="<div class=clear></div>                                                "
        $("#filter").html(str)
        $("#filtro").hide();
        var filtro=""
        filtro+="    <div class='riga clearfix' >                                       "
        filtro+="      <a href=# onclick='tog(\"help\");return(false)'>                 "
        filtro+="        <span style='float:right;color:#ccc;cursor:hand;'>"+((isen)?"Help":"Aiuto")+"</span> "
        filtro+="      </a>                                                             "
        filtro+="    </div>                                                             "
        filtro+="    <div id='help' class='rigahelp fontpiccolo' ></div>                "
        filtro+="    <div id='contenitore' class='box'></div>                           "
        $("#filtro").html(filtro)
        var aiuto=""
        $("#help").hide();
        if(isen){
            aiuto+="<ul><li>Is it possible to search for full or partial text or choose from various categories"
            aiuto+=".</li><li>Beside categories is shown the number of selectable products.</li><li>"
            aiuto+="Multiple choices are available for some categories.</li>"
            aiuto+="<li>To remove a filter click on the red <span class=rosso>X</span>.</li>"
            aiuto+="<li>To close a selection window click on the blue <span class=blu>&#9650</font></li>"
            aiuto+="<li><span class=rosso>Only registered users can download the pieces in complete version.</span></li></ul>"
            }
        else{
            aiuto+="<ul><li>E' possibile effettuare ricerche per testo libero o scegliere tra le varie "
            aiuto+="categorie.</li><li>Accanto alle scelte viene mostrato il numero di brani corrispondenti.</li><li>"
            aiuto+="Per alcune categorie è possibile effettuare più di una scelta.</li>"
            aiuto+="<li>Per togliere una selezione dal filtro cliccare sulla <span class=rosso>X</span> rossa.</li>"
            aiuto+="<li>Per chiudere una finestra di selezione cliccare sul <span class=blu>&#9650</font> blu.</li>"
            aiuto+="<li><span class=rosso>Solo gli utenti registrati possono effettuare il download dei brani in versione integrale.</span></li></ul>"
            }
        $("#help").html(aiuto)
    }

function dopaginaricerca(){
    str=""
    $("#contenitore").empty()
    $("#contenitore").hide()
    str+='    <div class="riga clearfix">'
    str+='        <div class="caption">'+((isen)?"Free text search":"Ricerca testo libero")+'<\/div>'
    str+='        <div class="contenuto" >'
    str+="          <div id='boxric' class=boxselezione><\/div>"
    str+='        <\/div>'
    str+='    <\/div>'
    $("#contenitore").append(str)
    for(var colonna=0;colonna<os.tab.length;colonna++){
        var str=""
        var appo1=(isen)?os.tab[colonna][0][1]:os.tab[colonna][0][0]
        var caption=appo1.charAt(0).toUpperCase()+appo1.substr(1).toLowerCase()
        str+='    <div class="riga clearfix">'
        str+='        <div class="caption">'+caption+'<\/div>'
        str+='        <div class="contenuto" >'
        str+="        <div id='boxsel"+colonna+"' class=boxselezione><\/div>"
        str+="        <div id='boxsce"+colonna+"' class=boxscelte><\/div>"
        str+="        <div id='boxbut"+colonna+"' class=boxbutton><\/div>"
        str+='        <\/div>'
        str+='    <\/div>'
        $("#contenitore").append(str)
        $("#boxsel"+colonna).hide()
        $("#boxsce"+colonna).hide()
        doboxbut(colonna)
        }
    doboxric()
    //dorisultati()
    $("#contenitore").show("normal")
    }

function aggiungifiltro(colonna,valore){
    toglifiltroattivo()


    //
    os.tab[colonna][1].push(valore)
    //
    os.npag=1
    creatabelle()
    $.each(os.tab,function(ccc,vvv){
        doboxsel(ccc)
        doboxbut(ccc)
        })
    doboxric()
    dorisultati()
    }

function toglifiltro(colonna,indice){
    toglifiltroattivo()
    //
    var appotf=new Array()
    for(var z=0;z<os.tab[colonna][1].length;z++){
        if(z!=indice)appotf.push(os.tab[colonna][1][z])
        }
    os.tab[colonna][1]=appotf
    //
    npag=1
    creatabelle()
    $.each(os.tab,function(ccc,vvv){
        doboxsel(ccc)
        doboxbut(ccc)
        })
    doboxric()
    dorisultati()
    }

function cerca(){
    toglifiltroattivo()
    var trovato=false
    var valric=document.getElementById("cerca").value
    var valricTU=valric.toUpperCase()
    if(valric==""){
        alert("Inserire un valore da cercare")
        return(false)
        }
    for(var i=0;i<os.rec.length;i++){
        if(os.rec[i][12]){
            var appo=os.rec[i].join(",").toUpperCase()
            if(appo.indexOf(valricTU)!=-1){
                trovato=true
                break
                }
            }
        }

    if(!trovato){
        alert("La ricerca di '"+valric+"' nei record selezionati non ha prodotto risultati")
        }
    else{
        os.ricerca=valric
        creatabelle()
        $.each(os.tab,function(ccc,vvv){
            doboxsel(ccc)
            doboxbut(ccc)
            })
        dorisultati()
        doboxric()
        }
    }
function togliricerca(){
    os.ricerca=""
    creatabelle()
    $.each(os.tab,function(ccc,vvv){
        doboxsel(ccc)
        doboxbut(ccc)
        })
    doboxric()
    dorisultati()
    }
//---------------------------------------------------------------------------
function doboxric(){
    $("#boxric").hide()
    var str=""
    if(os.ricerca!=""){
        str+='     <a href=# onclick="togliricerca();return(false)"><span style="float:right;color:#F00;cursor:hand;">X<\/span><\/a>'
        }
    str+='        <input type="text" size="30" id="cerca" value="'+os.ricerca+'">&nbsp<a href="#" onclick="cerca();return(false)" ><img src="img/cerca.gif" border=0></a>'
    $("#boxric").html(str);
    $("#boxric").show("normal");
    }


function doboxbut(colonna){
    $("#boxbut"+colonna).hide()
    var filtrati=totfiltrati(colonna)
    if(os.totresult>1 && filtrati>1){
        var str='<a href=# onclick="aprisceltafiltro('+colonna+');return(false)"><div class=button>'+((isen)?"Choose":"Scegli")+'<\/div><\/a>' ;
        $("#boxbut"+colonna).html(str);
        $("#boxbut"+colonna).show("normal");
        }
    }

function totfiltrati(colonna){
    var tott=0
    for(var t=0;t<os.tab[colonna][2].length;t++){
        if(os.tab[colonna][2][t][1]!=0) tott++
        }
    return(tott)
    }
function filtrounico(colonna){
    for(var t=0;t<os.tab[colonna][2].length;t++){
        if(os.tab[colonna][2][t][1]!=0) return(os.tab[colonna][2][t][0])
        }
    }

function doboxsce(colonna){
    $("#boxbut"+colonna).hide()
    $("#boxsce"+colonna).hide()
    var str=""
    var filtrati=totfiltrati(colonna)
    if(filtrati>1 && os.totresult>1){
        str='<a href=# onclick="chiudifiltroattivo();return(false)"><span style="float:right;color:#00f;cursor:hand;">&#9650<\/span><\/a>'
        var oldlettera=""
        $.each(os.tab[colonna][2],function(ind,val){
            var scriviriga=true
            strxxx=""
            var valore=val[0]
            var totale=val[1]
            var indice=val[2]
            var appo="/"+os.tab[colonna][1].join("/")+"/"
            if(appo.indexOf("/"+indice+"/")!=-1 || totale==0){
                var scriviriga=false
                }
            if(scriviriga){
                var lettera=valore.charAt(0)
                if(lettera!=oldlettera && filtrati>30){
                    var strxxx="<span style='font-size:150%;'>"+lettera+"</span>"+valore.substr(1)
                    oldlettera=lettera
                    }
                else{
                    strxxx=valore
                    }
                }
            str+=(scriviriga)?"<a href=# onclick=\"aggiungifiltro("+colonna+","+indice+");return(false)\">"+strxxx+"<\/a> ("+totale+")<br/>":""
            })
        $("#boxsce"+colonna).html(str)
        $("#boxsce"+colonna).show("normal")
        }
    }

function doboxsel(colonna){
    $("#boxsel"+colonna).hide()
    var str=""
    var filtrati=totfiltrati(colonna)
    if(os.tab[colonna][1].length>0||os.totresult==1||filtrati==1){

        $.each(os.tab[colonna][1],function(ind,val){
            str+="<div class='clearfix'>"
            str+="<a href=# onclick=\"toglifiltro("+colonna+","+ind+") ;return(false)\"><span style='float:right;color:#F00;cursor:hand;'>X<\/span><\/a>"
            str+=cod2nome(val,colonna)
            str+="</div>"
            })

        if(os.totresult==1){
            var appo1=os.unico[colonna].split("|")
            var ssr=""
            for(var i=0;i<appo1.length;i++){
                appo2="|"+os.tab[colonna][1].join("|")+"|"
                if(appo2.indexOf(appo1[i])==-1){
                    ssr+=((ssr=="")?"":", ")+cod2nome(appo1[i],colonna)
                    }
                }
            str+=(ssr!="")?"<div class='clearfix'><font color=#777>"+ssr+"</font></div>":""
            }
        else{
            if(filtrati==1){
                str+="<div class='clearfix'>"+filtrounico(colonna)+"</div>"
                }
            }
        $("#boxsel"+colonna).html(str)
        $("#boxsel"+colonna).show("normal")
        }
    else{
        }
    }


//---------------------------------------------------------------------------



function aprisceltafiltro(colonna){
    chiudifiltroattivo()
    doboxsce(colonna)
    os.filtroattivo=colonna+1
    }

function chiudifiltroattivo(){
    if(os.filtroattivo>0){
        $("#boxbut"+(os.filtroattivo-1)).show("")
        }
    toglifiltroattivo()
    }

function toglifiltroattivo(){
    if(os.filtroattivo!=""){
        $("#boxsce"+(os.filtroattivo-1)).hide("normal")
        os.filtroattivo=0
        }
    }


function tog(ogg){
    var oggetto = document.getElementById(ogg);
    $(oggetto).slideToggle("normal");
    zzz=0
    }




function dorisultati(){

    var str=""
    if($("#result").html()==""){
        str+="<div id='rigapagine1' class='rpagine fontpiccolo'></div>"
        str+="<div class=clear></div>                                 "
        str+="<div id='risultati'></div>                              "
        str+="<div class=clear></div>                                 "
        str+="<div id='rigapagine2' class='rpagine fontpiccolo'></div>"
        str+="<div class=clear></div>                                 "
        $("#result").html(str)
        }
    str=""
    $("#risultati").hide()
    $("#risultati").empty()
    $("#rigapagine1").hide()
    $("#rigapagine2").hide()
    os.totpag=Math.floor(os.totresult/os.lpag)+1
    var fd="<font color=#fcc>&#9654</font>"
    var fs="<font color=#fcc>&#9664</font>"
    var fx="<font color=#fcc>&#9665</font>"

    str+="<div class='boxsx clearfix'>"
    str+="<span class=fontgrande>"+os.totresult+"</span>"
    str+="</div><div class='boxdx clearfix'>"
    if(isen){
        if(os.totresult==os.totrecord)  str+="The OpenSound Database contains "+os.totresult+" pieces. Please select from categories in Search area or choose from the list above"
        else if(os.totresult==1)        str+="One piece has been selected, for a broader selection deactivate some selection"
        else                            str+=""+os.totresult+" pieces were found. Please select from categories in Search area or choose from the list above"
        }
    else{
        if(os.totresult==os.totrecord)  str+="Il database OpenSound contiene "+os.totresult+" brani. Effettuare una selezione nelle categorie qui sopra o scegliere nell'elenco qui sotto"
        else if(os.totresult==1)        str+="E'stato trovato un brano, per una maggiore scelta modificare le selezioni qui sopra"
        else                            str+="Sono stati trovati "+os.totresult+" brani. Effettuare ulteriori selezioni nelle categorie qui sopra o scegliere nell'elenco qui sotto"
        }
    str+="</div>"
    $("#info").html(str)
    str=""
    if(os.totpag>1){
        if(os.totpag>0){
            str+=(os.npag!=1)?"<a href=# onclick='cambiapagina(1); return(false)'>&nbsp;"+fs+fs+"<\/a>&nbsp;":"&nbsp;"+fx+fx+"&nbsp;"
            str+=(os.npag!=1)?"<a href=# onclick='cambiapagina("+(os.npag-1)+"); return(false)'>&nbsp;"+fs+"<\/a>&nbsp;":"&nbsp;"+fx+"&nbsp;"
            for(var i=1;i<os.totpag+1;i++){
                if(i==os.npag){
                    str+="<b>"+i+"<\/b> "
                    }
                else{
                    str+="<a href=# onclick='cambiapagina("+i+"); return(false)'>"+i+"<\/a> "
                    }
                }
            str+=(os.npag!=os.totpag+1)?"&nbsp;<a href=# onclick='cambiapagina("+(os.npag+1)+"); return(false)'>"+fd+"<\/a>&nbsp;":""
            str+=(os.npag!=os.totpag+1)?"&nbsp;<a href=# onclick='cambiapagina("+(os.totpag+1)+"); return(false)'>"+fd+fd+"<\/a>":""
            }
        if(str!=""){
            str="<div class=rigapagine>"+str+"<\/div>"
            $("#rigapagine1").html(str)
            $("#rigapagine2").html(str)
            $("#rigapagine1").show("normal")
            $("#rigapagine2").show("normal")
            str=""
            }
        }
    var recda=(os.npag-1)*os.lpag
    str=""
    if(os.conmodifiche && os.per[0]){
        str+="<div class='rigareg clearfix' >"
        str+="<a href=# onclick='registramodifiche();return(false)'>Registra modifiche</a>"
        str+="</div>"
        }
    $("#risultati").append(str)
    var conta=0
    var recpadre=false
    for(var i=0;i<os.rec.length;i++){
        val=os.rec[i]
        if(val[15]){
            conta++
            if (val[8]=="") recpadre=val
            if(conta>recda){
                if(val[8]==""){
                    $("#risultati").append(dobox(val,"",false))
                    doboxdes(val[7],val[8],false)
                    }
                else{
                    if(recpadre && recpadre[7]==val[8] && conta>recda+1){
                        $("#risultati").append(dobox(recpadre,val,false))
                        doboxdes(val[7],val[8],false)
                        }
                    else{
                        recpadre=os.rec[trovapadre(val[8],"")]
                        $("#risultati").append(dobox(recpadre,val,true))
                        doboxdes(val[7],val[8],false)
                        }
                    }

                }
            if(conta>recda+(os.lpag-1)) break
            }
        }
    $("#risultati").show("normal")
    }

function cambiapagina(npag){
    if(os.via){
        os.npag=npag
        dorisultati()
        }
    else{
        alert((isen)?"Pleas wait the loading of search engine interface":"Attendere il caricamento dell'interfaccia di ricerca")
        }
    }


function trovapadre(ind,ver){
    for(var v=0;v<os.rec.length;v++){
        if(os.rec[v][7]==ind && os.rec[v][8]==ver) return(v)
        }
    return(false)
    }

function trovadescpadre(ind){
    for(var v=0;v<os.rec.length;v++){
        if(os.rec[v][7]==ind && os.rec[v][8]=="") return(os.rec[v][((isen)?12:11)])
        }
    return(false)
    }

function dobox(ppp,fff,isorfano){
    var str=""
    var modificato=(fff=="")?ppp[16]:fff[16]
    var pubblico=(fff=="")?ppp[14]:fff[14]
    var novita=(fff=="")?ppp[21]:fff[21]
    if(pubblico || os.per[0]){
        str+="  <div class='rigar clearfix "+((!pubblico)?"nascosto":"")+" "+((modificato)?"modificato":"")+" '>"
        str+="      <div class='boxsx clearfix'>"
        str+=           (fff=="")?ppp[9]:"<span class=grigio>"+ppp[9]+"</span>"

        str+="<span class=fontpiccolo>"
        str+=(novita)?"<span class='rosso grassetto'>&nbsp;"+((isen)?"NEW!":"NUOVO!")+"</span>":""
        str+=(modificato)?" (M) ":""
        str+=(!pubblico)?" (H) ":""
        str+="</span>"
        str+="      <\/div>"
        str+="      <div class='boxdx clearfix fontpiccolo'>"
        str+=           (fff=="")?"<a href=# onclick='doboxdes(\""+ppp[7]+"\",\"\",true);return(false)'>"+ppp[((isen)?12:11)]+"</a>":(((isorfano)?ppp[((isen)?12:11)]+"<br>":"")  +"<a href=# onclick='doboxdes(\""+fff[7]+"\",\""+fff[8]+"\",true);return(false)'>"+fff[((isen)?12:11)]+"</a>")
        str+="      <\/div>"
        str+="      <div class=clearfix><\/div>"
        str+="      <div id='des"+((fff=="")?ppp[7]:fff[7])+"' class='boxdes fontpiccolo'>"
        str+="      <\/div>"
        str+="  <\/div>"
        }
    return(str)
    //
    }
function doboxdes(ID,Ver,shw){
    var str=""
    if(os.dettaglioattivo!=""){
        $("#des"+os.dettaglioattivo).hide("normal")
        }
    if(os.dettaglioattivo!=ID){
        var indpadre=trovapadre(ID,Ver)
        var record=os.rec[indpadre]
        str+="<div class='boxsx'>"
        str+=(record[17])?"<a href=# onclick='playdemo("+indpadre+");return(false)'>Play demo</a><br>":"no Demo<br>"
        str+=(os.per[1])?((record[18])?"<a href=# onclick='download("+indpadre+");return(false)'>Download master</a><br>":"no Master<br>"):""
        str+=(os.per[0])?"<a href=# onclick='edit("+indpadre+");return(false)'>Edit</a>":""
        str+="</div>"
        str+="<div class=boxdescrizione>"
        str+="<span class=rosso>"+os.tab[0][0][(isen)?1:0]+":</span> " +traducicampo(record,0)+"<br>"
        str+="<span class=rosso>"+os.tab[1][0][(isen)?1:0]+":</span> " +traducicampo(record,1)+"<br>"
        str+="<span class=rosso>"+os.tab[2][0][(isen)?1:0]+":</span> " +traducicampo(record,2)+"<br>"
        str+="<span class=rosso>"+os.tab[3][0][(isen)?1:0]+":</span> " +traducicampo(record,3)+"<br>"
        str+="<span class=rosso>"+os.tab[4][0][(isen)?1:0]+":</span> " +traducicampo(record,4)+"<br>"
        str+="<span class=rosso>"+os.tab[5][0][(isen)?1:0]+":</span> " +traducicampo(record,5)+"<br>"
        str+="<span class=rosso>"+os.tab[6][0][(isen)?1:0]+":</span> " +traducicampo(record,6)+"<br>"
        str+="<span class=rosso>"+((isen)?"Length":"Durata")+":</span> "    +record[10]+" "
        /*
        */
        str+="</div>"

        $("#des"+ID).html(str)
        if(shw){
            $("#des"+ID).show("normal")
            os.dettaglioattivo=ID
            }
        else{
            $("#des"+ID).hide()
            }
        }
    else{
        os.dettaglioattivo=""
        }
    }


//###########################################
//edit
//###########################################
function cambiaidpadre(indice,indrecord){
    var str1=""
    var str2=""
    var str3=""
    var str4=""
    if(indice==""){
        str1+="<input type=text name='e_titolo' value='"+os.rec[indrecord][9]+"' onchange='os.changed1=true'>"
        str2+="<textarea name='e_descrizioneit' cols=25 rows=2 onchange='os.changed1=true'>"+os.rec[indrecord][11]+"</textarea>"
        str3+="<input type=hidden name='e_versione' value=''>"
        str4+="<textarea name='e_descrizioneen' cols=25 rows=2 onchange='os.changed1=true'>"+os.rec[indrecord][12]+"</textarea>"
        }
    else{
        str1+="<input type=hidden name='e_titolo' value='"+os.rec[indice][9]+"'>"+os.rec[indice][9]
        str2+=os.rec[indice][11]+"<br>"
        str2+="<textarea name='e_descrizioneit' cols=25 rows=2 onchange='os.changed1=true'>Versione </textarea>"
        str3+="<input type=hidden name='e_versione' value='"+os.rec[indice][7]+"'>"
        str4+=os.rec[indice][12]+"<br>"
        str4+="<textarea name='e_descrizioneen' cols=25 rows=2 onchange='os.changed1=true'>Version </textarea>"
        }
    $("#TB_window #edit_titolo").html(str1)
    $("#TB_window #edit_descrizioneit").html(str2)
    $("#TB_window #edit_descrizioneen").html(str4)
    $("#TB_window #edit_versione").html(str3)
    }
function configli(ID){
    var appo=os.rec[ID][7]
    for(var i=0;i<os.rec.length;i++){
        if(os.rec[i][8]==appo) return(true)
        }
    return(false)
    }

function edit(ID){
    os.changed=false
    var str="<div class=bottone><a href=# onclick='salvamodifiche("+ID+")'>Salva</a></div>"
    var record=os.rec[ID]
    str+="<table width=691 border=0><tr><td valign=top>"
    //--------------------
    str+="<div id='edit_record'><input type=hidden name='e_record' value="+ID+"></div>"
    str+="<div class='winriga clearfix'><div class='winsx'>id brano:</div>                 <div class='windx'>"+record[7]+ "</div></div>"
    str+="<div id='edit_codice'><input type=hidden name='e_codice' value="+record[7]+"></div>"
    //
    if(configli(ID)){
        str+="<div class='winriga clearfix'><div class='winsx'>&nbsp;</div><div class='windx'>Brano con versioni secondarie</div></div>"
        str+="<div id='edit_versione'><input type=hidden name='e_versione' value=''></div>"
        }
    else{
        str+="<div class='winriga clearfix'><div class='winsx'>id versione principale:</div>   <div class='windx'>"
        str+="<div id='edit_versione'><input type=hidden name='e_versione' value='"+record[8]+"'></div>"
        str+="<select name='e_versione' onchange='cambiaidpadre(this.options[this.options.selectedIndex].value,"+ID+");os.changed2=true;return(null)'>"
        str+="<option value='' "+((record[8]=="")?"selected":"")+">Nessuna</option>"
        for(var i=0;i<os.rec.length;i++){
            var val=os.rec[i]
            if(val[8]=="" && val[7]!=record[7]){
                str+="<option value='"+i+"' "+((record[8]!=val[7])?"":"selected")+">"+val[7]+" - "+val[9]+"</option>"
                }
            }
        str+="</select>"
        str+="</div></div>"
        }

    //
    str+="<div class='winriga clearfix'><div class='winsx'>Titolo:</div>                   <div id='edit_titolo' class='windx'>"
    str+=(record[8]=="")?"<input type=text name='e_titolo' value='"+togliapici(record[9])+"' onchange='os.changed1=true'>":"<input type=hidden name='e_titolo' value='"+record[9]+"'>"+record[9]
    str+="</div></div>"
    //
    //
    str+="<div class='winriga clearfix'><div class='winsx'>Descrizione (italiano):</div>         <div id='edit_descrizioneit' class='windx'>"
    str+=((record[8]=="")?"":trovadescpadre(record[8])+"<br>")+"<textarea name='e_descrizioneit' cols=25 rows=4 onchange='os.changed1=true'>"+record[11]+"</textarea>"
    str+="</div></div>"
    //
    str+="<div class='winriga clearfix'><div class='winsx'>Description (English):</div>         <div id='edit_descrizioneen' class='windx'>"
    str+="<textarea name='e_descrizioneen' cols=25 rows=4 onchange='os.changed1=true'>"+record[12]+"</textarea>"
    str+="</div></div>"
    //
    str+="<div class='winriga clearfix'><div class='winsx'>Durata:</div>                   <div id='edit_durata' class='windx'>"
    str+="<input type=text name='e_durata' value='"+togliapici(record[10])+"' onchange='os.changed1=true'>"
    str+="</div></div>"
    //
    str+="<div class='winriga clearfix'><div class='winsx'>"
    str+="Pubblico:<input type=checkbox id='e_pubblico' "+((record[14])?" checked":"")+" onchange='os.changed1=true'></div><div class=windx>"
    str+="Novità:  <input type=checkbox id='e_novita'   "+((record[21])?" checked":"")+" onchange='os.changed1=true'>"
    str+="</div></div>"

    os.nuovomp3demo=""
    os.nuovomp3master=""
    str+="<div class='winriga clearfix'><div class='winsx'>MP3 Demo:</div>   <div class='windx'>"
    str+="<select onchange='os.nuovomp3demo=this.options[this.options.selectedIndex].value;os.changed1=true;return(null)'>"
    str+="<option value='' selected>"+((record[17])?"Cambiare...":"Scegliere un file MP3")+"</option>"
    for(var i=0;i<os.tabupload.length;i++){
        var appo=os.tabupload[i].toUpperCase()
        if(appo.indexOf(".MP3")!=-1){
            str+="<option value='"+os.tabupload[i]+"' >"+os.tabupload[i]+"</option>"
            }
        }
    str+="</select>"
    str+=((record[17])?"<span class=sound>demo/"+record[7]+".mp3</span>":"<span class=rosso>Nessun file mp3</span>")
    str+="</div></div>"
    //
    str+="<div class='winriga clearfix'><div class='winsx'>Mp3 Master:</div>   <div class='windx'>"
    str+="<select onchange='os.nuovomp3master=this.options[this.options.selectedIndex].value;os.changed1=true;return(null)'>"
    str+="<option value='' selected>"+((record[18])?"Cambiare...":"Scegliere un file MP3")+"</option>"
    for(var i=0;i<os.tabupload.length;i++){
        var appo=os.tabupload[i].toUpperCase()
        if(appo.indexOf(".MP3")!=-1){
            str+="<option value='"+os.tabupload[i]+"' >"+os.tabupload[i]+"</option>"
            }
        }
    str+="</select>"
    str+=((record[18])?"<span class=sound>master/"+record[7]+".mp3</span>":"<span class=rosso>Nessun file MP3</span>")
    str+="</div></div>"
    //---------------------------

    //
    str+="</td><td  valign=top>"
    //----------------------------------
    //
    for(var i=0;i<7;i++){
        os.tabedit[i]=os.rec[ID][i].split("|")
        str+="<div class='winriga clearfix'><div class='winsx'>"+os.tab[i][0][0]+":</div>                 <div id='edit_tab"+i+"'class='windx'>"
        str+=doselectedit(i,ID)
        str+=doelencoedit(i,ID)
        str+="</div></div>"
        }
    //-------------------------------------
    str+="</td></tr></table>"
    str+=""
    $("#edit").html(str)
    $(".sound").jmp3({
        backcolor: "2277aa",
        forecolor: "ffff00",
        showdownload: "false",
        showfilename: "false",
        repeat: "false",
        width: 25,
        autoplay: "false"
        })
    TB_show("<span id=editmsg></span>", "#TB_inline?height=450&width=700&inlineId=edit", false);
    }

function doelencoedit(tab,ID){
    var str=""
    if(os.tabedit[tab]!="undefined"){
        var appo=os.tabedit[tab]
        if(appo.length==1){
            str+=cod2nome(appo[0],tab)+" ("+appo[0]+")"
            }
        else{
                for(var i=0;i<appo.length;i++){
                    str+=((str=="")?"":", ")+"<a href=# onclick='toglielencoedit("+tab+","+ID+","+appo[i]+");os.changed2=true;return(false)'>"+cod2nome(appo[i],tab)+" ("+appo[i]+")</a>"
                    }
            }
        }
    str+=(str!="")?"":""
    return(str)
    }

function doselectedit(tab,ID){
    var str=""
    var appo1=os.tabedit[tab]
    str+="<select onchange='aggiungielencoedit("+tab+","+ID+",this.options[this.options.selectedIndex].value);os.changed2=true;return(false)' STYLE='width: 200px'>"
    str+="<option value=''>Aggiungi</option>"
    for(var i=0;i<os.tab[tab][2].length;i++){
        var appo2=os.tab[tab][2][i][2]
        var dafare=true
        for(var j=0;j<appo1.length;j++){
            if(appo2==appo1[j]){
                dafare=false
                break
                }
            }
        if(dafare) str+="<option value='"+appo2+"'>"+cod2nome(appo2,tab)+" ("+appo2+")</option>"
        }
    str+="</select><br>"
    return(str)
    }

function aggiungielencoedit(tab,ID,indice){
    os.tabedit[tab].push(indice)
    var str=""
    str+=doselectedit(tab,ID)
    str+=doelencoedit(tab,ID)
    $("#TB_window #edit_tab"+tab).html(str)
    }

function toglielencoedit(tab,ID,indice){
    var str=""
    var appo0=new Array()
    for(var i=0;i<os.tabedit[tab].length;i++){
        if(os.tabedit[tab][i]!=indice) appo0.push(os.tabedit[tab][i])
        }
    os.tabedit[tab]=appo0
    str+=doselectedit(tab,ID)
    str+=doelencoedit(tab,ID)
    $("#TB_window #edit_tab"+tab).html(str)
    }

function salvamodifiche(){
    var codice  =$("#TB_window #edit_codice input").val()
    var versione=$("#TB_window #edit_versione input").val()
    var idrec   =$("#TB_window #edit_record input").val()
    var appo=new Array()
    appo[0]=(os.tabedit[0].length>0)?os.tabedit[0].join("|"):""                 //  0 utilizzo
    appo[1]=(os.tabedit[1].length>0)?os.tabedit[1].join("|"):""                    //  1 atmosfera
    appo[2]=(os.tabedit[2].length>0)?os.tabedit[2].join("|"):""                    //  2 strumenti
    appo[3]=(os.tabedit[3].length>0)?os.tabedit[3].join("|"):""                    //  3 stile
    appo[4]=(os.tabedit[4].length>0)?os.tabedit[4].join("|"):""                    //  4 andamento
    appo[5]=(os.tabedit[5].length>0)?os.tabedit[5].join("|"):""                    //  5 autori
    appo[6]=(os.tabedit[6].length>0)?os.tabedit[6].join("|"):""                    //  6 cd
    appo[7]=codice                                                              //  7 codice
    appo[8]=versione                                                            //  8 versione
    appo[9]=$("#TB_window #edit_titolo input").val()                            //  9 titolo
    appo[10]=$("#TB_window #edit_durata input").val()                           // 10 durata
    appo[11]=$("#TB_window #edit_descrizioneit textarea").val()                 // 11 it
    appo[12]=$("#TB_window #edit_descrizioneen textarea").val()                 // 12 en
    appo[13]=""                                                                 // 13 stringa ricerca
    appo[14]=($("#TB_window #e_pubblico:checked").val()+""=="null")?false:true  // 14 pubblico
    appo[15]=true                                                               // 15 dafare
    appo[16]=true                                                               // 16 modificato
    appo[17]=(os.nuovomp3demo!="")   ?true:os.rec[idrec][17]                   // 17 file mp3
    appo[18]=(os.nuovomp3master!="") ?true:os.rec[idrec][18]                   // 17 file wav
    appo[19]=os.nuovomp3demo                                                    // 19 modificato
    appo[20]=os.nuovomp3master                                                  // 20 modificato
    appo[21]=($("#TB_window #e_novita:checked").val()+""=="null")?false:true    // 21 novità
    os.rec[idrec]=appo
    os.conmodifiche=true
    os.changed1=false
    os.changed2=false
    creatabelle()
    dorisultati()
    $("#editmsg").html("<span class=messaggio>Modifiche salvate!!</span>")
    }

function chiudifinestra(){
    if(os.changed2 || os.changed1){
        if(confirm("Sono state effettuate delle modifiche su questo brano!!\nPer registrare i cambiamenti cliccare su OK")){
            salvamodifiche()
            /*
            $.each(os.tab,function(ccc,vvv){
                doboxsel(ccc)
                doboxbut(ccc)
                })
            doboxric()
            */
            }
        os.changed1=false
        os.changed2=false
        }
    }

function registramodifiche(){
    var salvatutto=false
    if(confirm("Salvare tutti i brani modificati?")){
        var salvatutto=true
        }
    else{
        if(!confirm("Per salvare singolarmente i brani modificati cliccare OK")){
            return(false)
            }
        }
    var record=""
    errori=false
    for(var i=0;i<os.rec.length;i++){
        record=os.rec[i]
        if(record[16]){
            if(!salvatutto){
                if(!confirm("Premere OK per salvare le modifiche effettuate sul brano\n\n("+record[7]+"-"+record[8]+") "+record[9]+"\n"+record[11]+"")){
                    break
                    }
                }
            qstring=""
            qstring+="utilizzazione=" +escape(record[0])+"&"
            qstring+="atmosfera="     +escape(record[1])+"&"
            qstring+="strumenti="     +escape(record[2])+"&"
            qstring+="stile="         +escape(record[3])+"&"
            qstring+="andamento="     +escape(record[4])+"&"
            qstring+="autori="        +escape(record[5])+"&"
            qstring+="cd="            +escape(record[6])+"&"
            qstring+="codice="        +escape(record[7])+"&"
            qstring+="versione="      +escape(record[8])+"&"
            qstring+="titolo="        +escape(record[9])+"&"
            qstring+="durata="        +escape(record[10])+"&"
            qstring+="descrizioneit=" +escape(record[11])+"&"
            qstring+="descrizioneen=" +escape(record[12])+"&"
            qstring+="pubblico="      +escape(record[14])+"&"
            qstring+="mp3demo="       +escape(record[19])+"&"
            qstring+="mp3master="     +escape(record[20])+"&"
            qstring+="novita="        +escape(record[21])+""
            var appoxx=qstring
            var a=0
            $.ajax({
                type: "POST",
                url: "regrec.asp",
                data: qstring,
                success: function(){
                    if(!salvatutto){
                        alert("Registrazione effettuata con successo!!")
                        }
                    },
                error: function(obj,err){
                    errori=true
                    alert("Errori nella registrazione !!\n\nbrano "+record[7]+"-"+record[8]+"\n"+err+"\n--------\n")
                    }
                });
            }
        record=os.rec[i][16]=false
        }
    if(salvatutto && !errori){
        alert("La registrazione di tutti i brani modificati è stata effettuata con successo!!")
        }
    os.conmodifiche=false
    creatabelle()
    creatabelle()
    $.each(os.tab,function(ccc,vvv){
        doboxsel(ccc)
        doboxbut(ccc)
        })
    doboxric()
    dorisultati()
    }

function download(ID){
    if(os.via){
        var a1=traducicampo(os.rec[ID],5)
        var a2=a1.replace(/,\s/g,"-")
        var appo=os.rec[ID][9]+((os.rec[ID][8]!="")?" ("+os.rec[ID][((isen)?12:11)]+")":"")+" - "+a2+" - OpenSoundMusic.Mp3"
        //
        var nomefile=escape(appo)
        uuu="downloadutente.asp?id="+os.rec[ID][7]+"&nomefile="+nomefile+"&user="+os.per[1]+""
        document.location=uuu
        str=""
        if(isen) str+="<b>The downloading of \""+os.rec[ID][9]+"\" should now begin automatically.</b><div class=fontpiccolo>If download doesn't start, right click the link abve and select 'Save Target as' (Mac users select 'Download Linked File').</div>"
        else     str+="<b>Il download del brano \""+os.rec[ID][9]+"\" dovrebbe iniziare automaticamente</b><div class=fontpiccolo>Se il download non dovesse partire, potete fare click destro sul link qui sotto e selezionare 'Salva destinazione con nome' (Utenti Mac selezionate 'Download Linked File').</div>"
        str+="<b ><a style='color:blue 'href=http://www.opensoundmusic.com/download/"+nomefile+">"+unescape(nomefile)+"</a></b>"
        str+="<div class='' id=dnl_utilizzazione>"
        if(isen) str+=" <div class=messaggio>While downloading please take the time to let us know how you intend to use this song.</div>"
        else     str+=" <div class=messaggio>Per favore, Durante il download indicate, se possibile, l' utilizzazione che intendete fare di questo brano.</div>"
        str+="          <textarea name='e_utilizzo' cols=64 rows=3></textarea>"
        str+="          <a href=# onclick='inviaupinfo("+os.rec[ID][7]+")'><div class=bottone>"+((isen)?"Send informations":"Invia informazioni")+"</div></a>"
        str+="</div>"
        $("#download").html(str)
        TB_show("", "#TB_inline?height=250&width=550&inlineId=download", false);
        }
    else{
        alert((isen)?"Please wait for the loading of search engine interface":"Attendere il caricamento dell'interfaccia di ricerca")
        }
    }

function inviaupinfo(ID){
    var qstring=""
    qstring+="id="+ID
    qstring+="&user="+os.per[1]
    qstring+="&info="+(escape($("#TB_window #dnl_utilizzazione textarea").val()))
    $.ajax({
        type: "post",
        url: "inviaupinfo.asp",
        data: qstring,
        error: function(obj,err){
            alert("errore "+err)
            }
        })
    var str=""
    if(isen)  str+="<div class=messaggio>Thanks for sending this information, now you can continue browsing the site or download other Mp3s.</div>"
    else      str+="<div class=messaggio>Grazie per aver inviato queste informazioni. Ora potete proseguire con la navigazione nel sito o con il download di altri brani.</div>"
    $("#TB_ajaxContent #dnl_utilizzazione").html(str)
    }



function playdemo(ID){

    var record=os.rec[ID]
    var titolo=""
    var descrizione=""
    if(record[8]==""){
        var titolo=record[9]+" - Sample Demo"
        var descrizione=record[((isen)?12:11)]
        }
    else{
        var titolo=record[9]+" ("+record[((isen)?12:11)]+") - Sample Demo"
        var descrizione=trovadescpadre(record[8])
        }
    var str=""
    str+=descrizione
    str+="<span class=sound>demo/"+record[7]+".mp3</span>"
    str+="<div class=boxdescrizione2>"
        str+="<span class=rosso>"+os.tab[0][0][(isen)?1:0]+":</span> " +traducicampo(record,0)+"<br>"
        str+="<span class=rosso>"+os.tab[1][0][(isen)?1:0]+":</span> " +traducicampo(record,1)+"<br>"
        str+="<span class=rosso>"+os.tab[2][0][(isen)?1:0]+":</span> " +traducicampo(record,2)+"<br>"
        str+="<span class=rosso>"+os.tab[3][0][(isen)?1:0]+":</span> " +traducicampo(record,3)+"<br>"
        str+="<span class=rosso>"+os.tab[4][0][(isen)?1:0]+":</span> " +traducicampo(record,4)+"<br>"
        str+="<span class=rosso>"+os.tab[5][0][(isen)?1:0]+":</span> " +traducicampo(record,5)+"<br>"
        str+="<span class=rosso>"+os.tab[6][0][(isen)?1:0]+":</span> " +traducicampo(record,6)+"<br>"
        str+="<span class=rosso>"+((isen)?"Length":"Durata")+":</span> "    +record[10]+" "
    str+="</div>"
    str+=(os.per[1]==0)?"Per scaricare la versione integrale occorre essere registrati !!!":""
    $("#player").html(str)
    $(".sound").jmp3({
        backcolor: "2277aa",
        forecolor: "ffff00",
        showdownload: "false",
        showfilename: "false",
        repeat: "false",
        width: 300,
        autoplay: "true"
        })
    TB_show(titolo, "#TB_inline?height=250&width=310&inlineId=player", false);
    }
function togliapici(text){
    if(typeof(text)!="string") text=text.toString();
    text = text.replace(
        /&/g, "&amp;").replace(
        /"/g, "&quot;").replace(
        /</g, "&lt;").replace(
        /'/g, "&rsquo;").replace(
        />/g, "&gt;") ;
    return text ;
    }
//]]>

