var count=new Object();
count["brochures"]=0;
count["bachelor"]=0;
//count["master"]=0;
count["activities"]=0;

var items=new Object();
items["brochures"]=new Array();
items["bachelor"]=new Array();
//items["master"]=new Array();

$(document).ready(function(){
	$(".w3ALBMItem ul li").hide();
	$("#tabs > ul").tabs();
	if($("#tabs .bachelorcat").length>1){$("#tabs .bachelorcat").hide().css("visibility","hidden");}
	//$("#tabs .mastercat").hide().css("visibility","hidden");
	$("#tabs").css("display","block");
	$(".w3ALBMItem ul").css("display","block");
	
});

function clickTab(n){$("#tabs > ul").tabsClick(n)}

function doCat(target,id){
	var vis=$("#tabs #"+target+"cat"+id).css("visibility")=="visible";
	$("#tabs ."+target+"cat").hide().css("visibility","hidden");
	if(!vis){
		$("#tabs #"+target+"cat"+id).show().css("visibility","visible");
	}
}

function search(target,key){
	key=esc(key.toLowerCase());
	var found=false;
	var cats=new Object();
	$("#tabs ."+target+"cat").hide().css({"visibility":"hidden"});
	$("#tabs ."+target+"cat span").css({"font-weight":"normal"});
	$("#tabs ."+target+"category").each(function(){
		targetid=this.id;
		$("#tabs #"+targetid+" input.hidden").each(function(){
			if(this.value.indexOf(key)>=0){
				if(cats[targetid]==null){
					$("#tabs #"+targetid.replace("category","cat")).show().css({"visibility":"visible"});
					cats[targetid]=targetid;
				}
				$("#tabs #"+this.id.replace("Keywords","Label")).css({"font-weight":"bold"});
				found=true;
			}
		});
	})
	if(!found){alertRUG(lang["NothingFound"]);}
}

function resetSearch(target,frm){
	$("#tabs ."+target+"cat").hide().css({"visibility":"hidden"});
	$("#tabs ."+target+"cat span").css({"font-weight":"normal"});
	if(target=="bachelor"){
		frm.baSearch.value="";frm.baSearchBtn.disabled=true;
	}else{
		frm.maSearch.value="";frm.maSearchBtn.disabled=true;
	}
}

function updateBrochures(o,key,id,mx){
	var bExists=exists(items[key],id);

	if(key!="brochures"){
		if(o.checked&&count[key]==mx&&!bExists){
			// Make room for the new selection by unselecting ALL(!) corresponding educations for the first brochure in items[key]
			var del=parseInt(items[key][0].split("::")[1]);
			
			for(var i=0;i<items[key].length;i++){
				var curr=items[key][i].split("::");
				curr[0]="#"+curr[0];
				curr[1]=parseInt(curr[1]);
	
				if(curr[1]==del){
					$(curr[0]).attr("checked",false);
					updateAssociativeLinks($(curr[0])[0]);
					items[key].splice(i--,1);
				}
			}
		
			count[key]--;
		}
	}
	
	if(o.checked){
		// Add brochure to items[key] array
		items[key]=(items[key].join(",")+((items[key].length==0)?"":",")+o.id+"::"+id).split(",");
		count[key]+=(bExists)?0:1;
	} else {
		var i=inArray(items[key],id);
		if(i>=0){
			items[key].splice(i,1);
		}
		count[key]+=(exists(items[key],id,key==key))?0:-1;
	}
	
	// Update none selected div
	var obj=".w3ALBMItem #no"+((key=="brochures")?"bachelor":key);
	var cnt=(key=="brochures"||key=="bachelor")?(count["brochures"]+count["bachelor"]):count[key];
	if(cnt==0){$(obj).show()}else{$(obj).hide()}

	updateAssociativeLinks(o);
	
	if(key=="bachelor"){
		updateBachelorCats();
	}
}

function updateAssociativeLinks(o){
	var obj=".w3ALBMItem ul #aso"+o.id;
	if(o.checked){$(obj).show()}else{$(obj).hide()}
}

