// website core javascript
var stella = (function ($) {
	var isInit = true,
	ajaxPath = baseSiteUrl + 'index.php?/ajax/',
	siteRoot = baseSiteUrl + 'index.php?',
	responseElm = null,
	ajaxReqSpecial = ['users/register/', 'users/login/', 'users/forgot_password/'],
	noHtml5LinkChange = ['mon-profil/modify/'],
	ajaxSearch = 'search/',
	isUsersClick = false,
	isCufon = true;
	
	// main object
	var stella = {
		// some Inits!
		init: function() {
			// load elements on document ready
			stella.onReady();
			
			// menut website init!
			stella.menuSite();
	
			// load triggers
			stella.requestSection.triggers(); // request section
			stella.users.triggers(); // users
			
			// search
			stella.search.init();
	
			// check valid age
			if($.cookie("varsta_utilizator") != 'major'){
			
				var lbxOverlay = '#overlay',
				bodyHeight = $(document).height();
				$cssObj = {
					'height'  : (bodyHeight + 'px'),
					'opacity' : '0',
					'display' : 'block'
				};
				
				$(lbxOverlay).css($cssObj);
				$(lbxOverlay).animate({
					opacity: 0.9
				}, 300, function() {
				});

				$(lbxOverlay).click(function() {
					// hide overlay block
					//jQuery('#overlay').fadeOut(350);
				});

				// default show block
				jQuery('#overlay').fadeIn(100);
				
				// trigger
				jQuery('#years-agreement-form').submit(function(){return stella.requestSection.checkAge()});
				
				
				// go to next tabindex on age validation
				jQuery('#years-agreement-d').keyup(function(e){
					if(e.keyCode != 8 && (jQuery(this).val().length >= 2)){
						jQuery('#years-agreement-m').click().focus();
					}
				}); 

				jQuery('#years-agreement-m').keyup(function(e){
					if(e.keyCode != 8 && (jQuery(this).val().length >= 2)){
						jQuery('#years-agreement-y').click().focus();
					}
				});
			}
			
			stella.extraEffects();
			
			stella.facebookLbx.triggers();
		},
		
		menuSite: function() {
			// user refferer
			// #!users/register/1
			var curr_loc  = window.location + "",
			__ref     = curr_loc.split('/'),
			size      = __ref.length,
			ref       = __ref[size - 1];

			var baseLink = siteRoot + '/', hash = location.hash, hashClean = hash.replace("#!", "").replace(ref, '');
			
			$("#menu-content ul#main-menu > li > a").click(function() {
				$this = $(this);
				var linkHref = $this.attr('href'), baseLink2 = baseLink + linkHref, linkHrefClean = linkHref.replace("#!", "");
				if ($this.hasClass('on')) {
					//console.log( hashClean, linkHrefClean  );
					//if (hashClean!=linkHref.replace("#!", "")) window.location.replace(baseLink2);
					//window.location.reload();
				}
				$(this).addClass('on');
			});
		},

		extraEffects: function() {
			var $homeGrad = $('.home-gradient-box');
			$homeGrad.find('span.hover').remove();
			$homeGrad.append('<span class="hover"></span>').each(function () {
				var $span = $('> span.hover', this).css({
				'opacity': '0',
				'z-index': '1'
				});
				$(this).hover(function () {
					$span.stop().fadeTo(500, 1);
				}, function () {
					$span.stop().fadeTo(500, 0);
				});
			});
		},
		
		onReady: function() {
			$responseElm = $("div#ajaxResponse");
		},
		
		// gallery slider 
		gallerySlider: {
			init: function(){
				var utils = {};
				utils.stepSize	= 226,
				utils.speed		= 500,
				utils.numbers 	= jQuery("#navNumbers"),
				utils.numHtml 	= '',
				utils.container = jQuery("#gallery-slider"),
				utils.items 	= utils.container.find('li'),
				utils.numItems	= utils.items.size();
				
				// show up fancybox lightbox
				utils.items.find('a.gallery-lightbox').fancybox({
					'transitionIn'	:	'elastic',
					'transitionOut'	:	'elastic',
					'speedIn'		:	600, 
					'speedOut'		:	200, 
					'overlayShow'	:	false
				});

				// validate number items
				if (utils.container.length == 0) return false;
				if (utils.items <= 0) return false;
				if (utils.items.size() <= 1) return false;

				// set ul width
				utils.container.find('ul').css('width', parseInt(utils.stepSize * utils.numItems)  + 'px');

				// generate nav buttons
				jQuery.each(utils.items, function(key, value){
					utils.numHtml += '<li><a href="#" rel="' + (key) + '">' + (key + 1) + '</a>.</li>';
				});
				
				// add html to numbers container
				utils.numbers.append(utils.numHtml);

				// make on first element
				utils.numbers.find('li').eq(0).find('a').addClass('on');
				
				// remove . from last element
				utils.numbers.find('li:last').html(utils.numbers.find('li:last').html().replace('.', ''));
				
				// trigger click on number
				utils.numbers.find('li').not('.on').click(function(){

					// remove current on class
					utils.numbers.find('.on').removeClass('on');

					// move to
					stella.gallerySlider.moveTo(jQuery(this).find('a').attr('rel'), utils);

					// no follow link
					return false; 
				});

			},
			
			moveTo: function(eq, utils){
				utils.container.animate({
					scrollLeft: parseInt(utils.stepSize * eq) + "px"
				}, utils.speed, function(){
					
					// set current selected items in nav menu
					utils.numbers.find('li').eq(eq).find('a').addClass('on');
				});
			}
		},
		
		// requestSection Module
		requestSection: {
			triggers: function() {
				$(window).hashchange( function(){
					stella.requestSection.request(location.hash);
				});
				
				// Since the event is only triggered when the hash changes, we need to trigger
				// the event now, to handle the hash the page may have loaded with.
				$(window).hashchange();
			},
			
			html5LinkChange: function(hashClean) {
				if ( typeof $.browser.msie !== 'undefined' && $.browser.msie == true && $.browser.version < 7 ){
					return false;
				}
				
				if ($.browser.mozilla && (parseFloat($.browser.version) <= 4)) {
					return false;
				}
				if (typeof(window.history.pushState) == 'function') {	
					window.history.pushState("", "", baseSiteUrl + hashClean);
				}
				
				return true;
			},

			request: function(hash) {
				if(hash.length < 3) return false;

				// user refferer
				// #!users/register/1
				var curr_loc  = window.location + "",
				__ref     = curr_loc.split('/'),
				size      = __ref.length,
				ref       = __ref[size - 1];
				
				// add more non ajax method
				ajaxReqSpecial.push('users/register/' + ref);
			
				// non ajax methods
				var hashClean = hash.replace("#!", "").replace(ref, '');
				
				// search
				if (hashClean==ajaxSearch) return false;
				// users actions
				if ($.inArray(hashClean, ajaxReqSpecial) >= 0) {
					if (isUsersClick===true) {
						return false;
					}
					stella.users.act.reqForm( hashClean.replace(/users\//im, '').replace("/", ""), { reff: ref } ); // display lightbox
					return false;
				}

				// start loading box
				stella.requestSection.loading('start');
				
				// Prepare complete link
				var full_url = siteRoot + hashClean;

				// NO html5 link change
				if ($.inArray(hashClean, noHtml5LinkChange) >= 0) {
				}
				// Allow html5 link change
				else {
					// change link
					stella.requestSection.html5LinkChange(hashClean);
				}
				
				// make ajax request
				$.ajax({
                    type		: "GET",
                    url			: full_url,
                    dataType	: "html",
                    success		: function(dataResponse) {
						
						$responseElm.html(dataResponse);
						
						// homepage gradient effect
						if (hashClean=='homepage/') {
							stella.extraEffects();
						}
						if (hashClean=='mon-profil/modify/') {
							stella.users.profile_edit.triggers();
						}
                    }
                });
			},

			checkAge: function(){

				/* the minumum age you want to allow in */
				var isValid = true;
				var min_age = 19, min_major_age = 18;
				var today = new Date;

				/* change "age_form" to whatever your form has for a name="..." */
				var year = jQuery('#years-agreement-y').val() != 'AAAA' ? parseInt(jQuery('#years-agreement-y').val()) : today.getFullYear();
				var month = jQuery('#years-agreement-m').val() != 'LL' ? parseInt(jQuery('#years-agreement-m').val()) : today.getMonth();
				var day = jQuery('#years-agreement-d').val() != 'ZZ' ? parseInt(jQuery('#years-agreement-d').val()) : 1;
if (itIsMeDebug) {
	//console.log( year, month, day  ); return false;
}
				// validation
				month = parseInt(month);
				if (month<0 || month>12) {
					isValid = false;
				}

				day = parseInt(day);
				if (day<1 || day>31) {
					isValid = false;
				}
				
				year = '' + year + '';
				if (year.length!=2 && year.length!=4) {
					isValid = false;
				}
				if (year.length==4) {
					year = parseInt(year);
					if (year<1940 || year>2000) {
						isValid = false;
					}
				}

				var theirDate = new Date((year + min_age), month, day);
				var clientDate = new Date(year, month, day);
				
				var lastBirthday = stella.requestSection.ageLastBirthday( clientDate );
				//console.log( lastBirthday, isValid  ); return false;

				if ( isValid===false
				//|| (today.getTime() - theirDate.getTime()) < 0 ) {
				|| (lastBirthday < min_major_age || lastBirthday>90) ) {
					var $ageWrap = $('#years-agreement-form').find('ol');
					$ageWrap.find('#ageMsg').remove();
					$ageWrap.append($('<li />').attr('id', 'ageMsg')
						.css({'color': 'red'})
						.text('Trebuie sa ai peste 18 ani pentru a gusta din rafinamentul experientelor Le Club.')
					)
					//alert("Trebuie sa ai peste 18 ani pentru a gusta din rafinamentul experientelor Le Club.");
					return false;
				}
				else {
					// hide overlay block
					jQuery('#overlay').fadeOut(350);
					jQuery('#years-agreement').fadeOut(350);

					// set cookie expire 1 day
					//$.cookie("varsta_utilizator", "major", { expires: 1 });

					// set cookie expire 1 day
					var cookie_domain = baseSiteUrl.replace(/http:\/\//gi, '').replace(/www|develop/gi, '').replace(/\/(.*)/gi, '');
					$.cookie("varsta_utilizator", "major", {
						expires: 1
						,path: '/'
						,domain: cookie_domain
					});
					$.cookie("varsta_utilizator_info", ("" + clientDate.getFullYear() + "-" + month + "-" + day + ""), {
						expires: 1
						,path: '/'
						,domain: cookie_domain
					});

					return true;
				}
			},
			ageLastBirthday: function(birthday) {
				var today = new Date();
				var dob = birthday;
				
				var cy = today.getFullYear();
				var by = dob.getFullYear();
				var db = new Date(dob);
				db.setFullYear(cy);
				var adj = (today-db<0) ? 1 : 0;
				return cy - by - adj;
			},
			
			loading: function(action) {
				if(action == 'start') {
					// remove last loading box
					$("div.ajaxLoading").remove();
					
					// create loading box element
					var ajaxLoadBox = $('<div class="ajaxLoading" />');
					ajaxLoadBox.css({
						'height'		: $responseElm.outerHeight(),
						'width'			: $responseElm.outerWidth() + 40,
						'background'	: '#fff',
						'position'		: 'absolute',
						'z-index'		: 100,
						'left'			: '-20px',
						'top'			: '2px',
						'opacity'		: 0.9
					});
					
					// write preloader html
					ajaxLoadBox.append('<img src="' + baseSiteUrl + 'images/loading.gif" alt="loading" id="loading" />');
					
					// append loading box on maincontent
					$responseElm.append(ajaxLoadBox);
					
					// show loading box
					ajaxLoadBox.animate({'opacity': 1}, 350);
					
				}else{
					// close loading block
					$("div.ajaxLoading").fadeOut(250);
				}
			}
		},
		
		// lightbox Module
		lightbox: {
			display: function(pms) {
				var lbxOverlay = '#lightbox-overlay',
				container = pms.container,
				containerProp = $.extend({
					'position': 'absolute',
					'top': '50%',
					'left': '50%',
					'z-index': '1002',
					'overflow': 'visible'
				}, pms.containerProp),
				containerMsg = pms.containerMsg,
				bodyHeight = $(document).height(),
				$cssObj = {
					'height'  : (bodyHeight + 'px'),
					'opacity' : '0',
					'display' : 'block'
				};

				$(lbxOverlay).css($cssObj);
				$(lbxOverlay).animate({
					opacity: 0.9
				}, 300, function() {
					$(container).css(containerProp);
					$(container).fadeIn(100);
				});

				$(lbxOverlay).click(function() {
					stella.lightbox.close(pms);
				});
			},

			close: function(pms, callback) {
				var lbxOverlay = '#lightbox-overlay',
				container = pms.container,
				containerProp = {},
				containerMsg = pms.containerMsg;

				// container
				$(container + ', ' + containerMsg).fadeOut(100);
				// overlay
				$(lbxOverlay).fadeOut(100, function() {
					//callback function
					if ($.isFunction(callback)) {
						callback();
					}
				});
			}
		},
		
		// users Module
		users: {
			// users pages
			upg: {
				register: {
					isLbxOpen	: false
				},
				forgot_password: {
					isLbxOpen	: false
				},
				login: {
					isLbxOpen	: false
				}
			},

			// users settings
			ucfg: {
				// register
				register: {
					ajaxAct		: 'users/register/',
					cw			: '#creeare-profil-frame',
					cwgo		: '#head-btn-users-register',
					cwprop		: {
						'width' 		: '704px',
						'margin-left'	: '-352px',
						'height'		: '556px',
						'margin-top'	: '-278px'
					},
					cwmsg		: '#creeare-profil-frame .error-box',
					cwmsgclose	: '#creeare-profil-frame .error-box .inchide',
					frm 		: '#register_member_form',
					frmgo		: '#form-btn-users-register',
					frmclose	: '#form-close-users-register'
				},
				// forgot password
				forgot_password: {
					ajaxAct		: 'users/forgot_password/',
					cw			: '#forgotpassword-frame',
					cwgo		: '#head-btn-users-forgotpassword',
					cwprop		: {
						'width' 		: '704px',
						'margin-left'	: '-352px',
						'height'		: '285px',
						'margin-top'	: '-142px'
					},
					cwmsg		: '#forgotpassword-frame .error-box',
					cwmsgclose	: '#forgotpassword-frame .error-box .inchide',
					frm 		: '#forgot_password_form',
					frmgo		: '#form-btn-users-forgotpassword',
					frmclose	: '#form-close-users-forgotpassword'
				},
				// logout
				login: {
					ajaxAct		: 'users/login/',
					cw			: '#login-frame',
					cwgo		: '#head-btn-users-login, .menu-login',
					cwprop		: {
						'width' 		: '704px',
						'margin-left'	: '-352px',
						'height'		: '285px',
						'margin-top'	: '-142px'
					},
					cwmsg		: '#login-frame .error-box',
					cwmsgclose	: '#login-frame .error-box .inchide',
					frm 		: '#member_login_form',
					frmgo		: '#form-btn-users-login',
					frmclose	: '#form-close-users-login',

					// extra
					forgotpassLink 	: '#form-btn-users-login-fp',
					registerLink 	: '#form-btn-users-login-rg',
					frmHead			: '#head_login_form',
					ajaxActRedirect	: 'mon-profil/userHeader/'
				}
				// logout is made in it's own module!
			},
			
			// triggers
			triggers: function() {
				stella.users.act.triggers('register');
				stella.users.act.triggers('forgot_password');
				stella.users.act.triggers('login');
				stella.users.logout.triggers();
			},
			
			// messages box
			msgBox: {
				display: function($wrapper) {
					$wrapper.fadeIn(200);
				},
				close: function($wrapper) {
					$wrapper.fadeOut(200);
				}
			},
			
			// reinit cufon & custom elements
			reinitCufon: function() {
				//cufon
				//if (isCufon) {
					Cufon.replace('#main-menu li a, .submit-text', { fontFamily: 'Trajan Pro', hover : true });
					Cufon.replace('.renunta, .creeaza, .inchide', { fontFamily: 'Trajan Pro', hover : true });
				//}
			},
			
			reinitCustomFields: function() {
				// reinit custom select/dropdown
				$("SELECT").selectBox();
				
				// reinit custom checkbox/radio buttons
				$(".radio").dgStyle();
				$(".checkbox").dgStyle();
			},

			// register
			act: {
				lbx: function(action) {
					var ucfg = stella.users.ucfg, upg = stella.users.upg;
					var _prop = {
						container		: ucfg[action].cw,
						containerProp	: ucfg[action].cwprop,
						containerMsg	: ucfg[action].cwmsg
					}
					stella.lightbox.display(_prop);
					isUsersClick = false;
				},
				
				lbxClose: function(action, callback) {
					var ucfg = stella.users.ucfg, upg = stella.users.upg;
					var _prop = {
						container		: ucfg[action].cw,
						containerProp	: ucfg[action].cwprop,
						containerMsg	: ucfg[action].cwmsg
					}
					stella.lightbox.close(_prop, callback);
				},

				// triggers
				triggers: function(action) {
					var ucfg = stella.users.ucfg, upg = stella.users.upg;

					// display lightbox
					$(ucfg[action].cwgo).click(function () {
						stella.users.act.reqForm(action);
						isUsersClick = true;
					});
				},
				
				// EE2 request form
				reqForm: function(action, pms) {
					var ucfg = stella.users.ucfg, upg = stella.users.upg;
					var full_url = siteRoot + '/' + ucfg[action].ajaxAct;

					if (upg[action].isLbxOpen===true) {
						stella.users.act.lbx(action); // display lightbox
					} else {
						// make ajax request
						$.ajax({
							type		: "GET",
							url			: full_url,
							dataType	: "html",
							success		: function(dataResponse) {
								// register form reffer
								var tmp_html = dataResponse;
								if (typeof pms!='undefined' && undefined!=pms && null!==pms
								&& typeof pms.reff!='undefined' && undefined!=pms.reff && null!==pms.reff) {
									tmp_html = dataResponse.replace("[[ref_id]]", pms.reff);
								}
								$(ucfg[action].cw).html(tmp_html); // write response to html
								stella.users.reinitCufon(); // reinit cufon
								stella.users.reinitCustomFields(); // reinit custom fields
								stella.users.act.lbx(action); // display lightbox

								// close lightbox
								$(ucfg[action].frmclose).click(function() {
									stella.users.act.lbxClose(action);
									return false;
								});

								// submit form
								$(ucfg[action].frmgo).click(function () {
									// loading ajax!
									$(ucfg[action].frmgo).hide(10, function() {
										$('<span class="loading">Încarcă...</span>').insertAfter( $(ucfg[action].frmgo) );
									});
									
									$(ucfg[action].frm).submit();
								});
								// submit form -> make request
								$(ucfg[action].frm).submit(function () {
									return stella.users.act.reqResults($(this), action);
								});

								// box msg
								$(ucfg[action].cwmsgclose).click(function () {
									stella.users.msgBox.close( $(this).parent().parent() );
									return false;
								});

								upg[action].isLbxOpen = true;

								// login box: forgot password link
								if (action=='login') {
									stella.users.act.login_fp(action);
									stella.users.act.login_rg(action);
								}
							}
						});
					}
				},
				
				reqResults: function($frm, action) {
					var ucfg = stella.users.ucfg, upg = stella.users.upg;
					var full_url = siteRoot;

					if (action=='register') {
						var radioLen = $('.c-686868 > div.radio').find('input:radio').filter(':checked').length;
						if (radioLen<=0) {
							$('.c-686868 > div.radio').find('input:radio:last').attr('checked', true);
						}
					}

					// console.log( $frm.formSerialize()  ); return false;
					// make ajax request
					var ajaxReq = $.ajax({
	                    type		: "POST",
	                    url			: full_url,
	                    dataType	: "html",
	                    data		: $frm.formSerialize(),
						success		: function (data) {
	                	// box msg
	                	var $errBox = $(ucfg[action].cwmsg),
	                	$errBoxRep = $errBox.find('.error-box-repeat'),
                   		$imgTitle = $errBoxRep.find('img:first-child');

	                	// error/success msg list
	                    var $msgEl = $(data).filter(function() { 
	                    	return $(this).is('div') }
	                    ), $msgEl_li = $msgEl.find('ul li'), $msgEl_h1 = $msgEl.find('h1');
	                    // Error
	                    if ($msgEl_li.length>0) {
                    		$imgTitle.attr('src', ($imgTitle.attr('src').replace('succes.png', 'eroare.png'))); // title image
	                    	$errBoxRep.find('ul').html($msgEl_li); // text info message
	                    	
	                    	stella.users.msgBox.display( $errBox ); // display box msg
	                    	
	                    	// loading ajax!
	                    	$(ucfg[action].frmgo).next('.loading').hide(10);
	                    	$(ucfg[action].frmgo).show(10, function() {
	                    	});
	                    }
	                    // Success
	                    else {
	                    	if ($msgEl_h1.length>0) {
	                    	//if ($msgEl_h1.length>0 && $msgEl_h1.text()=='Thank You!') {
	                    		$imgTitle.attr('src', ($imgTitle.attr('src').replace('eroare.png', 'succes.png'))); // title image

	                    		var textSuccess = $msgEl.find('p').text();
	                    		if (action=='login')
	                    			textSuccess = 'Logarea dumneavoastra s-a realizat cu success!';
	                    		else if (action=='register')
	                    			textSuccess = 'Cererea dumneavoastra de inregistare a fost trimisa! Va rugam verificati-va emailul pentru a folosi codul de activare.';
	                    		else if (action=='forgot_password')
	                    			textSuccess = 'Tocmai ti-am trimis un e-mail cu informatii suplimentare despre resetarea parolei';

	                    		$errBoxRep.find('ul').replaceWith('<ul><li>' + (textSuccess) + '</li></ul>'); // text info message

	                    		stella.users.resetForm($frm, {
		                    		birthday: {Y: '--', m: '--', d: '--'},
		                    		accept_news: 'n'
	                    		}); // reset register form

	                    		if (action=='login') {
	                    			stella.users.act.redirect(action, 0, function() {
										var full_url2 = siteRoot + '/' + ucfg[action].ajaxActRedirect;
										// make ajax request
										$.ajax({
											type		: "GET",
											url			: full_url2,
											dataType	: "html",
											success		: function(dataResponse2) {
												var $headc = $('#header-content');
												$headc.find('#register-form').remove().find('#welcome-zone').remove(); // remove old html
												$(dataResponse2).insertAfter('#header-content .logo'); // write response to html
												
												stella.users.act.lbxClose(action);
											}
										});
	                    			}); // redirect after login!
	                    		//} else if (action=='register' || action=='forgot_password') {
	                    		} else {
									stella.users.msgBox.display( $errBox ); // display box msg

									stella.users.act.redirect(action, 1200, function() {
										stella.users.act.lbxClose(action);
									});
	                    		}
	                    	}
	                    }

	                    console.log( 'user OK! action: ' + action  );
	                    return false;
		                },
		                error: function (data) {
		                	console.log( '!ERROR/ajax request! action: ' + action  );
		                	return false;
		                }
					});
	
			        // !!! Important !!! 
			        // always return false to prevent standard browser submit and page navigation 
			        return false; 
				},

				// redirect link
				redirect: function(action, timeout, callback) {
					var baseLink = siteRoot + '/', redirectLink = baseLink;
					if (action=='login') {
						redirectLink += '#!mon-profil/';
					}

					if (timeout>0) {
						setTimeout(function () {
							//callback function
							if ($.isFunction(callback)) {
								callback();
							}
							window.location.replace(redirectLink);
						}, timeout);
					} else {
						//callback function
						if ($.isFunction(callback)) {
							callback();
						}
						window.location.replace(redirectLink);
					}
				},
				
				// login box: forgot pass link
				login_fp: function(action) {
					var ucfg = stella.users.ucfg, upg = stella.users.upg;

					// am uitat parola Link!
					$(ucfg[action].forgotpassLink).click(function () {
						stella.users.act.lbxClose( 'login', function() {
							stella.users.act.reqForm('forgot_password'); // display forgot password content box
						}); // close login content box
						return false;
					});
				},
				
				// login box: register link
				login_rg: function(action) {
					var ucfg = stella.users.ucfg, upg = stella.users.upg;

					// am uitat parola Link!
					$(ucfg[action].registerLink).click(function () {
						stella.users.act.lbxClose( 'login', function() {
							stella.users.act.reqForm('register'); // display register content box
						}); // close login content box
						return false;
					});
				},

				// login from site header
				login_head: function(action) {
				}
			},
			
			// logout
			logout: {
				triggers: function() {
					// display lightbox
					$('#head-btn-users-logout').click(function (e) {
						e.preventDefault();

						// Prepare complete link
						var full_url = $(this).attr('href');

						return stella.users.logout.request(full_url);
					});
				},
				
				request: function(full_url) {
					// make ajax request
					var ajaxReq = $.ajax({
	                    type		: "GET",
	                    url			: full_url,
	                    dataType	: "html",
						success		: function (data) {
	                	// error/success msg list
	                    var $msgEl = $(data).filter(function() { 
	                    	return $(this).is('div') }
	                    );
	                    // Success
	                    if ($msgEl.length>0) {
	                    	console.log( 'user logout OK! action: ' + 'logout'  );
							stella.users.logout.redirect(); // redirect after logout!
	                    } else {
	                    	console.log( 'user logout PROBLEM! action: ' + 'logout'  );
	                    }
	                    return false;
	                	},
	                	error: function (data) {
	                	console.log( '!ERROR/ajax request! action: ' + 'logout'  );
	                	return false;
	                	}
					});
	
			        // !!! Important !!! 
			        // always return false to prevent standard browser submit and page navigation 
			        return false; 
				},
				
				redirect: function() {
					window.location = siteRoot + '/';
				}
			},
			
			// reset a form
			resetForm: function($frm, pms) {
				$frm.clearForm().resetForm(); // reset register form

				if (typeof pms!='undefined' && undefined!=pms && null!==pms) {
					// birthday
					if (typeof pms.birthday!='undefined' && undefined!=pms.birthday && null!==pms.birthday)
					stella.users.birthdayReset(
						pms.birthday.Y, pms.birthday.m, pms.birthday.d
					);
					// accept news
					if (typeof pms.accept_news!='undefined' && undefined!=pms.accept_news && null!==pms.accept_news)
					stella.users.acceptNewsReset(
						pms.accept_news
					);
				}
				return true;
			},
			
			// birthday
			birthday: function() {
				var $birthdayFull = $('#birthdayFull').find('input'),
				birthdaySplit = $birthdayFull.val().split('.');

				// day
				if (birthdaySplit[0]!='') {
					$('#birthday_day').val(birthdaySplit[0]);
					$('#birthday_day').next('a').find('span:first').text( birthdaySplit[0]=='--' ? 'Ziua' : birthdaySplit[0] );
				}
				// month
				if (birthdaySplit[1]!='') {
					$('#birthday_month').val(birthdaySplit[1]);
					$('#birthday_month').next('a').find('span:first').text( birthdaySplit[1]=='--' ? 'Luna' : $('#birthday_month option').eq(birthdaySplit[1]).text() );
				}
				// year
				if (birthdaySplit[2]!='') {
					$('#birthday_year').val(birthdaySplit[2]);
					$('#birthday_year').next('a').find('span:first').text( birthdaySplit[2]=='--' ? 'Anul' : birthdaySplit[2] );
				}
			},
			
			birthdayReset: function(Y, m, d) {
				if (Y=='') Y = '--';
				if (m=='') m = '--';
				if (d=='') d = '--';
				var birthdaySplit = [];
				birthdaySplit[0] = d, birthdaySplit[1] = m, birthdaySplit[2] = Y;

				// day
				if (birthdaySplit[0]!='') {
					$('#birthday_day').val(birthdaySplit[0]);
					$('#birthday_day').next('a').find('span:first').text( birthdaySplit[0]=='--' ? 'Ziua' : birthdaySplit[0] );
				}
				// month
				if (birthdaySplit[1]!='') {
					$('#birthday_month').val(birthdaySplit[1]);
					$('#birthday_month').next('a').find('span:first').text( birthdaySplit[1]=='--' ? 'Luna' : $('#birthday_month option').eq(birthdaySplit[1]).text() );
				} 
				// year
				if (birthdaySplit[2]!='') {
					$('#birthday_year').val(birthdaySplit[2]);
					$('#birthday_year').next('a').find('span:first').text( birthdaySplit[2]=='--' ? 'Anul' : birthdaySplit[2] );
				}
			},
			
			acceptNews: function() {
				var accept_news_hidden = $('#accept_news_hidden').find('input').val();

				$('.c-686868 > div.radio').find('input').each(function() {
					var $this = $(this);

					if ($this.val()==accept_news_hidden) {
						//$this.attr('checked', true);
						$this.parent('div.radio').css('background-position', 'left -50px');
					} else {
						//$this.attr('checked', false);
						$this.parent('div.radio').css('background-position', 'left 0pt');
					}
				});
			},
			
			acceptNewsReset: function(val) {
				var accept_news_hidden = val;

				$('.c-686868 > div.radio').find('input').each(function() {
					var $this = $(this);
					if ($this.val()==accept_news_hidden) {
						//$this.attr('checked', true);
						$this.parent('div.radio').css('background-position', 'left -50px');
					} else {
						//$this.attr('checked', false);
						$this.parent('div.radio').css('background-position', 'left 0pt');
					}
				});
			},
			
			// user profile
			profile_edit: {
				// settings
				cfg: {
					ajaxAct		: 'member/update_profile',
					cw			: '.profil-left',
					cw2			: '.profil-left .table-form',

					cwmsg		: '.profil-left .table-form #error-box-profile',
					cwmsgclose	: '.profil-left .table-form #error-box-profile .inchide',
					frm 		: '.profil-left .table-form form',
					frmgo		: '#form-btn-users-profile',
					frmclose	: '#form-close-users-profile'
				},

				// triggers
				triggers: function() {
					var ucfg = stella.users.profile_edit.cfg;

					var $frmProfileWrap = $(ucfg.cw2), $frmProfile = $(ucfg.frm).eq(0);

					// submit form
					$frmProfile.find(ucfg.frmgo).click(function () {
						$frmProfile.submit();
						return false;
					});
					// submit form -> make request
					$frmProfile.submit(function (e) {
						//e.preventDefault();
						return stella.users.profile_edit.reqResults($(this));
					});

					// box msg
					$frmProfile.find(ucfg.cwmsgclose).click(function () {
					});
				},

				reqResults: function($frm) {
					var ucfg = stella.users.profile_edit.cfg;
					var full_url = siteRoot + '/' + ucfg.ajaxAct;

					var radioLen = $('.c-686868 > div.radio').find('input:radio').filter(':checked').length;
					if (radioLen<=0) {
						$('.c-686868 > div.radio').find('input:radio:last').attr('checked', true);
					}

					$frm.find('input').not('#current_email').removeAttr("readonly");
					// console.log( $frm.formSerialize()  ); return false;
					// make ajax request
					var ajaxReq = $.ajax({
	                    type		: "POST",
	                    url			: full_url,
	                    dataType	: "html",
	                    data		: $frm.formSerialize(),
						success		: function (data) {
						var $frmProfileWrap = $(ucfg.cw2).eq(0);

	                	// box msg
	                	$frmProfileWrap.find('#error-box-profile').remove();
	                	$frmProfileWrap.append('\
<div id="error-box-profile"> \
            <div class="center-ornament"></div> \
            <div class="errors_succes"> \
                <div id="error-image" class=""> \
                </div> \
                <ul> \
                </ul> \
            </div> \
</div> \
	                	');
	                	var $errBox = $frmProfileWrap.find('#error-box-profile');

	                	// error/success msg list
	                    var $msgEl2 = $(data).filter(function() { 
	                    	return $(this).is('div') }
	                    ), $msgEl2_li = $msgEl2.find('ul li'), $msgEl2_h1 = $msgEl2.find('h1'),
	                    $msgEl = (function (html) {
 							html = html.replace(/<script[^>]*>((\r|\n|.)*?)<\/script[^>]*>/mg, '');  // Removing <script> tags, because we don't want to execute them
 							var $bodyTmp = $("<div'></div>").append(html);
	                    	return $bodyTmp.find('div.profileHeadingBG > div.tableHeading');
	                    })(data);
	                    // Error
	                    if ($msgEl2_li.length>0) {
							$errBox.find('.errors_succes > #error-image').removeClass('succes').addClass('eroare')
								.html('<img src="' + baseSiteUrl + 'images/uploads/theme/eroare.png" />');
							$errBox.find('.errors_succes').find('ul').html($msgEl2_li); // text info message
							
							var $birthdayFull = $('#birthdayFull').find('input'),
							birthdaySplit = $birthdayFull.val().split('.');

	                    	stella.users.resetForm($frm, {
	                    		birthday: {Y: birthdaySplit[2], m: birthdaySplit[1], d: birthdaySplit[0]},
	                    		accept_news: ($('#accept_news_hidden').find('input').val())
	                    	}); // reset profile edit form
	                    }
	                    // Success
	                    else {
	                    	if ($msgEl.length>0 && $msgEl.text()=='Profile Updated') {
	                    		$errBox.find('.errors_succes > #error-image').removeClass('eroare').addClass('succes')
									.html('<img src="' + baseSiteUrl + 'images/uploads/theme/succes2.png" />');
								$errBox.find('.errors_succes > ul').html('<li>Profilul a fost updatat cu success!</li>'); // text info message
	                    	}
	                    	// loading ajax!
	                    	$(ucfg.frmgo).hide(10, function() {
	                    		$('<span class="loading">Încarcă pagina...</span>').insertAfter( $(ucfg.frmgo) );
	                    	});
                    	}
						$errBox.css('display', 'block'); // display box msg

	                    $frm.find('.readonly').not('#current_email').attr('readonly', false);

	                    console.log( 'user OK! action: ' + 'profile_edit'  );
						// Error
	                    if ($msgEl2_li.length>0) {
	                    }
	                    // Success
	                    else {
						   	stella.users.profile_edit.refresh(600);
						}
	                    return false;
	                	},
	                	error: function (data) {
	                	console.log( '!ERROR/ajax request! action: ' + 'profile_edit'  );
	                	return false;
	                	}
					});
	
			        // !!! Important !!! 
			        // always return false to prevent standard browser submit and page navigation 
			        return false; 
				},

				// redirect link
				refresh: function(timeout, callback) {
					if (timeout>0) {
						setTimeout(function () {
							//callback function
							if ($.isFunction(callback)) {
								callback();
							}
							window.location.reload();
						}, timeout);
					} else {
						//callback function
						if ($.isFunction(callback)) {
							callback();
						}
						window.location.reload();
					}
				}
			}
		},
		
		concursLbx: {
			// settings
			cfg: {
					cw			: '#felicitari-frame',
					cwprop		: {
						'width' 		: '704px',
						'margin-left'	: '-352px',
						'height'		: '315px',
						'margin-top'	: '-157px'
					},
					cwmsg		: '#felicitari-frame .error-box',
					frmclose	: '#form-close-felicitari'
			},

			lbx: function() {
				var ucfg = stella.concursLbx.cfg;
				var _prop = {
					container		: ucfg.cw,
					containerProp	: ucfg.cwprop,
					containerMsg	: ucfg.cwmsg
				}
				stella.lightbox.display(_prop);
				jQuery("#lightbox-overlay").css('display', 'none');
			},

			lbxClose: function(callback) {
				var ucfg = stella.concursLbx.cfg;
				var _prop = {
					container		: ucfg.cw,
					containerProp	: ucfg.cwprop,
					containerMsg	: ucfg.cwmsg
				}
				stella.lightbox.close(_prop, callback);
			},
			
			triggers: function() {
				var ucfg = stella.concursLbx.cfg;

				// close lightbox
				$(ucfg.frmclose).click(function() {
					stella.concursLbx.lbxClose();
					return false;
				});
			}
		},

		search: {
			init: function() {
				stella.search.triggers();
			},
			
			triggers: function() {
				// search form
				$('#menu-content #btn-search').click(function(e) {
					//e.preventDefault();
					$("#search_form").submit();
					//return false;
				});
				$("#search_form").submit(function() {
					stella.search.request($(this));
					return false;
				});
			},
			
			request: function($frm) {
				// make ajax request
				$.ajax({
                    type		: "POST",
                    url			: siteRoot,
					data		: $frm.formSerialize(),
                    dataType	: "html",
                    success		: function(dataResponse) {
						$responseElm.html(dataResponse);
						$frm.find('#keywords').val('');
						return true;
                    }
                });
			}
		},
		
		facebookLbx: {
			// settings
			cfg: {
					cw			: '#facebook-frame',
					cwprop		: {
						'width' 		: '704px',
						'margin-left'	: '-352px',
						'height'		: '315px',
						'margin-top'	: '-157px'
					},
					cwmsg		: '#facebook-frame .error-box',
					frmclose	: '#form-close-facebook'
			},

			lbx: function() {
				var ucfg = stella.facebookLbx.cfg;
				var _prop = {
					container		: ucfg.cw,
					containerProp	: ucfg.cwprop,
					containerMsg	: ucfg.cwmsg
				}
				stella.lightbox.display(_prop);
				//jQuery("#lightbox-overlay").css('display', 'none');
			},

			lbxClose: function(callback) {
				var ucfg = stella.facebookLbx.cfg;
				var _prop = {
					container		: ucfg.cw,
					containerProp	: ucfg.cwprop,
					containerMsg	: ucfg.cwmsg
				}
				stella.lightbox.close(_prop, callback);
			},
			
			triggers: function() {
				var ucfg = stella.facebookLbx.cfg;

				// close lightbox
				$(ucfg.frmclose).click(function() {
					stella.facebookLbx.lbxClose();
					return false;
				});
			}
		}
	}
	return stella;
})(jQuery);

// menu select
var selectMenu = function(elm){
	// deselect current menu
	jQuery('#main-menu').find('.on').removeClass('on');

	// go back to default color
	jQuery('#main-menu li a').css('color', '#9e7f49');
	Cufon.replace('#main-menu li a', { fontFamily: 'Trajan Pro', hover : true });
	
	// add "on" class
	jQuery(elm).css('color', '#e31e2a');
	jQuery(elm).addClass('on').hover();

	// go back to active color
	Cufon.replace(elm, { fontFamily: 'Trajan Pro', hover : true });
};

// Is it a bad idea to leave firebug "console.log" calls in your production JavaScript code but you can do:
if(typeof console === "undefined") {
    console = { log: function() { } };
}

// DOM loaded!
jQuery(document).ready(function() {

	jQuery("#main-menu li a").click(function(){
		if(!jQuery(this).hasClass('on')) {
			jQuery(this).css('color', '#9e7f49');
			// go back to default color
			Cufon.replace('#' + jQuery(this).attr('id'), { fontFamily: 'Trajan Pro', hover : true });
		}
	});
	stella.init();
});
