/**
 * @author Mamliga
 */
// tabs
function initTabs(tabsContainer, tabsList, tabItem, start) {
	$(tabsContainer).each(function() {
		var _hold = $(this);
		var _btn = _hold.find(tabsList);
		var _box = _hold.find(tabItem);
		var _a = _btn.index(_btn.filter('.active:eq(0)'));
		if (_a == -1) _a = 0;
		if (start != -1) {
			_a = start;
		}
		_btn.removeClass('active').eq(_a).addClass('active');
		_box.removeClass('active').css({
			position: 'absolute',
			top:'-9999px',
			left:'-9999px'
		});
		_box.eq(_a).addClass('active').css({
			position: 'static',
			top:'0',
			left:'0'
		});

		_btn.click(function() {
			changeTab(_btn.index(this));
			return false;
		});

		_box.click(function() {
			var new_index = _box.index(this)+1;
			if (new_index >= _box.length) new_index = 0;
			changeTab(new_index);
			return false;
		});

		function changeTab(_ind) {
			if (_ind != _a) {
				_btn.eq(_a).removeClass('active');
				_btn.eq(_ind).addClass('active');
				_box.eq(_a).removeClass('active').css({
					position: 'absolute',
					top:'-9999px',
					left:'-9999px'
				});
				_box.eq(_ind).addClass('active').css({
					position: 'static',
					top:'0',
					left:'0'
				});
				_a = _ind;
			}
		}
	});
}

