// file: etc/js/formCheck.js

/*
	Form validation functions
*/

function evalLength(objectId,length,nextObjectId){
	if(document.getElementById(objectId).value.length >= length){
		document.getElementById(nextObjectId).focus();
	}
}

function in_array(the_needle, the_haystack){
	var the_hay = the_haystack.toString();
	if(the_hay == ''){
		return false;
	}
	var the_pattern = new RegExp(the_needle, 'g');
	var matched = the_pattern.test(the_haystack);
	return matched;
}

function upperCase(input){
	input.value = input.value.toUpperCase();
}

// determine length of input value
function lengthCheck(elementName, length){
	if(document.getElementById(elementName).value.length < length){
		document.getElementById(elementName).className += ' inputFalse';
		return false;
	}else{
		document.getElementById(elementName).className += ' inputTrue';
		return true;
	}
}


// fix PostCode
function fixPostcode(postCode,objectName){
	if(postCode.length < 7){
		td = postCode.substr(0,4);
		if(postCode.length == 6){
			td += ' ';
			td += postCode.substr(4,2).toUpperCase();
		}				
	}

	if(postCode.length == 7){
		td = postCode.substr(0,5);
		td += postCode.substr(5,2).toUpperCase();
	}
	document.getElementById(objectName).value = td;
}
// check PostCode validity
function checkPostalCode(textBox){	
	success = true;
	if(lengthCheck(textBox,7)){
		if(!isInteger(document.getElementById(textBox).value.substr(0, 4))){
			success = false;
		}
		
		if(!isAlphabetic(document.getElementById(textBox).value.substr(5, 2))){
			success = false;
		}
		
		if(document.getElementById(textBox).value.substr(4,1) != ' '){
			success = false;
		}
		
	}else{
			success = false;
	}
	if(!success){
		//document.getElementById('zipCodeRequired').innerHTML = '**';
		document.getElementById('postalcode').className += ' inputFalse';
		return false;
	}else{
		document.getElementById('postalcode').className += ' inputTrue';
		return true;
	}
}

// check multiple value for same name and add to alertmessage
// this is used for radiobuttons or selectbox
function checkMultipleName(elementName){
	//alert('current element : ' + elementName);
	retVar = false;
	var txt = document.getElementById(elementName + 'Required');
	for(y = 0; y < document.getElementsByName(elementName).length; y++){
		if(document.getElementsByName(elementName)[y].checked  || document.getElementsByName(elementName)[y].selectedIndex > 0){
			retVar = true;
		}
	}
	if (retVar == false){
		addError('Maak s.v.p. een keuze bij \'' + document.getElementById(elementName + 'Text').innerHTML + '\'');
		//txt.innerHTML = '**';
		txt.className += ' inputFalse';
	}else{
		txt.className += ' inputTrue';
	}
	return retVar;
}

function checkTextInput(elementName, num){
	//alert('current element : ' + elementName);
	retVar = false;
	var element = document.getElementById(elementName);
	if(elementName !== 'number' && elementName !== 'numberFriend' && elementName !== 'city' && elementName !== 'cityFriend' && elementName !== 'modifyNumber' && elementName !== 'modifyCity'){
		var txt = document.getElementById(elementName + 'Required');
	}
	if(lengthCheck(elementName, num) == false){
		addError('\'' + document.getElementById(elementName + 'Text').innerHTML + '\' is niet correct ingevuld');
		if(elementName !== 'number' && elementName !== 'numberFriend' && elementName !== 'city' && elementName !== 'cityFriend' && elementName !== 'modifyNumber' && elementName !== 'modifyCity' && elementName !== 'risicoNumber' && elementName !== 'risicoCity'){
			//document.getElementById(elementName + 'Required').innerHTML = '**';
			document.getElementById(elementName + 'Required').className = 'inputFalse';
		}
		retVar = false;
	}else{
		if(elementName !== 'number' && elementName !== 'numberFriend' && elementName !== 'city' && elementName !== 'cityFriend' && elementName !== 'modifyNumber' && elementName !== 'modifyCity' && elementName !== 'risicoNumber' && elementName !== 'risicoCity'){
			document.getElementById(elementName + 'Required').className = 'inputTrue';
		}
		retVar = true;
	}
	return retVar;
}

