/*
	script voor de checkboxen bij het KnowledgeBase Search template.
*/

//--- controleert of er wel een contentType geselecteerd is
function checkForm(){
	
	if(removeBlanks(f.query.value).length == 0){
		alert("Er kan niet gezocht worden naar 'niets'.");
		return false;
	}
	
	for(x=0;x<ct.length;x++){
		if(ct[x].checked){
			return true;
		}
	}
	alert("Er kan niet in 'niets' gezocht worden.");
	return false;
}

//--- een klik op alles, dus dan ook alle boxes aan of uit
function clickAll(obj){
	for(x=0;x<cg.length;x++){
		cg[x].checked = obj.checked;
	}
	for(x=0;x<ct.length;x++){
		ct[x].checked = obj.checked;
		setCookie(ct[x].value, obj.checked?1:0);
	}
}	

//--- controleert of alle groepen geselecteerd zijn, zo ja, de all ook
function checkedAll(){
	var b = true;
	for(x=0;x<ct.length;x++){
		b = (b && ct[x].checked);
	}
	f.ckAll.checked = b;
}

//--- checkt of de items in een groep checked zijn
function checkGroup(b, e){
	var r = true;
	for(x=b;x<e;x++){
		r = (r && ct[x].checked);
	}
	return r;
}

//--- item click, moet ook groep checken
function checkedGroup(g){
	if(g==0){
		cg[g].checked = checkGroup(0,3);
	} else if(g==1){
		cg[g].checked = checkGroup(3,7);
	} else if(g==2){
		cg[g].checked = checkGroup(7,11);
	} else if(g==3){
		cg[g].checked = checkGroup(11,12);
	}
	checkedAll();
}


//--- een klik op een bepaalde groep, items van b(egin) tot e(nd) doen dan mee
function clickGroup(obj, b, e){
	for(x=b;x<e;x++){
		ct[x].checked = obj.checked;
		setCookie(ct[x].value, obj.checked?1:0);
	}
	checkedAll();
}

//--- een klik op een item moet zn groep checken
function clickItem(obj, g){
	checkedGroup(g);
	setCookie(obj.value, obj.checked?1:0);
}

//--- geeft de waarde van een cookie 'name'
function getCookie(name) {
	var cookie = removeBlanks(document.cookie);
	var nameValuePairs = cookie.split(";");
	for(var i=0; i<nameValuePairs.length; ++i) {
		var pairSplit = nameValuePairs[i].split("=");
		if(pairSplit[0] == name && pairSplit.length > 1){
			return pairSplit[1];
		}
	}
	return null;
}

//--- zet de waarde van het cookie 'name'
function setCookie(name, value) {
	document.cookie = name+"="+value;
}

//--- helperfunctie om het cookie wat op te schonen
function removeBlanks(s) {
	var temp = "";
	for(var i=0; i<s.length; ++i) {
		var c = s.charAt(i);
		if(c != " ") {
			temp += c;
		}
	}
	return temp;
}

/*
	init
*/
var f = document.forms["form"];
var ct = f.contentTypes;
var cg = f.contentGroups;
var query = f.query;

/*
	de eerste keer alle vinkjes gechecked
*/
var firstTime = getCookie("firstTime") || 1;		
if(firstTime == 1){
	for(i=0;i<ct.length;i++){
		setCookie(ct[i].value, 1);
	}
	setCookie("firstTime", 0);
}

/*
	afhandelen van de cookies, splitten op ; en dat weer op = geeft een array van arrays
	in dit geval gebruik ik geen getCookie omdat die het per cookie steeds opnieuw doet.
*/
var cookie = removeBlanks(document.cookie);
var cookies = cookie.split(";");
for(i=0;i<cookies.length;i++){
	cookies[i] = cookies[i].split("=");
}

//--- loop in loop, weinig andere keuzes
for(i=0;i<ct.length;i++){
	for(j=0;j<cookies.length;j++){
		if(cookies[j][0] == ct[i].value){
			ct[i].checked = (cookies[j][1] == 1);
		}
	}
}

//--- check de group vinkjes
for(g=0;g<cg.length;g++){
	checkedGroup(g);
}