$(document).ready(function() {
	$.ajaxSetup ({cache: false});
	// init index gallery
	$('.intro .gallery ul').jcarousel({
		wrap: 'circular',
		auto: 4,
		scroll: 1,
		animation: 300
	});

	var _start_pos = 1;
	var foundHash = '';
	if (location.hash !== undefined)
	{
		foundHash = location.hash.toString().replace('#', '');
		if (foundHash)
		{
			_start_pos = $('.featured_projects .rotator').children('ul').children('li').index($('.featured_projects .rotator').children('ul').children('li[title="' + foundHash + '"]'));
			if (_start_pos == -1) _start_pos = 1;
			else _start_pos++;
		}
	}

	$('.featured_projects .rotator').jcarousel({
		scroll: 1,
		auto: 0,
		wrap: 'circular',
		start: _start_pos
	});
	//init featured projects

	// init featured projects


	// init index gallery
	$('.photo_gallery ul').jcarousel({
		scroll: 1,
		animation: 200,
		wrap: 'circular'
	});

	// init testimonials
	$('.testimonials_box .rotator').jcarousel({
		wrap: 'circular',
		auto:0,
		scroll: 1
	});
	// init testimonials

	// focus for inputs
	$(".input input").focus(function () {
		$(this).parent().addClass('input_focus');
	});
	$('.input input').blur(function() {
	    $(this).parent().removeClass('input_focus');
	});
	// focus for inputs end

	// focus for textarea
	$(".textarea textarea").focus(function () {
		$(this).parent().addClass('textarea_focus');
	});
	$('.textarea textarea').blur(function() {
	    $(this).parent().removeClass('textarea_focus');
	});
	// focus for inputs end

	//init terms popup
	$(".btn_terms").colorbox({
		width:"auto",
		initialWidth:"934px",
		initialHeight:"543px",
		transition:"none",
		onComplete: function(){
			$('.scroll-pane').jScrollPane({showArrows: true});
			$('.jspDrag').mousedown(function() {
				$(this).addClass('active');
			});
			$('.jspDrag').mouseup(function() {
				$(this).removeClass('active');
			});
		},
		title:true
	});
	//
	//init privacy popup
	$(".btn_privacy").colorbox({
		width:"auto",
		initialWidth:"934px",
		initialHeight:"543px",
		transition:"none",
		onComplete: function(){
			$('.scroll-pane').jScrollPane({showArrows: true});
			$('.jspDrag').mousedown(function() {
				$(this).addClass('active');
			});
			$('.jspDrag').mouseup(function() {
				$(this).removeClass('active');
			});
		},
		title:true
	});

	//privacy


	//init request quote
	$(".btn_request_quote").colorbox({
		width:"auto",
		initialWidth:"934px",
		initialHeight:"396px",
		transition:"none",
		onComplete: function(){
			$('.scroll-pane').jScrollPane({showArrows: true});
			$('.jspDrag').mousedown(function() {
				$(this).addClass('active');
			});
			$('.jspDrag').mouseup(function() {
				$(this).removeClass('active');
			});
		},
		title:true
	});
	//request quote

	//init project popup
	$(".poject_p").colorbox({
		width:"auto",
		initialWidth:"934px",
		initialHeight:"543px",
		transition:"none",
		onComplete: function(){
			$('.scroll-pane').jScrollPane({showArrows: true});
			$('.jspDrag').mousedown(function() {
				$(this).addClass('active');
			});
			$('.jspDrag').mouseup(function() {
				$(this).removeClass('active');
			});
		},
		title:true
	});
	//project popup





	$(".our_office_gallery li a").colorbox({
		width:"auto",
		initialWidth:"740px",
		initialHeight:"541px",
		transition: "none",
		title: true,
		onComplete: function(){
			var tab_id = $($.colorbox.element()).index('.our_office_gallery li a') + 1;
			if (isNaN(tab_id) || tab_id == 0) tab_id = 1;
			$('.slideshow1').jcarousel({
				scroll: 1,
				start: tab_id,
				wrap: 'circular',
				animation: 200
			});
			$('.jcarousel-prev').mousedown(function() {
				$(this).addClass('active');
			});
			$('.jcarousel-prev').mouseup(function() {
				$(this).removeClass('active');
			});
			$('.jcarousel-next').mousedown(function() {
				$(this).addClass('active');
			});
			$('.jcarousel-next').mouseup(function() {
				$(this).removeClass('active');
			});
		}
	});
	$(".corporate_style_gallery li a").colorbox({
		width:"auto",
		initialWidth:"740px",
		initialHeight:"541px",
		transition: "none",
		title: true,
		onComplete: function(){
			var tab_id = $($.colorbox.element()).index('.corporate_style_gallery li a') + 1;
			if (isNaN(tab_id) || tab_id == -1) tab_id = 1;
			$('.slideshow2').jcarousel({
				scroll: 1,
				start: tab_id,
				wrap: 'circular',
				animation: 200
			});
			$('.jcarousel-prev').mousedown(function() {
				$(this).addClass('active');
			});
			$('.jcarousel-prev').mouseup(function() {
				$(this).removeClass('active');
			});
			$('.jcarousel-next').mousedown(function() {
				$(this).addClass('active');
			});
			$('.jcarousel-next').mouseup(function() {
				$(this).removeClass('active');
			});
		}
	});
	$(".soc_life_gallery li a").colorbox({
		width:"auto",
		initialWidth:"740px",
		initialHeight:"541px",
		transition: "none",
		title:true,
		onComplete: function(){
			var tab_id = $($.colorbox.element()).index('.soc_life_gallery li a') + 1;
			if (isNaN(tab_id) || tab_id == -1) tab_id = 1;
			$('.slideshow3').jcarousel({
				scroll: 1,
				start: tab_id,
				wrap: 'circular',
				animation: 200
			});
			$('.jcarousel-prev').mousedown(function() {
				$(this).addClass('active');
			});
			$('.jcarousel-prev').mouseup(function() {
				$(this).removeClass('active');
			});
			$('.jcarousel-next').mousedown(function() {
				$(this).addClass('active');
			});
			$('.jcarousel-next').mouseup(function() {
				$(this).removeClass('active');
			});
		}
	});
	$(".careers_gallery li a").colorbox({
		width:"auto",
		initialWidth:"740px",
		initialHeight:"541px",
		transition:"none",
		title:true,
		onComplete: function(){
			var tab_id = $($.colorbox.element()).index('.careers_gallery li a') + 1;
			if (isNaN(tab_id) || tab_id == -1) tab_id = 1;
			$('.slideshow4').jcarousel({
				scroll: 1,
				wrap: 'circular',
				start: tab_id,
				animation: 200
			});
			$('.jcarousel-prev').mousedown(function() {
				$(this).addClass('active');
			});
			$('.jcarousel-prev').mouseup(function() {
				$(this).removeClass('active');
			});
			$('.jcarousel-next').mousedown(function() {
				$(this).addClass('active');
			});
			$('.jcarousel-next').mouseup(function() {
				$(this).removeClass('active');
			});
		}
	});
	$(".initer").colorbox({
		width:"auto",
		initialWidth:"954px",
		initialHeight:"543px",
		transition: "none",
		onComplete:function(){
			var parent = $($.colorbox.element()).parents('.project_list');
			var tab_id = parent.find('a').index($.colorbox.element()) + 1;
			if (isNaN(tab_id) || tab_id == -1) tab_id = 1;

			initTabs('div.tabed_content', '.tabset li', '.tabs_content .tab', tab_id-1);
			$('.scroll-pane').jScrollPane({showArrows: true});
			$('.jspDrag').mousedown(function() {
				$(this).addClass('active');
			});
			$('.jspDrag').mouseup(function() {
				$(this).removeClass('active');
			});
		}
	});

	$(".project_img > a").colorbox({
		width:"auto",
		initialWidth:"954px",
		initialHeight:"543px",
		transition: "none",
		onComplete:function(){
			var tab_id = 1;
			initTabs('div.tabed_content', '.tabset li', '.tabs_content .tab', tab_id-1);
			$('.scroll-pane').jScrollPane({showArrows: true});
			$('.jspDrag').mousedown(function() {
				$(this).addClass('active');
			});
			$('.jspDrag').mouseup(function() {
				$(this).removeClass('active');
			});
		}
	});


	/*$(".separate_image").colorbox({
		width:"auto",
		initialWidth:"954px",
		initialHeight:"480px",
		transition: "none",
		onComplete:function()
		{
			var _img = new Image();
			_img.src = $($.colorbox.element()).find('img').attr('alt');
			$('.screenshot_holder').find('img').attr('src', _img.src);
			$('.screenshot_holder').find('img').attr('height', _img.height);
			$('.screenshot_holder').find('img').attr('width', _img.width);
			$.colorbox.resize( { innerWidth: _img.width + 60, innerHeight: _img.height + 52} );
		}
	});*/
	bindContactValidationRules();
	bindBtnSend();
});

