// JMMD JS

var v = 0;

$(function () {
	
	if ($.browser.msie) isie();
	
	$('#tell').bind('click', tell);
	
	$('#more').bind('click', getposts);
	
	$('#help').bind('mouseover', function () { $(this).attr('href', 'mailto:jmmd@unitinteractive.com'); });
	
    $( '#twitterbox' ).scrollFollow( {
            speed: 500,
            offset: 60,
            container: 'maininn'
    });
	
	cache();
	
	binder();
	
});

cache = function () {

	$.ajax({ url:"/wp-content/themes/jmmd/includes/form-share.php", cache:true, dataType:"html" });
	$.ajax({ url:"/wp-content/themes/jmmd/includes/prompt-login.php", cache:true, dataType:"html" });

}

isie = function () {

	$('fieldset.top input').bind('blur', function () {
		
		if($(this).val() == '') $('fieldset.top input.focus').next('label').css('display', 'block');
		
		$('fieldset.top input.focus').removeClass('focus');
	
	}).bind('focus', function () {
		
		$(this).addClass('focus').next('label').css('display', 'none');
		
	});
	
	$('div.login label').bind('click', function () {
		
		$('div.login label').removeClass('on');
		$(this).addClass('on');
		
	});
	
	$('div.login input').bind('focus', function () {
		
		$(this).addClass('on');
		
	}).bind('blur', function () {
	
		$(this).removeClass('on');
	
	});
	
}

binder = function () {

	$('fieldset.top input').bind('blur', function () {
	
		fielder(this);
		
	}).each(function () {
	
		fielder(this);
	
	});
	
	$('#what').bind('keyup', counter);
	
	artbinder();
	
}

artbinder = function () {

	$('#posts h1.posttitle a').unbind('click').bind('click', function () { expand(this, 'exp'); });
	$('#posts button.nn').unbind('click').bind('click', function () { notniceprompt(this); });

}

counter = function () {
	
	var l = $('#what').val().length;
	
	if (l <= 100) { 
		
		$('#what').parent().removeClass('error');
		$('#chars').removeClass('stop').html('characters ' + (100 - l));
		
		if (l >= 70) $('#chars').addClass('whoa');
		else $('#chars').removeClass('whoa');
	}
	else {
		
		$('#what').parent().addClass('error');
		
		$('#chars').addClass('stop');
		return false;
		
	}
}

fielder = function (t) {
	
	if($(t).val() != '') $(t).addClass('done').next('label').css('display', 'none');
	else $(t).removeClass('done').next('label').css('display', 'block');
	
}

sharebinder = function () {

	$('fieldset.bot textarea').bind('keyup', function () { 
	
		buttoner();
	
	});
	
	$('#postit').bind('click', post);

}

buttoner = function () {

	if ($('#emaillist').val() != '') $('#postit').html('Post And Send It!');
	else if ($('#explain').val() != '' && $('#emaillist').val() == '') $('#postit').html('Just Post It!');
	else $('#postit').html('No Thanks, Just Post It!');

}

logcheck = function () {
	
	var log = false;
	
	$.ajax({
		
		async: false,
	   type: "POST",
	   url: "/wp-content/plugins/ajaxhandler/ajaxhandler.php",
	   data: "func=log",
	   dataType: "json",
	   success: function(msg){
			
			log = msg;
		 
	   }
	   
	 });
	 
	 return log;
	 
}

tell = function () {
	
	$('#tell').addClass('loading').html('');
	
	if (valid('#tellform')) {
		
		if(logcheck()) {
			
			var div = $('<div/>').load('/wp-content/themes/jmmd/includes/form-share.php', function () {
				
				if($.browser.msie) $('#tellform')[0].innerHTML = $('#tellform').html() + div.html();
				else $('#tellform').append( div.html() );
				
				$('#tell').fadeTo(200, 0.0, function () {
					
					$('#tell').remove();
					
					$('#head').animate({ height: '635px' }, 400, sharebinder);
					
				});
				
			});
			
		}
		else loginprompt();
	
	}
	
	return false;

}

