(function(c){var a=["DOMMouseScroll","mousewheel"];c.event.special.mousewheel={setup:function(){if(this.addEventListener){for(var d=a.length;d;){this.addEventListener(a[--d],b,false)}}else{this.onmousewheel=b}},teardown:function(){if(this.removeEventListener){for(var d=a.length;d;){this.removeEventListener(a[--d],b,false)}}else{this.onmousewheel=null}}};c.fn.extend({mousewheel:function(d){return d?this.bind("mousewheel",d):this.trigger("mousewheel")},unmousewheel:function(d){return this.unbind("mousewheel",d)}});function b(f){var d=[].slice.call(arguments,1),g=0,e=true;f=c.event.fix(f||window.event);f.type="mousewheel";if(f.wheelDelta){g=f.wheelDelta/120}if(f.detail){g=-f.detail/3}d.unshift(f,g);return c.event.handle.apply(this,d)}})(jQuery);

$(window).bind('load', function(){
	validation();
	initGalleryScroll();
	initLightbox();
	initGallery();
	initDiddyBox();
	initCirocBox();
	scrollbars();
});

function scrollbars(){
	$('div.scroll-holder:visible').each(function(i, scrollHolder){
		if (!$(scrollHolder).hasClass('scrollInit')) {
			$(scrollHolder).addClass('scrollInit');
			
			var _holder = $('div.scroll, div.gallery', scrollHolder);
			var _mover = $('> ul', _holder);
			var _topArrow = $('a.up', scrollHolder);
			var _downArrow = $('a.down', scrollHolder);
			var _moverHeight = _mover.outerHeight();
			var _holderHeight = _holder.innerHeight();
			var _maxMargin = _moverHeight - _holderHeight;
			var _speed = 10;
			var _k = 1;
			var _duration = _maxMargin*_speed;
			
			_topArrow.click(function(){return false;})
			_downArrow.click(function(){return false;})
			
			_topArrow.css('opacity',0.4);
			
			_topArrow.mousedown(function(){
				_downArrow.css('opacity',1);
				_k = 1 - (_maxMargin + parseInt(_mover.css('marginTop')))/_maxMargin;
				_mover.animate({'marginTop': 0},{duration:_duration*_k, queue:false, easing:'linear', complete:function(){
					if (parseInt(_mover.css('marginTop')) == 0) _topArrow.css('opacity',0.4);
				}});
				return false;
			});
			_downArrow.mousedown(function(){
				_topArrow.css('opacity',1);
				_k = (_maxMargin + parseInt(_mover.css('marginTop')))/_maxMargin;
				_mover.animate({'marginTop': -_maxMargin},{duration:_duration*_k, queue:false, easing:'linear', complete:function(){
					if (parseInt(_mover.css('marginTop')) == -_maxMargin) _downArrow.css('opacity',0.4);
				}});
				return false;
			})
			$(document).mouseup(function(){
				_mover.stop()
			});
			
			_mover.mousewheel(function(event,delta){
				_topArrow.css('opacity',1);
				_downArrow.css('opacity',1);
				var margin = _mover.css('marginTop');
				if (margin == 'auto') margin = 0;
				else margin = parseInt(margin);
				if (delta < 0) {
					margin = margin*(-1) + 15;
					if (margin > _maxMargin) margin = _maxMargin;
				} else {
					margin = margin*(-1) - 15;
					if (margin < 0) margin = 0;
				}
				_mover.css({'marginTop': -margin});
				
				if (margin == 0) _topArrow.css('opacity',0.4);
				if (margin == _maxMargin) _downArrow.css('opacity',0.4);
				return false;
			})
			
		}
	});
}

// init lightboxes *************************************************************
function initGallery(){
	if (typeof $().slideShow == 'function') {
		$('div.fadeGallery').slideShow({
			slideEl:'div.item',		
			numElementLink:'div.gallery li a',		
			duration:600 
		});
		$('div.recipe').slideShow({
			slideEl:'div.ingredients div.cocktail-text',		
			numElementLink:'div.small-drink li a',		
			duration:300 
		});
	}
}

// init lightboxes *************************************************************
function initLightbox(){
	if (typeof $().simpleLightbox == 'function') {
		$('a.show-lightbox, ul.list-photos a').simpleLightbox({
			faderOpacity: 0.5,
			faderBackground: '#000000',
			closeLink:'a.close',
			href:true
		});
	}
}

// corusel *********************************************************************
function initGalleryScroll(){
	if (typeof $().galleryScroll == 'function') {
		$('div.gallery').galleryScroll({
			duration : 1000,
			step: 1
		});
		$('div.gallery-home').galleryScroll({
			holderList: 'div.gall',
			scrollElParent: 'ul',
			scrollEl: 'li',
			slideNum: 'div.swicher',
			autoSlide:5000
		});
	}
}

$(function() {
    $(".news-feed").jCarouselLite({
  		auto: 3000,
    	speed: 1000
    });
});

