/*
* @author Rades Dan (dan.rades@gmail.com)
* @lastmod 11.12.2009
*/
App = {
	pageName : '',
	overlayElm : null,
	winElm : null,
	cache : {},
	username : '',
	initialise : function() 
	{	
		if (typeof pageName != 'undefined')
		{
			App.pageName = pageName;
		}
		var username = $.cookie('username');

		if (username != null)
		{
			$('#login').hide();
			$('#logout').show();
			App.username = username.replace(/\+/, "&nbsp;");			
			$('#logout b').html(App.username);			
		}
		else
		{
			this.initLoginBox();
		}


		if (typeof this.initors[this.pageName] == 'function') 
		{
			App.initors[this.pageName]();
		} 
		this.overlayElm = $('#overlay');
		App.initVoteBox();
		App.initWinnersTabs();
		$('#search_frm').submit(function()
		{
			var st = $('#search_term');
			if (st.val().length < 3)
			{
				alert('Te rugam sa introduci minim 3 caractere!');
				st.val('');
				st.focus();
				return false;
			}
			return true;
		});

	},
	initVoteBox : function()
	{
		var voteBtn = $('.vote_btn');
		App.voteBox = $('#vote_box');
		if (voteBtn.length)
		{
			voteBtn.click(function()
			{
				var userId = $(this).attr('user_id');
				
				$.get('/vote-box/' + userId, {}, function(html)
				{
					$('#vote_frm').html(html);
					$('#vote_submit').click(function()
					{	
						var emailErr = $('#vote_email_err');
						emailErr.hide();
						var email = $('#vote_email');
						var emailVal = '';
						if (email.length)
						{
							emailVal = email.val();
							var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;							
							if(reg.test(emailVal) == false) 
							{
								emailErr.show();
								return false;
							}
						}
						var captcha = $('#captcha').val();
						$.post('/vote', {'captcha' : captcha, 'user_id' : userId, 'email' : emailVal}, function(data)
						{
							if (data.error != '')
							{
								var err = $('#vote_error');
								if (data.error == 'captcha')
								{
									err.html('Codul captcha este invalid!').show();
								}
								else
								{
									err.html('A aparut o eroare la votare!').show();
								}
								$('#captcha').val('').focus();
								$('#captcha_img').attr('src','/captcha.php?' + App.rand(0,1000));
							}
							else
							{
								if (data.html != '')
								{
									$('#vote_frm').html(data.html);
								}
								else
								{
									$('#vote_zone').hide();
									$('#vote_success').show();
								}
								App.repositionWin(App.voteBox);
							}
						}, 'json');
					});
					App.overlay('show');
					App.repositionWin(App.voteBox);
					App.voteBox.show();		
				}, 'html');
			});	
			
			$('#vote_cancel').click(function()
			{
				App.voteBox.hide();				
				App.overlay('hide');
			});			
		}		
	},
	initWinnersTabs : function()
	{
		var btnNext = $('.warrow .cnext');
		var btnPrev = $('.warrow .cprev');
		$('#wCarousel').jCarouselLite({
			visible: 5,
			scroll: 5,
			start : 0,
			speed : 700,
			circular : false,
			'btnNext' : btnNext,
			'btnPrev' : btnPrev
		});	
	},
	initLoginBox  : function()
	{
		var loginBtn = $('.login_btn');
		var loginBox = $('#login_box');
		var loginForm = $('#login_frm');
		var recoverForm = $('#recover_frm');
	
		$('#forgot_pass').click(function()
		{
			loginForm.hide();
			recoverForm.show();
			return false;
		});
		loginBtn.live('click', function()
		{
			loginForm.show();
			recoverForm.hide();

			App.overlay('show');
			App.repositionWin(loginBox);
			loginBox.show();			
			$('input', loginBox).eq(0).focus();
		});

		$('#login_cancel').click(function()
		{
			loginBox.hide();
			$('#login_error').hide();
			$('#recover_error').hide();
			$('#recover_success').hide();
			App.overlay('hide');
		});

		$('#login_submit').click(function()
		{		
			loginForm.submit();
		});

		$('#recover_submit').click(function()
		{
			recoverForm.submit();
		});

		loginForm.submit(function()
		{			
			$.post('/login', loginForm.serialize(), function(data)
			{
				if (data.error)
				{
					$('#login_error').show();
					$('input[type!="submit"]',loginBox).val('').eq(0).focus();
				}
				else
				{
					var redirectUrl = (data.redirect_url != '') ? data.redirect_url : window.location.href;
					var x = redirectUrl.indexOf('#');
					if (x > 0)
					{
						redirectUrl = redirectUrl.substring(0,x);
					}
					window.location.href = redirectUrl;
				}
			},'json');
			return false;
		});

		recoverForm.submit(function()
		{			
			$('#recover_error').hide();
			$.post('/recover-password', recoverForm.serialize(), function(data)
			{
				if (data != 'success')
				{
					$('#recover_error').show();
					$('input[type!="submit"]',recoverForm).val('').eq(0).focus();
				}
				else
				{
					$('#recover_success').show();
					setTimeout(function()
					{
						loginBox.hide();
						$('#recover_error').hide();
						$('#recover_success').hide();
						App.overlay('hide');

					},2000);
				}
			},'html');
			return false;
		});
	},

	overlay : function(show)
	{
		var display = (show == 'show') ? 'block' : 'none';
		this.overlayElm.css({
			'height' : $(document).height(),
			'opacity' : 0.7,
			'display' : display
		});
		this.overlayElm.bgiframe();
	},

	repositionWin : function(w)
	{		
		if (typeof w == 'object')
		{
			var top = (($(window).height() / 2) - (w.outerHeight() / 2)) - 75;
			top = top + $(window).scrollTop();
			var left = (($(window).width() / 2) - (w.outerWidth() / 2));
						
			if( top < 0 ) top = 0;
			if( left < 0 ) left = 0;
			
			w.css({
				top: top + 'px',
				left: left + 'px'
			});
		}		
	},


	windowMaintainPosition : function(win, status) 
	{
		var maintain = function(){ App.repositionWin(_win); }
		switch(status) 
		{
			case true:
				$(window).bind('resize', maintain);
				if( $.browser.msie)
				{
					$(window).bind('scroll', maintain);
				}
			break;
			case false:
				$(window).unbind('resize', onresize);
				if( $.browser.msie)
				{				
					$(window).unbind('scroll', maintain);
				}
			break;
		}		
	},

	rand : function( min, max ) 
	{
		return Math.floor(Math.random() * (max - min + 1)) + min;
	}	
}

