
/* Namespace Veemarkt*/
var vm = function() {} ;
vm.error = function(identifier)
{
	$(identifier).css('background-color', '#f7a787');
}
vm.noerror = function(identifier)
{
	$(identifier).css('background-color', '#ffffff');
}

vm.checkProfile = function(name)
{
	// Ceck profile w AJAX:
	$('#profileCheck').load('/ajax.php?checkProfile='+escape(name));
}
vm.checkEmail = function(email)
{
	// Ceck profile w AJAX:
	$('#emailCheck').load('/ajax.php?checkEmail='+escape(email));
}
vm.closeTestMessage = function()
{
	$('.testsiteTop2').hide();
	$('.testsiteTop1').hide();
	$('#testmessage').hide(300);
	$.cookie('testmessage','closed');
	return false; 
}
vm.writeEmail = function(p1,p1)
{
	document.write(p1+' AT '+p2);
}
vm.errorIfEmpty = function(inputId, currentErrorState)
{
	var value = $('#'+inputId).val();
	if (value == "") {
		vm.error('#'+inputId);
		return true;
	}
	vm.noerror('#'+inputId);
	return currentErrorState;
}

vm.selBid = function (bidId, typeSelect)
{
	$('#bid'+bidId).attr("checked", "checked");
	if (typeSelect == 'accept')
	{
		$('#acceptAuctionMessage').hide();
		$('#manageAuction').hide();
		
		$('#acceptOfferMessage').show(300);
		$('#manageAccept').show(300);
	} else if (typeSelect == 'auction'){
		$('#acceptOfferMessage').hide();
		$('#manageAccept').hide();
		
		$('#acceptAuctionMessage').show(300);
		$('#manageAuction').show(300);
	}
}

vm.insertReplyAjax = function()
{
	/* Smarty:   {$reply.message}
				 {$reply.name}
				 <hr>
	*/
	var date = new Date();
	var dateString = vm.nrf(date.getDate())+'-'+vm.nrf(date.getMonth())+'-'+date.getFullYear()+' @'+vm.nrf(date.getHours())+':'+vm.nrf(date.getMinutes());
	var dateSql = date.getFullYear()+'-'+vm.nrf(date.getMonth())+'-'+vm.nrf(date.getDay())+' '+vm.nrf(date.getHours())+':'+vm.nrf(date.getMinutes())+'00';
	var userId = $('#userIdHolder').val();
	var placerUserId = $('#placerUserIdHolder').val();
	var uName = $('#userHolder').val();
	var reply = $('#replyBox').val();
	
	var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi;
	reply = reply.replace(tags,'');
	var phone = /[0-9-]{10,25}/gi;
	reply = reply.replace(phone,'');
	var email = /[a-z0-9\.]*@[a-z0-9\.]*/gi;
	reply = reply.replace(email,'');
	var www = /[a-z0-9-\.]*\.[ac|ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|asia|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cat|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jobs|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mo|mobi|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tel|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xn|xxx|ye|yt|za|zm|zw]/gi;
	reply = reply.replace(www,'');
	
	if (reply != '')
	{
		var adId = $('#adIdHolder').val();
		$('#replyBox').val('');
		$('#noRepliesMes').html('');
		
		// Ajax: putReply
		$('#replyCheck').load('/ajax.php?putReply='+escape(reply)+'&dateString='+escape(dateString)+'&userId='+userId+'&adId='+adId);
		//$('#replyCheck').html('/ajax.php?putReply='+escape(reply)+'&dateString='+escape(dateString)+'&userId='+userId+'&adId='+adId);
		
		var styleAdd='';
		if (userId == placerUserId) 
		{
			styleAdd='style="background: #DEDEDE;"';
		}
		
		// Put in: #newReplyHolder
		$('#newReplyHolder').append('<div class="replyMessage" '+styleAdd+'>'+reply+'<br><em>'+dateString+' door: '+uName+'</em></div>');
	}
}
vm.nrf = function(nr)
{
	if (parseInt(nr) < 10)
	{
		return '0'+nr.toString();
	}
	return nr;
}

