//////////////////////////////////////////////////////////
//checks within a radiobutton group the checked elements
//and makes an array of div-layers visible and unvisible
//the same for else
//also useable for checkboxes!!!
//attention:  only for the two cases
//if(statement) {
//	...
//} else {
//	...
//}
//OR
//one of the whole radiobuttongroup is checked (in that case
//radioId = Not a Number)
//parameter:  	formName - name of form
// 		radioName - name of radiobutton group
//		radioId - radiobutton-id to be checked
//		arrVis_1 - divs to make visible for if-case
//		arrInvis_1 - divs to make invisible for if-case
//		arrVis_2 - divs to make visible for else-case
//		arrInvis_2 - divs to make invisible for else-case
//
//use:  call as Eventhandler on a radiobutton
//
//example how to use:
//<input type="radio" name="juist_2_1" value="ja" 
//	onClick="checkRadio(
//			'aangifte_02', 
//			'juist_2_1', 
//			0, 
//			fillVis(), 
//			fillInvis('js_2_2', 'ch_2_1', 'ch_2_2'), 
//			fillVis('ch_2_1', 'js_2_2'), 
//			fillInvis())"/>
//////////////////////////////////////////////////////////
function checkRadio(formName, radioName, radioId, arrVis_1, arrInvis_1, arrVis_2, arrInvis_2, checkSpecRadioId) {
		
	var el = eval("document."+formName+"."+radioName);
	
	if(isNaN(radioId) == true) {
        if (typeof checkSpecRadioId == "undefined") { checkSpecRadioId = false; }
        
        if (checkSpecRadioId == true)
        {
            // controleer of de specifieke radiobutton geselecteerd is
            if ($('#' + radioId).attr('checked') == true)
            {
                makeVis(arrVis_1);
                makeInvis(arrInvis_1);                
            }
        }
        else
        {
            //if one of the whole radiobuttongroup is checked...
    		for(var i=0; i<el.length; i++) 
            {
    			if(el[i].checked) 
                {
    				makeVis(arrVis_1);
    				makeInvis(arrInvis_1);
    			}
    		}            
        }
	} else if(isChecked(formName, radioName)) {
	
		if (el[radioId].checked) {
			makeVis(arrVis_1);
			makeInvis(arrInvis_1);
		} else {
			makeVis(arrVis_2);
			makeInvis(arrInvis_2);
		}
	}
}

function checkRadio2(radioId, showDivs, hideDivs)
{
    if ($('#' + radioId).attr('checked') == true)
    {
        makeVis(showDivs);
    }
    else
    {
        makeInvis(hideDivs);
    }
}

//verder met lijst
function checkBox(formName, radioName, arrVis_1, arrInvis_1, arrVis_2, arrInvis_2) {

	var el = eval("document."+formName+"."+radioName);

	if(el.checked) {
		makeVis(arrVis_1);
		makeInvis(arrInvis_1);
	} else {
		makeVis(arrVis_2);
		makeInvis(arrInvis_2);
	}
}

//////////////////////////////////////////////////////////
//fills an array with all parameters
//Parameter: no matter how much, they will all stored in
//the array arr
//return:  filled array arr
//use: as parameter in a called function (checkRadio)
//////////////////////////////////////////////////////////
function fillArr() {
	var arr = new Array();
	for(var i=0; i<fillArr.arguments.length; i++) {
		arr[i] = fillArr.arguments[i];
	}
	return arr;
}

//////////////////////////////////////////////////////////
//makes divs in HMTL-site visible
//Parameter: Array with divIds
//use: intern within a function
//////////////////////////////////////////////////////////
function makeVis(divIds) {

	//array with all divIds to make visible
	var vis = makeVis.arguments[0];
	
	//make every div visible
	for(var i=0; i<vis.length; i++) {
		document.all[vis[i]].style.display = "block";
	}
}

//////////////////////////////////////////////////////////
//makes divs in HMTL-site invisible
//Parameter: Array with divIds
//////////////////////////////////////////////////////////
function makeInvis(divIds) {

	//array with all divIds to make visible
	var invis = makeInvis.arguments[0];
	
	//make every div visible
	for(var i=0; i<invis.length; i++) {
		//alert (invis[i]);
		document.all[invis[i]].style.display = "none";
	}
}