post = function () {
	
	if (valid('#tellform')) {
		
		$('#postit').width($('#postit').width()).addClass('loading').html('');
		
		if(logcheck()) {
			
			$.ajax({
		   
			   type: "POST",
			   url: "/wp-content/plugins/ajaxhandler/ajaxhandler.php",
			   contentType: "application/x-www-form-urlencoded;charset=ISO-8859-1",
			   data: "func=post&who="+$('#who').val()+"&what="+$('#what').val()+'&explain='+$('#explain').val()+'&emails='+$('#emaillist').val(),
			   dataType: "json",
			   success: function(msg){
					
					if( msg ) getpost();
				 	else return false;
				 
			   }
			   
			 });
			
		}
		else loginprompt();
	
	}
	
	return false;
	
}

getpost = function () {

	$.ajax({
		   
	   type: "POST",
	   url: "/wp-content/plugins/ajaxhandler/ajaxhandler.php",
	   data: "func=add&num=1",
	   dataType: "html",
	   success: function(p){
			
			if( p ) addpost(p);
		 	else return false;
		 
	   }
	   
	 });

}

getposts = function () {

	$.ajax({
		   
	   type: "POST",
	   url: "/wp-content/plugins/ajaxhandler/ajaxhandler.php",
	   data: "func=add&num=10&offset="+$('#posts article').length,
	   dataType: "html",
	   success: function(p){
			
			if( p ) addposts(p);
		 	else return false;
		 
	   }
	   
	 });

}

addpost = function (p) {
	
	if ($.browser.msie) {
		
		p = $('<div/>').html(p);
	
		$('#posts')[0].innerHTML = p.remove('#count').html() + $('#posts').html();
		
		$('#hgposts').prependTo('#posts');
		
	}	
	else {

		p = $(p).remove('count');
		$(p).insertAfter('#hgposts');
	
	}
	
	if ($('#hgposts h2 span').length) $('#hgposts h2').html( '<span>' + (parseInt($('#hgposts h2 span').html()) + 1) + '</span> days made <em>this</em> week' );
	else $('#hgposts h2').html( '<span>1</span> day made <em>this</em> week' );
	
	fadeadded();
	
	artbinder();
	
	revert();

}

addposts = function (p) {
	
	if ($.browser.msie) {
		p = $('<div/>').html(p);
	
		$('#posts')[0].innerHTML = $('#posts').html() + p.html();
		
		var c = $('#count').html();
		$('#count').remove();
		
		if (c=='0') $('#more').remove();
		else $('#more').appendTo('#posts');
		
	}
	else {
		p = $(p);
		$(p).insertBefore('#more');
		
		var c = $('#count').html();
		$('#count').remove();
		
		if (c=='0') $('#more').remove();
		
		artbinder();
	}
	
	$('#notfound').remove();
	
	fadeadded();
	
}

fadeadded = function () {

	$('.added').css('opacity', '0').each( function () {
		
		$(this).fadeTo(400, 1.0, function () { 
			if ( $.browser.msie ) {
				$( this )[0].style.removeAttribute( 'filter' );
				$('#more').bind('click', getposts); 
				artbinder();
			}
		});
	
	});

}

expand = function (t, e) {
	
	var id = $(t).parent().parent().parent().attr('id').replace(/post-/, '');
	
	$('#post-'+id+' p').not('p.readmore').fadeTo(300, 0.0);	
	
	$.ajax({
				   
	   type: "POST",
	   url: "/wp-content/plugins/ajaxhandler/ajaxhandler.php",
	   data: "func="+e+"&id="+id,
	   dataType: "html",
	   success: function(p){
			
			expandshow(id, p);
		 	
	   }
	   
	 });
	 
	 if (e=='exp') $(t).unbind('click').bind('click', function () { expand(this, 'clo'); });
	 else $(t).unbind('click').bind('click', function () { expand(this, 'exp'); });

}

