/*
Goto predefined anchor on page
2007.06.04 Initial setup: Arjan Sieverink, Inter Access bv
param p_txtAnchor	: anchor name to go to
*/
function goToAnchor( p_txtAnchor ) {
	var strAnchor="#"+p_txtAnchor;
	location.href = strAnchor
}
/*
Enlarge image popup
2007.02.20 Initial setup: Gert Jan den Hartog, Miele Nederland bv
*/
function showPopup(parm1,parm2,parm3)
		{
			newwindow=window.open("","name","height=" + (parm3+30) +",width=" + (parm2+20) + ",scrollbars=no,resizable=no");
			var tmp = newwindow.document;
			tmp.write("<html><head><title>Miele</title>");
			tmp.write("</head><body>");
			tmp.write("<img src='" + parm1 + "' width='" + parm2 + "' height='" + parm3 + "' border='0' />");
			tmp.write("</body></html>");
			tmp.close();
		}
/*
Check if any of n fields is checked, used for virtual form switch
2007.05.16 Initial setup: Arjan Sieverink, Inter Access bv
param p_txtField	: field name prefix
param p_intIterate	: number of iterations (fields)
param p_id		: id name of div to hold error message
*/
function validChecked( p_txtField , p_intIterate, p_id) {
	var chkd=0;
	for (var x=1; x<p_intIterate; x++) {
		var fields = document.getElementsByName( p_txtField+x );
		if ( fields ) {
			for (var i=0; i<fields.length;i++) {
				var field=fields[i];
				if (field) {
					if (field.checked) {
						chkd = chkd + 1;
					}
				}
			}
		}
	}
	if (chkd > 0) {
		return true;
 	} else {
		//document.getElementById( p_id ).innerHTML='Kies eerst een brochure...';
		alert('U heeft nog geen brochure gekozen...');
  		return false;      
 	}
}
/*
Show hide block div(s), used for virtual form switch
2007.02.22 Initial setup: Arjan Sieverink, Inter Access bv
param p_sep		: separator character
param p_showDivs	: id(s) of div(s) to show, separated by p_sep
param p_hideDivs	: id(s) of div(s) to hide, separated by p_sep
*/
function showBlock( p_showDivs, p_hideDivs , p_sep) {
	//div to show
	var divs2Show = p_showDivs.split( p_sep );
	//alert(divs2Show.length);
	//Array of divs to hide;
	var divs2Hide = p_hideDivs.split( p_sep );
	//alert(divs2Hide.length);
	//Hide divs;
	if (divs2Hide) {
		for (var i=0 ; i < divs2Hide.length ; i++) {
			if (divs2Hide[i] != '') {
				document.getElementById( divs2Hide[i] ).style.display = "none";
			}
		}
	}
	//show divs
	if (divs2Show) {
		for (var i=0 ; i < divs2Show.length ; i++) {
			if (divs2Show[i] != '') {
				document.getElementById( divs2Show[i] ).style.display = "block";
			}
		}
	}	
}
/*
Form and data validation functions
2007.02.17, Arjan Sieverink, Inter Access bv, http://www.interaccess.nl
*/