//////////////////////////////////////////////////////////
//unchecks all radiobuttons within a radiobuttongroup
//Parameter: name from form that contains the radiobuttons
//	     all names from radiobuttongroups that has to
//	     be unchecked
//////////////////////////////////////////////////////////
function unCheckAll(formName, elName, elId, uncheckNames) {
	var orel = eval("document."+formName+"."+elName);
	var names = unCheckAll.arguments[3];
	if(orel[elId].checked) {
		for(var i=0; i<names.length; i++) {
			var el = eval("document."+formName+"."+names[i]);
			for (var j=0; j<el.length; j++) {
				el[j].checked = false;
			}
		}
	}
}

//for example for checkDivs_05
function unCheck(formName, elName, uncheckNames) {
	var orel = eval("document."+formName+"."+elName);
	var names = unCheck.arguments[2];
	if(!orel.checked) {
		for(var i=0; i<names.length; i++) {
			var el = eval("document."+formName+"."+names[i]);
			for (var j=0; j<el.length; j++) {
				el[j].checked = false;
			}
		}
	}
}

//without any checks
function unCheckRadioGroup(formName, groupName) {
	var el = eval("document."+formName+"."+groupName);
	for (var i=0; i<el.length; i++) {
		el[i].checked = false;
	}
}

//////////////////////////////////////////////////////////
//unchecks checkboxes within a checkboxesgroup
//Parameter: name from form that contains the checkboxes
//	     name from checkboxgroup
//	     all names from checkboxes to be unchecked, stored
//	     in an array
//////////////////////////////////////////////////////////
function unCheckBox(formName, checkboxName, ids) {
	var ids = unCheckBox.arguments[2];
	for(var i=0; i<ids.length; i++) {
		var el = eval("document."+formName+"."+checkboxName+"."+ids[i]);
		el.checked = false;
	}
}

function relocate(url) {
	self.close()
	window.opener.location.href = url;
}

//new window
function newwindow(file, title, width, height, add){

	var options;
	var win;
	options = "width=" + width + ",height=" + height + "," + add;
	win = window.open(file,title,options);
	return win;
}

//for check watermeters, has to be without return!!
function openwindow(file, title, width, height, add){

	var options;
	var win;
	options = "width=" + width + ",height=" + height + "," + add;
	win = window.open(file,title,options);
}

function info(text) {
	alert(text);
}

function isVisible(divId) {
	if(document.all[divId].style.display == "none") {
		return false;
	} else {
		return true;
	}
}

function isChecked(formName, elName) {
	var el = eval("document."+formName+"."+elName);
	for(var i=0; i<el.length; i++) {
		if(el[i].checked) {
			return true;
		}
	}
	return false;
}

function isCheckedBox(formName, elName) {
	var el = eval("document."+formName+"."+elName);
	if(el.checked) {
		return true;
	} else {
		return false;
	}
}

function isCheckedSpec(formName, elName, id) {
	return window.document[formName][elName][id].checked;
}

function isElement(El)
{
    if($(El).length == 0)
    {
        // element niet gevonden
        return false;
    }
    else
    {
        // minimaal 1 document gevonden
        return true;
    }
}

function numSelected(formName, elName) { 
	var k = 0;
  	for(var l=0; l<window.document[formName][elName].options.length; l++) {
    		if(document[formName][elName].options[l].selected) {
      		k++;
    		}
  	}
  	return k;
}

function hasValue(formName, elName) {
	//alert(window.document[formName][elName].name+": "+window.document[formName][elName].value);
	return (window.document[formName][elName].value != "");
} 

function arrHasVal2(elArr) {
	var arr = arrHasVal.arguments[0];
	var res = true;

	for(var i=0; i<arr.length; i++) {
		if(arr[i].value == '') {
			res = false;
		}
	}
	return res;
}

function arrHasVal(elArr) {
	var arr = arrHasVal.arguments[0];
	for(var i=0; i<arr.length; i++) {
	//alert(arr[i].value);
		if(arr[i].value != '') {
			//alert(arr[i].name+": "+arr[i].value);
			return true;
		}
	}
	return false;
}