App.initors = {
	'homepage' : function() 
	{
	$('#slideshow').nextSlideshow({
			autostart : true,
			staticTime : 3000
		});
/*		
		$('#mediaplayer').nextMediaplayer({
			width : 550,
			height: 360,
			autostart : false ,
			wmode : 'transparent'
		});				
		*/
	},
	
	'castiga_ieseala' : function()
	{
		if (App.username == '')
		{	
			$('#upload_btn').hide();
		}
		else
		{
			$('#register_btn').hide();
		}
		var carousels = $('.carusel');  
		var players = $('.flv_player');
        carousels.each(function(i) {
			var _this = $(this);
			
			$('ul li a', _this).click(function()
			{
				var _this_ = $(this);				
				if (_this_.hasClass('flvmovie'))
				{
					var html = '<embed width="600" height="440" wmode="transparent" allowfullscreen="true" autostart="true" quality="high" type="application/x-shockwave-flash" src="/swf/flvplayer_new.swf" pluginspage="http://www.adobe.com/go/getflashplayer" flashvars="autostart=true&amp;backcolor=0x011E1E&amp;frontcolor=0xFFFFFF&amp;lightcolor=0xFFFFFF&amp;file=' + $(this).attr('_flv') + '">';				
					players.eq(i).show().html(html);
				}
			});
        });		
	},
	
	'profile' : function()
	{
		$('#tabs').nextTabs();
		$('a.save_lnk').click(function()
		{
			$(this).parent().parent().submit();
		});
		var uploadFolder = '/files/' + $.cookie('user_id') + '/';
		var uploadForm = $('#upload_form');
		var sessId = $.cookie('PHPSESSID');	
		var videoUploader = $('#uploadVideoJs');
		var videoUploaderCfg = {};		
		videoUploaderCfg['fileCount']  = 0;			
		
		videoUploader.uploadify({
			'uploader': '/swf/uploadify.swf',
			'script': '/upload/',
			'folder': uploadFolder,
			'cancelImg': '/images/cancel.png',
			'queueID' : 'uploadQueueVideo',
			'multi' : false,
			'queueSizeLimit' : 1,
			'auto' : false,
			'fileDesc' : 'Video Files (avi, wmv, mpeg, flv)',
			'fileExt' : '*.avi;*.wmv;*.mpeg;*.mpg;*.asf;*.flv',
			'sizeLimit' : 52428800,
			'buttonImg' : '/images/add_video.gif',
			'width' : 118,
			'height' : 30,
			'scriptData' : {'PHPSESSID' : sessId, 'type' : 'video'},
			'wmode' : 'transparent',			
			
			onCancel : function()
			{
				$('#uploadEmptyVideo').show();
			},
			onSelectOnce : function(e, data)
			{
				videoUploaderCfg['fileCount'] = data.fileCount;
				if (data.fileCount > 0)
				{
					$('#uploadEmptyVideo').hide();
				}
				else
				{
					$('#uploadEmptyVideo').show();
				}
			},
			
			onComplete : function(e, queueID, fileObj, response, data)
			{
				var html = 'Videoclipul <b>' + fileObj.name + '</b> a fost incarcat';
				$('#uploadVideoJs' + queueID).html(html);

				return false;
			},		

			onAllComplete : function(e, data)
			{
				if (photosCount == 5 || photosUploaderCfg['fileCount'] == 0)
				{
					uploadForm.submit();
				}
				else
				{
					if (photosUploaderCfg['fileCount'] > 0)
					{
						photosUploader.uploadifyUpload();
					}
					else
					{
						uploadForm.submit();
					}				
				}
			}			
		});		
		
		var photosUploader = $('#uploadPhotosJs');
		var photosUploaderCfg = {};
		photosUploaderCfg['queueSizeLimit']  = 5 - photosCount;
		photosUploaderCfg['fileCount']  = 0;		
		
		photosUploader.uploadify({
			'uploader': '/swf/uploadify.swf',
			'script': '/upload/',
			'folder': uploadFolder,
			'cancelImg': '/images/cancel.png',
			'queueID' : 'uploadQueuePhotos',
			'multi' : true,
			'queueSizeLimit' : photosUploaderCfg['queueSizeLimit'],
			'auto' : false,
			'fileDesc' : 'Image Files (jpeg, gif, png)',
			'fileExt' : '*.jpg;*.jpeg;*.gif;*.png;',
			'sizeLimit' : 5242880,
			'buttonImg' : '/images/add_images.gif',
			'width' : 118,
			'height' : 30,
			'scriptData' : {'PHPSESSID' : sessId, 'type' : 'photo'},
			'wmode' : 'transparent',
			
			
			onSelectOnce : function(e, data)
			{
				var c = photosUploaderCfg['queueSizeLimit'] - data.fileCount;
				
				photosUploaderCfg['fileCount'] = data.fileCount;
				var txt = '';
				if (c == 0)
				{
					txt = 'Numarul maxim de poze a fost atins';
					$('#uploadPhotosMsg').html(txt);
				}
				else
				{
					txt = c + ' ' + ((c == 1) ? ' poza' : ' poze'); 
					txt = 'Mai poti uploada <b>' + txt + '</b>';
					$('#uploadPhotosMsg').html(txt);
				}
				
				if (data.fileCount > 0)
				{
					$('#uploadEmptyPhotos').hide();
				}
				else
				{
					if (photosUploaderCfg['queueSizeLimit'] != 0) 
					{
						$('#uploadEmptyPhotos').show();
					}
				}				
			},
			
			onComplete : function(e, queueID, fileObj, response, data)
			{
				var html = 'Imaginea <b>' + fileObj.name + '</b> a fost incarcata';
				$('#uploadPhotosJs' + queueID).html(html);
				photosUploaderCfg['queueSizeLimit'] --;
				photosUploader.uploadifySettings('queueSizeLimit', photosUploaderCfg['queueSizeLimit']);
				
				if (data.fileCount == 0)
				{					
					uploadForm.submit();
				}
				
				return false;
			},
			
			onAllComplete : function(e, data)
			{			
				uploadForm.submit();	
			},
			
			onProgress : function(e, queueID, fileObj, data)
			{
				if( $.browser.msie)
				{
					if (data.percentage == 100)
					{
						//alert(photosUploaderCfg['queueSizeLimit']);
					}
				}
			},
			
			onError : function()
			{
				//alert('err');
			},
			
			onCancel : function(e, queueId, fileObj, data)
			{
				var c = photosUploaderCfg['queueSizeLimit'] - data.fileCount;
				var txt = c + ' ' + ((c == 1) ? ' poza' : ' poze'); 
				txt = 'Mai poti uploada <b>' + txt + '</b>';
				$('#uploadPhotosMsg').html(txt);				
			},
			
			onQueueFull : function(e, maxSize)
			{		
				return false;
			},

			onOpen : function(e, queueID, fileObj)
			{
				return false;
			}
		});		
		
		$('#save_frm').click(function()
		{
			if (videoUploaderCfg['fileCount'] > 0)
			{
				videoUploader.uploadifyUpload();
			}		
			else if (photosUploaderCfg['fileCount'] > 0)
			{			
				photosUploader.uploadifyUpload();
			}
			else
			{
				uploadForm.submit();
			}
			
		});

	},

	'party' : function()
	{
		var carousels = $('.carusel');  
		var bigImages = $('.big_image');
		var players = $('.flv_player');
        carousels.each(function(i) {
			var _this = $(this);
			var btnNext = $('.cnext',_this);
			var btnPrev = $('.cprev', _this);
			
			$('.carusel_container',_this).jCarouselLite({
				visible: 6,
				scroll: 6,
				start : 0,
				speed : 500,
				circular : false,
				'btnNext' : btnNext,
				'btnPrev' : btnPrev
			});
			// var li = $('ul li');
			$('ul li a', _this).click(function()
			{
				var _this_ = $(this);				
				if (_this_.hasClass('flvmovie'))
				{
					var html = '<embed width="600" height="440" wmode="transparent" allowfullscreen="true" autostart="true" quality="high" type="application/x-shockwave-flash" src="/swf/flvplayer_new.swf" pluginspage="http://www.adobe.com/go/getflashplayer" flashvars="autostart=true&amp;backcolor=0x011E1E&amp;frontcolor=0xFFFFFF&amp;lightcolor=0xFFFFFF&amp;file=' + $(this).attr('_flv') + '">';				
					players.eq(i).show().html(html);
					bigImages.eq(i).hide();
				}
				else
				{
					players.eq(i).html('').hide();
					if ( $('.big_image2').length > 0 ) {
						$('.big_image2').eq(i).show().attr('src', $(this).attr('_img'));
					} else {
						bigImages.eq(i).show().attr('src', $(this).attr('_img'));
					}
					
				}
			});
        });		
	},
	
	'gallery' : function()
	{
		var b = $('b',$('#item_views'));
		b.load('/views/' + b.attr('id'));

		var commentsContainer = $('#comments_container');
		var commentsLoading = $('#comments_loading');
		var commentsCache = {};
		var items = $('.item');
		var thumbs  = $('.thumb');		
		var flashPlayer = $('.mediaplayerFlv');
		
		thumbs.each(function(i)
		{
			var thumb = $(this);
			var itemId = thumb.attr('item_id');
			thumb.click(function()
			{
				window.location.hash = itemId;
				commentsContainer.hide();
				commentsLoading.show();
				if (flashPlayer.length)
				{
					flashPlayer.html('').removeClass('flash-replaced');
				}
				
				items.hide();
				thumbs.removeClass('selected');
				thumb.addClass('selected');
				var item = items.eq(i);
				item.show();
				if (item.attr('id') == 'mediaplayer')
				{
					$('#mediaplayer').nextMediaplayer({
						width : 440,
						height: 330,
						autostart : false ,
						wmode : 'transparent'
					});				
				}
				var showComments = function(html)
				{
					commentsContainer.html(html);
					var commentsNl = $('#comments_nl');
					var commentsL = $('#comments_l');
					if (App.username != '')
					{
						commentsNl.hide();
						commentsL.show();
					}
					else
					{
						commentsNl.show();
						commentsL.hide();
					}		
					commentsContainer.show();
					commentsLoading.hide();				
				}

				if (typeof commentsCache[itemId] == 'undefined')
				{
					
					$.get('/comments/' + itemId,{}, function(html)
					{
						commentsCache[itemId] = html;
						showComments(html);
					},'html');
				}
				else
				{
					showComments(commentsCache[itemId]);
				}
			});
		});
		var hash = window.location.hash;
		if (hash != '')
		{
			hash = hash.substring(1,hash.length);			
			thumbs.filter('[item_id="' + hash + '"]').click();
		}
		else
		{
			thumbs.eq(0).click();
		}

	}
};

$(document).ready(function() 
{
	//$(document).pngFix(); 
	App.initialise();	
	
});	

function fbs_click(u, t) {
	u=u || location.href;
	t=t || document.title;
	window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');return false;
}
	
	