vm.popEmail = function()
{
	location=String.fromCharCode(109,97,105,108,116,111,58)+'info'+'@'+'veemarkt'+'.'+'nl';
}

vm.counterOffer = function(bidId)
{
	$('#counterBidOpener'+bidId).hide();
	$('#counterBid'+bidId).show(300);
	return false; 
}

vm.makeCounterOffer = function(bidId)
{
	var amount = $('#counter'+bidId).val();
	// Do Checks
	return true;
}
vm.verifyCounterBid = function(inputId,originalBid,owner)
{
	var counterBid=parseInt($('#'+inputId).val());
	if (counterBid < originalBid && owner)
	{
		alert('U bieding is te laag, pas het bedrag aan of kies voor \'accepteer\'! ');
		return false;
	}
	if (counterBid == originalBid && owner)
	{
		alert('U bieding is gelijk aan het ontvangen bod, kies voor \'accepteer\' als u akkoord gaat! ');
		return false;
	}
	
	if (counterBid > originalBid && !owner)
	{
		alert('U bieding is te hoog, pas het bedrag aan of kies voor \'accepteer\'! ');
		return false;
	}
	if (counterBid = originalBid && !owner)
	{
		alert('U bieding is gelijk aan het ontvangen bod, kies voor \'accepteer\' als u akkoord gaat! ');
		return false;
	}
	return true; 
}

vm.toggleById = function(id)
{
	var nowStyle = $('#'+id).css('display');

	$.cookie('id_'+id, "0", { expires: 0 });

	if (nowStyle == 'block')
	{
		$('#'+id).hide(200);
		$.cookie('id_'+id,'0');
		//alert('id_'+id+' - '+'0'); 
	} else {
		$('#'+id).show(200);
		$.cookie('id_'+id,'1');
		//alert('id_'+id+' - '+'1'); 
	}
	return false; 
}
vm.get_cookies_array = function () {
    var cookies = { };

    if (document.cookie && document.cookie != '') {
		var split = document.cookie.split(';');
		for (var i = 0; i < split.length; i++) {
			var name_value = split[i].split("=");
            name_value[0] = name_value[0].replace(/^ /, '');
            cookies[decodeURIComponent(name_value[0])] = decodeURIComponent(name_value[1]);
        }
    }
   return cookies;
}

vm.checkOpenDivs = function()
{
	var allcookies = vm.get_cookies_array();
	
	for (cookname in allcookies)
	{
		// All cookies with id_ represent an open or closed div:
		if (cookname.search(/id_/)===0 && allcookies[cookname] == '1')
		{
			$(cookname.replace('id_','#')).show(100);
		} else if (cookname.search(/id_/)===0){
			$(cookname.replace('id_','#')).hide(100);
		}
	}
}
vm.toggleFilter = function(filterNr)
{
	alert('Depricated!');
	var nowStyle = $('#filter'+filterNr).css('display');
	// ID for the cookie is:
	var saveCookieId = 'id_filter'+filterNr; 
	if (nowStyle == 'block')
	{
		$('#filter'+filterNr).css('display', 'none');
	} else {
		$('#filter'+filterNr).css('display', 'block');
	}
	return false;
}

vm.myVmBoxes = new Array('mijnVeemarktGegevens', 'mijnActieveAdvertenties','mijnVeemarktIntro','mijnArchiefAdvertenties',
						 'mijnBiedingen', 'mijnBiedingenArchief','mijnActieveVeilingen','mijnArchiefVeilingen','notificationArea',
						 'themeArea');
vm.showBox = function (boxId, ret)
{
	if (typeof ret == "undefined")
	{
		var ret = false; 
	}
	// alert(boxId); 
	$('#'+boxId).show(300);
	
	//Hide rest: 
	for (i in vm.myVmBoxes)
	{
		var hideId = vm.myVmBoxes[i];
		if (hideId!=boxId)
		{
			$('#'+hideId).hide(200);
		}
	}
	return ret; 
}