function checkNumber(val) { 

	isNumber = true;
      
	if(val.length==0) {
	      	isNumber=false;
	} else if(val=='') {
		isNumber==false;
	}else {
         	for(var n=0; n<val.length; n++){
            		if(val.charAt(n)<"0"||val.charAt(n)>"9"){
            			isNumber = false;
            		}
            	}
	}
	return isNumber;
} 

function formatNum(val) {
	if(val.indexOf(',')>-1) {
		val = val.replace(',', '.');
	}

	if(isNaN(val)) {
		return "NaN";
	} else {
		return parseFloat(val);
	}
}


function checkDatum(day, month, year) {

	var s = new Array();
	var si = 0;
	
	 if(day < 1 || day > 31 || !checkNumber(day)) {
	 
		s[si] = "Een maand heeft 1 t/m 31 dagen!";
		si++;
		
	} 
	

	if(month < 1 || month > 12 || !checkNumber(month)){
	
		s[si] = "Een jaar heeft 1 t/m 12 maanden!";
		si++;

	} 
	

	if(!checkNumber(year) || year.length!=4) {
	
		s[si] = "Vermeld het jaar in het formaat \"jjjj\"!";
		si++;
	
	}
	
	return s;
	
}

function countDays(d1, m1, y1, d2, m2, y2) {
	
	//var oDate1 = new Date();
	//var oDate2 = new Date();

	//if there is no begindate, oDate1=01.01.y2
	if(d1==0 || m1==0 || y1==0) {
		//oDate1.setDate(1);
		//oDate1.setMonth(0);
		//oDate1.setYear(y2);
		var oDate1 = Date.UTC(y2, 0, 1);
	} else {
		//oDate1.setDate(d1);
		//oDate1.setMonth(m1-1);
		//oDate1.setYear(y1);
		var oDate1 = Date.UTC(y1, m1-1, d1);
	}
	
	//if there is no enddate, oDate1=31.12.y1
	if(d2==0 || m2==0 || y2==0) {
		//oDate2.setDate(30);
		//oDate2.setMonth(12);
		//oDate2.setYear(y1);
		var oDate2 = Date.UTC(y1, 11, 31);
	}else {
		//oDate2.setDate(d2);
		//oDate2.setMonth(m2-1);
		//oDate2.setYear(y2);
		var oDate2 = Date.UTC(y2, m2-1, d2);
	}

	var iDays = Math.abs((oDate1-oDate2) / (1000 * 86400)) + 1;

	return iDays;
}

function checkBegEndDatum(d1, m1, y1, d2, m2, y2) {

	iDays = countDays(d1, m1, y1, d2, m2, y2);
	var s = "";

	if(iDays<1) {

		s = "Begindatum kan niet na einddatum zijn!";

	}
	
	return s;
}

function focusField(formName, elName) {
	var el = eval("document."+formName+"."+elName);
     	el.focus();
}

function replaceIt(string, search, replace) { 
	var newString = "" + string; 
	while (newString.indexOf(search)>-1) { 
		pos= newString.indexOf(search); 
		newString = "" + (newString.substring(0, pos) + replace + newString.substring((pos + search.length), newString.length)); 
	} 
	return newString; 
}


function missingValWin(arrMiss, cssFile) {

	var cssFile = missingValWin.arguments[1];

	//array with all values that are missing in form
	var miss = missingValWin.arguments[0];
		
	var w = newwindow('', '', 500, 350, 'scrollbars');
		
	var s = "";
			
	s += "<html><head><title>Het formulier is niet compleet ingevuld!</title>";
	s += "<link rel='StyleSheet' href='"+cssFile+"' type='text/css'>";
	s += "</head><body>";
	s += "<table width='100%' height='100%' cellpadding='0' cellspacing='0' border='0'>";
	s += "<tr height='100%'><td width='*'>&nbsp;</td><td class='blue' width='2'></td>		<td class='grey' width='500' valign='top'>";
	s += "<table cellpadding='5' border='0' width='100%' height='98%'>";
	s += "<tr><td valign='top'><table><tr><td colspan='2' height='20' valign='top'>";
		
	s += "<span class='rb'>[</span>U bent enkele gegevens vergeten in te vullen.  De volgende gegevens ontbreken:<span class='rb'>]</span></td><tr>";
	

	for(var i=0; i<miss.length; i++) {
		s += "<tr height='20' valign='top'>";
		s += "<td><b>"+miss[i].substring(0,5)+"</b></td>";
		s += "<td align='left'>"+miss[i].slice(5)+"</td>";
		s += "</tr>";
	}
			
	s += "<tr height='*' valign='top'><td colspan='2'>&nbsp;</td></tr>";
	
	s += "<tr height='*' valign='top'><td colspan='2'>Druk op 'OK' om terug te gaan naar het scherm en corrigeer de gevraagde gegevens.</td></tr></table></td></tr>";

	s += "<tr valign='bottom' height='20' align='center'><form name='bedrijfsruimte_2'>";
	s += "<td colspan='2'><input type='submit' class='submit' value='OK'  onClick='javascript:self.close()'></td></form></tr></table>";
	s += "</td><td class='blue' width='2'></td><td width='*'>&nbsp;</td>";
	s += "</tr></table></body></html>";		
			
	w.document.write(s);
		
	w.document.close();
}