/*
Courtesy Wouter Adriaans, Inter Access bv
Reset background color for field(s)
param field		: element object
*/
function resetBgColor( field ) {
 if ( field ) {
  field.style.background = "#FFFFFF";
 } else {
  for(i=0 ; i<document.forms[0].elements.length ; i++)
  {
   if(document.forms[0].elements[i].style.background == "pink" &&  document.forms[0].elements[i].className !== "transparentRadio")
   {
    document.forms[0].elements[i].style.background = "#FFFFFF"
   }
  }
 }
}
/*
Courtesy Wouter Adriaans, Inter Access bv
Reset background color for radio, checkbox and select field(s)
param name		: element name
*/
function resetBgColorRadioCheckboxSelect( name ) {
 var fields = document.getElementsByName( name );
 if ( fields ) {
  for (var i=0; i<fields.length;i++) {
   fields[i].style.background = "transparent";
  }
 }
}
/*
Courtesy Wouter Adriaans, Inter Access bv
Set background color and focus for incorrectly filled field
*/
function setBgColorAndFocus( field )
{
 //set background color
 field.style.background = "pink";
 //set focus to first field, blnFocus skips other fields
 if (blnFocus==false)
 {
  field.focus();
  blnFocus=true;
 }
}
/*
Courtesy Wouter Adriaans, Inter Access bv
Set background color and focus for incorrectly filled radio, checkbox and select field
*/
function setBgColorRadioCheckboxSelect( name ) {
 var fields = document.getElementsByName( name );
 if (fields) {
  for (var i=0; i<fields.length;i++) {
   fields[i].style.background = "pink";
  }
 }
}
/*
General function to test a regular expression against a string value
param regex		: regular expression
param fields		: array of element objects
*/
function testRegEx( regex , fields) {
 for (var i=0;i<fields.length;i++) {
  var field=fields[i];
  if (field) {
   var value = field.value; 
   if (!regex.test( value )) {
    setBgColorAndFocus( field );
    return false;
   } else {
   return true;
   }
  } else {
  return true;
  }
 }
}
/*
Validate numeric value
*/
function validDigits( name ){
 var regex = /^\d+$/ ;
 var fields = document.getElementsByName( name );
 if ( fields ) {
  return testRegEx( regex , fields );
 } else {
 return true;
 }
}
/*
Validate email address
*/
function validEmail( name ){
 var regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,7}$/ ;
 var fields = document.getElementsByName( name );
 if ( fields ) {
  if ( fields[0].value !== '' ){
   return testRegEx( regex , fields );
  } else {
  return true;
  }
 } else {
 return true;
 }
}
/*
Validate empty fields 
*/
function validInput( name ) {
 var regex = /^.+$/m;
 var fields = document.getElementsByName( name );
 if ( fields ) {
  return testRegEx( regex , fields );
 } else {
 return true;
 }
}
/*
Validate Dutch phone number 
*/
function validPhone( name ) {
 //var regex = /(\d{3})?(\d{7})|(\d{4})?(\d{6})/;
 //Change 2007.06.26 Arjan Sieverink
 var regex = /^(\d{10})$|-?\D(\d{10})|(\d{10})-?\D|(\d{2})-?\D(\d{8})|(\d{3})-?\D(\d{7})|(\d{4})-?\D(\d{6})/;
 var fields = document.getElementsByName( name );
 if ( fields ) {
  return testRegEx( regex , fields );
 } else {
 return true;
 }
}
/*
Validate date of birth
*/
function validDateOfBirth( name ) {
 var regex = /(\d{2})-(\d{2})-(\d{4})/;
 var fields = document.getElementsByName( name );
 if ( fields ) {
  return testRegEx( regex , fields );
 } else {
 return true;
 }
}
/*
Validate radio and checkbox 
*/
function validRadioCheckbox( name ) {
 var chkd=0;
 var fields = document.getElementsByName( name );
 for (var i=0;i<fields.length;i++) {
  var field=fields[i];
  if (field) {
   if (field.checked) {
    chkd = chkd + 1;
   }
  }
 }
 if (chkd > 0) {
  return true;
 } else {
  setBgColorRadioCheckboxSelect( name );
  return false;      
 }
}
/*
Validate select
*/
function validSelect( name ) {
 var fields = document.getElementsByName( name );
 for (var i=0;i<fields.length;i++) {
  var field=fields[i];
  if (field) {
   if (field.options.selectedIndex<1) {
    setBgColorRadioCheckboxSelect( name );
    return false;
   } else {
    return true;
   }
  }
 }
}
/*
Validate ZIP alpha characters (Dutch postal code: 2) 
*/
function validZIPAlpha( name ) {
 var regex = /([A-Za-z])([A-Za-z])/ ;
 var fields = document.getElementsByName( name );
 if ( fields ) {
  return testRegEx( regex , fields );
 } else {
 return true;
 }
}
/*
Validate ZIP digits (Dutch postal code: 4)
*/
function validZIPDigits( name ) {
 var regex = /([1-9])([0-9])([0-9])([0-9])/ ;
 var fields = document.getElementsByName( name );
 if ( fields ) {
  return testRegEx( regex , fields );
 } else {
 return true;
 }
}
/*
Show/hide row when select option is selected/unselected; triggered by onChange event in select field
2007.06.01		Initial setup: Gertjan den Hartog
2007.06.06		Changes: Arjan Sieverink, Inter Access bv
			- parameterize function
			- add browser-dependent style formatting
			- use table-row location functionality
param fldSelect		: this (triggered by field onChange event)
param fldName		: field name of field to clear on unselect
param chkAgainst	: selected option text value that triggers show
param tableId		: id of table that contains the row
param rowNum		: number of the row within table 
*/
function showType( fldSelect , fldName , chkAgainst , tableId, rowNum) {
	var browser=navigator.appName;
	var selectedValue=fldSelect.options[fldSelect.options.selectedIndex].text ;
	var tbl=document.getElementById( tableId );
	//alert(browser);
	//alert(chkAgainst);
	//alert(selectedValue);
	if (selectedValue==chkAgainst) {
		//non-IE
		if (browser!='Microsoft Internet Explorer'){
			//alert('true, non-IE');
			tbl.rows[rowNum].style.visibility='visible';
			}
		else {
			//IE
			//alert('true, IE');
			tbl.rows[rowNum].style.display='block';
		}
	} else {
		var fields = document.getElementsByName( fldName );
		for (var i=0;i<fields.length;i++) {
			var field=fields[i];
			if (field) {
				field.value='';
				resetBgColor( field );
			}
		}
		if (browser!='Microsoft Internet Explorer'){
			//alert('false, non-IE');
			tbl.rows[rowNum].style.visibility='collapse';
			}
		else {
			//alert('false, IE');
			tbl.rows[rowNum].style.display='none';
		}
	}
}