function isEmail (s)
{   if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);
   
    if (isWhitespace(s)) return false;
    
    var i = 1;
    var sLength = s.length;

    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++;
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    while ((i < sLength) && (s.charAt(i) != "."))
    { i++;
    }

    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

function isWebsite (string){
	if (isWhitespace(string)) return false;
	if (string.substr(0,7) == 'http://'){
		return true;
	}else{
		return false;
	}
}

function getRadioValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function getRadioValueNew(radioObj) {
	var radioOps = document.getElementsByName(radioObj);
	var radioLen = radioOps.length;
	for(var i = 0; i < radioLen; i++) {
		if(radioOps[i].checked) {
			return radioOps[i].value;
		}
	}
	return "";
}

function lengthCheck(elementName, length){
	if(document.getElementById(elementName).value.length < length){
		return false;
	}else{
		return true;
	}
}

// check multiple value for same name and add to alertmessage
// this is used for radiobuttons or selectbox
function checkMultipleName(elementName){
	//alert('current element : ' + elementName);
	retVar = false;
	var txt = document.getElementById(elementName);
	for(y = 0; y < document.getElementsByName(elementName).length; y++){
		if(document.getElementsByName(elementName)[y].checked  || document.getElementsByName(elementName)[y].selectedIndex > 0){
			retVar = true;
		}
	}
	if (retVar == false){
		addError('Maak s.v.p. een keuze bij \'' + document.getElementById(elementName + 'Text').innerHTML + '\'');
		//txt.innerHTML = '**';
		txt.className += 'inputFalse';
	}else{
		txt.className += 'inputTrue';
	}
	return retVar;
}

/////////////////////////////////////////////////////////////////

// Global variables
var errorMessage 	= 'De volgende problemen hebben zich voorgedaan met betrekking tot de invulling van het formulier: \r\n';
var passed 			= true;

// add to errorstring
function addError(string){
	if(passed)
		passed = false;
		errorMessage += '- '+string+'\n'
}

// show errors
function printError(){
	alert(errorMessage);
	errorMessage = 'De volgende problemen hebben zich voorgedaan met betrekking tot de invulling van het formulier: \r\n';
	passed = true;
}

// some other default functions
function ucFirst(str){
	if(str.length > 0){
		first = str.substr(0,1).toUpperCase();
		return first + str.substr(1,str.length-1);
	}else{
		return str.toUpperCase();
	}
}

function explodeArray(item,delimiter) {
	if(item.length == 0){
		return Array();
	}
	tempArray = new Array(1);
	var Count = 0;
	var tempString = new String(item);

	while(tempString.indexOf(delimiter) > 0) {
    	tempArray[Count] = tempString.substr(0,tempString.indexOf(delimiter));	
	    tempString = tempString.substr(tempString.indexOf(delimiter)+1,tempString.length-tempString.indexOf(delimiter)+1); 
    	Count = Count+1;
	}

	tempArray[Count]=tempString;
	return tempArray;
}


function evalLength(objectId,length,nextObjectId){

	if(document.getElementById(objectId).value.length >= length){

		document.getElementById(nextObjectId).focus();

	}

}

function in_array(the_needle, the_haystack){

	var the_hay = the_haystack.toString();

	if(the_hay == ''){

		return false;

	}

	var the_pattern = new RegExp(the_needle, 'g');

	var matched = the_pattern.test(the_haystack);

	return matched;

}

function triggerDiv(triggerId, outputId, status){
	doc = document;
	var trigger 	= doc.getElementById(triggerId);
	var outputId	= doc.getElementById(outputId);
	var status;
	if (status == undefined){
		if (triggerId.selectedIndex == 1){
			outputId.style.display = 'block';
		}else{
			outputId.style.display = 'none';
		}
	}else{
		if(trigger.selectedIndex == status){
			outputId.style.display = 'block';
		}else{
			outputId.style.display = 'none';
		}
	}
}


// this piece of code is for debugging purposes
var message 	= 'Het formulier bevat de volgende elementen: \r\n\r\n';

function addFormElm(i, string){
		message += (i+1) + ' - '+string+'\r\n'
}

function printFormElements(){
	alert(message);
}