function updateBachelorCats(){
	// Set the font-weight of categories in which checkboxes are checked to bold
	var divs=$("#bachelor .bachelorcategory");
	for(var i=0;i<divs.length;i++){
		var selected=false;
		var checkboxes=$("#"+divs[i].id+" input");
		for(var j=0;j<checkboxes.length;j++){
			selected=selected||checkboxes[j].checked;
			if(selected){
				break;
			}
		}
		$("#"+divs[i].id+" h4").css("font-weight",(selected)?"bold":"normal");
	}
}

function updateActivities(frm,key,shw,str){
	var obj=".w3ALBMItem ul #aso"+key;
	if(shw){$(obj).html(str).show()}else{$(obj).html("").hide()}
	updateNoActivities(frm);
}

function updateNoActivities(frm){
	var noactivities=".w3ALBMItem #noactivities";
	if((count["activities"]=
			($('input[name^="vaObject_"]').length)+
			((frm.amopendag!=null&&frm.amopendag.value!=0)?1:0)+
			((frm.pmopendag!=null&&frm.pmopendag.value!=0)?1:0)+
			((frm.am6vwo!=null&&frm.am6vwo.value!=0)?1:0)+
			((frm.pm6vwo!=null&&frm.pm6vwo.value!=0)?1:0))==0){
		$(noactivities).show();
	} else {
		$(noactivities).hide();
	}
}

function validate(frm,activities,format,edit) {
	var err="";
	
	if(frm.initials.value==""){err+="- "+lang["NoInitials"]+"\n"}
	if(frm.lastname.value==""){err+="- "+lang["NoLastName"]+"\n"}
	if(frm.firstname.value==""){err+="- "+lang["NoFirstName"]+"\n"}
	if(frm.address.value==""){err+="- "+lang["NoAddress"]+"\n"}
	if(frm.housenumber.value==""){err+="- "+lang["NoHouseNumber"]+"\n"}
	if(frm.zip.value==""){
		err+="- "+lang["NoZip"]+"\n";
	}else if(stripZip(frm.zip.value)==""){
		err+="- "+lang["InvalidZip"]+"\n";
	}
	if(frm.city.value==""){err+="- "+lang["NoCity"]+"\n"}
	if(!frm.gender[0].checked&&!frm.gender[1].checked){err+="- "+lang["NoGender"]+"\n"}
	if(frm.email.value==""){
		err+="- "+lang["NoEmail"]+"\n";
	}else if(frm.email.value!=""&&!(/^\s*([0-9a-z-_\+]+\.)*[0-9a-z-_\+]+\@([0-9a-z-_]+\.)*[0-9a-z-_]+\.[0-9a-z-_]+\s*$/i).test(frm.email.value)){
		err+="- "+lang["InvalidEmail"]+"\n";
	}
	if(frm.mobile!=null&&frm.mobile.value!=""&&!(/^06\-\d{8}$/i).test(frm.mobile.value)){err+="- "+lang["InvalidMobile"]+"\n"}
//	if(frm.email.value==""&&frm.optin.checked){err+="- "+lang["InvalidOptin"]+"\n"}
	if(frm.schoolclass.value==""){
		err+="- "+lang["NoClass"]+"\n";
	}else if(isNaN(frm.schoolclass.value)){
		err+="- "+lang["InvalidClass"]+"\n";
	}
	validSchooltype=false;
	for(var i=0;i<frm.schooltype.length;i++){
		if(validSchooltype=frm.schooltype[i].checked){
			break;
		}
	}
	if(!validSchooltype){err+="- "+lang["NoType"]+"\n"}
	
	if(frm.birthdate.value==""){
		err+="- "+lang["NoBirthDate"]+"\n";
	}else if(!validDate(frm.birthdate.value,format)){
		err+="- "+lang["InvalidBirthDate"]+"\n";
	}
	if(!edit && (count["brochures"]+count["bachelor"]+/*count["master"]+*/count["activities"])==0){err+="- "+lang[((activities)?"NoActivities":"")+"NoFolders"]+"\n"}
	
	if(err==""){
		validateBookings();
	} else {
		alertRUG(lang["Errors"]+":\n\n"+err+"\n"+lang["CorrectAndTryAgain"]+"!");
	}
}