expandshow = function (id, p) {
	
	p = $(p);
	
	var text = ($('#post-'+id+' h1 a span').html() == 'expand') ? 'close' : 'expand';
	
	$('#post-'+id).find('p').not('p.readmore').remove();
	
	$('#post-'+id+' h1 a span').html(text);
	
	$(p).insertAfter( $('#post-'+id+' h1.posttitle') );

}

notniceprompt = function (t) {
	
	if(logcheck()) {
	
		var div = $('<div/>').load('/wp-content/themes/jmmd/includes/prompt-notnice.php', function () {
				
			if($.browser.msie) {
				$('body')[0].innerHTML = $('body').html() + div.html();
				artbinder();
			}
			else {
				$('body').append( div.html() ); 
				$('#overlay, #loginprompt').css('opacity', '0');
			}
			
			promptfade();
			
			$('#notnice').bind('click', function () { notnice(t); });
			
			$('#nnexp').focus();
			
		});
	
	}
	else loginprompt();
	
	return false;
	
}

notnice = function (t) {
	
	var id = $(t).attr('id').replace(/nn-/, '');
	
	$.ajax({
				   
	   type: "POST",
	   url: "/wp-content/plugins/ajaxhandler/ajaxhandler.php",
	   contentType: "application/x-www-form-urlencoded;charset=ISO-8859-1",
	   data: "func=nn&id="+id+"&comment="+$('#nnexp').val(),
	   dataType: "json",
	   success: function(msg){
			
			if (msg) notniceconfirm();
		 	
	   }
	   
	 });
	
	return false;

}

notniceconfirm = function () {
	
	$('#nnform').replaceWith('<h1>Thanks for helping us keep this place tidy!</h1><p id="confirmtext">An email had been sent to nice people who keep this place running.</p><button id="close">Close</button>');
	
	$('#close').bind('click', closeprompt);
	
}

revert = function () {

	$('#bot').remove();
	
	$('#top').append( $('<button/>').attr('id', 'tell').css('opacity', '0').html('Tell <em>the</em> World') );
	
	$('#head').animate({ height: '392px' }, 400, function () {
	
		$('#tell').bind('click', tell).fadeTo(300, 1.0, function () { if ( $.browser.msie ) $( this )[0].style.removeAttribute( 'filter' ); });
	
	});	
	
	$('#chars').html('characters: 100');
	
	$('#who, #what').val('').each( function () { fielder(this); });
	
}

valid = function (fm, f) {
	
	if (f) {
	
		if(validcheck(f)) return true;	
			
	}
	else {
		
		var fields = $(fm + ' input, ' + fm + ' textarea, ' + fm + ' select').not('#explain, #facebook, #twitter, #openid');
		v = 0;
		
		$(fields).each( function () {
			
			validcheck(this);
			if (v == $(fields).length) return true;
						
		});
		
		if (v == $(fields).length) return true;
		else $(fields).bind('keyup', function () { valid(false, this); });
			
	}
	
}

