### Sollmann et al. Community occupancy model with Normal hyperdistribution ####
### For definition of data and parameters, see R script.                    ####

data{
for (xx in 1:npar){
mu[xx]<-0  ##mean for G prior
mu.b[xx]<-0
}
}

model{

##prior, observer skill effect on detection, fixed
beta.p~dnorm(0,0.01)

##parameters for Normal hyperdistribution, logit(detection)
mu.a0 ~dnorm(0, 0.01)
sig.a0<-sqrt(1/tau.a0)
tau.a0~dgamma(0.01, 0.01)

##parameters for Normal hyperdistribution, occupancy intercept (alpha) and beta(habitat)
mu.alpha~dnorm(0, 0.01)
mu.beta~dnorm(0, 0.01)

sig.alpha<-sqrt(1/tau.alpha)
tau.alpha ~dgamma(0.01, 0.01)

sig.beta<-sqrt(1/tau.beta)
tau.beta ~dgamma(0.01, 0.01)


##fixed parameters
beta[1:npar]~dmnorm.vcov(mu.b[1:npar],R.beta[1:npar,1:npar])

##for G prior
omega~dt(0,1,1)T(0.001,) #scaled T-distr. (half), with phi=1 and df=1 (Johnson example script)

for (xx in 1:npar){
for (yy in 1:npar){
Omega.mat[xx,yy]<-omega^2 * R[xx,yy] ##R = (H'H)^-1; data; g-prior 
}}

for (i in 1:n){

	a0[i] ~ dnorm(mu.a0,tau.a0)
	delta[i,1:npar] ~ dmnorm.vcov(mu[1:npar],Omega.mat[1:npar,1:npar])

	for(j in 1:J){

	###detection model
	lp[i,j]<-a0[i]  + beta.p * OBS[j]  ##account for observer skill	
	p[i,j]<-pnorm(lp[i,j],0,1)

	###ocupancy (state) model
	lpsi[i,j]<-inprod(beta, VAR[j,]) + inprod(delta[i,], VAR[j,])
	psi[i,j]<-pnorm(lpsi[i,j],0,1)
	z[i,j]~dbern(psi[i,j])
	p.eff[i,j]<-p[i,j]*z[i,j]
	y[i,j]~dbin(p.eff[i,j],K1[j])

	}

	Nocc[i]<-sum(z[i,1:J]) #number of sites occupied per species
}


} #end model


















