//VALIDATION //
// set up basic values for validation

var errorMessages = new Array();
errorMessages["en"] = new Array();
errorMessages["en"]["normal"] = "This field is required.";
errorMessages["en"]["email"] = "Please enter a valid email address.";
errorMessages["en"]["completeForm"] = "Please check all required fields.";

errorMessages["nl"] = new Array();
errorMessages["nl"]["normal"] = "Dit is een verplicht veld.";
errorMessages["nl"]["email"] = "Vul een correct email adres in.";
errorMessages["nl"]["completeForm"] = "Kijk even de verplichte velden na.";

var imagePosition = 0;

// regex for email adresses
var mailPattern = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;

// set up which fields are required 
// and which are email fields
var required = new Array('Form_CustomForm_firstName', 'Form_CustomForm_surName', 'Form_CustomForm_organization', 'Form_CustomForm_projectTitle', 'Form_CustomForm_description');
var email = new Array('Form_CustomForm_email');

// PORTFOLIO
// INTRO GALLERY
// Wire the control buttons
function wirePortfolioNavButtons(type, specificImage) {
	jQuery("#portfolioIntro .pagination a").click(function () {
		if(jQuery(this).attr('class') == "forward") {
			setPortfolioNav('forward');
			swapPortfolioImage(imagePosition);
			setSelectedPortfolioImageNumber();
			wirePortfolioNavButtons();
		} else if (jQuery(this).attr('class') == "back") {
			setPortfolioNav('back');
			swapPortfolioImage(imagePosition);
			setSelectedPortfolioImageNumber();
			wirePortfolioNavButtons();
		} else if (jQuery(this).attr('class') == "portfolioNumber") {
			setPortfolioNav('regular', jQuery(this).html() * 1);
			swapPortfolioImage(imagePosition);
			setSelectedPortfolioImageNumber();
			wirePortfolioNavButtons();
		}

		return false;
	});
}



function setPortfolioNav(type, specificImage) {
	//alert(type + " - " + "Current position: " + imagePosition + "/" + howManyImages);
	// FORWARD BUTTON
	if(type == "forward") {
		var newImagePosition = imagePosition + 1;
		// End of images: disable forward button
		if(newImagePosition == howManyImages) {
			jQuery('.forward').replaceWith('<span class="forwardDisabled">Forward</span>');
		}
		// Not first image: enable back button
		if(newImagePosition > 1) {
			jQuery('.backDisabled').replaceWith('<a class="back" href="#">Back</a>');
		// Else: disable back button
		} else {
			jQuery('.back').replaceWith('<span class="backDisabled">Back</span>');
		}
		imagePosition = newImagePosition;
		
	// BACK BUTTON
	} else if (type == "back") {
		var newImagePosition = imagePosition - 1;
		// Not first image: enable back button
		if(newImagePosition > 1) {
			jQuery('.backDisabled').replaceWith('<a class="back" href="#">Back</a>');
		// Else: disable back button
		} else {
			jQuery('.back').replaceWith('<span class="backDisabled">Back</span>');
		}
		// End of images: disable forward button
		if(newImagePosition == howManyImages) {
			jQuery('.forward').replaceWith('<span class="forwardDisabled">Forward</span>');
		} else {
			jQuery('.forwardDisabled').replaceWith('<a class="forward" href="#">Forward</a>');
		}
		imagePosition = newImagePosition;
		
	// REGULAR NUMBER
	} else if (type == "regular") {
		var newImagePosition = specificImage;
		// End of images: disable forward button
		if(newImagePosition == howManyImages) {
			jQuery('.forward').replaceWith('<span class="forwardDisabled">Forward</span>');
		} else {
			jQuery('.forwardDisabled').replaceWith('<a class="forward" href="#">Forward</a>');
		}
		// Not first image: enable back button
		if(newImagePosition > 1) {
			jQuery('.backDisabled').replaceWith('<a class="back" href="#">Back</a>');
		// Else: disable back button
		} else {
			jQuery('.back').replaceWith('<span class="backDisabled">Back</span>');
		}
		imagePosition = newImagePosition;
	}
}

function setSelectedPortfolioImageNumber() {
	jQuery("#portfolioIntro .pagination a:not(.forward, .back)").removeClass('selected');
	jQuery("#portfolioIntro .pagination #porfolioNav" + imagePosition).addClass('selected');
}

function swapPortfolioImage(whichImage) {
	jQuery('#portfolioIntro img').attr({ src : jQuery('#porfolioNav' + whichImage).attr('href') });
}


jQuery(document).ready(function(){
	// Get language
	var language = jQuery('html').attr('lang');
	
	// Necessary Masonry
 	jQuery('#work ul, #blogList ul').masonry();

	//VALIDATION //
	// on submit
	jQuery("#Form_CustomForm").submit(function () {
		jQuery(".formError").remove();
		var errorCounter = 0;
		
		
		// check for required
		for (var x = 0; x < required.length; x++) {
			if(jQuery("#" + required[x]).val() == "") {
				errorCounter++;
				// point out error field
				jQuery("#" + required[x]).addClass('formErrorField');
				// add messages
				jQuery("#" + required[x]).after('<span class="formError">' + errorMessages[language]["normal"] + '</span>')
			}
		}
		
		// check for email
		for (var x = 0; x < email.length; x++) {
			var currentValue = jQuery("#" + email[x]).val() ;
			if(currentValue == "" || !mailPattern.test(currentValue)) {
				errorCounter++;
				// point out error field
				jQuery("#" + email[x]).addClass('formErrorField');
				// add messages
				jQuery("#" + email[x]).after('<span class="formError">' + errorMessages[language]["email"] + '</span>')
			}
		}
		if(errorCounter != 0) {
			jQuery("#Form_CustomForm").prepend('<p class="completeFormError">' + errorMessages[language]["completeForm"] + '</p>');
			$.scrollTo( '#header' , 200);
			return false;
		}
	});
	
	
	// PORTFOLIO
	// Intro gallery
	
	// Get the ammount of images
	if(jQuery("#portfolioIntro")) {
		howManyImages = jQuery("#portfolioIntro .pagination a:not(.forward, .back)").size();
		imagePosition = 1;
	}
	
	wirePortfolioNavButtons();
	
})