var $jnc = jQuery.noConflict();

$jnc(document).ready(function(){
	$jnc('div.gallery').vvGalleryScroll({
		holderList: 'div.g-hold',
		scrollElParent: '> ul',
		scrollEl: '> li',
		btnPrev: 'a.prev',
		btnNext: 'a.next',
		autoSlide:false,
		dalay: 800
	});
	initPopup();
	$jnc('#nav').animationNav({
		addBG: '<li class="active-state"><strong></strong></li>'
	});
	
	$jnc('div.slide-area').fadeGallery({
		listSelector: 'ul.f-gal > li',
		navHolder:		'div.switcher',
		navCreate:		true,
		thumbsSelector: 'li',
		swichTime:		7000,
		onChange: function(){
			var gal = this;
			var _description = gal.data('curent').find('div.hide');
			gal.find('div.descr-box div.text-box').remove();
			gal.find('div.descr-box').append(_description.clone().children());
		},
		delay:900
	});
});

/*fadeGallery*/
$jnc.fn.fadeGallery = function(_options){
	var _options = $jnc.extend({
		listSelector: '> li',
		navHolder:		false,
		navCreate:		false,
		thumbsSelector: 'li',
		prev:			'a.prev',
		next:			'a.next',
		swichTime:		false,
		delay:			900,
		fadeIEfix:		false,
		onChange:		null
	},_options);
	return this.each(function(){
		var _swichTime = _options.swichTime;
		var _d = (_options.fadeIEfix) ? ($jnc.browser.msie ? 0 : _options.delay) : (_options.delay);
		var _this = $jnc(this);
		_this.data('options', _options);
		var _list = $jnc(_options.listSelector, _this);
		var _linksHold = $jnc(_options.navHolder, _this);

		if(_options.navCreate){
			var _htmlNav ='<ul>';
			for(var i=0; i<_list.length; i++) {
				_htmlNav += '<li><a href="#">'+(i+1)+'</a></li>';
			}
			_htmlNav +='</ul>';
			_linksHold.html(_htmlNav);
		}
		var _links = $jnc(_options.thumbsSelector, _linksHold);
		var _btnPrev = $jnc(_options.prev , _this);
		var _btnNext = $jnc(_options.next , _this);
		var _a = _list.index(_list.filter('.active:eq(0)'));
		if(_a == -1) _a = 0;
		var _t;
		_list.removeClass('active').css({display: 'none', opacity: 0}).eq(_a).addClass('active').css({display: 'block', opacity: 1}).css('opacity', 'auto');
		_links.eq(_a).addClass('active');

		autoSwitch();
		function autoSwitch(){
			if (_swichTime){
				_t = setTimeout(function(){
					if(_a < _list.length - 1) changeEl(_a + 1);
					else changeEl(0);
				}, _swichTime);
			}
		}

		if (_btnPrev){
			_btnPrev.click(function(){
				var _prevItem = 0;
				if (_a > 0) _prevItem = _a-1;
				else _prevItem = _list.length-1;
				changeEl(_prevItem);
				return false;
			})
		}
		if (_btnNext){
			_btnNext.click(function(){
				var _nextItem = 0;
				if (_a < _list.length - 1) _nextItem = _a+1;
				else _nextItem = 0;
				changeEl(_nextItem);
				return false;
			})
		}

		if(_links){
			_links.click(function(){
				var _ind = _links.removeClass('active').index($jnc(this).addClass('active'));
				changeEl(_ind);
				return false;
			})
		}
		function changeEl(_ind){
			if(_t) clearTimeout(_t);
			if(_list.is(':animated')) _list.stop(true, true);
			if(_ind != _a){
				_links.removeClass('active').eq(_ind).addClass('active');
				_list.eq(_a).removeClass('active').animate({opacity: 0}, {queue:false, duration:_d});
				_list.eq(_ind).addClass('active').css({opacity: 0, display:'block'}).animate({opacity: 1}, {queue:false, duration:_d,complete:function(){
					$jnc(this).css('opacity', 'auto');
					_a = _ind;
					autoSwitch();
					if ($jnc.isFunction(_options.onChange)) {
						_this.data('curent', _list.eq(_ind));
						_options.onChange.apply(_this);
					};
				}});
			}
		}
	});
};