function bindContactValidationRules()
{
	$('#ContactUsRequest').validate({
		errorClass: "error",
		errorElement: "div",
		validClass: "success",
		rules:{
			'ContactUsRequest[Name]' : { required: true },
			'ContactUsRequest[Email]' : { required: true, email: true },
			'ContactUsRequest[Message]' : { required: true }
		},
		messages: {
			'ContactUsRequest[Name]' : { required: 'Please fill in <br /> all required fields' },
			'ContactUsRequest[Email]' : { required: 'Please fill in <br /> all required fields', email: 'Please enter a valid e-mail' },
			'ContactUsRequest[Message]' : { required: 'Please fill in <br /> all required fields' }
		},
		errorPlacement: function(error, element)
		{
			//$('.error_message').html(error);
		},
  		highlight: function(element, errorClass) {
			if ($(element).attr('name') == 'ContactUsRequest[Name]' || $(element).attr('name') == 'ContactUsRequest[Email]')
			{
				$(element).parent('div.input').addClass('input_error');
				$(element).parent('div.input').removeClass('input_success');
			}
			else
			{
				$(element).parent('div.textarea').addClass('textarea_error');
				$(element).parent('div.textarea').removeClass('textarea_success');
			}
  			$(element).addClass(errorClass);

			if ($(element).attr('id') == "ContactUsRequest_Name")
			{
				if ($("#ContactUsRequest_Name").hasClass('error'))
				{
					if ($('#clearfixName').find('.error_message').length == 0)
					{
						$('#clearfixName').find('.success_message').remove();
						$('#clearfixName').prepend("<div class='error_message'>Required field</div>");
					}
				}
				else
				{
					if ($('#clearfixName').find('.success_message').length == 0)
					{
						$('#clearfixName').find('.error_message').remove();
						$('#clearfixName').prepend("<div class='success_message'>Success</div>");
					}
				}
			}

			if ($(element).attr('id') == "ContactUsRequest_Email")
			{
				if ($("#ContactUsRequest_Email").hasClass('error'))
				{
					$('#clearfixEmail').find('.success_message').remove();
					$('#clearfixEmail').find('.error_message').remove();
					if ($("#ContactUsRequest_Email").val().length > 0)
					{
						if ($('#clearfixEmail').find('.error_message').length == 0)
							$('#clearfixEmail').prepend("<div class='error_message'>Enter a valid address</div>");
					}
					else
					{
						if ($('#clearfixEmail').find('.error_message').length == 0)
							$('#clearfixEmail').prepend("<div class='error_message'>Required field</div>");
					}
				}
				else
				{
					if ($('#clearfixEmail').find('.success_message').length == 0)
					{
						$('#clearfixEmail').find('.error_message').remove();
						$('#clearfixEmail').prepend("<div class='success_message'>Success</div>");
					}
				}
			}

			if ($(element).attr('id') == "ContactUsRequest_Message")
			{
				if ($("#ContactUsRequest_Message").hasClass('error'))
				{
					if ($('#clearfixMessage').find('.error_message').length == 0)
					{
						$('#clearfixMessage').find('.success_message').remove();
						$('#clearfixMessage').prepend("<div class='error_message'>Required field</div>");
					}
				}
				else
				{
					if ($('#clearfixMessage').find('.success_message').length == 0)
					{
						$('#clearfixMessage').find('.error_message').remove();
						$('#clearfixMessage').prepend("<div class='success_message'>Success</div>");
					}
				}
			}
  		},
  		unhighlight: function(element, errorClass) {
			if ($(element).attr('name') == 'ContactUsRequest[Name]' || $(element).attr('name') == 'ContactUsRequest[Email]')
			{
				$(element).parent('div.input').removeClass('input_error');
				$(element).parent('div.input').addClass('input_success');
			}
			else
			{
				$(element).parent('div.textarea').removeClass('textarea_error');
				$(element).parent('div.textarea').addClass('textarea_success');
			}
			$(element).removeClass(errorClass);

			if ($(element).attr('id') == "ContactUsRequest_Name")
			{
				if ($("#ContactUsRequest_Name").hasClass('error'))
				{
					if ($('#clearfixName').find('.error_message').length == 0)
					{
						$('#clearfixName').find('.success_message').remove();
						$('#clearfixName').prepend("<div class='error_message'>Required field</div>");
					}
				}
				else
				{
					if ($('#clearfixName').find('.success_message').length == 0)
					{
						$('#clearfixName').find('.error_message').remove();
						$('#clearfixName').prepend("<div class='success_message'>Success</div>");
					}
				}
			}

			if ($(element).attr('id') == "ContactUsRequest_Email")
			{
				if ($("#ContactUsRequest_Email").hasClass('error'))
				{
					$('#clearfixEmail').find('.success_message').remove();
					$('#clearfixEmail').find('.error_message').remove();
					if ($("#ContactUsRequest_Email").val().length > 0)
					{
						if ($('#clearfixEmail').find('.error_message').length == 0)
							$('#clearfixEmail').prepend("<div class='error_message'>Enter a valid address</div>");
					}
					else
					{
						if ($('#clearfixEmail').find('.error_message').length == 0)
							$('#clearfixEmail').prepend("<div class='error_message'>Required field</div>");
					}
				}
				else
				{
					if ($('#clearfixEmail').find('.success_message').length == 0)
					{
						$('#clearfixEmail').find('.error_message').remove();
						$('#clearfixEmail').prepend("<div class='success_message'>Success</div>");
					}
				}
			}

			if ($(element).attr('id') == "ContactUsRequest_Message")
			{
				if ($("#ContactUsRequest_Message").hasClass('error'))
				{
					if ($('#clearfixMessage').find('.error_message').length == 0)
					{
						$('#clearfixMessage').find('.success_message').remove();
						$('#clearfixMessage').prepend("<div class='error_message'>Required field</div>");
					}
				}
				else
				{
					if ($('#clearfixMessage').find('.success_message').length == 0)
					{
						$('#clearfixMessage').find('.error_message').remove();
						$('#clearfixMessage').prepend("<div class='success_message'>Success</div>");
					}
				}
			}
  		}
	});

	$("#ContactUsRequest_Name").bind("focusout", function() { $("#ContactUsRequest_Name").valid(); });
	$("#ContactUsRequest_Email").bind("focusout", function() { $("#ContactUsRequest_Email").valid(); });
	$("#ContactUsRequest_Message").bind("focusout", function() { $("#ContactUsRequest_Message").valid(); });
}

function bindBtnSend()
{
	$('.btn_contact_us').click(function(event) {
		event.preventDefault();

		if ($("#ContactUsRequest").valid())
		{
			var postData = { 'ContactUsRequest[Name]' : $('#ContactUsRequest_Name').val(), 'ContactUsRequest[Email]' : $('#ContactUsRequest_Email').val(), 'ContactUsRequest[Phone]' : $('#ContactUsRequest_Phone').val(), 'ContactUsRequest[Message]' : $('#ContactUsRequest_Message').val() }
			$.post("/contact", postData, function(data) {
				   if (data.result == 'fail')
				   {
					   $('.column1').replaceWith(data.content);
					   bindContactValidationRules();
					   bindBtnSend();
				   }
				   else if (data.result == 'success')
				   {
					   window.location = '/thank-you';
				   }
			}, "json").error(function() {window.location = '/thank-you';});
		}
	});
}