function frameRefresh(name, url) {
	var el = eval("parent."+name+".location");
	el.href=url;
}

function submForm(wind, formName) {
	var el = eval(wind+".document."+formName);
	el.submit();
}

function printFrame(frame) {
	var el = eval("parent."+frame);
	el.focus(); 
	window.print();
}

function menuitemover(id) {
	var el = id;
	el.style.display = "block";
}

function menuitemout(id) {
	var el = id;
	el.style.display = "none";
}

function saveAlert(act, link, caller) {
	
	if(act=="01" | act=="02" | act=="03" | act=="04" | act=="05" | act=="06" | act=="07" | act=="08") {
		
		var el = eval("parent.main.document.aangifte_"+act+".h_edited");
		
		if(el.value == "edited") {
			return confirm("Uw aangifte werd gewijzigd!\n\nAls u zeker weet dat u wilt doorgaan zonder de wijzigingen op te slaan, klik dan op \"OK\". Klik op \"Annuleren\" als u de wijzigingen nog wilt opslaan.");
			
			// newwindow('/aangiftebiljet/algemeen/saveAlert.php?sessionid=' + sessionid + '&act='+act+'&link='+link+'&caller='+caller, 'save', 300, 200);
			// main.location.href = "#opslaan";
			// return false;
		} else {
			return true;
		}
		
	} else {
		return true;
	}
	
}

function saveAlert_Ja(link) {
	
	opener.parent.main.location.href = link;
	
}

function saveAlert_Nee(act, actnr, link) {
	
	//alert("act: "+act+" linknr: "+linknr+" link: "+link);
	
	var el = eval("opener.parent.main.document.aangifte_"+actnr);
	
	el.next.value = link;
	
	//opener.parent.main.location.href = act+"#opslaan";
	
}

function setEdited(formname) {
	
	var el = eval("document."+formname+".h_edited");
	
	if(el.value!="edited") {
		el.value = "edited";
	}	
	
}

function nextFieldByString(formname, curfield, nextfield, maxlength)
{
	var fieldval = eval("document."+formname+"."+curfield+".value");
	
	if (fieldval.length >= (maxlength))
	{
		if ( eval("document."+formname+"."+nextfield+".disabled") == false ) 
		{
			eval("document."+formname+"."+nextfield+".focus()");
		}
	} 
}

function nextField(form, curfield, nextfield, maxlength)
{
	var fieldval = eval("document."+form.name+"."+curfield+".value");
	
	if (fieldval.length >= (maxlength))
	{
		if ( eval("document."+form.name+"."+nextfield) != null ) 
		{
		if ( eval("document."+form.name+"."+nextfield+".disabled") == false ) 
		{
			eval("document."+form.name+"."+nextfield+".focus()");
		}
		}
	} 
}

