function startMenuLoop()
{
	var container		= jQuery('#banners ul').get(0),
		childs			= container.getElementsByTagName('li'),
		childs_len		= childs.length,
		loopControl		= function(e){loop = e.type == 'mouseout'},
		loop			= true,
		width			= 0,
		left			= 0;

	jQuery(container).mouseout(loopControl).mouseover(loopControl);

	for(var z = 0; z < childs_len; z++){
		width += childs[z].offsetWidth + 7;
	}

	if(width <= jQuery('#banners').width()) return;

	for(var z = 0; z < childs_len; z++){
		container.appendChild(childs[Math.floor(Math.random() * childs_len)]);
	}

	for(var z = 0; z < childs_len; z++){
		var child = childs[z].cloneNode(true);
		container.appendChild(child);
	}

	var time = 20;
	var f = function(){
		if(-width >= left){
			left = 0;
		}

		if(loop){
			container.style.left = (left--) + 'px';
		}
		setTimeout(f, time);
	};
	setTimeout(f, time);
}

function imageSlider()
{
	var container		= jQuery('#dynamic_page_banners ul').get(0),
		childs			= container.getElementsByTagName('li'),
		childs_len		= childs.length,
		loopControl		= function(e){loop = e.type == 'mouseout'},
		loop			= true,
		width			= 0,
		left			= 0;

	jQuery(container).mouseout(loopControl).mouseover(loopControl);

	for(var z = 0; z < childs_len; z++){
		width += childs[z].offsetWidth;
	}

	if(width <= jQuery('#dynamic_page_banners').width()){
		jQuery('#dynamic_page_banners ul').width(width)
		return;
	}

//
//	for(var z = 0; z < childs_len; z++){
//		container.appendChild(childs[z]);
//	}

	for(var z = 0; z < childs_len; z++){
		var child = childs[z].cloneNode(true);
		container.appendChild(child);
	}

	var time = 20;
	var f = function(){
		if(-width > left){
			left = 0;
		}

		if(loop){
			container.style.left = (left--) + 'px';
		}
		setTimeout(f, time);
	};
	setTimeout(f, time);
}



function is_fill( mf )
{
	var empty_input = null;
	for ( i = 0; i < mf.length; i++ )
	{
		if (mf[i].name != 'postcode_mail' &&  mf[i].name != 'postcode_phone' && mf[i].name != 'toev' && (mf[i].type == 'text' && !mf[i].value.replace( / /g, '' ).length ) && !mf[i].disabled)
		{
			jQuery(mf[i]).addClass('error');
			if ( !empty_input ) {
				empty_input = mf[i];
			}
		}
		else if (mf[i].type == 'text')
		{
			jQuery(mf[i]).removeClass('error');
		}
	}
	return empty_input;
}

function only_letters(e)
{
	var key_code = e.keyCode || e.charCode;
	return (key_code >= 65 && key_code <= 90)
		   || (key_code >= 97 && key_code <= 122)
		   || key_code == 8
		   || key_code == 9
		   || (key_code >= 37 && key_code <= 40
		   && key_code != 32);
}

function only_numbers(e)
{
	var key_code = e.keyCode || e.charCode;
	return (key_code >= 48 && key_code <= 57)
		   || key_code == 8
		   || key_code == 9
		   || ( key_code >= 37 && key_code <= 40);
}

function move_to_next(len, field, next_field)
{
	if(jQuery(field).val().length >= len) {
		next_field.focus();
	}
}

