$(document).ready(function() {

	// here we are waiting for our user to stop
	// typing, so we can check thier email against
	// our db.
	
	var timeoutID;
	$( '#email' ).keypress(function(e) {
        if ( !e ) {
            e = event;
        }

        if ( e.keyCode == 13 ) { // if it's Enter
            // Call handler to check validity of email
			clearTimeout( timeoutID );
			timeoutID = setTimeout( emailcheck, 100 );            
			//emailcheck();
            if (e.stopPropagation) {
                e.stopPropagation();
            }
            if (e.preventDefault ) {
                e.preventDefault();
            }
            return false;
        } else if ( e.keyCode != 8 ) { // ignore backspace
            // clearTimeout( timeoutID );
            // timeoutID = setTimeout( emailcheck, 1500 );
        }

	});
	
	//we check for the existence of the email addy,
	// and if we find it, we prompt them to login.
	// If not, we allow them to fill out the form.
	function emailcheck() {
	var email= $('#email').attr( "value" );
		$( '#checker' ).show();
		$.post( "server.php?emailcheck=1&email=" + email,
				function( data ) {
					if( data== 1 ) {
						$( '#password' ).fadeIn();
						$( '#login' ).fadeIn();
						$( '#checker' ).hide();
					} else if( data== 0 ) {
						$( '#firststep' ).fadeIn();
						$( '#controldiv' ).fadeIn();
						$( '#checker' ).hide();
						window.location.reload(true);
					} else if ( data== 2 ) {
                         // Don't do anything
                    }
				}
		);
	}
	
	$( '#login' ).click(function() {
		var user= $( '#email' ).val();
		var pass= $( '#pass' ).val();
		var ajax= 1;
		$.post( "/my/login.php",
				{ username: user, password: pass, mode: ajax },
				function( data ) {
					if( data == 1 ) {
						var myval = '/application/';
						window.location.assign( myval );
						window.location.reload( true );
					} else if( data == 0 ) {
						var attempt= $( '#attempt' ).val();
						if( attempt == 0 ) {
							newattempt= attempt * 1;
							increased= newattempt + 1;
							$( '#attempt' ).val( increased );
							var message= '<div id="login_error" style="margin-top: 10px;">There appears to be an error in your username or password, please try again.</div>';
							$( message ).appendTo('#content h2');
						} else if( attempt >= 1 ) {
							$( '#login_error' ).remove();
							var message= '<div id="login_error" style="margin-top: 10px;">If you have forgotten your password, please <a href="/my/password.php" title="Reset your password">click here to reset it</a>.</div>';
							$( message ).appendTo('#content h2');
						}
					}
				}
		);
		return false
	});
	
	$("#step-1").click(function() {
		var authed= $( '#authed' ).val();
		if( authed== 'loggedin' ) {
			$('#application').ajaxSubmit();
			swap( 1 );
			$( '.steps ul>li' ).removeClass();
			$( '#step-1' ).addClass( 'current' );
			$( '#step-6' ).addClass( 'mainNavNoBg' );
			$( '#controls' ).show();
			$( '#add-college' ).hide();
			$( '#add-activity' ).hide();
			return false;
			} else if( authed== null ) {
				return false;
			}
	});
	
	$("#step-2").click(function() {
		var authed= $( '#authed' ).val();
		if( authed== 'loggedin' ) {
		$('#application').ajaxSubmit();
		swap( 2 );
		$(".steps ul>li").removeClass();
		$( '#step-1' ).addClass( 'lastDone' );
		$( '#step-2' ).addClass( 'current' );
		$( '#step-6' ).addClass( 'mainNavNoBg' );
		$( '#controls' ).show();
		$( '#add-college' ).hide();
		$( '#add-activity' ).hide();
		save();
		return false;
		} else if( authed== null ) {
			return false;
		}
	});
	
	$("#step-3").click(function() {
		var authed= $( '#authed' ).val();
		if( authed== 'loggedin' ) {
		$('#application').ajaxSubmit();
		swap( 3 );
		$(".steps ul>li").removeClass();
		$( '#step-1' ).addClass( 'done' );
		$( '#step-2' ).addClass( 'lastDone' );
		$( '#step-3' ).addClass( 'current' );
		$( '#step-6' ).addClass( 'mainNavNoBg' );
		$( '#controls' ).show();
		$( '#add-college' ).show();
		$( '#add-activity' ).hide();
		save();
		return false;
		} else if( authed== null ) {
			return false;
		}
	});
	
	$("#step-4").click(function() {
		var authed= $( '#authed' ).val();
		if( authed== 'loggedin' ) {
		$('#application').ajaxSubmit();
		swap( 4 );
		$(".steps ul>li").removeClass();
		$( '#step-1' ).addClass( 'done' );
		$( '#step-2' ).addClass( 'done' );
		$( '#step-3' ).addClass( 'lastDone' );
		$( '#step-4' ).addClass( 'current' );
		$( '#step-6' ).addClass( 'mainNavNoBg' );
		$( '#controls' ).show();
		$( '#add-college' ).hide();
		$( '#add-activity' ).show();
		save();
		return false;
		} else if( authed== null ) {
			return false;
		}
	});
	
	$("#step-5").click(function() {
		var authed= $( '#authed' ).val();
		if( authed== 'loggedin' ) {
		$('#application').ajaxSubmit();
		swap( 5 );
		$(".steps ul>li").removeClass();
		$( '#step-1' ).addClass( 'done' );
		$( '#step-2' ).addClass( 'done' );
		$( '#step-3' ).addClass( 'done' );
		$( '#step-4' ).addClass( 'lastDone' );
		$( '#step-5' ).addClass( 'current' );
		$( '#step-6' ).addClass( 'mainNavNoBg' );
		$( '#controls' ).show();
		$( '#add-college' ).hide();
		$( '#add-activity' ).hide();
		save();
		return false;
		} else if( authed== null ) {
			return false;
		}
	});
	
	$("#step-6").click(function() {
		var authed= $( '#authed' ).val();
		if( authed== 'loggedin' ) {
		$('#application').ajaxSubmit();
		swap( 6 );
		$(".steps ul>li").removeClass();
		$( '#step-1' ).addClass( 'done' );
		$( '#step-2' ).addClass( 'done' );
		$( '#step-3' ).addClass( 'done' );
		$( '#step-4' ).addClass( 'done' );
		$( '#step-5' ).addClass( 'lastDone' );
		$( '#step-6' ).addClass( 'current' );
		$( '#controls' ).hide();
		$( '#add-college' ).hide();
		$( '#add-activity' ).hide();
		save();
		return false;
		} else if( authed== null ) {
			return false;
		}
	});
	
	function advance_step( num ) {
		$( '.steps ul>li' ).removeClass();
		if( num== 2 ) {
			$( '#step-1' ).addClass( 'lastDone' );
			$( '#step-2' ).addClass( 'current' );
			$( '#step-6' ).addClass( 'mainNavNoBg' );
			$( '#controls' ).show();
			$( '#add-college' ).hide();
			$( '#add-activity' ).hide();
		} else if( num== 3 ) {
			$( '#step-1' ).addClass( 'done' );
			$( '#step-2' ).addClass( 'lastDone' );
			$( '#step-3' ).addClass( 'current' );
			$( '#step-6' ).addClass( 'mainNavNoBg' );
			$( '#controls' ).show();
			$( '#add-college' ).show();
			$( '#add-activity' ).hide();
		} else if( num== 4 ) {
			$( '#step-1' ).addClass( 'done' );
			$( '#step-2' ).addClass( 'done' );
			$( '#step-3' ).addClass( 'lastDone' );
			$( '#step-4' ).addClass( 'current' );
			$( '#step-6' ).addClass( 'mainNavNoBg' );
			$( '#controls' ).show();
			$( '#add-college' ).hide();
			$( '#add-activity' ).show();
		} else if( num== 5 ) {
			$( '#step-1' ).addClass( 'done' );
			$( '#step-2' ).addClass( 'done' );
			$( '#step-3' ).addClass( 'done' );
			$( '#step-4' ).addClass( 'lastDone' );
			$( '#step-5' ).addClass( 'current' );
			$( '#step-6' ).addClass( 'mainNavNoBg' );
			$( '#controls' ).show();
			$( '#add-college' ).hide();
			$( '#add-activity' ).hide();
		} else if( num== 6 ) {
			$( '#step-1' ).addClass( 'done' );
			$( '#step-2' ).addClass( 'done' );
			$( '#step-3' ).addClass( 'done' );
			$( '#step-4' ).addClass( 'done' );
			$( '#step-5' ).addClass( 'lastDone' );
			$( '#step-6' ).addClass( 'current' );
			$( '#controls' ).hide();
			$( '#add-college' ).hide();
			$( '#add-activity' ).hide();
            save();
		}
	}
		
	// this function handles switching from one step to the next
	function swap( num ) {
		$( '#current-step' ).hide();
		//$( '#return').hide();
		$( '#current-step' ).load( 'step' + num + '.php', function() {
			$( '#loading' ).hide();
			$( '#current-step' ).fadeIn();
	 	});
	}
	
	function forward() {
		$('#application').ajaxForm({
		});
	}
	
	function save() {
        
        var options = {
			target: '#return',
			success: postSuccess,
			error: postError,
			timeout: 15000 // timeout of 15 seconds
        }

		$( '#current-step' ).hide();
		$( '#loading' ).show();
		$( '#error' ).hide();
		$( '#application' ).ajaxForm(options)
	}

	function postError(XMLHttpRequest, textStatus, errorThrown) {
		$( '#loading' ).hide()
        $( '#current-step').show();
		if( textStatus == 'timeout' ) {
			$( '#return' ).html('<p>There seems to have been a problem saving your application. Please try again.</p>').show();
			$('#content').scrollTo(800);
		} else {
		    $( '#return' ).html('<p>' + textStatus + '</p>').show();
			$('#content').scrollTo(800);	
		}
	}

    function postSuccess( responseText, statusText ) {
        $( '#loading' ).hide();
        $( '#current-step').show();

        if ( responseText == 'done' ) {
            $( '#return' ).html('<p>Your application has been submitted!</p>').show();
            //var loc = '/admissions/special/thanks';
            var loc = 'http://www.asbury.edu/admissions/undergraduate/thanks-applying';
            window.location.assign( loc );
        }
        else if ( responseText == 'saved' ) {
            $( '#return' ).html('<p>Your application has been saved!</p>').show();
			$('#content').scrollTo(800);
        } else {
            $( '#return' ).html('<p>' + responseText + '</p>').show();
			$('#content').scrollTo(800);
        }
    }
	
	$( '#proceed' ).click(function() {
		var num= $('#next_step').val();
		forward();
		swap( num );
		advance_step( num );
	});

	$( '#stop' ).click(function() {
		save();
	});
	
	function savemessage() {
		state= $( '#authed' ).val();
			if( state== null ) {
				// hang around for a while
			} else {
				var d_names= ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
				var m_names= ["January", "February", "March", "April", "May", "June", "July", "August", 
				"September", "October", "November", "December"];

				var d = new Date();
				var curr_day= d.getDay();
				var curr_date= d.getDate();
				var curr_hours= d.getHours();
				var curr_mins= d.getMinutes();
		
				if( curr_mins < 10 ) {
					curr_mins= "0" + curr_mins;
				}
		
				if( curr_hours > 11 ) {
					curr_tod= 'PM';
				} else {
					curr_tod= 'AM';
				}
		
				if( curr_hours > 12 ) {
					curr_hours= curr_hours - 12;
				}
		
				var sup= "";
					if( curr_date == 1 || curr_date == 21 || curr_date ==31 ) { 
						sup = "st"; 
					} else if( curr_date == 2 || curr_date == 22 ) { 
						sup = "nd"; 
					} else if( curr_date == 3 || curr_date == 23 ) {
				   		sup = "rd";
				   	} else {
				   		sup = "th";
				   	}
		
					var curr_month = d.getMonth();
					var curr_year = d.getFullYear();

					$( 'span' ).remove( '.autosave' );
					$( '<span class="autosave" style="display:none;">Autosaved on ' + d_names[curr_day] + ', '
					+ m_names[curr_month] + ' ' + curr_date + sup + ' at ' + curr_hours + ':' + curr_mins + ' ' 
					+ curr_tod + '</span>' ).prependTo( 'h2' );
					$( '.autosave' ).show();
					$( '.autosave' ).css( 'color', 'green' );
					$('#application').ajaxSubmit();
				}
			return false;
	}
	setInterval( savemessage, 300000 );
	
	jQuery.fn.extend({
	  scrollTo : function(speed, easing) {
	    return this.each(function() {
	      var targetOffset = $(this).offset().top;
	      $('html,body').animate({scrollTop: targetOffset}, speed, easing);
	    });
	  }
	});	
});
