// In Fields Plugin
(function(d){d.InFieldLabels=function(e,b,f){var a=this;a.$label=d(e);a.label=e;a.$field=d(b);a.field=b;a.$label.data("InFieldLabels",a);a.showing=true;a.init=function(){a.options=d.extend({},d.InFieldLabels.defaultOptions,f);if(a.$field.val()!==""){a.$label.hide();a.showing=false}a.$field.focus(function(){a.fadeOnFocus()}).blur(function(){a.checkForEmpty(true)}).bind("keydown.infieldlabel",function(c){a.hideOnChange(c)}).bind("paste",function(){a.setOpacity(0)}).change(function(){a.checkForEmpty()}).bind("onPropertyChange",
function(){a.checkForEmpty()})};a.fadeOnFocus=function(){a.showing&&a.setOpacity(a.options.fadeOpacity)};a.setOpacity=function(c){a.$label.stop().animate({opacity:c},a.options.fadeDuration);a.showing=c>0};a.checkForEmpty=function(c){if(a.$field.val()===""){a.prepForShow();a.setOpacity(c?1:a.options.fadeOpacity)}else a.setOpacity(0)};a.prepForShow=function(){if(!a.showing){a.$label.css({opacity:0}).show();a.$field.bind("keydown.infieldlabel",function(c){a.hideOnChange(c)})}};a.hideOnChange=function(c){if(!(c.keyCode===
16||c.keyCode===9)){if(a.showing){a.$label.hide();a.showing=false}a.$field.unbind("keydown.infieldlabel")}};a.init()};d.InFieldLabels.defaultOptions={fadeOpacity:0.5,fadeDuration:300};d.fn.inFieldLabels=function(e){return this.each(function(){var b=d(this).attr("for");if(b){b=d("input#"+b+"[type='text'],input#"+b+"[type='search'],input#"+b+"[type='tel'],input#"+b+"[type='url'],input#"+b+"[type='email'],input#"+b+"[type='password'],textarea#"+b);b.length!==0&&new d.InFieldLabels(this,b[0],e)}})}})(jQuery);

// END PLUGINS

$("label").inFieldLabels({ fadeOpacity: 0.4 });

$('#signup-form').attr('method','post');
$('#signup-form').attr('action', '?action=signup');

$('#signup-form').live('submit', function(){

    //check the form is not currently submitting
    if($(this).data('formstatus') !== 'submitting'){

         //setup variables
         var form        = $(this),
             formData    = form.serialize(),
             formUrl     = form.attr('action'),
             formMethod  = form.attr('method'),
             responseMsg = $('#signup-response');

         //add status data to form
         form.data('formstatus','submitting');

         //show response message - waiting
         responseMsg.hide()
                    .addClass('response-waiting')
                    .text('Please Wait...')
                    .fadeIn(200);

         //send data to server for validation
         $.ajax({
             url: formUrl,
             type: formMethod,
             data: formData,
             success:function(data){

                //setup variables
                var responseData = jQuery.parseJSON(data),
                    klass    = '',
                    rhtml    = '',
                    fader    = '',
                    tryAgain = '';

                //response conditional
                switch(responseData.status){
                    case 'error':
                        klass = 'response-error';
                        rhtml = '<h3>ooops...<span class="regular">' + responseData.message + '</span><span class="thin">ready to <a href="#" id="try-again">try again?</a></h3>';
                        fader = '3000';
                    break;
                    case 'success':
                        klass = 'response-success';
                        rhtml  = '<h3>thanks for signing up! <br />we\'ll be in touch soon...<span class="regular">in the meantime, feel free to follow the conversation on perceptu\'s <a href="http://twitter.com/perceptu">twitter</a> &amp; <a href="http://www.linkedin.com/company/683990">linkedin page</a>. <br />maybe we\'ll see you there.</span><span class="thin">cheers!</span></h3>';
                    break;
                }
                
                
                $guts = $('#guts').html();
                var tryAgain = function() {
	                	$('#guts').fadeOut(200, function(){
	                		$(this).empty().html($guts).fadeIn(200);
	                		$('#signup-response').text('');
	                	});
                }
								
                // show reponse message
                responseMsg.fadeOut(200,function(){
                		$(this).text('');
	                	$('#guts').fadeOut(200, function() {
	                		$(this).empty().html(rhtml).fadeIn(200);
	                	});
	                	if (fader !== '') {
	                		setTimeout( tryAgain, fader );
	                	}
	                	  
                });
                
                // show sign up form again
                $('#try-again').live('click', function(){
                	tryAgain();
                	return false;
                });
                
               
           }
      });
    }

    //prevent form from submitting
    return false;

});