jQuery(document).ready( function() {
	var timer = setTimeout( function() {
		var forms = jQuery('#form_postcode_checking, #form_subscription, #main_postcode_check');
		if (forms && forms.length)
		{
			forms.each(function(key, mf)
			{
				var hiddens = jQuery('input:hidden[@name=postcode_check]', mf);

				if(( mf.id == 'form_postcode_checking' || mf.id == 'form_subscription') && (hiddens.length && hiddens[0].value == 'yes') )
				{
					if(mf[4].name == "numbers_c"){
						jQuery(mf[4]).attr('autocomplete', 'off');
						jQuery(mf[4]).bind('keypress', only_numbers);
						jQuery(mf[4]).keyup(function(e){move_to_next(4, this, mf[5]);return true;});
					}


					if(mf[5].name == 'letters_c') {
						jQuery(mf[5]).attr('autocomplete', 'off');
						jQuery(mf[5]).bind('keypress', only_letters);
						jQuery(mf[5]).bind('keyup', function(e){move_to_next(2, this, mf[6]);return true;});
					}

					if(mf[6].name == 'huisnr_c'){
						jQuery(mf[6]).attr('autocomplete', 'off');
						jQuery(mf[6]).bind('keypress', only_numbers);
					}


					jQuery(mf).bind('submit', function()
					{

						var mf = this;
						var ret = true;
						var contact_by = jQuery('input:radio[@name=contact_by]:checked', mf).val();

						if(contact_by == 1 && !mf.email_address.value.replace(/ /g, '').length) {
							ret = false;
							jQuery(mf.phone_number).removeClass('error');
							jQuery(mf.mobile).removeClass('error');
							jQuery(mf.email_address).addClass('error');
							alert( "Veld kan niet leeg zijn" );
							mf.email_address.value = '';
							mf.email_address.focus();
						}
						else if(contact_by == 2 && !mf.phone_number.value.replace(/ /g, '').length && !mf.mobile.value.replace(/ /g, '').length) {
							jQuery(mf.email_address).removeClass('error');
							jQuery(mf.phone_number).addClass('error');
							jQuery(mf.mobile).addClass('error');
							alert( "Phone or mobile phone???" );
							mf.phone_number.value = '';
							mf.phone_number.focus();
							ret = false;
						}
						else {
							jQuery(mf.email_address).removeClass('error');
							jQuery(mf.phone_number).removeClass('error');
							jQuery(mf.mobile).removeClass('error');
							ret = true;
						}

						if(mf[4].name == 'numbers_c' && mf[4].value.length < 4){
							alert("Postcode part I - Invalid length" );
							mf[4].focus();
							jQuery(mf[4]).removeClass('error');
							jQuery(mf[4]).addClass('error');
							ret = false;
						}

						if(mf[4].name == 'numbers_c' && (isNaN(parseInt(mf[4].value)) || parseInt(mf[4].value)< 1000 || parseInt(mf[4].value) > 9999)){
							alert("Postcode part I - number must be between 1000 and 9999" );
							mf[4].focus();
							jQuery(mf[4]).removeClass('error');
							jQuery(mf[4]).addClass('error');
							ret = false;
						}

						if(mf[5].name == 'letters_c' && mf[5].value.length < 2){
							alert("Postcode part II - Invalid length" );
							mf[5].focus();
							jQuery(mf[5]).removeClass('error');
							jQuery(mf[5]).addClass('error');
							ret = false;
						}

						if(mf[6].name == 'huisnr_c' && mf[6].value.length < 1){
							alert("Huisnr - Invalid length" );
							mf[6].focus();
							jQuery(mf[6]).removeClass('error');
							jQuery(mf[6]).addClass('error');
							ret = false;
						}

						if(mf[6].name == 'huisnr_c' && !!mf[6].value.match(/^0+$/)) {
								alert("Huisnr - Can't be only 0" );
								mf[6].focus();
								jQuery(mf[6]).removeClass('error');
								jQuery(mf[6]).addClass('error');
								ret = false;
						}

						return ret;
					});
				}
				else
				{
					jQuery(mf).bind('submit', function() {
						var mf = this;
						var ret = true;
						var empty_input = is_fill(mf);

						if (empty_input)
						{
							alert( "Veld kan niet leeg zijn" );
							empty_input.value = '';
							empty_input.focus();
							ret = false;
						}
						else if (mf[0].name == 'numbers'  && mf[0].value.length != 4)
						{
							alert( "Invalid length" );
							mf[0].focus();
							jQuery(mf[0]).addClass('error');
							ret = false;

						}
						else if (mf[0].name == 'numbers'  && (isNaN(parseInt(mf[0].value)) || parseInt(mf[0].value) < 1000 || parseInt(mf[0].value) > 9999))
						{
							alert( "Postcode must be between 1000 and 9999" );
							mf[0].focus();
							jQuery(mf[0]).addClass('error');
							ret = false;

						}
						else if (mf[1].name == 'letters' && mf[1].value.length != 2)
						{
							alert("Invalid length");
							mf[1].focus();
							jQuery(mf[1]).addClass('error');
							ret = false;
						}
						else if (mf[1].name == 'letters' && /[^a-zA-Z]/.test(mf[1].value))
						{
							alert("Only letters");
							mf[1].focus();
							jQuery(mf[1]).addClass('error');
							ret = false;
						}
						else if(mf[2].name == 'huisnr' && /[^0-9]/.test(mf[2].value)) {
							alert("Only numbers" );
							mf[2].focus();
							jQuery(mf[2]).addClass('error');
							ret = false;
						}
						else if(mf[2].name == 'huisnr' && /^0+$/.test(mf[2].value)) {
							alert("Huisnr - Can't be only 0" );
							mf[2].focus();
							jQuery(mf[2]).addClass('error');
							ret = false;
						}

						if(ret) {
							$(':submit', mf).attr('disabled', 'disabled');
						}

						return ret;
					});


					if(mf[0].type == 'text'  && mf[0].name == 'numbers')
					{

						if(mf[0].name == "numbers"){
							jQuery(mf[0]).attr('autocomplete', 'off');
							jQuery(mf[0]).bind('keypress', only_numbers);
							jQuery(mf[0]).keyup(function(e){move_to_next(4, this, mf[1]);return true;});
						}

					}

					if(mf[1].type == 'text'  && mf[1].name == 'letters')
					{
						jQuery(mf[1]).attr('autocomplete', 'off');
						jQuery(mf[1]).bind('keypress', only_letters);
						jQuery(mf[1]).bind('keyup', function(e){move_to_next(2, this, mf[2]);return true;});
					}

					if(mf[2].type == 'text'  && mf[2].name == 'huisnr')
					{
						jQuery(mf[2]).attr('autocomplete', 'off');
						jQuery(mf[2]).bind('keypress', only_numbers);

					}
				}
			});
		}

//		var href = jQuery('a.contact_us_link').attr('href');
//		href ? null : href = root_path_page + 'contact_us/';
//		jQuery('a[href={LINK_TO_CONTACT_US}]').attr('href', href);
		clearTimeout(timer);
	}, 0);
});