// navigation animate
$jnc.fn.animationNav = function(_options){
	// defaults options	
	var _options = $jnc.extend({
		duration:250,
		addBG:'<li class="bg"><a href="#"><span>&nbsp;</span></a></li>',
		els :'li'
	},_options);

	return this.each(function(){
		var _this = $jnc(this).css('position','relative');
		var _bg = $jnc(_options.addBG);
		var _list = $jnc(_options.els, _this);
		_this.append(_bg);
		var _a = _list.index(_list.filter('.active'));
		var left = _list.eq(_a).position().left;
		var cur = _list.eq(_a).find('span:eq(0)');
		_bg.find('strong').css({'width': parseInt(cur.get(0).offsetWidth,10) - parseInt(cur.css('padding-left'),10) - parseInt(cur.css('padding-right'),10)});
		_bg.animate({left: left},{duration: _options.duration, easing: _options.animEffect, queue: false});

		_list.mouseenter(function(){
			left = $jnc(this).position().left;
			_bg.animate({left: left},{duration: _options.duration, easing: _options.animEffect, queue: false});
			_bg.find('strong').animate({width: parseInt($jnc(this).find('span:eq(0)').get(0).offsetWidth,10) - parseInt($jnc(this).find('span:eq(0)').css('padding-left'),10) - parseInt($jnc(this).find('span:eq(0)').css('padding-right'),10)},{duration: _options.duration, easing: _options.animEffect, queue: false});
		}).mouseleave(function(){
			left = _list.eq(_a).position().left;
			_bg.animate({left: left},{duration: _options.duration, easing: _options.animEffect, queue: false});
			_bg.find('strong').animate({width: parseInt(cur.get(0).offsetWidth,10) - parseInt(cur.css('padding-left'),10) - parseInt(cur.css('padding-right'),10)},{duration: _options.duration, easing: _options.animEffect, queue: false});
		})
	});
}

// gallery scroll
$jnc.fn.vvGalleryScroll = function(_options){
	// defaults options	
	var _options = $jnc.extend({
		btnPrev: 'a.link-prev',
		btnNext: 'a.link-next',
		holderList: 'div',
		scrollElParent: 'ul',
		scrollEl: 'li',
		thumbs: false,
		thumbsCreate: false,
		duration : 700,
		step: false,
		pause: false,
		event: 'click',
		circleSlide: true,
		disableClass: 'disable',
		autoSlide:false,
		onBeforeChange: null,
		onChange: null
	},_options);

	return this.each(function(){
		var _this = this;

		var _holderBlock = $jnc(_options.holderList,_this);
		var _moover = $jnc(_options.scrollElParent,_holderBlock).css('position','relative');
		var _liWidth = $jnc(_options.scrollEl,_moover).outerWidth(true);
		var _gWidth = _holderBlock.width();
		var _liSum = $jnc(_options.scrollEl,_moover).length * _liWidth;
		var _thumbs = _options.thumbs ? ($jnc(_options.thumbs,_this).length ? $jnc(_options.thumbs,_this): false) : false;
		var _step = 0, _t = null, _mM=0;
		var _pause =  _options.pause ? $jnc(_options.pause,_this) : false;
		var _play = _options.play ? $jnc(_options.play,_this) : false;
		var _a = 0;
		if(_options.thumbsCreate){
			var _html = '<ul>';
			for(var i=0; i<$jnc(_options.scrollEl,_moover).length; i++) {
				_html+='<li><a href="#">'+(i+1)+'</a></li>';
			};
			_html += '</ul>';
			_thumbs.html(_html);
			_thumbs = _thumbs.find('a');
		}
		if(_thumbs) _thumbs.removeClass('active').eq(_a).addClass('active');
//step
		if(typeof(_options.step)=='number') _step = _options.step;
		else if (!_options.step) _step = _gWidth; else _step = _options.step*_liWidth;
		if(!_options.circleSlide){
			if(_mM == 0) $jnc(_options.btnPrev,_this).addClass(_options.disableClass);
			else if(_mM ==_liSum-_gWidth) $jnc(_options.btnNext,_this).addClass(_options.disableClass);
		};
//prev btn
		if($jnc(_options.btnPrev, _this)){
			$jnc(_options.btnPrev, _this).bind(_options.event, function(){
				if(!$jnc(this).hasClass(_options.disableClass)){
					$jnc(_options.btnNext,_this).removeClass(_options.disableClass);
					if(_mM - _step<0) (_mM!=0) ? _mM=0 : (_options.circleSlide ? _mM = _liSum - _gWidth : $jnc(_options.btnPrev,_this).addClass(_options.disableClass));
					else _mM -= _step;
					if(_a!= 0) _a--;
					else _a =$jnc(_options.scrollEl,_moover).length-1;
					_this.rotate(_mM);
				}
				return false;
			});
		};
//next btn
		if($jnc(_options.btnNext, _this)){
			$jnc(_options.btnNext, _this).bind(_options.event, function(){
				if(!$jnc(this).hasClass(_options.disableClass)){
					$jnc(_options.btnPrev,_this).removeClass(_options.disableClass);
					if(_mM + _step >_liSum - _gWidth) (_mM!= _liSum - _gWidth) ? (_mM = _liSum - _gWidth) : (_options.circleSlide ? _mM = 0 : $jnc(_options.btnNext,_this).addClass(_options.disableClass));
					else _mM += _step;
					if(_a!= $jnc(_options.scrollEl,_moover).length-1) _a++;
					else _a =0;
					_this.rotate(_mM);
				}
				return false;
			});
		};
//animate
		_this.rotate = function(_mM){
			if(_t) clearTimeout(_t);
			if ($jnc.isFunction(_options.onBeforeChange)) {
				_options.onBeforeChange.apply(_this);
			}
			if(!_options.circleSlide){
				if(_mM == 0) $jnc(_options.btnPrev,_this).addClass(_options.disableClass);
				else if(_mM ==_liSum-_gWidth) $jnc(_options.btnNext,_this).addClass(_options.disableClass);
			};
			if(_thumbs) _thumbs.removeClass('active').eq(_a).addClass('active');
			_moover.animate({left: -_mM},{duration: _options.duration, queue: false, complete: function(){
				if ($jnc.isFunction(_options.onChange)) {
					_options.onChange.apply(_this);
				}
				_this.autoslide();
			}});
		};
//autoslide
		_this.autoslide = function(){
			if(_options.autoSlide && _liSum >= _gWidth){
				if(_t) clearTimeout(_t);
				_t = setTimeout(function(){
					$jnc(_options.btnPrev,_this).removeClass(_options.disableClass);
					if(_mM + _step >_liSum - _gWidth) (_mM!= _liSum - _gWidth) ? (_mM = _liSum - _gWidth) : (_options.circleSlide ? _mM = 0 : $jnc(_options.btnNext,_this).addClass(_options.disableClass));
					else _mM += _step;
					if(_a!= $jnc(_options.scrollEl,_moover).length-1) _a++;
					else _a =0;
					_this.rotate(_mM);
				}, _options.autoSlide);
			};
		};
		_this.autoslide();
//disable btns next/prev if need
		if (_liSum <= _gWidth) {
			$jnc(_options.btnPrev,_this).addClass(_options.disableClass).unbind(_options.event).click(function(){return false;});
			$jnc(_options.btnNext,_this).addClass(_options.disableClass).unbind(_options.event).click(function(){return false;});
		};
//thumbs
		if(_thumbs){
			_thumbs.click(function(){
				var _ind = _thumbs.index(this);
				_a = _ind;
				_thumbs.removeClass('active').eq(_a).addClass('active');
				_this.rotate(_step*_ind);
				return false;
			});
		}
	//play|pause
		if(_pause && _pause.length){
			_pause.click(function(){
				_play.removeClass('active');
				$jnc(this).addClass('active');
				if(_t) clearTimeout(_t);
				return false;
			});
		};
		if(_play && _play.length){
			_play.click(function(){
				_pause.removeClass('active');
				$jnc(this).addClass('active');
				_this.autoslide();
				return false;
			});
		};
	});
};
function initPopup(){
	var _holder = $jnc('div.columns-holder > div.column > div');
	_holder.each(function(){
		var _this = $jnc(this);
		_this.hover(function(){
			_this.parent().css('z-index','20');
			_holder.css('opacity',0.5);
			_this.css('opacity',1).addClass('active');
		}).mouseleave(function(){
			_this.css('opacity',1).removeClass('active');
			_this.parent().css('z-index','1');
			_holder.css('opacity',1);
		});
	});
	
}

