#cell mixture model
model{

a[1]<-0; a[2]<-tinterval[1]; a[3]<-tinterval[2]; a[4]<-100;

for (i in 1:N) {

    for(g in 1:nvars){
    bg[i,g] <- b[g]*z[i,g]
    ag[i,g] <- alpha[g]*z[i,g]
    betag[i,g] <- beta[g]*z[i,g]
    }

    muibfixed[i] <- b0+sum(bg[i,])
    muiafixed[i] <- alpha0+sum(ag[i,])
    betamisc[i] <- sum(betag[i,])

    for(l in offset[i]:(offset[i+1]-1)){

    y[l] ~ dgamma(aa[l], bb[l])
    aa[l] <- n1ij[l]/delta
    bb[l] <- n1ij[l]/delta/muij[l]
    muij[l] <- 1/muij.inv[l] 
    muij.inv[l] ~ dgamma(c, d[i])

    n1ij[l] ~ dbin(pij[l], ncells[l])

    logit(pij[l]) <- b0ij[l]+b0i[i]+muibfixed[i]+psi*alpha0i[i]

    b0ij[l] ~ dnorm(0, tau2b0ij) 
    }   
    
    log(d[i]) <- alpha0i[i]+muiafixed[i]+log(nu+1)-log(nu)

    b0i[i] ~ dnorm(0, tau2b) 
    alpha0i[i] ~ dnorm(0, tau2a) 

	#construct imputed mean
	b0i.rep[i] ~ dnorm(0, tau2b)
	alpha0i.rep[i] ~ dnorm(0, tau2a) 
	for(k in 1:5){
	b0ijpred[i,k] ~ dnorm(0, tau2b0ij)  
	logit(pijpred[i,k]) <- b0ijpred[i,k]+b0i.rep[i]+muibfixed[i]+psi*alpha0i.rep[i]
	}
	piimputed[i] <- mean(pijpred[i,])
	piimputed.std[i] <- logit(piimputed[i])


	for(j in 1:3){
		
		dd[i,j] <- recur[i]*step(t[i]-a[j])*step(a[j+1]-t[i])
		
		Delta[i,j] <- (min(t[i], a[j+1])-a[j])*step(t[i]-a[j])
		
		# The hazard rate
		hr[i,j] <- lambda[j]*exp(beta1*piimputed.std[i]+betamisc[i])
		
		dd[i,j] ~ dpois(mud[i,j])
		mud[i,j] <- Delta[i,j]*hr[i,j] 
	}


   }  

c <- 1/nu+2

nu <- exp(lnu)
lnu ~ dnorm(0, 0.1)

tau2a <- 1/sigmaa
sigmaa~dunif(0,1000)

tau2b <- 1/sigmab
sigmab~dunif(0,1000)

tau2b0ij <- 1/sigmab0ij
sigmab0ij ~ dunif(0,1000)

#sigmab0ij <-1
psi ~ dnorm(0, 0.0001)

alpha0 ~ dnorm(4, 0.0001)
for(g in 1:nvars){
alpha[g] ~ dnorm(0, 0.0001)
}

b0~dnorm(-0.5, 0.0001)
for(g in 1:nvars){
b[g] ~ dnorm(0, 0.0001)
}

for (j in 1:3){
	lambda[j] ~ dunif(0,1)
}

beta1 ~ dnorm(0,0.0001)

for(g in 1:nvars){
beta[g] ~ dnorm(0,0.0001)
}

}
