function selectIkodAll(searchform) {
    if(searchform.ikod_all.checked==true) {
	for(i=0;i<searchform.ikod_chkbx.length;i++) {
	    searchform.ikod_chkbx[i].checked=false;
	}
    }
}

function selectIkodBox(searchform) {
    var at_least_one_ikod_box;

    for(i=0;i<searchform.ikod_chkbx.length;i++) {
    	if(searchform.ikod_chkbx[i].checked==true)   {
		searchform.ikod_all.checked=false;
		at_least_one_ikod_box=true;
	    }
    }
    if(!at_least_one_ikod_box) {
	searchform.ikod_all.checked=true;
    }
}
function setIkodValue(searchform) {
    var ikod_boxes=searchform.ikod_chkbx;
    var ikod_box;
    var combined_ikod_value="";

    if(ikod_boxes!=null && ikod_boxes!=undefined) {  //no ikod_boxes exist for simple search
	for(i=0;i<ikod_boxes.length;i++) {
	    ikod_box=ikod_boxes[i];
	    if(ikod_box.value=="all" && ikod_box.checked==true) {
		combined_ikod_value="";
		break;
	    } else {
		if(ikod_box.checked==true) {
		    if(combined_ikod_value!="") {
			combined_ikod_value+=" eller ";
		    }
		    combined_ikod_value+=ikod_box.value;
		}
	    }
	}
	searchform.search_ikod.value=combined_ikod_value;
    }
}

function checkDateFormat(form)
{
    var tidFormatOk=true;
    var arkoFormatOk=true;
    var sameArkoFormats=true;
    var regkatFormatOk=true;
    var elem;
    var arko_from="";
    var arko_to="";
    var regkat_from="";
    var regkat_to="";
    var message="";

    for(i=0;i<form.elements.length;i++) {
	elem=form.elements[i];
	if(elem.name.indexOf("tid")>-1 && elem.value!="") {
	    tidFormatOk=verifyDashedFormat(elem.value);
	    if(!tidFormatOk) {
		tidFormatOk=verifyTruncatedFormat(elem.value);
	    }
	}
	if(elem.name.indexOf("arko_from")>-1 && elem.value!="") {
	    arko_from=elem.value;
	    arkoFormatOk=verifyNonDashedFormat(arko_from);
	}
	if(elem.name.indexOf("arko_to")>-1 && elem.value!="") {
	    arko_to=elem.value;
	    arkoFormatOk=arkoFormatOk && verifyNonDashedFormat(arko_to);
	}
	if(elem.name.indexOf("regkat_from")>-1 && elem.value!="") {
	    regkat_from=elem.value;
	    regkatFormatOk=verifyNonDashedFormat(regkat_from);
	}
	if(elem.name.indexOf("regkat_to")>-1 && elem.value!="") {
	    regkat_to=elem.value;
	    regkatFormatOk=regkatFormatOk && verifyNonDashedFormat(regkat_to);
	}
     }
    if(!tidFormatOk) {
	message+="Datum för enstaka År/Sändningsdatum ska anges som ÅÅÅÅ-MM-DD eller ÅÅÅÅ.\nDatum för enstaka År/Sändningsdatum kan även trunkeras med minst fyra tecken som stam.\nExempel: ÅÅÅÅ*";
    }
    if(!arkoFormatOk) {
	message+="Datum för År/Sändningsdatum i intervall ska anges som antingen ÅÅÅÅMMDD eller ÅÅÅÅ.\n";
    }
    if(!regkatFormatOk) {
	message+="Datum för Registrering/Katalogisering ska anges som ÅÅÅÅMMDD.\n";
    }
    if(arko_from.length!=0 && arko_to.length!=0 && arko_from.length!=arko_to.length) {
	message+="Båda datumen i ett slutet intervall måste ha samma format.\n";
	sameArkoFormats=false;
    }
    if(!(tidFormatOk && arkoFormatOk && sameArkoFormats && regkatFormatOk)) {
	alert("Kolla datumangivelse(r)!\n" + message);
	return false;
    } else {
	return true;
    }
}

function verifyDashedFormat(s)
{
    if((s.length==0 || s.length==4) && s.indexOf("-")==-1 && s.indexOf("*")==-1) {
	return true;
    } else if(s.length!=10 || s.charAt(4)!='-' || s.charAt(7)!='-') {
	return false;
    } else {
	return true;
    }
}

function verifyNonDashedFormat(s)
{
    if((s.length==0 || s.length==8 || s.length==4) && s.indexOf("-")==-1) {
	return true;
    } else {
	return false;
    }
}

function verifyTruncatedFormat(s)
{
    if(s.length>4 && s.charAt(s.length-1)=='*') {
	return true;
    } else {
	return false;
    }
}
