/**
* Global action definitons
* @author Gusts 'gusC' Kaksis <gusts.kaksis@gmail.com>
*/

/**
* File upload class
*/
var FileUpload = (function(){
	var _last_callback = null;
	var _last_callback_data = null;
	
	var _call = function(callback, data){
		_last_callback = callback;
		_last_callback_data = data;
		$('#input-file').click();
	},
	_upload = function(e){
		var file = $(this).val();
		if (file.trim().length > 0){
			$('#file-upload').submit();
		}
	},
	_response = function(response){
		if (_last_callback != null){
			_last_callback(_last_callback_data, response);
		}
		$('#input-file').val('');
		$('#input-file').change();
		_last_callback = null;
		_last_callback_data = null;
	},
	_error = function(message){
		$('#input-file').val('');
		$('#input-file').change();
		_last_callback = null;
		_last_callback_data = null;
	};
	
	$(document).ready(function(){
		$('#input-file').change(_upload);
	});
	
	return {
		Call : _call,
		Response : _response,
		Error : _error
	}
})();
/**
* Media panel class
*/
var MediaPanel = (function(){
	var _autoSlideTimer = 0;
	var _cookie = parseInt($.cookie('media_panel'));
	var $_media;
	var $_wrapper;
	var $_info_left;
	var $_info_right;
	
	if (isNaN(_cookie)){
		_cookie = 0;
	}
	
	var _slideLeft = function(){
		if ($_wrapper.queue().length <= 0){
			var $_items = $_wrapper.find('div.media-image');
			$_wrapper.stop();
			$_wrapper.css('left', '0px');
			$_wrapper.animate({left: -478}, 1000, function(){
				$_wrapper.append($_items.eq(0));
				$_wrapper.css('left', '0px');
			});
			$_info_left.find('div.media-info').eq(0).animate({right: -275}, 500, function(){
				$_info_left.append($_info_left.find('div.media-info').eq(0));
				$_info_left.find('div.media-info').eq(0).animate({right: 0}, 500);
			});
			$_info_right.find('div.media-info').eq(0).animate({left: -275}, 500, function(){
				$_info_right.append($_info_right.find('div.media-info').eq(0));
				$_info_right.find('div.media-info').eq(0).animate({left: 0}, 500);
			});
		}
	},
	_slideRight = function(){
		if ($_wrapper.queue().length <= 0){
			var $_items = $_wrapper.find('div.media-image');
			$_wrapper.stop();
			$_wrapper.prepend($_items.eq($_items.length - 1));
			$_wrapper.css('left', '-478px');
			$_wrapper.animate({left: 0}, 1000);
			$_info_left.find('div.media-info').eq(0).animate({right: -275}, 500, function(){
				var $_sub = $_info_left.find('div.media-info');
				$_info_left.prepend($_sub.eq($_sub.length - 1));
				$_info_left.find('div.media-info').eq(0).animate({right: 0}, 500);
			});
			$_info_right.find('div.media-info').eq(0).animate({left: -275}, 500, function(){
				var $_sub = $_info_right.find('div.media-info');
				$_info_right.prepend($_sub.eq($_sub.length - 1));
				$_info_right.find('div.media-info').eq(0).animate({left: 0}, 500);
			});
		}
	},
	_panelOpenClose = function(e){
		e.preventDefault();
		if ($_media.hasClass('open')){
			_panelClose();
		} else if ($_media.hasClass('close')){
			_panelOpen();
		}
	},
	_panelOpen = function(){
		$('#media').removeClass('close');
		$('#media').animate({height: 326, overflow: 'hidden'}, 1000, function(){
			$('#media').addClass('open');
			$('#media-handle a').text('Aizvērt');
		});
		$.cookie('media_panel', 0, {expires: (30 * 24 * 60 * 60), path: '/'});
	},
	_panelClose = function(){
		$('#media').removeClass('open');
		$('#media').animate({height: 38, overflow: 'hidden'}, 1000, function(){
			$('#media').addClass('close');
			$('#media-handle a').text('Aktuāli');
		});
		$.cookie('media_panel', 1, {expires: (30 * 24 * 60 * 60), path: '/'});
	},
	_autoAnimate = function(){
		if (_autoSlideTimer > 0){
			clearTimeout(_autoSlideTimer);
			_autoSlideTimer = 0;
		}
		_slideRight();
		_autoSlideTimer = setTimeout(_autoAnimate, 7000);
	};
	
	$(document).ready(function(){
		$_media = $('#media');
		$_wrapper = $('#media-wrap');
		$_info_left = $('#media-info-left');
		$_info_right = $('#media-info-right');
		
		$('#media-handle a.handle').click(_panelOpenClose);
		
		$_wrapper.find('div.media-image').css('width', '478px');
		$_wrapper.css('width', ($_wrapper.find('div.media-image').length * 478) + 'px');
		
		$('#media-controls').find('a.previous').click(function(e){
			e.preventDefault();
			_slideLeft();
		});
		$('#media-controls').find('a.next').click(function(e){
			e.preventDefault();
			_slideRight();
		});
		
		if (_cookie > 0){
			$('#media').removeClass('open');
			$('#media').addClass('close');
			$('#media').css('height', '38px');
			$('#media-handle a').text('Aktuāli');
		}
		
		$_info_right.append($_info_right.find('div.media-info').eq(0));
		$_info_left.find('div.media-info').eq(0).animate({right: 0}, 500);
		$_info_right.find('div.media-info').eq(0).animate({left: 0}, 500);
		
		_autoSlideTimer = setTimeout(_autoAnimate, 7000);
	});
})();

