/* Additional custom Jquery functions */
jQuery.fn.fadeToggle = function(speed, easing, callback) {
   return this.animate({opacity: 'toggle'}, speed, easing, callback);
};
$(document).ready(function(){
	$(".placeHolderInput").val(function(index,value){
		return $(this).attr('title');
	})
	.css({'color':'#838383'})
	.focus(function(){
	        if($(this).val()==$(this).attr('title')){
			$(this).css({'color':'#555'}).val('');
		}
	})
	.blur(function(){
		if($(this).val()==$(this).attr('title') || $(this).val().length==0){
			$(this).val($(this).attr('title')).css({'color':'#838383'});
		}
	});
	
	// Fix Height
	if($("#main-container").height() < ($(window).height() + 100)){
		var df = ($(window).height() + 100) - $("#main-container").height();
		$("#page-body").height( $("#page-body").height() + df );
	}
	//$("#debugger-jolly").html($("#main-container").height()+" | "+$(window).height());
	
	// Image Rotator, don't steal it! :)
	var switchLen = $("#header-switcher > #header-switcher-images > .header-switcher-image").length - 1;
	var switchNow = 0;
	var switcher = setInterval(function(){
	        if(switchNow == switchLen){
	        	var next = 0
	        }else{
	                var next = switchNow + 1;
	        }
		$("#header-switcher > #header-switcher-images > .header-switcher-image:eq("+switchNow+")").fadeOut("slow");
		$("#header-switcher > #header-switcher-images > .header-switcher-image:eq("+next+")").fadeIn("slow");

		$("#header-switcher > #header-switcher-buttons > ul > .header-switcher-button:eq("+switchNow+")").removeClass('header-switcher-button-on').addClass('header-switcher-button-off');
		$("#header-switcher > #header-switcher-buttons > ul > .header-switcher-button:eq("+next+")").removeClass('header-switcher-button-off').addClass('header-switcher-button-on');
		switchNow = next;
	},3000);
	
	/* BEJ NightWatch-CvC: All Rights Reserved! */
	var nightWatch=false;
	$("#bej_nightwatch").height($("#main-container").height());
	NW_cycle();
	var nw = setInterval(function(){
		NW_cycle();
		//$("#debugger-in-2").html("Sun top:"+$('#the_sun').css('top')+" left:"+$('#the_sun').css('left')+" right:"+$('#the_sun').css('right')+" bottom:"+$('#the_sun').css('bottom'));
		//$("#debugger-in-3").html("Moon top:"+$('#the_moon').css('top')+" left:"+$('#the_moon').css('left')+" right:"+$('#the_moon').css('right')+" bottom:"+$('#the_moon').css('bottom'));
	},1000);
	
	function NW_cycle(){
	var pos = 0;
	        var adjHr = parseInt( $("#now_hours").val() );
	        var adjMin = parseInt( $("#now_mins").val() );
	        var leftPosNow = parseInt($("#bej_nightwatch").css('left'));
	        var mins = (adjHr * 60) + adjMin;
	        if(mins<720){
	                if(!$("#bej_nightwatch").hasClass('roll-winter_0-12')){
	                //$("#debugger-jolly").html(" 1 >>> "+leftPosNow);
	                        if(leftPosNow < -13000){ // It's Midnight
	                        	$("#bej_nightwatch").css({'left':-1800});
	                        	//$("#debugger-in-2").html("1 done < -13000");
	                        }else{ // It's noon
	                        	$("#bej_nightwatch").css({'left':-22000});
	                        	//$("#debugger-in-2").html("1 mmm > -13000");
	                        }
				$("#bej_nightwatch").removeClass("roll-winter_12-24").addClass('roll-winter_0-12');
			}
	        	pos = -parseInt((22000*mins)/720);
	        	$("#bej_nightwatch").animate({"left":pos}, 500);
	        	//$("#debugger-in").html("0_12 "+adjHr+ " - " +adjMin+ " - Mins: " + mins + " | " + pos + " + ");
	        }else{
	        	if(!$("#bej_nightwatch").hasClass('roll-winter_12-24')){
	        	//$("#debugger-jolly").html(" 2 >>> "+leftPosNow);
	                        if(leftPosNow > -9000){ // It's Noon
	                        	$("#bej_nightwatch").css({'left':-20000});
	                        	//$("#debugger-in-2").html("2 mmm > -9000");
	                        }else{ // It's Midnight
	                        	$("#bej_nightwatch").css({'left':-400});
	                        	//$("#debugger-in-2").html("2 mmm < -9000");
	                        }
				$("#bej_nightwatch").removeClass("roll-winter_0-12").addClass('roll-winter_12-24');
			}
	        	pos = -parseInt((22000*(mins-720))/720);
	        	$("#bej_nightwatch").animate({"left":pos}, 500);
	        	//$("#debugger-in").html("12_24 "+adjHr+ " - " +adjMin+ " - Mins: " + mins + " | " + pos + " + ");
	        }
	        moveTheSun(mins);
	        moveTheMoon(mins);
	}
	function moveTheSun(mins){
		//$("#debugger-jolly").html("Body "+$("body").height());
		var height = $("body").height() - 80;
		if(mins<350){
		        $('#the_sun').css({
				'left' 	: '',
				'top' 	: 750,
				'right' : 1,
			}).hide('slow');
		}else if(mins<725 && mins>=350){
		        $('#the_sun').css({
				'left' 	: '',
			}).show('slow');
			$('#the_sun').animate({
				'right' : 1,
				'top': parseInt(((height-80)*2) - (height * mins) / 375)
			}, 500);
		}else if(mins<1075 && mins>=725){
		        $('#the_sun').css({
				'right' : '',
			}).show('slow');
			$('#the_sun').animate({
				'left' 	: 1,
				'top' 	: parseInt(((height *(mins - 725))/350)-120)
			}, 500);
		}else if(mins>=1075){
		        $('#the_sun').css({
				'right' : '',
				'left' 	: 1,
				'top' 	: 750
			}).hide('slow');
		}
	}
	function moveTheMoon(mins){
		var width = $("body").width() + 300;
		if(mins<350){
			$('#the_moon').show('slow');
		        $('#the_moon').animate({ // 0 - 5:50
				'left' 	: parseInt((((364 + mins)*width)/714)-150)
			}, 500);
		}else if(mins<725 && mins>=350){ // 5:50 - 12:00
		        $('#the_moon').animate({
				'left' 	: width - 150,
			}).hide('slow');
		}else if(mins<1075 && mins>=725){ // 12:00 - 17:55
		        $('#the_moon').animate({
				'left' : -150,
			}).hide('slow');
		}else if(mins>=1075){
			$('#the_moon').show('slow');
		        $('#the_moon').animate({ // 17:55 - 23:59
				'left' 	: parseInt((((mins - 1075)*width)/714)-150)
			}, 500);
		}
	}
/* Inputs */
	$("#header-clock input.clock-hours").keyup(function(){
		var val = parseInt($(this).val());
		if(val==undefined || val<0 || isNaN(val)) $(this).val(0);
		else if(val>23) $(this).val(23);
		else $(this).val(val);
	});
	$("#header-clock input.clock-minutes").keyup(function(){
		var val = parseInt($(this).val());
		if(val==undefined || val<0 || isNaN(val)) $(this).val(0);
		else if(val>59) $(this).val(59);
		else $(this).val(val);
	});
	
	/* Hours */
	$("#header-clock .clock-buttons .clock-button.clock-hours.clock-up").click(function(){
		var val = parseInt($("#header-clock input.clock-hours").val());
		if(val>=23){
			$("#header-clock input.clock-hours").val(0);
		}else{
			$("#header-clock input.clock-hours").val(val + 1);
		}
	});
	$("#header-clock .clock-buttons .clock-button.clock-hours.clock-down").click(function(){
		var val = parseInt($("#header-clock input.clock-hours").val());
		if(val<=0){
			$("#header-clock input.clock-hours").val(23);
		}else{
			$("#header-clock input.clock-hours").val(val - 1);
		}
	});
	
	/* Minutes */
	$("#header-clock .clock-buttons .clock-button.clock-minutes.clock-up").click(function(){
		var val = parseInt($("#header-clock input.clock-minutes").val());
		if(val==59){
			$("#header-clock input.clock-minutes").val(0);
			$("#header-clock .clock-buttons .clock-button.clock-hours.clock-up").click();
			
		}else{
			$("#header-clock input.clock-minutes").val(val + 1);
		}
	});
	$("#header-clock .clock-buttons .clock-button.clock-minutes.clock-down").click(function(){
		var val = parseInt($("#header-clock input.clock-minutes").val());
		if(val<=0){
			$("#header-clock .clock-buttons .clock-button.clock-hours.clock-down").click();
			$("#header-clock input.clock-minutes").val(59);
		}else{
			$("#header-clock input.clock-minutes").val(val - 1);
		}
	});
	
	
});
/*
*	Overwrites the Method created, because of a jQuery bug
*       http://github.com/jquery/jquery/commit/37b607d2815b893d13de4ac3461090d0dd46535e#commitcomment-170919
*/

jQuery.fx.prototype.cur = function() {
	if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) ) {
		return this.elem[ this.prop ];
	}

	var r = parseFloat( jQuery.css( this.elem, this.prop ) );
	return r /*&& r > -10000 ? r : 0*/;
};
