// JavaScript Document
function serialize_fields(data){
  if(isArray(data)) {
	  var fields = new Array();
	  
  		for(i=0;i<data.length;i++)
		{
			fields.push(Form.Element.serialize(data[i]));
		} 
	  return fields.join('&');
  } else {
  	return Form.Element.serialize(data);
  }
}

function isArray(obj) {
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}


function checkfield(fieldName, data, action, update, errorID, clearPlaats) {
	var tip;
	var params;
	
	if(errorID === undefined) {
		errorID=false;
	} else {
		if(!$(errorID).innerHTML) {
			if($(errorID).visible()) {
				$(errorID).hide()
			}
		}
	}
	
	if($(errorID).hasClassName('error') == false) {
		$(errorID).addClassName('error');
	}
	
	if(data === undefined) {
		data = fieldName;
	}

	new Form.Element.EventObserver(fieldName, function(element, value) { 
		$(update).src = '/img/icons/loading.gif'
		new Ajax.Request(action, {asynchronous:true, evalScripts:true, onComplete:function(request, json) {
			if(request.responseText == '1' || request.responseText == '2') {
				if(request.responseText == '1') {
					$(update).src = '/img/icons/accept.png'
					Effect.Pulsate(update, { pulses: 2, duration: 0.7 });
				}
				if($(fieldName).hasClassName('form-error')) {
					$(fieldName).toggleClassName('form-error')
				}
				if($(fieldName).addClassName('valid') == false) {
					$(fieldName).toggleClassName('valid')
				}
				if(errorID) {
					if($(errorID).visible()) {
						$(errorID).fade({ duration: 0.5 });
					}
				}

			} else {
				$(update).src = '/img/icons/cancel.png'
				if(errorID) {
					$(errorID).innerHTML = request.responseText;
					$(errorID).appear({ duration: 0.5 }); 
					
					if($(fieldName).hasClassName('form-error') == false) {
						$(fieldName).toggleClassName('form-error')
					}
					if($(fieldName).addClassName('valid')) {
						$(fieldName).toggleClassName('valid')
					}
				}
				if(clearPlaats) {
					$('OrderStraat').value = '';
					$('OrderPlaats').value = '';
					$('plaats').src = '/img/icons/cancel.png';
				}
			}
			//return tip;
		
		}, parameters:serialize_fields(data)})})

}


function toggleForm(fieldName, toggleElement, toggleDiv, errorID) {
	if($(fieldName).value != 1) {
		$(toggleDiv).hide();
	}
	new Form.Element.EventObserver(fieldName, function(element, value) {
		if(value == 1) {
			if($(toggleElement).hasClassName('form-error')) {
				$(toggleElement).removeClassName('form-error')
			}
			$(toggleDiv).show();
		} else {
			if($(errorID).visible()) {
				$(errorID).hide();
			}
			$(toggleDiv).hide();
			$(toggleElement).value = '';
			if($(toggleElement).hasClassName('form-error')) {
				$(toggleElement).removeClassName('form-error')
			}
			if($(toggleElement).hasClassName('valid')) {
				$(toggleElement).removeClassName('valid')
			}
		}
	})
}

function toggleBankForm(fieldName, toggleElement1, toggleElement2, toggleDiv1, toggleDiv2, errorImage1, errorImage2,errorID1,errorID2) {
	if($(fieldName).value == 1) {
		$(toggleDiv2).hide();
		$(errorID2).hide();
	} else if($(fieldName).value == 2) {
		$(toggleDiv1).hide();
		$(errorID1).hide();
	}
	new Form.Element.EventObserver(fieldName, function(element, value) {
		if(value == 1) {
			if($(errorID2).visible()) {
				$(errorID2).hide();
			}
			$(toggleDiv2).hide();
			$(toggleDiv1).show();
			$(toggleElement2).value = '';
			if($(toggleElement2).hasClassName('form-error')) {
				$(toggleElement2).removeClassName('form-error')
			}
			if($(toggleElement2).hasClassName('valid')) {
				$(toggleElement2).removeClassName('valid')
			}
			$(errorImage2).src = '/img/icons/cancel.png';
		} else if(value == 2) {
			if($(errorID1).visible()) {
				$(errorID1).hide();
			}
			$(toggleDiv1).hide();
			$(toggleDiv2).show();
			$(toggleElement1).value = '';
			if($(toggleElement1).hasClassName('form-error')) {
				$(toggleElement1).removeClassName('form-error')
			}
			if($(toggleElement1).hasClassName('valid')) {
				$(toggleElement1).removeClassName('valid')
			}
			$(errorImage1).src = '/img/icons/cancel.png';
		}
	})
}

