model{
 
  for(i in 1:N){
      # LONGITUDINAL SUBMODEL
      for(j in 1:M[i]){
      	  mu.y[i,j] <- beta[1]+b[i,1] + (beta[2]+b[i,2])*day[j] + beta[3]*age[i]
          y[i,j] ~ dnorm(mu.y[i,j],tau)
      }
    
      # COMPETING RISKS SUBMODEL
      # Calculation for integration (cumulative hazard)
      for(j in 1:K){
          # hazard function for dead
          hD[i,j] <- nuD*pow(Time[i]/2*(xk[j]+1), nuD-1) *
                  exp( lambdaD + gammaD*age[i] + alpha0D*b[i,1] + alpha1D*b[i,2]*(Time[i]/2*(xk[j]+1)) )
          # hazard function for alive
          hA[i,j] <- nuA*pow(Time[i]/2*(xk[j]+1), nuA-1) *
                  exp( lambdaA + gammaA*age[i] + alpha0A*b[i,1] + alpha1A*b[i,2]*(Time[i]/2*(xk[j]+1)) )
      }
    
      # Cumulative hazard H[t] = int_0^t h[u] du - Gauss-Legendre quadrature
      cumHazD[i] <- (Time[i]/2) * sum(inprod(wk, hD[i,]))
      cumHazA[i] <- (Time[i]/2) * sum(inprod(wk, hA[i,]))
      log.SurvD[i] <- -cumHazD[i]
      log.SurvA[i] <- -cumHazA[i]
    
      # Definition of the log-likelihood using zeros trick
      phi[i] <- C - ( eventD[i]*log(hD[i,K]) + eventA[i]*log(hA[i,K]) ) - (log.SurvD[i] + log.SurvA[i])
      zeros[i] ~ dpois(phi[i])
    
      # Random effects
      b[i,1] ~ dnorm(0,tau0)
      b[i,2] ~ dnorm(0,tau1)
  }
  
  # PRIORS AND HYPERPRIORS
  for(i in 1:3){beta[i] ~ dnorm(0,0.001)}
  tau <- pow(sig,-2)
  sig ~ dunif(0,20)
  tau0 <- pow(sig0,-2)
  sig0 ~ dunif(0,10)
  tau1 <- pow(sig1,-2)
  sig1 ~ dunif(0,10)  
  
  nuD ~ dgamma(0.1,0.1)
  nuA ~ dgamma(0.1,0.1)
  lambdaD ~ dnorm(0,0.001)
  lambdaA ~ dnorm(0,0.001)
  gammaD ~ dnorm(0,0.001)
  gammaA ~ dnorm(0,0.001)
  alpha0D ~ dnorm(0,0.001)
  alpha0A ~ dnorm(0,0.001)
  alpha1D ~ dnorm(0,0.001)
  alpha1A ~ dnorm(0,0.001)  
}