function showFormElements(form){
	if (message !== 'Het formulier bevat de volgende elementen: \r\n\r\n') message = 'Het formulier bevat de volgende elementen: \r\n\r\n';
	var form = document.getElementById(form);
	var len = form.length;
	var elm = form.elements;
	for (i=0; i < len; i++){
	  addFormElm(i, 'elmId = ' + elm[i].id + ', elmName = ' + elm[i].name + ', elmType = ' + elm[i].type + ', elmValue = ' + elm[i].value);
	}
	printFormElements();
}
// end debugging

function validateForm(formName){
	
	switch(formName){
		case 'contactform':
			// check name	
			if(!lengthCheck('naam',2)){
				addError('Vul s.v.p. uw naam in.');
				document.getElementById('naam').className='error';
			}else{
				document.getElementById('naam').className='text';
			}	
			// check email
			if(!lengthCheck('email',2)){
				addError('Vul s.v.p. een emailadres in.');
				document.getElementById('email').className='error';
			}else{
				if((isEmail(document.getElementById('email').value)) == false){
					addError('Het emailadres dat u invulde is geen correct adres.');
					document.getElementById('email').className='error';
				}else{
					document.getElementById('email').className='text';
				}
			}	
			// check telefoon	
			if(!lengthCheck('phone',2)){
				addError('Vul s.v.p. een telefoonnummer in.');
				document.getElementById('phone').className='error';
			}else{
				document.getElementById('phone').className='text';
			}		
		break;
	}
	
	//alert(passed);
	if(passed){		
		return true;
	}else{
		printError();
		return false;
	}
}

function openTab(id)
{
	document.getElementById('overviewdiv').style.display = 'none';
	document.getElementById('descriptiondiv').style.display = 'none';
	document.getElementById('imagesdiv').style.display = 'none';
	
	document.getElementById('overview').className = '';
	document.getElementById('description').className = '';
	document.getElementById('images').className = '';

	var idDiv = id + 'div';
	document.getElementById(idDiv.toLowerCase()).style.display = 'block';
	document.getElementById(id.toLowerCase()).className = 'active';	
}

function clearForm(formId){
	var form = document.getElementById(formId);
	var len = form.length;
	var elm = form.elements;
	for (i=0; i < len; i++){
		alert(document.getElementById(elm[i].id).name + ' = ' + document.getElementById(elm[i].id).value);
		document.getElementById(elm[i].id).value = ''	
	}	
}

function mainmenu(){
	$(" #nav ul ").css({display: "none"}); // Opera Fix
	$(" #nav li.hasSubmenu").hover(function()
	{
		$(this).removeClass("button");
		$(this).addClass("subMenu");
		$(this).find('ul:first:hidden').css({visibility: "visible",display: "none"}).show(0);
	}
	,function()
	{
		$(this).removeClass("subMenu");
		$(this).addClass("button");
		$(this).find('ul:first').css({visibility: "hidden"});
	});
}

$(document).ready(function()
{
	jQuery('ul#carrousel').innerfade({ 
		speed: 1000,
		timeout: 5000,
		type: 'sequence',
		containerheight: '150px'
	});
	
	$('.fotos').mouseover(function()
	{
		$(this).attr('src', 'images/fotosDown.png');
	});
	
	$('.fotos').mouseout(function()
	{
		$(this).attr('src', 'images/fotos.png');
	});
	
	
	$('.fotos').click(function()
	{
		$('.fotos').unbind('mouseout');
		$name = $('.active').attr('id');
		
		$('#' + $name).mouseout(function()
		{
			$(this).attr('src', 'images/' + $name + '.png');
		});
		
		$('.active').attr('src', 'images/' + $name + '.png');
		$(this).attr('src','images/fotosDown.png');
		return true;
	});
	
	jQuery('ul#pictureFrame2').innerfade({ 
		speed: 3000,
		timeout: 5000,
		type: 'sequence',
		containerheight: '196px'
	});

	$('.slideShow a').lightBox({
	txtImage: 'Afbeelding',
	txtOf: 'van'		
	});
	
	$('.slideShow2 a').lightBox({
	txtImage: 'Afbeelding',
	txtOf: 'van'		
	});
	
	$('.slideShow3 a').lightBox({
	txtImage: 'Afbeelding',
	txtOf: 'van'		
	});


});

