/**
 * @author Coolmen
 * @version 20090201
 * @copyright SiteLeader, 2005-2009
 */


/**
 * @classDescription 
 * @param {Object} img
 */
function photogallery () {
	
	this.current = null;
	this.big_img = null;
	this.big_content = null;
	this.mail_img = null;
	
	/**
	 * @constructor
	 */
	this.init = function () {
		this.big_img = $( $('img#img-main')[0] );
		this.big_content = $( $('div#img-content')[0] );
		this.mail_img = $( $('input#img-src')[0] );

		// Выявление текущей картинки
		var img = this.big_img.attr('src');
		for ( var key in images ) {
			if ( images[key][1] == img ) this.current = key;
		};

		// Подсаживаюсь на картинки
		$('div.img-line>a').each( function () {
			var el = $(this);
			el.click( function () {
				var img = $(this).children('img');
				var file = img[0].src.replace( /([^\/]+)$/, '' );
				file = RegExp.$1;
				pg.stop();
				pg.show( file );
				return false;
			});
			
		});
	};

	/**
	 * @description Вывод изображения
	 * @param {} img
	 */
	this.show = function ( img ) {
		var file = images[img];
		var obj = this;
		obj.current = img;
		// Фикс размера контейнера до загрузки фото
		$('#img-main-continer').height( $('#img-main-continer').height() );
		_socialdance_load_fl = null;
		obj.big_img.fadeOut( function () {
			if (obj.big_img) {
				// Ждём загрузку
				obj.big_img.load( function(e) {
					// Убираем фикс размера с конейнера
					$('#img-main-continer').height('');
					$(this).fadeIn( function () {
						_socialdance_load_fl = 1;
					});
				} ).error( function () {
					_socialdance_load_fl = 1;
					alert( 'Ошибка загрузки изображения.' );
				}).attr('src', file[1]);
				obj.big_img.attr('alt', file[0]);
				obj.mail_img.val( file[1] );
			}
			if (obj.big_content) {
				obj.big_content.html(file[2]);
			}

			// Показываем форму
			$('#box-order').slideUp();
			$('#submit-order').removeAttr('disabled');
			$('#form-progress').hide();
			$('#form-message').slideUp();
			$('#form-order').slideDown();
		});
	};

	/**
	 * @description Следующая картинка
	 */
	this.next = function () {
		var last = null;
		for ( var key in images ) {
			if ( last == this.current ) {
				this.show( key );
				return false;
			}
			last = key;
		};
		return true;
	}
	
	/**
	 * @description Предыдущая картинка
	 */
	this.previous = function () {
		var last = null;
		for ( var key in images ) {
			if ( key == this.current && last ) {
				this.show( last );
				return false;
			}
			last = key;
		};
		return true;
	}
	
	this.start = function () {
		this.slide_stop = 0;
		this.slide();
	}
	
	this.stop = function () {
		this.slide_stop = 1;
	}


	this.slide = function () {
		// Если фотка загружена
		if ( _socialdance_load_fl == 1) {
			// Слайдим через 2 сек
			$().oneTime('2s', 'slide', function() {
				if ( pg.slide_stop || pg.next() ) _stop()
				else pg.slide();
			});
		}
		// Если незагруженна ждём ещё секунду
		else {
			$().oneTime('1s', 'slide', function() {
				if ( pg.slide_stop ) _stop();
				else pg.slide()
			});
		}
	}

	if ( $('div.img-line').size() ) {
		return this.init();
	}
	else {
		return null;
	}

};


/**
 * Класс картинок шапки
 * @classDescription
 */
function hat_image ( img ) {

	var object_name = $("#hat>.image>.wrapper");
	var array = new Array;
	var last_el = null;

	/**
	 * Конструктор класса шапки
	 * @param {Object} img
	 */	
	this.init = function ( img ) {
		array = $.makeArray( img );
	}  

	this.next_img = function () {
		var img = array.shift();
		array.push( img );
		var el = $( document.createElement("div") ).addClass("im");
		el.css("background","url('" + img + "') top left no-repeat");
		el.css({ "right":"-400px"});
		object_name.append(el);
//		el.css({ "opacity":"-100" });
		if ( el.css('width') == '100px' ) {
			el.css("width","400px");
			el.css("background-image","none");
			el.css('filter','progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + img + '",sizingMethod="crop")');
		} 
		el.animate({ 'right': "0px" }, "slow", '' );
		if ( last_el ) {
			last_el.animate({ 'left': "-400px" }, "slow", "", function() {
				last_el.remove();
				last_el = el;
			});
		}
		else {
			last_el = el;
		}
	}

	this.start = function () {
		im.next_img();
		$(document).everyTime( 5 * 1000, 't1', function(){
			im.next_img();
		});
	};

	this.init( img );
	
};


/**
 * Чередование строк таблицы 
 */
function piano () {
	$("table").each( function( i, el ) {
		$(el).children().children().each( function ( i, el ) {
			if ( !(i & 1) ) $(el).addClass("piano");
		} )
	});
}


/**
 * Форма заказа фото
 */
function foto_order () {
	if ( document.getElementById('order-href') ) {
		$('#order-href').addClass('pseudo-href').click( function () {
			$('#box-order').slideToggle('fast');
			return false;
		});
		$('#submit-order').removeAttr('disabled');
		$('#form-order').ajaxForm({
			dataType: 		'json',
			beforeSubmit:	valudate_form,
			success:		responce_form,
			error:			error_form
//			dataFilter:		data_filter
		})
	}
}

function error_form ( r, s ) {
	$('#submit-order').removeAttr('disabled');
	$('#form-progress').hide();
	$('#form-order').show();
	alert( r.message + "\n" + s );
	$('#form-message').html( "<p style='color:red'>Ошибка запроса, попробуйте снова.</p>" ).slideDown().oneTime( '2s', 'error', function(){ $(this).slideUp() });
}

function responce_form ( r, s ) {
	$('#submit-order').removeAttr('disabled');
	$('#form-progress').hide();
	$('#form-order').slideUp();
	$('#form-message').html( r.message ).slideDown();
//	alert( r.message + "\n" + s );
	$('#box-order').oneTime( '2s', 'order-box-timer', function(){ $(this).slideUp() } )
}

/**
 * Валидация формы
 * @param {Object} arg
 */
function data_filter ( arg, arg2 ) {
	alert('dataFilter!\n' + arg + ", " + arg2 );
	return true;
}


/**
 * Валидация формы
 * @param {Object} arg
 */
function valudate_form ( arg ) {
	if (1) {
		$('#submit-order').attr('disabled', 'disabled');
		$('#form-progress').show();
		$('#form-message').hide().stopTime('error');
		return true;
	}
}

var _socialdance_load_fl = 1;

/**
 * Инит страницы
 */
function init () {
	if (images) {
		im = new hat_image(images);
		im.start();
	}
	piano();
	foto_order();
	pg = new photogallery();
	$('#img-prev').click( function () { pg.stop(); pg.previous(); return false; });
	$('#img-next').click( function () { pg.stop(); pg.next(); return false; });
	$('#img-play').click( _play );
}

function _play() {
	$('#img-play').addClass('pause');
	pg.next();
	pg.start();
	$('#img-play').unbind('click').click( _stop );
	return false;
}

function _stop() {
	$('#img-play').removeClass('pause');
	pg.stop();
	$('#img-play').unbind('click').click( _play );
	return false;
}

$(document).ready( init );