function validateBookings(){
	var bBook=false;
	$('input[name^="vaObject"]').each(function(){ bBook=bBook||this.checked })

	if(!bBook){
		$("#webPlatform")[0].submit();
	}else{
		$.ajax({
			url:'_ajaxGetBookings.asp',
			data:
				'aid='+$('input[name="ActiviteitId"]').val()+'&lastname='+$('input[name="lastname"]').val()+'&initials='+$('input[name="initials"]').val()+
				'&firstname='+$('input[name="firstname"]').val()+'&housenumber='+$('input[name="housenumber"]').val()+'&zip='+$('input[name="zip"]').val()+
				'&email='+$('input[name="email"]').val()+'&birthdate='+$('input[name="birthdate"]').val()+'&inputlanguage='+$('input[name="inputlanguage"]').val(),
			type:'GET',
			dataType: 'json',
			success:onValidateBookings,
			error:function(){OnValidateBookings({'message':'commError'})},
			async:false
		})
	}
}

function onValidateBookings(obj){
	if(obj.message!=null){
		alertRUG(lang[obj.message]);
	} else {
		var err="";
		var selector = '';
		for(var i=0;i<obj.length;i++){
			selector = 'tr[id="' + obj[i].pid + "_" + obj[i].tid + "_" + obj[i].time + '"]';
			if($(selector).size() > 0){
				// confirmation of earlier booking: check whether there are still enough available places to reflect the change in the number of people
			}else{
				if($((selector = 'tr[id^="' + obj[i].pid + '_"]')).size() > 0){
					newTime = $(selector + " td:eq(2)").text().replace(/-\d+:\d+\s.+$/i,"");
					err+="- "+lang["PresentationAlreadyBooked"].replace("@OLDTIME",obj[i].time).replace("@NEWTIME",newTime).replace("@PRESENTATION",obj[i].name)+"\n";
				}
				if($((selector='tr[id$="_' + obj[i].time + '"]')).size() > 0){
					newPres=$(selector+" td:eq(2)").text().replace(/^\d+:\d+-\d+:\d+\s/i,"");
					err+="- "+lang["TimeAlreadyBooked"].replace("@TIME",obj[i].time).replace("@OLDPRESENTATION",obj[i].name).replace("@NEWPRESENTATION",newPres)+"\n";
				}
			}
		}
		if(err==""||confirmRUG(lang["EnrolmentErrors"]+"\n\n"+err+"\n"+lang["UpdateEnrolments?"])){
			$("#webPlatform")[0].submit();
		}
	}
}

function validateVOAS(frm){
	var err="";
	
	if(frm.addressment.selectedIndex==0){err+="- "+lang["VOAS_NoAddressment"]+"\n"}
	if(frm.initials.value==""){err+="- "+lang["VOAS_NoInitials"]+"\n"}
	if(frm.lastname.value==""){err+="- "+lang["VOAS_NoLastName"]+"\n"}
	if(frm.address.value==""){err+="- "+lang["VOAS_NoAddress"]+"\n"}
	if(frm.zip.value==""){
		err+="- "+lang["VOAS_NoZip"]+"\n";
	}else if(stripZip(frm.zip.value)==""){
		err+="- "+lang["VOAS_InvalidZip"]+"\n";
	}
	if(frm.city.value==""){err+="- "+lang["VOAS_NoCity"]+"\n"}
	if(frm.email.value!=""&&!(/^\s*([0-9a-z-_]+\.)*[0-9a-z-_]+\@([0-9a-z-_]+\.)*[0-9a-z-_]+\.[0-9a-z-_]+\s*$/i).test(frm.email.value)){err+="- "+lang["VOAS_InvalidEmail"]+"\n"}
	/*if(frm.numberofpersons.value==""){
		err+="- "+lang["VOAS_NoNumberOfPersons"]+"\n";
	}else if(isNaN(frm.numberofpersons.value)){
		err+="- "+lang["VOAS_InvalidNumberOfPersons"]+"\n";
	}*/
	
	if($('input[name^="vaObject_"]').size() == 0) err += lang["VOAS_NoActivities"];
	
	if(err==""){
		validateBookings();
		//frm.submit();
	} else {
		alertRUG(lang["VOAS_Errors"]+":\n\n"+err+"\n"+lang["CorrectAndTryAgain"]+"!");
	}
}

