var path = document.location.pathname;
if ( path.charAt(path.length-1) != '/' ) path = path+'/';

var epos = document.location.pathname.indexOf('/',1) == -1 ? document.location.pathname.length : document.location.pathname.indexOf('/',1)-1;
var section = document.location.pathname.substr(1, epos );

var load_next_photo;
var load_next_photo_dt = 5000;
var current_image_id = 0;
var preloadedImages = new Object();

var range = new Object();

$(document).ready(init);

function init() {
	$("#menu-items a[href='/"+section+"']").addClass("selected");

	var buf = $("#images").attr("rel").split(":");
	
	range.src_tempalte = buf[0];
	range.start = buf[1];
	range.stop = buf[2];
	
	current_image_id = range.start;
	//loadNextPhoto();
	
	applyDesignElements();
	
	$(".button.submit").click(function(){
		$("#"+$(this).attr("rel")).submit();
		return false;
	});
	
	$("form.ajax").submit(function(){
		form = $(this);
		
		if ( !checkForm(form) ) return false;
		
		$.ajax({
			type: form.attr("method"),
			dataType: "json",
			url: form.attr("config:action"),
			data: form.serialize(),
			beforeSend: function() {
				
			},
			success: function(data){				
				switch (data.result) {
					case 'done':
						window[form.attr("done:function")](data, form);
						break;
					case 'error':
						$.each(data.errors, function (key, item) {
							if ( item == 'not-equal' ) {							
								$("label[for='"+key+"']", form).append('<span class="error-message">несоответсвует</span>');
							}
							if ( item == 'in-use' ) {
								$("label[for='"+key+"']", form).append('<span class="error-message">уже используется</span>');
							}
							if ( item == 'incorrect' ) {
								$("label[for='"+key+"']", form).append('<span class="error-message">ошибка</span>');
							}
						});
						setTimeout(function() { $('label .error-message', form).remove(); }, 5000);
						break;
				}
			},
			error: function() {
			}
		});

		return false;
	});
	
	$("#category-navigator option[value='"+path+"']").attr("selected","selected");
	
	$("#category-navigator select").change(function(){
		location.href = $("#category-navigator option:selected").val();	
	});
}

function applyDesignElements() {
	/*$("table").each(function() {
		var th_count = $("tr th", $(this)).length;
		var str = '';
		for ( var i=0; i<th_count; i++ ) {
			if ( i == 0 )
				str += '<th><div class="holder"><div class="left cs layer"></div><div class="separator layer"></div></div></th>';
			else if ( i == th_count-1 )
				str += '<th><div class="holder"><div class="right cs layer"></div></div></th>';
			else
				str += '<th><div class="holder"><div class="separator layer"></div></div></th>';
		}
		$(this).prepend('<tr class="design">'+str+'</tr>');
	});*/
	
	$("table").each(function() {
		$("tr th:first", $(this)).prepend('<div class="holder"><div class="left cs layer" id="table-cs-left"></div>');
		$("tr th:last", $(this)).prepend('<div class="holder"><div class="right cs layer table-cs-right"></div>');
	});
	
	try {
		$("table tr:nth-child(even)").addClass("alt");
	}
	catch ( e ) {}

}

function loadNextPhoto() {
	clearInterval(load_next_photo);
			
	current_image_id++;
	if ( current_image_id > range.stop )
		current_image_id = range.start;
	
	if ( !preloadedImages[current_image_id] ) {
			
		preloadedImages[current_image_id] = new Image();
		$(preloadedImages[current_image_id]).load(function(){
			showNextImage($(this).get(0));
			load_next_photo = setInterval("loadNextPhoto()", load_next_photo_dt);
		})
		.attr('src', range.src_tempalte.replace("%", current_image_id));
	}
	else {			
		showNextImage(preloadedImages[current_image_id]);	
		load_next_photo = setInterval("loadNextPhoto()", load_next_photo_dt);
	}
}

function showNextImage( image ) {
	//$("#images").attr("src", image.src);
	$("#images .holder").append('<img src="'+image.src+'" class="layer hidden"/>');
	
	$("#images img:eq(0)").fadeOut('slow', function(){ $(this).remove() });
	$("#images img:eq(1)").fadeIn('slow');
}

function checkForm ( form ) {
	var res = true;
	$("input, textarea", form).each(
		function () {
			if ( $(this).hasClass("required") && $(this).val() == '' ) {
				res = false;
				$("label[for='"+$(this).attr("id")+"']").addClass("required-error");
			}
			else if ( $(this).hasClass("email") ) {
				var emailTest = '^[_\\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z_-]+\\.)+[a-z]{2,4}$';
				var regex = new RegExp(emailTest);
				if ( $(this).val() != '' && !regex.test( $(this).val()) ) {
					res = false;
					$("label[for='"+$(this).attr("id")+"']").addClass("email-error");
				}
			}
		}
	);
	setTimeout(function() { $('label', form).removeClass("required-error").removeClass("email-error"); }, 5000);
	return res;
}

function feedback_done(data, form) {
	form.hide();
	$("#feedback-done").show();
}

function order_done(data, form) {
	form.hide();
	$("#order-done").show();
}

