; (function($) {

	$.fn.tabs = function(params) {

		var params = $.extend({
			defaultHtml: "<p>Default</p>",
			screenClass: "screen_container",
			defaultBackClass : "white",
			backClass : "blue",
			defaultBackImage : "/plantilla/images/hoteltools/border_white.png",
			backImage : "/plantilla/images/hoteltools/border_blue.png",
			leftClass : "left",
			rightClass : "right",
			items : []
//				[
//					{
//						text: 'test',
//						imageUrl: 'images/photo.png',
//						selectImageUrl: 'images/photo_select.png',
//						url:'http://tut.by'
//					}
//				]
		}, params);

		return this.each(function() {

			// Env object
			var env = {
				$elts: {},
				params: params,
				launchOnLoad: []
			};

			// Carousel main container
			env.$elts.main = $(this);

			initColumns(env);

			// On document load...
			$(function() {
				// Launch function added to "document ready" event
				$.each(env.launchOnLoad, function(i, fn) {
					fn();
				});
				load(env);
			});

		});

	};

	function initColumns(env) {
        env.$elts.leftTabs = $([]);
        env.$elts.rightTabs = $([]);
		for(var i = 0; i < env.params.items.length; i++) {
			if(i % 2 == 0) {
				env.$elts.leftTabs = env.$elts.leftTabs.add($('<div class="item"><a target="_blank" href="' + env.params.items[i].url + '"><img alt="' + 
					env.params.items[i].text + 
					'" src="' + env.params.items[i].imageUrl + '" /><img class="selected_image_left" alt="' + 
					env.params.items[i].text + 
					'" src="' + env.params.items[i].selectImageUrl + '" /></a></div>').data("number", Math.floor(i / 2)).data("column", 'left'));
			}
			else {
				env.$elts.rightTabs = env.$elts.rightTabs.add($('<div class="item"><a target="_blank" href="' + env.params.items[i].url + '"><img alt="' + 
					env.params.items[i].text + 
					'" src="' + env.params.items[i].imageUrl + '" /><img class="selected_image_right" alt="' + 
					env.params.items[i].text + 
					'" src="' + env.params.items[i].selectImageUrl + '" /></a></div>').data("number", Math.floor(i / 2)).data("column", 'right'));
			}
		}

		env.$elts.leftColumn = $('<div class="' + env.params.leftClass + '"></div>')["appendTo"](env.$elts.main);
		env.$elts.leftTabs.each(function (index, elem){
			$(elem).appendTo(env.$elts.leftColumn);
		});
		env.$elts.rightColumn = $('<div class="' + env.params.rightClass + '"></div>')["appendTo"](env.$elts.main);
		env.$elts.rightTabs.each(function (index, elem){
			$(elem).appendTo(env.$elts.rightColumn);
		});

		env.$elts.screen = $('<div class="back_screen ' + 
			env.params.leftClass + '"><div class="' + 
			env.params.screenClass + ' ' + 
			env.params.defaultBackClass + '">' + env.params.defaultHtml + '</div></div>')["appendTo"](env.$elts.main);
		
		env.launchOnLoad.push(function() {
			env.$elts.leftTabs.each(function (index, elem){
				$(elem).children(":first").children(":first").mouseover(function(e) {
					over(env, $(this).parent().parent().data("number") , $(this).parent().parent().data("column"));
				});
				$(elem).children(":first").children(":last").mouseout(function(e) {
					out(env, $(this).parent().parent().data("number") , $(this).parent().parent().data("column"));
				});
			});
		});
		env.launchOnLoad.push(function() {
			env.$elts.rightTabs.each(function (index, elem){
				$(elem).children(":first").children(":first").mouseover(function(e) {
					over(env, $(this).parent().parent().data("number") , $(this).parent().parent().data("column"));
				});
				$(elem).children(":first").children(":last").mouseout(function(e) {
					out(env, $(this).parent().parent().data("number") , $(this).parent().parent().data("column"));
				});
			});
		});
	}

	function over(env, number, column){
		if(column == 'left') {
			var item = $(env.$elts.leftTabs)[number];
			$(item).children(":first").children(":last").animate({left:0}, 'slow');
			changeScrenn(env.$elts.screen.children(":first"), isIE6() ? env.params.backImage.replace('png', 'gif') : env.params.backImage, 
				'<p>' + env.params.items[number * 2].text + '</p>', 0.5);
		}
		else {
			var item = $(env.$elts.rightTabs)[number];
			changeScrenn(env.$elts.screen.children(":first"), isIE6() ? env.params.backImage.replace('png', 'gif') : env.params.backImage, 
				'<p>' + env.params.items[number * 2 + 1].text + '</p>', 0.5);
			$(item).children(":first").children(":last").animate({right:0}, 'slow');
		}
		
	}

	function out(env, number, column){
		changeScrenn(env.$elts.screen.children(":first"), isIE6() ? env.params.defaultBackImage.replace('png', 'gif') : env.params.defaultBackImage, 
			env.params.defaultHtml, 1);
		if(column == 'left') {
			var item = $(env.$elts.leftTabs)[number];
			$(item).children(":first").children(":last").animate({left:45}, 'slow');
		}
		else {
			var item = $(env.$elts.rightTabs)[number];
			$(item).children(":first").children(":last").animate({right:45}, 'slow');
		}
	}

	function changeScrenn(element, image, html, opacity)
	{
		element.fadeTo('fast', opacity, function() {
			element.css('backgroundImage', 'url(' + image + ')');
			element.html(html);
			element.fadeTo('fast', 1);
		});
	}

	function load(env){
		env.$elts.screen.fadeTo('slow', 0.5, function(){
			env.$elts.screen.fadeTo('slow', 1);
			setTimeout(function(){ 
				env.$elts.leftTabs.each(function (index, elem){
					$(elem).css({opacity:1,filter:'alpha(opacity=100)'});
				});
				env.$elts.rightTabs.each(function (index, elem){
					$(elem).css({opacity:1,filter:'alpha(opacity=100)'});
				});
				env.$elts.leftTabs.eachDelay(function (index, elem){
					$(elem).children(":first").children(":first").animate({left:0}, 'slow');
				}, 500);
				setTimeout(function(){ 
					env.$elts.rightTabs.eachDelay(function (index, elem){
						$(elem).children(":first").children(":first").animate({right:0}, 'slow');
					}, 500);
				}, env.$elts.leftTabs.length * 500);
			}, 500);
		});
	}

	function isIE6() {
		var browser = navigator.appName;
		var b_version = navigator.appVersion;
		var version = parseInt(b_version.substr(b_version.indexOf("MSIE") + 5, 1));
		if ((browser == "Microsoft Internet Explorer") && (version < 7)) {
			return true;
		} 
		return false;
	}

})(jQuery);