function validateMAVO(frm){
	var err="";
	
	if(frm.initials.value==""){err+="- "+lang["NoInitials"]+"\n"}
	if(frm.lastname.value==""){err+="- "+lang["NoLastName"]+"\n"}
	if(frm.address.value==""){err+="- "+lang["NoAddress"]+"\n"}
	if(frm.zip.value==""){
		err+="- "+lang["NoZip"]+"\n";
	}else if(stripZip(frm.zip.value)==""){
		err+="- "+lang["InvalidZip"]+"\n";
	}
	if(frm.city.value==""){err+="- "+lang["NoCity"]+"\n"}
	if(frm.country.value.toUpperCase()=="NEDERLAND"&&frm.province.selectedIndex==0){err+="- "+lang["MAVO_NoProvince"]+"\n"}
	if(frm.email.value!=""&&!(/^\s*([0-9a-z-_]+\.)*[0-9a-z-_]+\@([0-9a-z-_]+\.)*[0-9a-z-_]+\.[0-9a-z-_]+\s*$/i).test(frm.email.value)){err+="- "+lang["InvalidEmail"]+"\n"}
	//if(nFaculties<=0){err+="- "+lang["MAVO_NoFaculties"]+"\n"}
	if(frm.institute.value == '') {
		err += '- ' + lang["NoInstitute"] + '\n';
	}
	if($('input[name^="vaObject_"]').size() == 0) err += '- ' + lang["NoActivities"] + '\n';
	
	if(err==""){
		validateBookings();
		//frm.submit();
	} else {
		alertRUG(lang["Errors"]+":\n\n"+err+"\n"+lang["CorrectAndTryAgain"]+"!");
	}
}

function alertRUG(body){window.alert("http://www.rug.nl\n"+lang["RequestForm"]+" Rijksuniversiteit Groningen\n\n\n"+body);}
function confirmRUG(body){return window.confirm("http://www.rug.nl\n"+lang["RequestForm"]+" Rijksuniversiteit Groningen\n\n\n"+body);}
function validDate(rawDate,format){valid=(/^\d{1,2}\-\d{1,2}\-\d{4}$/i).test(rawDate);if(valid){aDate=rawDate.split("-");day=parseFloat(aDate[(format=="en")?1:0]);month=parseFloat(aDate[(format=="en")?0:1]);year=parseFloat(aDate[2]);valid=(month>=1)&&(month<=12)&&(year>=1753)&&(year<((new Date()).getFullYear()-12));if(valid){daysInMonths=[31,28,31,30,31,30,31,31,30,31,30,31];if((month==2)&&(year%4==0)){daysInMonths[1]=29;}valid=(day>=1)&&(day<=daysInMonths[month-1]);}}return (valid);}
function stripZip(rawZip){sZip="";for(i=0;i<rawZip.length;i++){if((/[a-zA-Z0-9]/i).test(rawZip.substring(i,i+1))){sZip+=rawZip.substring(i,i+1).toString().toUpperCase();}}return sZip;}
function inArray(a,key){for(var i=0;i<a.length;i++){if(a[i].split("::")[1]==key){return i;}}return -1;}
function exists(a,key,bachelor){if(!bachelor){return inArray(a,key)>=0;}else{for(var i=0;i<a.length;i++){if(a[i].split("::")[1]==key){return true}}}return false;}
function esc(os){var ns='';var t;var chr='';var cc='';var tn='';for(var i=0;i<256;i++){tn=i.toString(16);if(tn.length<2)tn="0"+tn;cc+=tn;chr+=unescape('%'+tn);}cc=cc.toUpperCase();os.replace(String.fromCharCode(13)+'',"%13");for(q=0;q<os.length;q++){t=os.substr(q,1);for(var i=0;i<chr.length;i++){if(t==chr.substr(i,1)){t=t.replace(chr.substr(i,1),"%"+cc.substr(i*2,2));i=chr.length;}}ns+=t;}return ns;}