validcheck = function (f) {

	var emailsreg = /([a-zA-Z0-9,!#\$%&'\*\+\/=\?\^_`\{\|}~-]+(\.[a-z0-9,!#\$%&'\*\+\/=\?\^_`\{\|}~-]+)*@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4},*)+$/,
	c = false;

	$(f).parent().removeClass('error');
			
	var tval = $(f).val();
	
	if (f.id == 'emaillist' && tval != '') {
		if (emailsreg.test(tval) == true) {
			c = true;
			$(f).parent().find('label').html('Send an email to <em>(separate with commas)</em>:');
		}
		else {
			$(f).parent().addClass('error').find('label').html('Please enter valid emails, separated by commas:');
		}
	}
	else if (f.id == 'emaillist' && tval == '') {
		c = true;
		$(f).parent().find('label').html('Send an email to <em>(separate with commas)</em>:');
	}
	else if (f.id == 'what' && tval.length > 100) { counter(); }
	else { 
		if (tval != '') c = true;
		else $(f).parent().addClass('error');
	}
	
	if (c) {
		v++;
		return true;
	}

}

promptfade = function () {
	
	var scroll = (document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
	
	if (scroll > 122) {
		var s = parseInt($('#loginprompt, #nnprompt').css('top')) + scroll;
		$('#loginprompt, #nnprompt').css( 'top', s );
	}
	
	$('#overlay').height( $('body').height() );
	
	if(!$.browser.msie)  {
		
		$('#overlay').fadeTo(300, 1.0, function () {
			
			$('#loginprompt').fadeTo(300, 1.0);
			
			$('#close').bind('click', closeprompt);
		
		});
		
	}
	else $('#close').bind('click', closeprompt);

}

loginprompt = function () {
	
	var div = $('<div/>').load('/wp-content/themes/jmmd/includes/prompt-login.php', function () {
		
		if($.browser.msie) {
			$('body')[0].innerHTML = $('body').html() + div.html();
			artbinder();
		}
		else {
			$('body').append( div.html() );
			$('#overlay, #loginprompt').css('opacity', '0');
		}
		
		promptfade();
		
		$('#twitter, #facebook, #openid').bind('click', function () { 
		
			var type = $('input[name=type]:checked').val();
			otherlog(type);
			
		});
		
		$('#username').focus();
		
	});
	
}

otherlog = function (type) {

	$('#userli, #passli').remove();
	
	if (type == 'twitter') {
		$('#RES_ID_fb_login, #login').replaceWith('<button id="login">Sign In</button>' );
		$('#login').addClass('ready').html('Sign In with '+type).bind('click', login);
	}
	else if (type == 'facebook') {
		$('#RES_ID_fb_login, #login').replaceWith('<fb:login-button v="2" size="medium" onlogin="login();">Login with Facebook</fb:login-button>' );
		FB.init("9133ede31aea8a264f8e57fe6ea40d5c");
	}
	else if (type == 'openid') {
		$('#RES_ID_fb_login, #login').replaceWith('<iframe id="login" src="https://just-made-my-day.rpxnow.com/openid/embed?token_url=http://justmademyday.com/wp-content/plugins/ajaxhandler/openidlistener.php" scrolling="no" frameBorder="no" style="width:400px;height:240px;"></iframe>');
		sessionvars();
	}

}

login = function () {
	
	if (valid('#loginform')) {
	
		$.ajax({
			   
		   type: "POST",
		   url: "./wp-content/plugins/ajaxhandler/ajaxhandler.php",
		   contentType: "application/x-www-form-urlencoded;charset=ISO-8859-1",
		   data: "func=login&type="+$('#loginform input:radio:checked').val()+"&log="+$('#username').val()+"&pwd="+$('#password').val()+"&who="+$('#who').val()+"&what="+$('#what').val(),
		   dataType: "json",
		   success: function(p){
				
				if (p == 'true' || p['facebook']) {
					closeprompt();
			 		tell();
			 	}
			 	else if ( p['twitter'] ) {
			 		
			 		window.location = p['twitter'];
			 		
			 	}
			 	else loginfail();
			 	
		   }
		   
		 });
		
	}
	
	return false;
	
}


sessionvars = function () {
	
	//set session variables for openID only
	
	$.ajax({
			   
	   type: "POST",
	   url: "/wp-content/plugins/ajaxhandler/ajaxhandler.php",
	   contentType: "application/x-www-form-urlencoded;charset=ISO-8859-1",
	   data: "func=login&type=openid&who="+$('#who').val()+"&what="+$('#what').val()
	   
	 });

}

sessionclose = function () {
	
	//unset session variables for openID only
	
	$.ajax({
			   
	   type: "POST",
	   url: "/wp-content/plugins/ajaxhandler/ajaxhandler.php",
	   data: "func=unset"
	   
	 });

}

loginfail = function () {

	$('#loginsubmit').addClass('error');

}

closeprompt = function () {
	
	if ($('iframe#login').length) sessionclose();
	
	if(!$.browser.msie) { 
		$('#overlay').fadeTo(300, 0, function () {
			
			$('#overlay').remove();
			
		});
	}
	else $('#overlay').remove();
	
	$('button#tell.loading').removeClass('loading').html('Tell <em>the</em> World');
	
}