function checkContactForm(){

if(document.contact.client_name.value == "Your Name")
{alert("Please provide your Name");	 return false;}

else if(!checkEmailAddress(document.contact.client_email)) {
alert("Please enter a valid Email Address"); return false;}

else if(document.contact.client_subject.value == "Message Subject")
{alert("Please provide a Message Subject"); return false;}
else if(document.contact.comments.value == "Enter your Message...")
{alert("Please provide your Comments or Questions");	 return false;}	 
else document.contact.submit();
}


function checkQuoteForm(){

if(document.quote.client_name.value == "Your Name")
{alert("Please provide your Name");	 return false;}

else if(!checkEmailAddress(document.quote.client_email)) {
alert("Please enter a valid Email Address"); return false;}

else if(document.quote.client_tel.value == "Your Telephone Number")
{alert("Please provide your Telephone Number"); return false;}

else if(document.quote.project_title.value == "Project Title")
{alert("Please provide a Project Title"); return false;}
else document.quote.submit();

}

function checkEmailAddress(field) {
	var err = false;

	if (!field) {
		return true;
	}

	if (!err && field.value.replace(/^\s+/g, '').replace(/\s+$/g, '').search(/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([a-zA-Z0-9]{1}|[a-zA-Z0-9]([a-zA-Z0-9-]){0,61}[a-zA-Z0-9])(\x2e([a-zA-Z0-9]{1}|[a-zA-Z0-9]([a-zA-Z0-9-]){0,61}[a-zA-Z0-9]))*$/) == -1) {
		err = true;
	}

	if (err) {
		field.focus();
		field.select();
	}

	return !err;
}