var SocialShare = (function(){
	var _site = '';
	
	var _init = function(site){
		_site = site;
		$('.share-twitter').click(_shareTwitter);
		$('.share-facebook').click(_shareFacebook);
		$('.share-draugiemlv').click(_shareDraugiemlv);
	},
	_openPopup = function(url){
		var left = (screen.width/2)-(450/2);
		var top = (screen.height/3)-(300/2);
		window.open(url, 'popup', 'width=450,height=300,top=' + top + ',left=' + left);
	},
	_shareTwitter = function(e){
		e.preventDefault();
		var link = $(this).attr('href');
		var title = $(this).attr('title');
		_openPopup('http://twitter.com/home?status=' + title + ': ' + link);
	},
	_shareFacebook = function(e){
		e.preventDefault();
		var link = $(this).attr('href');
		var title = $(this).attr('title');
		_openPopup('http://www.facebook.com/sharer.php?u=' + link + '&t=' + title);
	},
	_shareDraugiemlv = function(e){
		e.preventDefault();
		var link = $(this).attr('href');
		var title = $(this).attr('title');
		_openPopup('http://www.draugiem.lv/say/ext/add.php?link=' + link + '&title=' + title + '&titlePrefix=' + _site);
	};
	
	return {
		Init : _init
	};
})();

/**
* General initialization
*/
$(document).ready(function(){
	// Fancybox pop-up
	$('a.lightbox').fancybox();
	// BBCode editor
	$('div.wysiwyg textarea').bbedit({
		enableSmileybar: false,
		tags: 'b,i,u,s,url,img,embed,quote',
		lang: 'en'
	});
	$('div.free-gallery ul a').click(function(e){
		e.preventDefault();
		$('div.free-gallery p img').attr('src', $(this).attr('href'));
	});
	$('a.login-popup').click(function(e){
		e.preventDefault();
		var left = (screen.width/2)-(450/2);
		var top = (screen.height/3)-(300/2);
		window.open($(this).attr('href'), 'popup', 'width=450,height=300,top=' + top + ',left=' + left);
	});
	// Initialize social sharing
	SocialShare.Init('boards.lv');
	// Some stuff Kristians made up for uber select boxes
	(function($){
		$.fn.extend({
      customStyle : function(options) {
				if(!$.browser.msie || ($.browser.msie&&$.browser.version>6)){
					return this.each(function() {
					  var currentSelected = $(this).find(':selected');
					  $(this).after('<span class="customStyleSelectBox"><span class="customStyleSelectBoxInner">'+currentSelected.text()+'</span></span>').css({position:'absolute', opacity:0,fontSize:$(this).next().css('font-size')});
					  var selectBoxSpan = $(this).next();
					  var selectBoxWidth = parseInt($(this).width()) - parseInt(selectBoxSpan.css('padding-left')) -parseInt(selectBoxSpan.css('padding-right'));      
					  var selectBoxSpanInner = selectBoxSpan.find(':first-child');
					  selectBoxSpan.css({display:'inline-block'});
					  selectBoxSpanInner.css({width:selectBoxWidth, display:'inline-block'});
					  var selectBoxHeight = parseInt(selectBoxSpan.height()) + parseInt(selectBoxSpan.css('padding-top')) + parseInt(selectBoxSpan.css('padding-bottom'));
					  $(this).height(selectBoxHeight).change(function(){
						  //	Fixed that: was returning option value instead of text. Vitalijs.
					    selectBoxSpanInner.text($(this).children(':selected').text()).parent().addClass('changed');
					  });
				  });
				}
			}
		});
	})(jQuery);
	$('div.age select').customStyle();
});