function addWatermeter (id, hidegeschat, hidetotaal) 
{
	// bij sommige vragen, moet er geen geschat waterverbruik kunnen worden ingeuld
	hidegeschat = hidegeschat || false;
	hidetotaal  = hidetotaal || false;

	var wmCnt = (eval($("#wm_max_meter_num_" + id).val()) + 1);
	var nieuwId = id + "_" + wmCnt;
	$("#wm_max_meter_num_" + id).val(wmCnt);
	
	var s = "";
	
	s += "<tr class=wm_" + id + " id='tr_wm_" + nieuwId + "'>";
	s += "<td class='wmdivtd' style='padding: 3px;'>";
	s += "<input type='text' class='tf' name='h_wm_contract_" + nieuwId + "' style='width:92%;' />";
	s += "</td>";
	s += "<td class='wmdivtd' style='padding: 3px;'>";
	s += "<input type='text' class='tf' name='h_wm_begmeter_" + nieuwId + "' style='width:92%;' />";
	s += "</td>";
	s += "<td class='wmdivtd' style='padding: 3px;'>";
	s += "<input type='text' class='tf' name='h_wm_beginD_" + nieuwId + "' style='width:20px' maxlength='2'/>&nbsp";
	s += "<input type='text' class='tf' name='h_wm_beginM_" + nieuwId + "' style='width:20px' maxlength='2'/>&nbsp";
	s += "<input type='text' class='tf' name='h_wm_beginY_" + nieuwId + "' style='width:32px' maxlength='4'/>";
	s += "</td>";
	s += "<td class='wmdivtd' style='padding: 3px;'>";
	s += "<input type='text' class='tf' name='h_wm_eindmeter_" + nieuwId + "' style='width:92%;' maxlength='10'/>";
	s += "</td>";
	s += "<td class='wmdivtd' style='padding: 3px;'>";
	s += "<input type='text' class='tf' name='h_wm_eindD_" + nieuwId + "' style='width:20px' maxlength='2'/>&nbsp";
	s += "<input type='text' class='tf' name='h_wm_eindM_" + nieuwId + "' style='width:20px' maxlength='2'/>&nbsp";
	s += "<input type='text' class='tf' name='h_wm_eindY_" + nieuwId + "' style='width:32px' maxlength='4'/>";
	s += "</td>";
	if (hidegeschat == false) {
		s += "<td class='wmdivtd' style='padding: 3px;'>";
		s += "<input type='text' class='tf' name='h_wm_hoev_" + nieuwId + "' style='width:92%;' maxlength='10'/>";
		s += "</td>";
	}
	if (hidetotaal == false) {
	s += "<td class='wmdivtd' style='padding: 3px;'>";
	s += "<input type='text' name='h_wm_jaarhoev_" + nieuwId + "' class='tfreadonly' style='width:92%; text-align:right;' readonly>";
	s += "</td>";
	}
	s += "<td class='wmdivtd' id='wm_" + nieuwId + "'>";
	if (hidegeschat == true) {
	s += "<input type='hidden' name='h_wm_hoev_" + nieuwId + "' />";
	}
	if (hidetotaal == true) {
	s += "<input type='hidden' name='h_wm_jaarhoev_" + nieuwId + "' />";
	}
	s += "<a href=\"javascript: delWatermeter('" + nieuwId + "')\"><img src='/aangiftebiljet/algemeen/img/button_drop.gif' border='0' align='center' alt='watermeter verwijderen'>";
	s += "</td>";
	s += "</tr>";

	$("#tr_add_wm_" + id).before(s);

}

function delWatermeter(id)
{	
	//omdat schatting en meeting mogelijk zijn, en bij schatting
	//alleen h_wm_hoev gevuld is en bij meeting h_wm_hoev niet
	//maar bijvoorbeeld h_wm_begmeter, moeten beide velden leeg
	//worden gemaakt om duidelijk te kunnen herkennen, dat watermeter
	//gewist moet worden!

	$('#tr_wm_' + id + ' :input').val("").attr("disabled", true);
	$('#tr_wm_' + id).remove();
}

