jQuery.noConflict();
function log(a) {
	if (typeof(console)=='object' && typeof(console.log)=='function') {
		console.log(a);
	}
}
var user = {
	'data': {},
	'getUsername':function() {
		if(user.data.pluckid) return user.data.username;
		return '';
	},
	'getNumberOfMessages':function(){
		log('NumberOfMessages: '+user.data.NumberOfMessages);
		if(user.data.NumberOfMessages) { return user.data.NumberOfMessages;}
		return "0";
	},
	'Login':function(myuser, mypass) {
		jQuery.ajax({ 
			url:'/Auth/login',
			type:'POST',
			data: 'username='+myuser+'&password='+mypass,
			cache:false,
			dataType:'json',
			error:nh.showError,
			success:function(r,s) {
				var errors = nh.hasErrors(r, true);
				if (errors.length==0) {
					user.data = r.result;
					user.logged = true;
					user.SessionLoaded();
				} else {
					user.LoginFailed(errors);
				}
			},
			processData: false
		 });
	},
	'Logout':function() {	
		jQuery.ajax({ 
			url:'/Auth/logout',
			type:'POST',
			cache:false,
			dataType:'json',
			error:nh.showError,
			success:function(r,s) {
				user.logged = false;
				user.data = new Object();
//	        	if(thisgarage) thisgarage.data.isFriend = 'N';
				user.LogoutSuccess();
			},
			processData: false
		});
	},
	UserProfileEdit : function(params) {
		jQuery.ajax({ 
			url:'/users/edit',
			type:'POST',
			data:params,
			cache:false,
			dataType:'json',
			error:nh.showError,
			success:function(r,s) {
            var errors = nh.hasErrors(r, true);
            if (errors.length == 0) {
				user.data.flagshout = r.result.flagshout;
				user.data.flagnotify = r.result.IsEmailNotificationsEnabled;
				user.data.nei = r.result.nei;
				user.data.firstname = r.result.firstname;
				user.data.lastname = r.result.lastname;
				user.data.email = r.result.email;
				user.data.type = r.result.type;
				user.data.DateOfBirth = r.result.DateOfBirth;
				user.data.user_age = r.result.user_age;
				user.data.zipcode = r.result.zipcode;
				user.data.flagevents = r.result.flagevents;
				user.data.flagnews = r.result.flagnews;
				user.data.flagsurveys = r.result.flagsurveys;
				user.data.flagprivacy = r.result.flagprivacy;
				user.data.flag_moderator = r.result.flag_moderator;
				user.data.flag_expert = r.result.flag_expert;
				user.data.flag_dealer = r.result.flag_dealer;
				user.data.flag_shop = r.result.flag_shop;
				user.data.flag_employee = r.result.flag_employee;
				user.data.forum_post_count = r.result.forum_post_count;
				user.data.vin = r.result.vin;
                user.UserProfileEditSucceeded();
            } else {
                user.UserProfileEditFailed(errors);
            }
			}
		});
	},
	deactivate: function(code, comment) {
		jQuery.ajax({ 
			url:'/users/deactivateme',
			type:'POST',
			data: {'code':code, 'comment':comment},
			cache:false,
			dataType:'json',
			error:nh.showError,
			success:function(r,s) {
				var errors = nh.hasErrors(r, true);
				if (errors.length==0) {
					user.deactivateSucceeded();
				} else {
					user.deactivateFailed(errors);
				}
			}
		 });
	}	
};
var nh={
	'cfg':{
		'getdoors':'/users/listdoors',
		'getfeatgarage':'/users/get-most-visited',
		'getevents':'/events/get',
		'getgroups':'/groups/getall',
		'getforums':'/forum/getforumlist',
		'getsession':'/index/getsession',
		'sendfeedback':'/users/sendfeedback'
	},
	'doors':[],
	'indoorover':false,
	'inneiover':false,
	'curtab':'/images/home/tabevents.png',
	'month': ['',
		'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],
	'eventtype': {'1':'Art/Film', '2':'Auto', '3':'Contests', '4':'Music', '5':'Owners', '6':'Sports', '7':'Misc'},
	showError: function(o,s,e) {log('Ajax error: '+s);log(e);},
	getDoors:function(){
		jQuery.ajax({ 
			url:nh.cfg.getdoors,
			cache:false,
			dataType:'json',
			error:nh.showError,
			success:function(r,s) {
				if (!nh.hasErrors(r) && nh.hasResult(r)) {
					jQuery.each(r.result, function(k, v) { 
						var o = {
							'img':v.AvatarPhotoUrl,
							'name':v.DisplayName,
							//'deal':v.whatsmydeal,
							'hometown':v.hometown,
							'age':v.Age,
							'carmodel':v.car_model,
							'rating':v.artavrating
						};
						nh.doors[k] = o;
						jQuery('#di'+(k+1)).css({'position':'absolute', 'left':'0px'});
						jQuery('#di'+(k+1)).attr('src', '/images/exterior/'+o.name+'.jpg');
						jQuery('#di'+(k+1)).addClass('garageActive');
						jQuery('#di'+(k+1)).parent('a').attr('href', '/garages/'+v.DisplayName);
					});
				}
			},
			processData: false
		 });
	},
	hasErrors:function(o, returnerrors) {
		if (returnerrors) {
				errors = [];
				if (o.error && o.error.error && o.error.error.errors) {
					log('Backend sent errors:');
					log(o.error.error.errors);
					for (x=0;x<o.error.error.errors.length;x++) {
						errors.push(o.error.error.errors[x].message);
					}
				}
				return errors;
		} else {
			if (o.error && o.error.error && o.error.error.errors) {
				log('Backend sent errors:');
				log(o.error.error.errors);
				return true;
			}
			return false;
		}
	},
	hasResult:function(o) {
		if (!o.result) {
			log('Ajax error: Result was not sent');
			log(o);
			return false;
		}
		return true;
	},
	onDoorOver: function(e) {
		if (jQuery(e.target).hasClass('garageActive') && !nh.indoorover) {
			nh.indoorover = true;
			var s = e.target.id.substr(2);//2 is length for 'di'
			var myleft = jQuery('#'+e.target.id).parent('a').parent('.dci').css('left');
			myleft = myleft.replace(/px/gi, "");
			myleft = (parseInt(myleft) + 0) + 'px';
			var mytop = jQuery('#'+e.target.id).parent('a').parent('.dci').css('top');
			mytop = mytop.replace(/px/gi, "");
			mytop = (parseInt(mytop) - 91) + 'px';
			jQuery('#gde').css({left:myleft, top:mytop});
			jQuery('#gdei').attr('src', nh.doors[parseInt(s)-1].img);
			jQuery('#gdet').html('<strong>'+nh.doors[parseInt(s)-1].name.toUpperCase()+'</strong>');
			
			if(nh.doors[parseInt(s)-1].hometown) var dCity = nh.doors[parseInt(s)-1].hometown+'<br/>';				
			else var dCity = '';
			
			if(nh.doors[parseInt(s)-1].age) var dAge = nh.doors[parseInt(s)-1].age+'<br/>';				
			else var dAge = '';
			
			jQuery('#gdew').html(dCity+dAge+nh.doors[parseInt(s)-1].carmodel);
			//jQuery('#gdec').text(nh.doors[parseInt(s)-1].carmodel);
			nh.setRating(nh.doors[parseInt(s)-1].rating, 'gde');
		}
	},
	setRating: function(x, prefix) {
		var ptop1='-19px';
		var ptop2='-38px';
		
		if(prefix=='gde'){
			ptop1='-79px';
			ptop2='-98px';
		}
		
		if (x>0 && x<1) {
			jQuery('#'+prefix+'_star1').css('background-position', '-620px '+ptop1);
		} else if (x>=1) {
			jQuery('#'+prefix+'_star1').css('background-position', '-620px '+ptop2);
		}
		if (x>1 && x<2) {
			jQuery('#'+prefix+'_star2').css('background-position', '-620px '+ptop1);
		} else if (x>=2) {
			jQuery('#'+prefix+'_star2').css('background-position', '-620px '+ptop2);
		}
		if (x>2 && x<3) {
			jQuery('#'+prefix+'_star3').css('background-position', '-620px '+ptop1);
		} else if (x>=3) {
			jQuery('#'+prefix+'_star3').css('background-position', '-620px '+ptop2);
		}
		if (x>3 && x<4) {
			jQuery('#'+prefix+'_star4').css('background-position', '-620px '+ptop1);
		} else if (x>=4) {
			jQuery('#'+prefix+'_star4').css('background-position', '-620px '+ptop2);
		}
		if (x>4 && x<5) {
			jQuery('#'+prefix+'_star5').css('background-position', '-620px '+ptop1);
		} else if (x>=5) {
			jQuery('#'+prefix+'_star5').css('background-position', '-620px '+ptop2);
		}	
	},
	onDoorOut: function(e) {
		if (jQuery(e.target).hasClass('garageActive') && nh.indoorover) {
			nh.indoorover = false;
			jQuery('#gde').css({'left':'-2000px', 'top':'-2000px'});
			jQuery('#gdei').attr('src', '/images/home/blank.png');
			jQuery('#gdet').text('');
			jQuery('#gdew').text('');
			jQuery('#gdec').text('');
			jQuery('#gde_star1').css('background-position', '-620px -60px');
			jQuery('#gde_star2').css('background-position', '-620px -60px');
			jQuery('#gde_star3').css('background-position', '-620px -60px');
			jQuery('#gde_star4').css('background-position', '-620px -60px');
			jQuery('#gde_star5').css('background-position', '-620px -60px');
		}
	},
	getFeatGarage: function() {
		jQuery.ajax({ 
			url:nh.cfg.getfeatgarage,
			type:'POST',
			data: 'items=1',
			cache:false,
			dataType:'json',
			error:nh.showError,
			success:function(r,s) {
				if (!nh.hasErrors(r) && nh.hasResult(r)) {
					jQuery('#fga_photo').attr('src', '/images/exterior/'+r.result[0].UserName+'.jpg');
					jQuery('#fga_photo').parent('a').attr('href', '/garages/'+r.result[0].UserName);
					jQuery('#fga_name').text(r.result[0].UserName);
					jQuery('#fga_name').attr('href', '/garages/'+r.result[0].UserName);
					jQuery('#fga_model').text(r.result[0].CarModel);
					jQuery('#fga_year').text(r.result[0].CarYear);
					jQuery('#fga_hometown').text('Hometown: '+r.result[0].Hometown);
					jQuery('#fga_wmd').text(r.result[0].WhatsMyDeal);
					
					nh.setRating(r.result[0].Ratings.AverageRating, 'fga');
				}
			},
			processData: false
		 });			
	},
	neiOver: function(i) {
		if (i==0) {
			nh.inneiover=false;
			jQuery('#divneiimg').attr('src', '/images/home/nei0.png');
		} else if (!nh.inneiover) {
			jQuery('#divneiimg').attr('src', '/images/home/nei'+i+'.png');
			nh.inneiover=true;
		}
	},
	getForums: function() {
		nh.changeTabForums('');
		jQuery.ajax({ 
			url:nh.cfg.getforums,
			type:'POST',
			data: '',
			cache:false,
			dataType:'json',
			error:nh.showError,
			success:function(r,s) {
				if (!nh.hasErrors(r) && nh.hasResult(r)) {
					var str='';
					jQuery.each(r.result, function(k, v) {
						if (k<7) {
							if(k<6) str += '<div class="dotdown"><a href="/forum?fkey='+v.id+'"><span>'+v.name+'</span></a></div>';
							else str += '<div class="dotdown noborder"><a href="/forum?fkey='+v.id+'"><span>'+v.name+'</span></a></div>';
						}
					});
					nh.changeTabForums(str);
				}
			},
			processData: false
		 });
	},
	changeTabForums: function(s) {
	
		//log('changeTabForums:'+s);
	
		nh.curtab = '/images/home/tabforums.png';
		nh.showTab('f');
		jQuery('#divfge_list').html('');
		jQuery('#divfge_sublink').text('SEE ALL FORUMS');
		jQuery('#divfge_sublink').attr('href', '/forum/');
		jQuery('#divfge_list').html(s);
		
		
	},
	getGroups: function() {
		nh.changeTabGroups('');
		jQuery.ajax({ 
			url:nh.cfg.getgroups,
			type:'POST',
			data: 'page=1&perpage=7&sort',
			cache:false,
			dataType:'json',
			error:nh.showError,
			success:function(r,s) {
				if (!nh.hasErrors(r) && nh.hasResult(r)) {
					var str='';
					jQuery.each(r.result.Groups, function(k, v) {
						if (k<7) {
							if(k<6) str += '<div class="dotdown"><a href="/group?gkey='+v.GroupKey+'"><span>'+v.Title+'</span><b> '+v.Description.substr(0, 26)+'</b></a></div>';
							else str += '<div class="dotdown noborder"><a href="/group?gkey='+v.GroupKey+'"><span>'+v.Title+'</span><b> '+v.Description.substr(0, 26)+'</b></a></div>';
						}
					});
					nh.changeTabGroups(str);
				}
			},
			processData: false
		 });
	},
	changeTabGroups: function(s) {
		nh.curtab = '/images/home/tabgroups.png';
		nh.showTab('g');
		jQuery('#divfge_sublink').text('SEE ALL GROUPS');
		jQuery('#divfge_sublink').attr('href', '/group/');
		jQuery('#divfge_list').html(s);
	},
	getEvents: function() {
		nh.changeTabEvents('');
		jQuery.ajax({ 
			url:nh.cfg.getevents,
			type:'POST',
			data: 'category=&nperpage=10&orderfield=eventdate&page=1',
			cache:false,
			dataType:'json',
			error:nh.showError,
			success:function(r,s) {
				if (!nh.hasErrors(r) && nh.hasResult(r)) {
					var str='';
					jQuery.each(r.result.items, function(k, v) {
						if (k<7) {
							var ar=v.eventdate.split(' ');
							ar= ar[0].split('-');
							
							var eventLink = "/event/?eventId=" + v.eventId;
							
							if(k<6)str += '<div class="dotdown"><a href="'+ eventLink +'"><b>'+nh.eventtype[v.category]+': '+v.title+'</b><span> '+parseInt(ar[2])+' '+nh.month[parseInt(ar[1])]+'</span></a></div>';
							else str += '<div class="dotdown noborder"><a href="'+ eventLink +'"><b>'+nh.eventtype[v.category]+': '+v.title+'</b><span> '+parseInt(ar[2])+' '+nh.month[parseInt(ar[1])]+'</span></a></div>';
						}
					});
					nh.changeTabEvents(str);
				}
			},
			processData: false
		 });
	},
	changeTabEvents: function(s) {
		nh.curtab = '/images/home/tabevents.png';
		nh.showTab('e');
		jQuery('#divfge_sublink').text('MORE EVENTS');
		jQuery('#divfge_sublink').attr('href', '/events/');
		jQuery('#divfge_list').html(s);
	},
	showTab: function(id) {
		
		if (id=='') {
			jQuery('#divfgeimg').attr('src', nh.curtab);
		} else if (id=='e') {
			if (jQuery('#divfgeimg').attr('src')!='/images/home/tabevents.png') {
				jQuery('#divfgeimg').attr('src', '/images/home/tabevents.png');
			}
		} else if (id=='g') {
			if (jQuery('#divfgeimg').attr('src')!='/images/home/tabgroups.png') {
				jQuery('#divfgeimg').attr('src', '/images/home/tabgroups.png');
			}
		} else if (id=='f') {
			if (jQuery('#divfgeimg').attr('src')!='/images/home/tabforums.png') {
				jQuery('#divfgeimg').attr('src', '/images/home/tabforums.png');
			}
		}
	},
	loadSession: function() {
		jQuery.ajax({ 
			url:nh.cfg.getsession,
			type:'POST',
			cache:false,
			dataType:'json',
			error:nh.showError,
			success:function(r,s) {
				if (!nh.hasErrors(r) && nh.hasResult(r)) {
					if (r.result.id) {
	    				user.data = r.result;
	    				user.logged = true;
	               user.SessionLoaded();
	               if (r.result.registered == 1) {scion.RegisterActivated();}
					} else {user.SessionNotLoaded();}
				}
			},
			processData: false
		 });
	}
};
var scion = {
	sendFeedback:function(params)
	{
		jQuery.ajax({ 
			url:nh.cfg.sendfeedback,
			cache:false,
			data: params,
			dataType:'json',
			error:nh.showError,
			success:function(r,s) {
				if (!nh.hasErrors(r) && nh.hasResult(r)) {
					scion.sendFeedbackSucceeded(r.result);
				} else {
					scion.sendFeedbackFailed('Feedback failed.');
				}
			}
		 });
	},
	Register : function(params) {
		jQuery.ajax({ 
			url:'/users/add',
			cache:false,
			data: params,
			dataType:'json',
			error:nh.showError,
			success:function(r,s) {
				var errors = nh.hasErrors(r, true);
				if (errors.length==0) {
					scion.RegisterSent();
				} else {
					scion.RegisterFailed(errors);
				}
			}
		 });
	},
	forgotPassword : function(email) {
		jQuery.ajax({ 
			url:'/users/resetpassword',
			cache:false,
			data: {email: email},
			dataType:'json',
			error:nh.showError,
			success:function(r,s) {
				var errors = nh.hasErrors(r, true);
				if (errors.length==0) {
					scion.forgotPasswordSuccess();
				} else {
					scion.forgotPasswordFailed(errors);
				}
			}
		 });
	},
	sendFeedback : function(params){
		jQuery.ajax({ 
			url:'/users/sendfeedback',
			cache:false,
			data: {'fromemail': params.fromemail, 'username':params.username, 'type':params.ftype, 'message':params.message},
			dataType:'json',
			error:nh.showError,
			success:function(r,s) {
				var errors = nh.hasErrors(r, true);
				if (errors.length==0) {
					scion.sendFeedbackSucceeded();
				} else {
					scion.sendFeedbackFailed(errors);
				}
			}
		 });		
		//sendBEAjax('scion', 'sendFeedback', {'fromemail': params.fromemail, 'username':params.username, 'type':params.ftype, 'message':params.message});
	}
};

function openTerms(){
	window.open('/html/TermCond.html','tyc','scrollbars=yes,width=800,height=600');
}

function openPrivacy(){
	window.open('/html/Privacy.html','p','scrollbars=yes,width=800,height=600');
}

jQuery(document).ready(function(){
	for (x=1;x<=14;x++) {
		jQuery('#di'+x).mouseover(nh.onDoorOver);
		jQuery('#di'+x).mouseout(nh.onDoorOut);
	}
	//preloading neighborhood images
	for (x=0;x<=5;x++) {
		jQuery("<img>").attr("src", '/images/home/nei'+x+'.png');
	}
	//preloading tabs
	jQuery("<img>").attr("src", '/images/home/tabevents.png');
	jQuery("<img>").attr("src", '/images/home/tabforums.png');
	jQuery("<img>").attr("src", '/images/home/tabgroups.png');
	//jQuery("<img>").attr("src", '/img/bg-home.jpg');
	nh.loadSession();
	nh.getDoors();
	nh.getFeatGarage();
	nh.getEvents();
	
	jQuery('#fga').show();//.fadeTo(4000, 1).fadeIn(2000);
	jQuery('#divnei').show();//fadeOut(2000).fadeTo(2000, 1).fadeIn(2000);
	jQuery('#divfge').show();//fadeOut(2000).fadeTo(2000, 1).fadeIn(2000);
	
	//callFromFlash('WLCM');
	
	//jQuery('body').css({'background':'url(/img/bg-home.jpg) no-repeat center 0 black fixed'});
	//jQuery('#loadBG').hide();
	//jQuery('#gdoors').css({'visibility':'visible'});
});