// Diddy Twitter Box *************************************************************
function initDiddyBox(){
	if (typeof $().jCarouselLite == 'function') {
		$(".boxDiddy").jCarouselLite({ btnNext: ".moreDiddy", btnPrev:  ".previousDiddy", vertical: true, visible: 2, circular: false });
	}
}

// CirocTwitter Box *************************************************************
function initCirocBox(){
	if (typeof $().jCarouselLite == 'function') {
		$(".boxCiroc").jCarouselLite({ btnNext: ".moreCiroc", btnPrev:  ".previousCiroc", vertical: true, visible: 2, circular: false });
	}
}

// validation ******************************************************************
var _titleError = 'One must be selected';
var _firstNameError = 'First Name cannot be blank';
var _lastNameError = 'Last Name First Name cannot be blank';
var _emailError = 'Enter Valid Email Address';
var _address1Error = 'Address cannot be blank';
var _cityError = 'City cannot be blank';
var _stateError = 'State must be selected';
var _countryError = 'Country must be selected';
var _mobileError = 'Mobile Number cannot be blank';
var _genderError = 'One must be selected';
var _monthError = 'Must be selected';
var _dayError = 'Must be selected';
var _yearError = 'Must be selected';
var _oldError = 'You should be 21 or older';


function validation(){
	var _errorNum = 0;
	var _form = $('#registerForm');
	
	_form.submit(function(){
		removeError();
		var _false = false;
		// title
		var _title = $('#title');
		if (_title.val() == 'def') {
			addError(_title, _titleError); _false = true
		}
		// first name
		var _firstName = $('#firstName');
		var _firstNameReg = /^([A-Za-z\-\s]){2,}$/;
		if (!_firstNameReg.test(_firstName.val())) {
			addError(_firstName, _firstNameError); _false = true
		}
		// last name
		var _lastName = $('#lastName');
		if (!_firstNameReg.test(_lastName.val())) {
			addError(_lastName, _lastNameError); _false = true
		}
		// email
		var _email = $('#email');
		var _emailReg = /^(([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+([;.](([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+)*$/
		if (!_emailReg.test(_email.val())) {
			addError(_email, _emailError); _false = true
		}
		// first name
		var _address1= $('#address1');
		if (_address1.val().length < 2) {
			addError(_address1, _address1Error); _false = true
		}
		// first name
		var _city = $('#city');
		if (!_firstNameReg.test(_city.val())) {
			addError(_city, _cityError); _false = true
		}
		// state
		var _state = $('#state');
		if (_state.val() == 'def') {
			addError(_state, _stateError); _false = true
		}
		// country
		var _country = $('#country');
		if (_country.val() == 'def') {
			addError(_country, _countryError); _false = true
		}
		// mobile
		var _mobile = $('#mobile');
		var _mobileReg = /^[\+]{0,1}(\d{10,13}|[\(][\+]{0,1}\d{2,}[\13)]*\d{5,13}|\d{2,6}[\-]{1}\d{2,13}[\-]*\d{3,13})$/;
		if (!_mobileReg.test(_mobile.val())) {
			addError(_mobile, _mobileError); _false = true
		}
		
		
		// gender
//		var _gender= $('input[name=data[Newsletter][gender]]');
//			if (!_gender.is(':checked')) {
//			addError(_gender.eq(0), _genderError); _false = true
//		}
		
		
		// Date of Birth
		var _month = $('#month');
		var _day = $('#day');
		var _year = $('#year');
		if (_month.val() == 'def') { addError(_month, _monthError); _false = true }
		if (_day.val() == 'def') { addError(_day, _dayError); _false = true }
		if (_year.val() == 'def') { addError(_year, _yearError); _false = true }
		
		
		var _myDate = new Date();
		var _yearCur = _myDate.getFullYear();
		var _monthCur = _myDate.getMonth();
		var _dayCur = _myDate.getDate();
		if (_yearCur - parseInt(_year.val()) < 20) {
			addError($('input.btn-submit'), _oldError); _false = true;
		} else if (_monthCur+1 - parseInt(_month.val()) < 0 && _yearCur - parseInt(_year.val()) == 20) {
			addError($('input.btn-submit'), _oldError); _false = true;
		} else if (_monthCur+1 - parseInt(_month.val()) == 0 && _yearCur - parseInt(_year.val()) == 20 && _dayCur - parseInt(_day.val()) < -1) {
			addError($('input.btn-submit'), _oldError); _false = true;
		}
		
	
		if (_false) return false;
	});
	
	function addError(el, errorTxt) {
		var _pos = $(el).offset();
		var _w = $(el).outerWidth();
		$('body').append('<div class="error-popup" id="error'+_errorNum+'"><p>'+errorTxt+'</p></div>');
		$('#error'+_errorNum).css({
			display:'none',
			top:_pos.top-23,
			left:_pos.left+_w-12,
			zIndex:1010
		}).fadeIn(300);
		el.num = _errorNum;
		$(el).addClass('error').focus(function(){
			$(this).removeClass('error');
			$('#error'+el.num).remove();
		});
		_errorNum++;
	}
	function removeError(){
		$('.error').removeClass('error');
		$('.error-popup').remove();
	}
}