function ToggleWmWisselElements(id, lockgeschat)
{
	if ($("#wmwissel_" + id).attr("checked") == true)
	{
		if (lockgeschat == true)
        {
            alert("U heeft gekozen voor wisseling van de watermeter.\n\nTel het waterverbruik van de oude en de nieuwe watermeter op en vermeld het totaal in het veld `opgeteld verbruik (m3)`.");
            $('#h_wm_hoev_' + id + "_1").val("").attr("readonly", false).attr("disabled", false).css("background-color", "#FFFFFF");    
        }
        else
        {
            alert("U heeft gekozen voor wisseling van de watermeter hierdoor verdwijnen de door u ingevulde gegevens. Vul nu alleen de geschatte inname in.");   
        }
		
		$('.wm_' + id + ' :input').val("").attr("disabled", true);
		$('.wm_' + id).remove();
		$('#link_add_wm_' + id).hide();
		$('#h_wm_begmeter_' + id + "_1").val("").attr("disabled", true).css("background-color","#EEEEEE");
		$('#h_wm_beginD_' + id + "_1").val("").attr("disabled", true).css("background-color","#EEEEEE");
		$('#h_wm_beginM_' + id + "_1").val("").attr("disabled", true).css("background-color","#EEEEEE");
		$('#h_wm_beginY_' + id + "_1").val("").attr("disabled", true).css("background-color","#EEEEEE");
		$('#h_wm_eindmeter_' + id + "_1").val("").attr("disabled", true).css("background-color","#EEEEEE");
		$('#h_wm_eindD_' + id + "_1").val("").attr("disabled", true).css("background-color","#EEEEEE");
		$('#h_wm_eindM_' + id + "_1").val("").attr("disabled", true).css("background-color","#EEEEEE");
		$('#h_wm_eindY_' + id + "_1").val("").attr("disabled", true).css("background-color","#EEEEEE");
	}
	else
	{
		$('#link_add_wm_' + id).show();
		$('#h_wm_begmeter_' + id + "_1").attr("disabled", false).css("background-color","#FFFFFF");
		$('#h_wm_eindmeter_' + id + "_1").attr("disabled", false).css("background-color","#FFFFFF");
		$('#h_wm_beginD_' + id + "_1").attr("disabled", false).css("background-color","#FFFFFF");
		$('#h_wm_beginM_' + id + "_1").attr("disabled", false).css("background-color","#FFFFFF");
		$('#h_wm_beginY_' + id + "_1").attr("disabled", false).css("background-color","#FFFFFF");
		$('#h_wm_eindD_' + id + "_1").attr("disabled", false).css("background-color","#FFFFFF");
		$('#h_wm_eindM_' + id + "_1").attr("disabled", false).css("background-color","#FFFFFF");
		$('#h_wm_eindY_' + id + "_1").attr("disabled", false).css("background-color","#FFFFFF");
        $('#h_wm_hoev_' + id + "_1").attr("disabled", false).css("background-color","#FFFFFF");
        
        if (lockgeschat == true)
        {
            $('#h_wm_hoev_' + id + "_1").val("").attr("readonly", true).attr("disabled", true).css("background-color", "#EEEEEE");
        }
	}
}

function DisableWatermeter(id)
{
		$('#link_add_wm_' + id).hide();
		$('#h_wm_begmeter_' + id + "_1").val("").attr("disabled", true).css("background-color","#EEEEEE");
		$('#h_wm_beginD_' + id + "_1").val("").attr("disabled", true).css("background-color","#EEEEEE");
		$('#h_wm_beginM_' + id + "_1").val("").attr("disabled", true).css("background-color","#EEEEEE");
		$('#h_wm_beginY_' + id + "_1").val("").attr("disabled", true).css("background-color","#EEEEEE");
		$('#h_wm_eindmeter_' + id + "_1").val("").attr("disabled", true).css("background-color","#EEEEEE");
		$('#h_wm_eindD_' + id + "_1").val("").attr("disabled", true).css("background-color","#EEEEEE");
		$('#h_wm_eindM_' + id + "_1").val("").attr("disabled", true).css("background-color","#EEEEEE");
		$('#h_wm_eindY_' + id + "_1").val("").attr("disabled", true).css("background-color","#EEEEEE");
}

function getDispWatermeter(id) {

	if(document.all['wm_'+id].style.display == "none") {
		return "invisible";
	} else {
		return "visible";
	}
	
}

function getWatermeters(form, group) {
	var formEl = eval("document."+form);
	var meters = new Array();
	
	for(var i=0; i<formEl.length; i++) {
	//for(var i=0; i<10; i++) {
		
 		var name = formEl[i].name;
 		var elName = "_wm_jaarhoev_"+group+"_";

 		if(name.indexOf(elName) > 0) {
			meters[meters.length] = name.substring(name.lastIndexOf("_")+1, name.length);
		}
		
	}
	
	return meters;
}

function checkEmail(emailadres)
{
 	var filter=/^.+@.+\..{2,4}$/

	if (filter.test(emailadres))
	{
    		testresults=true
	}
 	else 
	{
    		testresults=false
	}
	
 	return (testresults)
}