vm.myFuturePage = function (profile)
{
	if (profile.length > 2)
	{
		$('#futureUrl').html('Uw toekomstige pagina: www.veemarkt.nl/'+profile);
	} else {
		$('#futureUrl').html('&nbsp;');
	}
}

function isValidEmail(email)
{
	var filter = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,15}|[0-9]{1,15})(\]?)$/;
	return filter.test(email);
}

function isValidPhone(number)
{
	var filter = /^[0-9_\-+\(\)\s]{10,25}$/;
	return filter.test(number);
}

function isValidNumber(number)
{
	//var filter = /^\s*\d+\s*$/;
	var filter = /^[0-9]$/;
	return filter.test(number);
}

function isValidZipCode(zipCode)
{
	var filter1 = /^[1-9][0-9]{3,5}([A-Z]|[a-z]){0,6}$/;
	var filter2 = /^[1-9][0-9]{3,5}[\s]([A-Z]|[a-z]){0,6}$/;
	
	if(filter1.test(zipCode))
	{
		return true;
	} else {
		return filter2.test(zipCode);
	}
}

function isValidText(text)
{
	var filter = /^[a-zA-Z]+$/;
	if(text.match(filter))
	{
		return true;
	}
}

$(document).ready(function() 
{
	//FRONTPAGE//
	// $('#slider').nivoSlider();

	//AD PAGE//
	
	//image
	$('.image').fancybox({
		'width'				: 510,
		'height'			: 385,
		'autoScale'			: false,
		'autoDimensions'	: false,
		'transitionIn'		: 'none',
		'transitionOut'		: 'none',
		'type'				: 'image'
	});

	// General Conditions
	$('.doclink').fancybox({
		'width'				: 810,
		'height'			: 585,
		'transitionIn'		: 'none',
		'transitionOut'		: 'none',
		'type'				: 'iframe'
	});
	//Popup
	$('.doclink2').fancybox({
		'width'				: 310,
		'height'			: 285,
		'transitionIn'		: 'none',
		'transitionOut'		: 'none',
		'type'				: 'iframe'
	});
	//Popup
	$('.doclink3').fancybox({
		'width'				: 410,
		'height'			: 385,
		'transitionIn'		: 'none',
		'transitionOut'		: 'none',
		'type'				: 'iframe'
	});
	
	//loginPanel
	$('a#show').click(function () 
	{
		if ($("div#user-menu").is(":hidden")) 
		{
			$("div#user-menu").slideDown("slow");
			//$("a#show").text('Sluiten');
			//$("#wrapper").css('background','#9bbc4f');
		} else 
		{
			$("div#user-menu").slideUp("slow");
			//setTimeout('$("#wrapper").css("background","none");',500);
			//$("a#show").text("Account maken | Inloggen");
		}
	});
	$('#close_alt').click(function () 
	{
		$("#user-menu").slideUp("slow");
		return false; 
	});
	
	//show ad Url	
	var adId = $('#urlCopy').attr('adId');
	$('#urlCopy').click(function()
	{
		$('#urlCopyShowLink').show(200);
		$('#copyUrl').select();
	});

	//register action
	$('#registerFormSubmit').click(function()
	{
		var error = false;
		
		var emailAddress = $('#emailAddress').val();
		var passWord1 = $('#passWord1').val();
		var passWord2 = $('#passWord2').val();
		var lengthPassWord1 = passWord1.length;
		var lengthPassWord2 = passWord2.length;
		
		if(!isValidEmail(emailAddress) || emailAddress == "") 
		{
			$('#emailAddress').css('background-color', '#f7a787');
			error = true;
		} else {
			$('#emailAddress').css('background-color', '#ffffff');
		}
		
		if(passWord1 == null || passWord1 == "" || passWord1 != passWord2)
		{
			vm.error('#passWord1');
			vm.error('#passWord2');
			error = true;
		} else {
			vm.noerror('#passWord1');
			vm.noerror('#passWord2');
		}
		
		error = vm.errorIfEmpty('profileName', error);
		error = vm.errorIfEmpty('streetAddress', error);
		error = vm.errorIfEmpty('lastName', error);
		error = vm.errorIfEmpty('firstName', error);
		
		//check on house number, zipcode, city, phone number and agreed
		var houseNumber = $('#houseNumber').val();
		var zipCode = $('#zipCode').val();

		var city = $('#city').val();
		//var cityCheck = isValidText(city);
		var telephone = $('#telephone').val();
		var telephoneCheck = isValidPhone(telephone);
		var agreeCheck = $('input:checked').val();

		error = vm.errorIfEmpty('houseNumber', error);
	
		if(!isValidZipCode(zipCode))
		{
			$('#zipCode').css('background-color', '#f7a787');
			error = true;
		} else
		{
			vm.noerror('#zipCode');
		}
		
		error = vm.errorIfEmpty('city', error);
		
		if(!telephoneCheck)
		{
			$('#telephone').css('background-color', '#f7a787');
			error = true;
		} else {
			vm.noerror('#telephone');
		}
		
		if(!agreeCheck)
		{
			vm.error('#agreeText');
			error = true;
		} else {
			vm.noerror('#agreeText');
		}
		
		if ($('#property_userType').val()==0)
		{
			vm.error('#property_userType');
			error = true;
		} else {
			vm.noerror('#property_userType');
		}
		
		return !error; 
	});
	
	$('#informationFormSubmit').click(function()
	{
		var emailAddress = $('#emailAddress').val();
		var passWord1 = $('#passWord1').val();
		var passWord2 = $('#passWord2').val();
		var lengthPassWord1 = passWord1.length;
		var lengthPassWord2 = passWord2.length;
		
		//alert('mail: '+emailAddress+' password: '+passWord1+' password2: '+passWord2);
		
		if(emailAddress == null || emailAddress == "") 
		{
			$('#emailAddress').css('background-color', '#f7a787');
			errorMail = true;
		} else
		{
			$('#emailAddress').css('background-color', '#ffffff');
			errorMail = false;
		}
		
		if(!(passWord1 == passWord2))
		{
			$('#passWord1').css('background-color', '#f7a787');
			$('#passWord2').css('background-color', '#f7a787');
			errorPassWordMatch = true;
		} else
		{
			$('#passWord1').css('background-color', '#ffffff');
			$('#passWord2').css('background-color', '#ffffff');
			errorPassWordMatch = false;
		}
		
		if(passWord1 == null || passWord1 == "")
		{
			$('#passWord1').css('background-color', '#f7a787');
			errorPassword1 = true;
		} else
		{
			$('#passWord1').css('background-color', '#ffffff');
			errorPassword1 = false;
		}
		
		if(passWord2 == null || passWord2 == "")
		{
			$('#passWord2').css('background-color', '#f7a787');
			errorPassword2 = true;
		} else
		{
			$('#passWord2').css('background-color', '#ffffff');
			errorPassword2 = false;
		}
		
		if(errorMail ==false && errorPassword1 == false && errorPassword2 == false && errorPassWordMatch == false)
		{
			return true;
		} else
		{
			return false;
		}
	});
	
	//personalInformation password-check
	$('#personalInformationSubmit').click(function()
	{
		var passWord1 = $('input#password1').val();
		var passWord2 = $('input#password2').val();
		var lengthPassWord1 = passWord1.length;
		var lengthPassWord2 = passWord2.length;
		
		if (passWord1 != null && passWord1 != "" && passWord2 != null && passWord2 != "" && passWord1 == passWord2 && lengthPassWord1>=6)
		{
			return true;
		} else
		{
			alert('Wachtwoorden moeten minstens 6 tekens lang zijn en identiek zijn ingevuld in de wachtwoord-velden.');
			return false;
		}
	});
	
	
	//insertForm check fields
	$('#insertForm1Submit').click(function()
	{
		//check if !empty: title, description, price, amount, location
		var formOk = true;
		
		simpleCheck = ['adTitle','adDescription','adPrice','adAge','adAmount','adLocation','adCategory']; 
		for (var a in simpleCheck)
		{
			var objId = '#'+simpleCheck[a];
			vm.noerror(objId);
			if ($(objId).val() == '' || $(objId).val() == 0)
			{
				formOk=false;
				vm.error(objId);
			}
		}	
		
		if ($('#adTitle').val().length < 3)
		{
			vm.error('#adTitle');
			formOk=false;
		} 
		
		if ($('#adLocation').val().length > 20)
		{
			vm.error('#adLocation');
			formOk=false;
		}
		
		var adPrice = parseInt($('#adPrice').val())
		if (!(adPrice>0))
		{
			vm.error('#adPrice');
			formOk=false;
		}
		return formOk;
	});
	
	$('#insertForm2Submit').click(function()
	{
		var formOk = true;
		
		for (var a in propArray)
		{
			var objId = '#'+propArray[a];
			vm.noerror(objId);
			if ($(objId).val() == '' || $(objId).val() == -1)
			{
				formOk=false;
				vm.error(objId);
			}
		}	
		

		vm.noerror('#adDescription');
		if ($('#adDescription').val().length < 3)
		{
			vm.error('#adDescription');
			formOk=false;
		} 
		
		return formOk;
	});

	//hide biddings on mijnveemarkt
	$('.bid').hide();
	$('.showAd').click(function()
	{
		var adId = $(this).attr('adId');
		//$(this).replaceWith('<a href="#" class="hideAd" adId="'+adId+'">verberg</a>');
		$('.'+adId).fadeToggle('slow');
		$(this).text($(this).text() == 'Toon biedingen' ? 'Verberg biedingen' : 'Toon biedingen');
		return false;
	});
	
	$('#biedButton1').click(function(){
		var offered = $('#bidAmountId').val();

		if (!vm.isNumeric(offered) || offered > 9999999 )
		{
			alert('Ongeldig bod!\n\nGebruik alleen cijfers en bied in hele euro\'s.');
			return false; 
		}
		var minOffer = $('#minBidAmountId').val();
		if (parseInt(offered) < parseInt(minOffer))
		{
			alert('Uw bod is te laag. Op Veemarkt.nl geldt een minimaal opbod. Meer informatie hierover vindt U in de Support sectie.\n\nMinimaal bod: € '+minOffer+',00');
			$('#bidAmountId').val(minOffer);
			vm.error('#bidAmountId');
		} else {
			vm.noerror('#bidAmountId');
			//Disable bid:
			$('#bidAmountId').attr('disabled', 'disabled');
			$('#bidAmountHideId').val(offered);
			$('#agreeSmall').show(300);
		}
		return false; 
	});
	
	// Start countdown:
	try {
		var counttill = $('#countdown').html(); 
		$('#countdown').countdown({until: counttill});
	} catch (e) { /* Foo */ }
	
	// Open MyVM dingetjes:
	vm.checkOpenDivs();
	
	$('#welcomeOwner').show(300);

	 setTimeout(function(){
		window.scrollTo(0, 1);
	  }, 100);
});

vm.isNumeric = function(strString)
//  check for valid numeric strings	
{
var strValidChars = "0123456789";
var strChar;
var blnResult = true;

if (strString.length == 0) return false;

//  test strString consists of valid characters listed above
for (i = 0; i < strString.length && blnResult == true; i++)
  {
  strChar = strString.charAt(i);
  if (strValidChars.indexOf(strChar) == -1)
	 {
	 blnResult = false;
	 }
  }
return blnResult;
}