function toggleIdForm(fieldName, toggleElementR, toggleElementP, toggleElementI, toggleDivR, toggleDivP, toggleDivI, errorImageR, errorImageP, errorImageI, errorIdR,errorIdP,errorIdI) {
	if($(fieldName).value == 'R') {
		$(toggleDivP).hide();
		$(errorIdP).hide();
		$(toggleDivI).hide();
		$(errorIdI).hide();
	} else if($(fieldName).value == 'P') {
		$(toggleDivR).hide();
		$(errorIdR).hide();
		$(toggleDivI).hide();
		$(errorIdI).hide();
	} else if($(fieldName).value == 'I') {
		$(toggleDivP).hide();
		$(errorIdP).hide();
		$(toggleDivR).hide();
		$(errorIdR).hide();
	}
	new Form.Element.EventObserver(fieldName, function(element, value) {
		if(value == 'R') {
			if($(errorIdI).visible()) {
				$(errorIdI).hide();
			}
			if($(errorIdP).visible()) {
				$(errorIdP).hide();
			}
			$(toggleDivI).hide();
			$(toggleDivP).hide();
			$(toggleDivR).show();
			
			$(toggleElementI).value = '';
			$(toggleElementP).value = '';
			
			if($(toggleElementI).hasClassName('form-error')) {
				$(toggleElementI).removeClassName('form-error')
			}
			if($(toggleElementI).hasClassName('valid')) {
				$(toggleElementI).removeClassName('valid')
			}
			if($(toggleElementP).hasClassName('form-error')) {
				$(toggleElementP).removeClassName('form-error')
			}
			if($(toggleElementP).hasClassName('valid')) {
				$(toggleElementP).removeClassName('valid')
			}
			
			$(errorImageI).src = '/img/icons/cancel.png';
			$(errorImageP).src = '/img/icons/cancel.png';
			
		} else if(value == 'P') {
			if($(errorIdI).visible()) {
				$(errorIdI).hide();
			}
			if($(errorIdR).visible()) {
				$(errorIdR).hide();
			}
			$(toggleDivI).hide();
			$(toggleDivR).hide();
			$(toggleDivP).show();
			
			$(toggleElementI).value = '';
			$(toggleElementR).value = '';
			
			if($(toggleElementI).hasClassName('form-error')) {
				$(toggleElementI).removeClassName('form-error')
			}
			if($(toggleElementI).hasClassName('valid')) {
				$(toggleElementI).removeClassName('valid')
			}
			if($(toggleElementR).hasClassName('form-error')) {
				$(toggleElementR).removeClassName('form-error')
			}
			if($(toggleElementR).hasClassName('valid')) {
				$(toggleElementR).removeClassName('valid')
			}
			
			$(errorImageI).src = '/img/icons/cancel.png';
			$(errorImageR).src = '/img/icons/cancel.png';
		} else if(value == "I") {
			if($(errorIdP).visible()) {
				$(errorIdP).hide();
			}
			if($(errorIdR).visible()) {
				$(errorIdR).hide();
			}
			$(toggleDivP).hide();
			$(toggleDivR).hide();
			$(toggleDivI).show();
			
			$(toggleElementP).value = '';
			$(toggleElementR).value = '';
			
			if($(toggleElementP).hasClassName('form-error')) {
				$(toggleElementP).removeClassName('form-error')
			}
			if($(toggleElementP).hasClassName('valid')) {
				$(toggleElementP).removeClassName('valid')
			}
			if($(toggleElementR).hasClassName('form-error')) {
				$(toggleElementR).removeClassName('form-error')
			}
			if($(toggleElementR).hasClassName('valid')) {
				$(toggleElementR).removeClassName('valid')
			}
			
			$(errorImageP).src = '/img/icons/cancel.png';
			$(errorImageR).src = '/img/icons/cancel.png';
		}
	})
}


function checkPostal(fieldName, data, action, postcode_method, errorID) {
	var tip;
	var params;
	
	if(data === undefined) {
		data = fieldName;
	}
	
	if(errorID === undefined) {
		errorID=false;
	} else {
		if($(errorID).hasClassName('error') == false) {
			$(errorID).addClassName('error');
		}
		if(!$(errorID).innerHTML) {
			if($(errorID).visible()) {
				$(errorID).hide()
			}
		}
	}

	new Form.Element.EventObserver(fieldName, function(element, value) { 
		
		new Ajax.Request(action, {asynchronous:true, evalScripts:true, onComplete:function(request, json) {
			if(request.responseText == '1') {
				$('plaats').src = '/img/icons/loading.gif'
				new Ajax.Request(postcode_method, {asynchronous:true, evalScripts:true, onComplete:function(request, json) {
					if(request.responseText == '0') {
						$('OrderStraat').value = '';
						$('OrderPlaats').value = '';
						$('plaats').src = '/img/icons/cancel.png';
						
						if(errorID) {
							$(errorID).innerHTML = 'De combinatie van Huisnr en Postcode is onbekend';
							$(errorID).appear({ duration: 0.5 }); 
							
							if($('OrderStraat').hasClassName('form-error') == false) {
								$('OrderStraat').toggleClassName('form-error')
							}
							if($('OrderPlaats').hasClassName('form-error') == false) {
								$('OrderPlaats').toggleClassName('form-error')
							}

						}
					} else {
						var response = request.responseText.split('|');
						$('OrderStraat').value = response[0];
						$('OrderPlaats').value = response[1];
						
						if($('OrderStraat').hasClassName('form-error') == true) {
							$('OrderStraat').toggleClassName('form-error')
						}
						if($('OrderPlaats').hasClassName('form-error') == true) {
							$('OrderPlaats').toggleClassName('form-error');
						}
						$('OrderStraat').addClassName('valid');
						$('OrderStraat').toggleClassName('valid');
						$('OrderPlaats').addClassName('valid');
						
						$('plaats').src = '/img/icons/accept.png';
						Effect.Pulsate('plaats', { pulses: 2, duration: 0.7 });

						if(errorID) {
							if($(errorID).visible()) {
								$(errorID).fade({ duration: 0.5 });
							}
						}
					}
		
				}, parameters:serialize_fields(data)})
			} else {
				return false;
			}
		
		}, parameters:serialize_fields(data)})})

}

function toggle_vraag(vraag_id, img, first) {
	if(first) {
		$(vraag_id).hide();	
	} else {
		if($(vraag_id).visible()) {
			$(vraag_id).fade({duration:0.2});
			$(img).src = '/img/icons/arrow_right.png';
		} else {
			$(vraag_id).appear({duration:0.2});
			$(img).src = '/img/icons/arrow_down.png';
		}
	}
}