var lang = "ro";

var url = window.top.location.toString();
var pageHash = unescape(self.document.location.hash.substring(1));

var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
var IE7 = false /*@cc_on || @_jscript_version == 5.7 @*/;
var isMSIE = /*@cc_on!@*/false;
try {document.execCommand("BackgroundImageCache", false, true);} catch(err) {}

$(function(){
	//	site succesfully loaded ...
	$('body').addClass('site');

	//	disable caching of AJAX responses
	$.ajaxSetup ({
		cache: false
	});

	//	sets links with the rel of "blank" to open in a new window
	$('a[rel$="blank"]').attr('target', '_blank'); 
	
	//	printing articles
	$('.printing').bind('click', function(){
		window.print();
		return false;
	});

	//	animated scrolling for same page links
	$('a[href*=#]').click(function() {
		if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
			var $target = $(this.hash);
			$target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');
			if ($target.length) {
				var targetOffset = $target.offset().top;
				$('html,body').animate({scrollTop: targetOffset}, 1000);
				return false;
			}
		}
	});

	//	Cloning header menu
	if( $('div.nav', '#header').length > 0 ) {
		$('div.nav','#footer').append($('div.nav ul', '#header').clone());
	}

	//	tooltip
	if( $('.tooltip').length  > 0 ) {
		$('.tooltip').tooltip({yOffset: 5, xOffset: 15});
	}
	
	//	message actions slider
	if( $('#response').length > 0 ) {
		$('#response').slider('up', 'slow', 3);
	}
	//	Sumar slide
	if( $('.slider').length > 0 ) {
		var slide = $('.slider'); 
		$(slide).each(function(){
			var t = $(this);
			var timer = $(this).attr('timer');
			if( $('a:visible', t).length > 1) {
				setInterval( function(){
					var $active = $('a.active', t);
					if ( $active.length == 0 ) $active = $('a:last', t);
				
					// use this to pull the divs in the order they appear in the markup
					var $next =  $active.next().length ? $active.next() : $('a:first', t);
				
					// uncomment below to pull the divs randomly
					// var $sibs  = $active.siblings();
					// var rndNum = Math.floor(Math.random() * $sibs.length );
					// var $next  = $( $sibs[ rndNum ] );
			
					$active.addClass('last-active');
				
					$next.css({opacity: 0.0})
						.addClass('active')
						.animate({opacity: 1.0}, 1000, function() {
							$active.removeClass('active last-active');
						});
				}, (timer*1000) );
			} else
				$('a:first', t).css({opacity: 1});

		});
	}
	
	//	Homepage Carousel
	if( $('.slideshow', '#site-content').length > 0 ) {
		//	Controls
		$('#site-content').append($('div.controls', '#site-content').clone().remove());
		//	Carousel
		$(".slideshow").jCarouselLite({
			btnNext: ".slideshow-next",
			btnPrev: ".slideshow-prev",
			visible: 1,
			auto: 5000,
			speed: 500
		});
	}
	
	//	Photo Carousel
	if( $('#pictures-slideshow').length > 0 ) {
		if( $('li', '#pictures-slideshow').length > 1 ) {
			//	Carousel
			/*$("#pictures-slideshow").jCarouselLite({
				btnNext: ".controls .next",
				btnPrev: ".controls .prev",
				visible: 1,
				speed: 500
			});*/
			
			function mycarousel_initCallback(carousel) {
				$('#mycarousel-next').bind('click', function() {
					carousel.next();
					return false;
				});
				$('#mycarousel-prev').bind('click', function() {
					carousel.prev();
					return false;
				});
			}

			function mycarousel_itemLoadCallback(carousel, state)
			{
				// Check if the requested items already exist
				if (carousel.has(carousel.first, carousel.last)) {
					return;
				}
				var settings = $('#carousel-settings');
				var url = $(settings).attr('dynamic_url');
				var school = $(settings).attr('school_id');
				alert(school);
				$.get(
					url,
					{
						first: carousel.first,
						last: carousel.last,
						event_id: school
					},
					function(xml) {
						mycarousel_itemAddCallback(carousel, carousel.first, carousel.last, xml);
					},
					'xml'
				);
			};
			
			function mycarousel_itemAddCallback(carousel, first, last, xml)
			{
				// Set the size of the carousel
				carousel.size(parseInt($('total', xml).text()));
			
				$('image', xml).each(function(i) {
					carousel.add(first + i, mycarousel_getItemHTML($(this).text()));
				});
			};
			
			/**
			 * Item html creation helper.
			 */
			function mycarousel_getItemHTML(url)
			{
				return '<img src="' + url + '" width="75" height="75" alt="" />';
			};


			$('#mycarousel').jcarousel({
											 	//scroll: 1,
										        //initCallback: mycarousel_initCallback,
												// itemVisibleOutCallback: {onAfterAnimation: function(carousel, item, i, state, evt) { carousel.remove(i); }},
												//itemLoadCallback: mycarousel_itemLoadCallback,

										        // This tells jCarousel NOT to autobuild prev/next buttons
										        //buttonNextHTML: null,
										        //buttonPrevHTML: null
			});
			
		} else {
			$('div.controls', '#pictures-slideshow').hide();
		}
	}
	
	
	//	Photos AJAX Carousel
	if( $('#carousel-pictures').length > 0 ) {
			function mycarousel_initCallback(carousel) {
				$('#mycarousel-next').bind('click', function() {
					carousel.next();
					return false;
				});
				$('#mycarousel-prev').bind('click', function() {
					carousel.prev();
					return false;
				});
			}
			
			function mycarousel_itemLoadCallback(carousel, state)
			{
				if (carousel.prevFirst != null) {
					// Remove the last visible items to keep the list small
					for (var i = carousel.prevFirst; i <= carousel.prevLast; i++) {
						// jCarousel takes care not to remove visible items
						carousel.remove(i);
					}
				}

				var per_page = carousel.last - carousel.first + 1;
				var currPage = 0;
				var f,l;
				var cr = carousel;
			
				for (var i = carousel.first; i <= carousel.last; i++) {
					var page = Math.ceil(i / per_page);
			
					if (currPage != page) {
						currPage = page;
			
						f = ((page - 1) * per_page) + 1;
						l = f + per_page - 1;
			
						f = f < carousel.first ? carousel.first : f;
						l = l > carousel.last ? carousel.last : l;
			
						if (carousel.has(f, l)) {
							continue;
						}
			
						mycarousel_makeRequest(carousel, f, l, per_page, page);
					}
				}
			};

			function mycarousel_makeRequest(carousel, first, last, per_page, page)
			{
				// Lock carousel until request has been made
				carousel.lock();
				$('#mycarousel-prev').spin();
				
				$('div.controls', '#pictures-slideshow').show();
			
				$.get(
					$('#carousel-settings').attr('dynamic_url'),
					{
						'per_page': per_page,
						'page': page
					},
					function(data) {
						mycarousel_itemAddCallback(carousel, first, last, data, page);
					},
					'xml'
				);
			};

			function mycarousel_itemAddCallback(carousel, first, last, data, page)
			{
				// Unlock
				carousel.unlock();
				$('#mycarousel-prev').parent().find('.spinner').remove();
			
				// Set size
				carousel.size($('photos', data).attr('total'));

				var photos = $('photo', data);
				var per_page = carousel.last - carousel.first + 1;
				
				if(photos.length > 0 ) {
					for (var i = first; i <= last; i++) {
						var pos = i - 1;
						var idx = Math.round(((pos / per_page) - Math.floor(pos / per_page)) * per_page);
						var items = '';

						for( var p = idx; p < photos.length; p++) {
							items += mycarousel_getItemHTML(photos.get(p), page)	
						}
						carousel.add(i, items);
					}
				} else { carousel.scroll(1) }
			};
			
			/**
			 * Global item html creation helper.
			 */
			function mycarousel_getItemHTML(photo,page)
			{
				return '<a href="'+$(photo).attr('href')+'#set-'+page+'" title="'+$(photo).attr('title')+'" class="picture change"><img src="'+$(photo).attr('src')+'" border="0" width="'+$(photo).attr('width')+'" height="'+$(photo).attr('height')+'" alt="'+$(photo).attr('alt')+'" /></a>';
			};
			$('#carousel-pictures').jcarousel({
											 	start: window.location.hash.replace('#set-', ''),
												scroll: 1,
										        initCallback: mycarousel_initCallback,
												// itemVisibleOutCallback: {onAfterAnimation: function(carousel, item, i, state, evt) { carousel.remove(i); }},
												itemLoadCallback: mycarousel_itemLoadCallback,

										        // This tells jCarousel NOT to autobuild prev/next buttons
										        buttonNextHTML: null,
										        buttonPrevHTML: null});
	}
	
	//	Selector
	if( $('#selector,#selector2').length > 0 ) {
		$('#select,#select2').msDropDown({showIcon:false});
	}
	
	$(":text,:password").labelify({ labelledClass: "labelHighlight" });
	
	if( $('.pictures-list').length > 0 ) {
		var list = $('.pictures-list');
		$('a.change:not(.follow)', list).each(function(){
			$(this).bind('click', function(event){
				event.preventDefault();
				var newsrc = $(this).attr('href');
				$('img#bigSize').attr('src', newsrc);
//				alert(newsrc);
			})
		})
	}
	
	//	Age validation
	$.fn.ageValidation = function(age){
		var t = $(this);
		var day = $("#day", t).val();
		var month = $("#month", t).val();
		var year = $("#year", t).val();
		var age = age || 18;
					
		var mydate = new Date();
		mydate.setFullYear(year, month-1, day);
					
		var currdate = new Date();
		currdate.setFullYear(currdate.getFullYear() - age);
		if ((currdate - mydate) < 0){
			return false;
		}
		return true;
	}


	//	Help form
	if( $('#help').length > 0 ) {
		var help = $('#help');
		
		$('form', help).validate({
				meta: 'validate',
				errorElement: 'span', 
				submitHandler: function(form) {
					$('input[type="submit"]', help).addClass('waiting').val('asteapta ...').spin();
					$(form).ajaxSubmit({
						target: "#comment-posting-results",
						success: function(responseText, statusText){
							var res = $('#comment-posting-results');
							var message = $('#response', res);
							$('.spinner', help).css({'visibility': 'hidden'})
							if($(message).hasClass('error')) {
								$('input[type="submit"]', help).removeClass('waiting').val('trimite');
								$(message).slider('up', 'slow', 30);
							} else {
								$('input[type="submit"]', help).val('mesaj trimis');
								$('input[type="text"],textarea').not('[type=hidden]').val('');
								$(message).slider('up', 'slow', 3, function(){
									$('input[type="submit"]', help).removeClass('waiting').val('trimite');
								});
							}
						}
					});
				}
			})
		
	}
	
	//	Login form
	if( $('#login').length > 0 ) {
		var login = $('#login');

		$().ajaxStart(function() {
			$('.spinner', login).css({'visibility': 'visible'})
		}).ajaxStop(function() {
			$('.spinner', login).css({'visibility': 'hidden'})
		}).ajaxError(function(a, b, e) {
			throw e;
		});
		
		var val = $(login).validate({
					meta: "validate",
					errorClass: "warning",
					success: "removed",
					rules: {
						l_email: { required: true, email: true },
						l_password: { required: true, minlength: 3 }
					},
					messages: {
						l_email: { required: "Acest camp este obligatoriu.", email: "Adresa de email nu este in formatul corect." },
						l_password: { required: "Acest camp este obligatoriu.", minlength: "Parola are mai putin de 3 caractere." }
					},
					submitHandler: function(form) {
						$('input[type="submit"]', $('#login')).addClass('waiting').val('asteapta ...').spin();
						$(form).ajaxSubmit({
							target: "#login-results",
							success: function(responseText, statusText){
								var res = $('#login-results');
								var message = $('blockquote', res);
								$('.spinner', login).css({'visibility': 'hidden'})
								if($(message).hasClass('error')) {
									$('input[type="submit"]', $('#login')).removeClass('waiting').val('login');
									$(message).slider('up', 'slow', 3);
								} else {
									$('input[type="submit"]', $('#login')).val('autentificat');
									$(message).slider('up', 'slow', 3, function(){
										var login_message = $('.puff', message).html();
										$('.right', '#header').empty().html(login_message);
									});
								}
							}
						});
					}
				});
	}
	
	
	//	Signup form
	if( $('#signup').length > 0 ) {
		var signup = $('#signup'); 
		var targetOffset = $('.content').offset().top - 20;
		$('#getlogin').bind('click', function(){ $('html,body').animate({scrollTop: targetOffset}, 1000); return false; });
		
		var smoker_1st = $('input:first[type="radio"][name="s_smoker"]');
		var smoker_2nd = $('input:last[type="radio"][name="s_smoker"]');
		if( $(smoker_2nd).is(':checked') ) {
			$(smoker_2nd).parents().next().removeClass('puff').slideDown(500);
		}
		$(smoker_2nd).bind('click', function(){
			$(this).parents().next().removeClass('puff').slideDown(500);
		})
		$(smoker_1st).bind('click', function(){
			$(this).parents().next().slideUp(500, function() { $(this).addClass('puff') });
		})


		$('input[type="password"],input[type="text"]', signup).val('');
		$.validator.addMethod("ageValidator", function(v, e, p) { 
		    return $(signup).ageValidation(p); 
		}, $.validator.format("Ne pare rau, trebuie sa ai peste {0} ani.")); 
		
		var val = $(signup).validate({
					meta: "validate",
					errorClass: "warning",
					success: "removed",
					submitHandler: function(form) {
						$('input[type="submit"]', $('#signup')).addClass('waiting').val('asteapta ...').spin();
						$(form).ajaxSubmit({
							target: "#signup-results",
							success: function(responseText, statusText){
								var res = $('#signup-results');
								var message = $('blockquote', res);
								$('img.spinner', form).remove();
								if($(message).hasClass('error')) {
									$('input[type="submit"]', signup).removeClass('waiting').val('inregistreaza-te');
									$(message).slider('up', 'slow', 3);
								} else {
									$('input[type="submit"]', signup).val('inregistrat');
									$(signup).resetForm();
									$(message).slider('up', 'slow', 3, function(){
										window.location = '/';
									});
								}
							}
						});
					}
				 });

		if( $('input[type="checkbox"][name="s_iagree"]', signup).is(':checked') )
			$('input[type="submit"][name="submit"]', signup).removeClass('disabled').val('inregistreaza-te').removeAttr('disabled');
		else
			$('input[type="submit"][name="submit"]', signup).addClass('disabled').attr('disabled', true);


		$('input[type="checkbox"][name="s_iagree"]', signup).bind('click', function(){
			if( $('input[type="checkbox"][name="s_iagree"]', signup).is(':checked') )
				$('input[type="submit"][name="submit"]', signup).removeClass('disabled').val('inregistreaza-te').removeAttr('disabled');
			else
				$('input[type="submit"][name="submit"]', signup).addClass('disabled').val('Nu esti de acord cu termenii si conditiile!?').attr('disabled', true);
		})

	} else {

		$.validator.addMethod("captcha", function(value, element, params) {
		    return this.optional(element) || (value.match(/^[0-9]+$/, value) && eval($('#test_question').val())==value) ? true : false; 
		}, $.validator.format("Operatie incorecta matematicianule! :)")); 

		var composter = $('#comments-post');
		if( $('form', composter).length > 0){
			$('form', composter).validate({
				meta: 'validate',
				errorElement: 'span', 
				submitHandler: function(form) {
					$('input[type="submit"]', composter).addClass('waiting').val('asteapta ...').spin();
					$(form).ajaxSubmit({
						target: "#comment-posting-results",
						success: function(responseText, statusText){
							var res = $('#comment-posting-results');
							var message = $('#response', res);
							$('.spinner', composter).css({'visibility': 'hidden'})
							if($(message).hasClass('error')) {
								$('input[type="submit"]', composter).removeClass('waiting').val('trimite');
								$(message).slider('up', 'slow', 30);
							} else {
								$('input[type="submit"]', composter).val('mesaj trimis');
								$('input[type="text"],textarea').not('[type=hidden]').val('');
								if( $('#comments-list').length > 0 ) {
									if( $('#no-data').length > 0 ) { $('#no-data').hide(); }
									var comment_body = $('.puff', res).html();
									$(comment_body).prependTo('#comments-list'); 
									$('html,body').animate({scrollTop: $('#comments-list').offset().top}, 250)
								}
								$(message).slider('up', 'slow', 3, function(){
									$('input[type="submit"]', composter).removeClass('waiting').val('trimite');
								});
							}
						}
					});
				}
			})
		}
		
		// upload tbs
		if( $('.upload').length > 0 ){
			/*$('.upload').each(function(){
				var t = $(this);
				$('a.is-tab', t).bind('click', function(){
					var tabIndex = $('a.is-tab', t)
						.removeClass('active')
						.index(this);
						
					$(this).parent()
						.addClass('active')
						.blur();
						
					$('div.tab', t)
						.hide()
						.eq(tabIndex)
						.show();
					return false;
				})
			})*/
			
			//	Start tabbing
			var startTabbing = function() {
				var hash = window.location.hash.replace('#', '');
				var currentTab = $('a.is-tab')
				.bind('click', showTab)
				.filter('a[rel=' + hash + ']');
			
				if (currentTab.size() == 0) {
					currentTab = $('.upload a.is-tab:first');
				}
				showTab.apply(currentTab.get(0));
			}
			
			//	Show tab
			var showTab = function(e) {
				var tabIndex = $('.upload a.is-tab').index(this);
				$('.upload a.is-tab').parent().removeClass('active')
				
				$(this).blur();
				$(this).parent().addClass('active')
				$('div.tab')
					.hide()
					.eq(tabIndex)
					.show();
			};
			startTabbing();
		}
		
		//	get more comments
		if( $('#comments-post').length > 0  ) {
			var obj = $('#comments-post');
			var settings = $('#commentsSettings');
			var pageUrl = $(settings).attr('pageUrl');
			var totalComments = parseInt($(settings).attr('totalComments'));
			var perpageComments = parseInt($(settings).attr('perpageComments'));
			
			$('#showMore', obj).bind('click', function(e){
				var t = $(this);
				var pageComments = parseInt($(settings).attr('pageComments'));
				var nrofComments = parseInt($('#perpageComments').text());

				e.preventDefault();
				e.stopPropagation();
				$(t).hide().spin();

				if(nrofComments >=totalComments) {
					$(this).hide();
				} else {
					try {
						$.ajax({
							type: "GET",
							url: pageUrl+'?page='+(pageComments+1),
							contentType: "text/html; charset=utf-8",
							error: function (XMLHttpRequest, textStatus, errorThrown) {
								alert("Page load 'error'. Try again later");
							},
							success: function (response, textStatus) {
								$('.spinner', composter).css({'visibility': 'hidden'})
								if (textStatus == "success") {
									var response = $(response).find('#comments-list').html();
									$('#comments-list').append(response);
									$(settings).attr('pageComments', pageComments+1);
									$(t).show();
									if((perpageComments*$(settings).attr('pageComments')) <= totalComments)
										$('#perpageComments').text(perpageComments*$(settings).attr('pageComments'));
									else {
										$('#perpageComments').text(totalComments);
										$('#showMore', obj).hide();
									}
								}
							}
						})
						} catch(er) {
						alert("Page Loading Error")
					}
				}

				return false;
			})
		}
		
		$('#showLoginBox, #showLoginBox2').bind('click', function(){ 
																  
			$.browser.version = $.browser.msie && parseInt($.browser.version) >= 6 && window["XMLHttpRequest"] ? "7.0" : $.browser.version;
			if ($.browser.msie && $.browser.version == '7.0' )
				$("<div>").attr("id", "overlay").css({'opacity': 0.7, 'height': $('#site-wrapper').height()+20}).prependTo("#site-content");
			else
				$("<div>").attr("id", "overlay").css({'opacity': 0.7, 'height': $('#site-wrapper').height()+20}).prependTo("#site-wrapper");

			$('html,body').animate({scrollTop: $('#site-content').offset().top}, 250, function(){
				var loginbox = $('#login-box');
				var login = $('form', loginbox);
				$(loginbox).show(200, function(){				
					$(login).validate({
						errorClass: "warning",
						success: "removed",
						rules: {
							l_email: { required: true, email: true },
							l_password: { required: true, minlength: 3 }
						},
						messages: {
							l_email: { required: "Acest camp este obligatoriu.", email: "Adresa de email nu este in formatul corect." },
							l_password: { required: "Acest camp este obligatoriu.", minlength: "Parola are mai putin de 3 caractere." }
						},
						submitHandler: function(form) {
							$('input[type="submit"]', login).addClass('waiting').val('asteapta ...').spin();
							$(form).ajaxSubmit({
								target: "#login-results",
								success: function(responseText, statusText){
									var res = $('#login-results');
									var message = $('blockquote', res);
									$('.spinner', login).css({'visibility': 'hidden'})
									if($(message).hasClass('error')) {
										$('input[type="submit"]', login).removeClass('waiting').val('<< login');
										$(message).slider('up', 'slow', 3);
									} else {
										$('input[type="submit"]', login).val('autentificat');
										$(message).slider('up', 'slow', 3, function(){
											$(loginbox).hide(500, function(){ 
												$('#overlay').remove(); 
												if( $('#comments-post').length > 0 ) { $('form', '#comments-post').removeClass('puff'); $('div.notloggedin', '#comments-post').addClass('puff');$('html,body').animate({scrollTop: $('#comments-post').offset().top}, 250); }
												if( $('#upload').length > 0 ) { $('form', '#upload').removeClass('puff'); $('div.notloggedin', '#upload').addClass('puff');$('html,body').animate({scrollTop: $('#upload').offset().top}, 250); }
											});
											var login_message = $('.puff', message).html();
											$('.right', '#header').empty().html(login_message);
										});
									}
								}
							});
						}
					});				
	
					$('a.close', this).bind('click', function(){ 
						$('#overlay').remove();  
						if( $('#comments-post').length > 0 ) { $('html,body').animate({scrollTop: $('#comments-post').offset().top}, 250); }
						$(loginbox).hide(500);
						return false;
					})
				});
				return false; 
			}) 
		});
	}

});