
var $j = jQuery.noConflict();

$j(function() {

	// comment next lines to disable features

	lightBox(); // initialize & configure lightbox script

	navigation(); // dynamic light selection in the menu (windows7-like)


	if ($j("form#contact").length > 0) contactForm(); // initialize javascript validators for the contact form

});


// functions

function contactForm() {

	$j(".input", "form#contact").blur(function() { validateInput($j(this)); }); // validate when unfocus

	$j("#submit", "form#contact").click(function() { // validate on submit
		$j(".input", "form#contact").each(function() { validateInput($j(this)); })
		if (!isFormValid())
			return false;
	});

}

function isFormValid() {

	return $j(".input.incorrect", "form#contact").length > 0 ? false : true;

}

function validateInput(obj) {

	var id = obj.attr("id");
	var correct = false;

	if (id == "email") { // email validator
		if (obj.val().match(/^[a-zA-Z0-9_\.\-]+\@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,4}$/))
			correct = true;
	}
	else if (id == "message") { // message validator
		if (obj.val().replace(/(^\s+)|(\s+$)/g, "") != "")
			correct = true;
	}

	obj.removeClass("correct incorrect"); // clearing
	if (correct) {
		obj.addClass("correct");
	}
	else {
		obj.addClass("incorrect");
	}

}



function navigation() {
	$j("a", "#nav").attr("title", "");

	$j("li:has(ul)", "#nav").each(function() {
		var li = $j(this);
		var ul = li.find("ul:first");
		var time = ul.children("li").length * 50;

		ul.css({ display: "none" });

		li.hover(
		function() {
			ul.stop().css({ width: ul.width(), height: "auto" }).slideDown(time, function() {
				ul.css({ overflow: "visible", height: "auto" });
			});
		},
		function() {
			ul.stop().slideUp(time / 1.5);
		});
	});
}

//

function lightBox() {
	$j("a[rel^='lightbox']").prettyPhoto({
		animation_speed: 'fast', /* fast/slow/normal */
		slideshow: false, /* false OR interval time in ms */
		autoplay_slideshow: false, /* true/false */
		opacity: 0.50, /* Value between 0 and 1 */
		show_title: false, /* true/false */
		allow_resize: true, /* Resize the photos bigger than viewport. true/false */
		counter_separator_label: 'din', /* The separator for the gallery counter 1 "of" 2 */
		theme: 'facebook', /* light_rounded / dark_rounded / light_square / dark_square / facebook */
		hideflash: true, /* Hides all the flash object on a page, set to TRUE if flash appears over prettyPhoto */
		wmode: 'opaque', /* Set the flash wmode attribute */
		autoplay: true, /* Automatically start videos: True/False */
		modal: false, /* If set to true, only the close button will close the window */
		overlay_gallery: true, /* If set to true, a gallery will overlay the fullscreen image on mouse over */
		keyboard_shortcuts: true /* Set to false if you open forms inside prettyPhoto */
	});
}

//

var ie6 = jQuery.browser.msie && parseInt(jQuery.browser.version) < 7;

// JS helpers:

{
	function trim(str) {
		return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
	}

	// Array.indexOf( value, begin, strict )
	Array.prototype.indexOf = function(v, b, s) {
		for (var i = +b || 0, l = this.length; i < l; i++) {
			if (this[i] === v || s && this[i] == v) { return i; }
		}
		return -1;
	};
	// Array.unique( strict )
	Array.prototype.unique = function(b) {
		var a = [], i, l = this.length;
		for (i = 0; i < l; i++) {
			if (a.indexOf(this[i], 0, b) < 0) { a.push(this[i]); }
		}
		return a;
	};
	// Array1.intersect( Array2 )
	Array.prototype.intersect = function(b) {
		var as, al, a = [];
		if (b.length < this.length) { as = b; al = this }
		else { as = this; al = b }
		$j.each(as, function(i, user) {
			if (al.indexOf(user) >= 0)
				a.push(user);
		});
		return a;
	}
}
