(function($){
	$.fn.clearDefault = function(){
		return this.each(function(){
			var default_value = $(this).val();
			$(this).focus(function(){
				if ($(this).val() == default_value) $(this).val("");
			});
			$(this).blur(function(){
				if ($(this).val() == "") $(this).val(default_value);
			});
		});
	};
	
})(jQuery);



/* 	FILE INPUTS
	-------------------------------------------------------------*/

var SITE = SITE || {};

SITE.fileInputs = function() {
  var $this = $(this),
      $val = $this.val(),
      valArray = $val.split('\\'),
      newVal = valArray[valArray.length-1],
      $button = $this.siblings('.button'),
      $fakeFile = $this.siblings('.file-holder');
  if(newVal !== '') {
    //$button.text('Photo Chosen');
    if($fakeFile.length === 0) {
      $button.after('<span class="file-holder">' + newVal + '</span>');
    } else {
      $fakeFile.text(newVal);
    }
  }
};

/*  Suckerfish Dropdown Help for IE
	-------------------------------------------------------------*/
	
sfHover = function() {
	var sfEls = document.getElementById("main_nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);




$(document).ready(function() {



	/*	CLEAR INPUT FIELDS ONFOCUS
	-------------------------------------------------------------*/
	
	$(".clearinput").clearDefault();
	


	/* 	Fancy Box
	-------------------------------------------------------------*/	
		$('a.fancyboxthis').fancybox({
                'width' : 440,
                'height' : 400, // 570,
                'padding' : 30,
                'autoScale' : false,
                'scrolling' : 'no',
                'transitionIn' : 'none',
                'transitionOut': 'none',
                'type' : 'iframe'
	      });
	      
	    $('#fancybox-close').click( function(){
	    	//window.location.reload();
	    });
	    
	
	/*
	
		// This is showing scrollbars and doesn't look as good as the Fancybox solution…
		
		$("a.fancyboxthis").colorbox({width:"540px", height:"450px", iframe:true});
		
		$('#cboxClose').click( function(){
	    	window.location.reload();
	    });
	*/
	

	/* 	EXTERNAL LINKS
		-------------------------------------------------------------*/

		$("[rel=external]").click( function() {
			window.open( $(this).attr("href") );
			return false;
		});
	


	/*	FILE INPUT FIELDS
		-------------------------------------------------------------*/		
	
		 $('.file-wrapper input[type=file]').bind('change focus click', SITE.fileInputs);
		
			

	/* 	SHOW/HIDE
		----------------------------------------------------------*/

		$("ul.accordion ul").hide();
	   
		$("ul.accordion li a").click(function () {
			$(this).next("ul").toggle();
			return false;
		});



	/* 	FAQ 
		----------------------------------------------------------*/
		  
		$('.answer').hide();
		
		$('.entry_faq .question').toggle(function() {
			$(this).addClass('open').next().slideDown('slow');
		}, function() {
			$(this).removeClass('open').next().slideUp('fast');
		});

		
		
		
	/* 	JQUERY FORM VALIDATION
		----------------------------------------------------------*/
		
		$(".validate").each(function(){
			$(this).validate({
				rules: {
					cover: {
					  required: true,
					  accept: "pdf|doc|docx"
					},
					resume: {
					  required: true,
					  accept: "pdf|doc|docx"
					}

				},
				messages: {
					cover: "Not an accepted file",
					resume: "Not an accepted file"
				}
		
			});
		});
		
		
		
		/*	VALIDATE FORMS
		-------------------------------------------------------------*/
		$("#bookingForm").validate();
			
        
        
		// Deny default value
		$.validator.addMethod(
    		'noPlaceholder', function (value, element) {
        		return value !== element.defaultValue;
   		 	}, 'This field is required.'
		);
		
		
		/* 	CALCULATOR
		----------------------------------------------------------*/
		
		//Update Cloud Settings
		function updateCloud(selectedInput) {
			var name = selectedInput.attr('name'),
		  		value = selectedInput.val();
			
			$('#results input[name="' + name + '"]').val(value);
			
			//ram check
			if(!$('#configure input[name="ram"]').is(':checked')) {
				$('#results input[name="ram"]').val('');
			}
			
		}
		
		function updateEstimate(){
			var serverCost = 0;
			if($('input[name="cores"]').is(':checked') && $('input[name="ram"]').is(':checked')) {
				serverCost = parseInt($('input[name="cores' + $('input[name="cores"]:checked').val() + '_ram' + $('input[name="ram"]:checked').val() + '"]').val());
			} else {
				serverCost = 0;
			}
			var osCost = parseInt($('input[name="' + $('input[name="os"]:checked').val() + '"]').val());
			var storageCost = parseInt($('input[name="storage' + $('input[name="storage"]:checked').val() + '"]').val());
			var backupCost = parseInt($('input[name="backup' + $('input[name="backup"]:checked').val() + '"]').val());
			var regionCost = parseInt($('input[name="region' + $('input[name="region"]:checked').val() + '"]').val());
			
			var backupInstall = 0;
			if(backupCost > 0) {
				backupInstall = parseInt($('input[name="backup_nrc"]').val());
			}
			
			var regionInstall = 0;
			if(regionCost > 0) {
				regionInstall = parseInt($('input[name="region_nrc"]').val());
			}
			
			var storageTotal = storageCost + backupCost + regionCost;
			var monthlyTotal = serverCost + osCost + storageCost + backupCost + regionCost;
			var installTotal = regionInstall + backupInstall;
			
			//Server Costs
			if(!isNaN(serverCost) && serverCost > 0) {		
				$('#results input[name="server_costs"]').val('$' + serverCost + '/mo.');
			} else {
				$('#results input[name="server_costs"]').val('');
			}
			
			//Operating System Costs
			if(!isNaN(osCost)) {	
				$('#results input[name="os_costs"]').val('$' + osCost + '/mo.');
			}
			
			//Total Storage Cost
			if(!isNaN(storageTotal)) {					
				$('#results input[name="storage_costs"]').val('$' + storageTotal + '/mo.');
			}
			
			//Estimated Monthly Total
			if(!isNaN(monthlyTotal)) {					
				$('#results input[name="monthly_costs"]').val('$' + monthlyTotal);
			}
			
			//Install Total
			if($('input[name="backup"]').is(':checked') && $('input[name="region"]').is(':checked')) {
				if(!isNaN(installTotal)) {					
					$('#results input[name="install_costs"]').val('$' + installTotal);
				}
			}
			
			
		}
		
		function enableRam(){
			//Ram Options
			var ramOption = parseInt($('input[name="cores"]:checked').val());
			
			if(ramOption == 1) {
				$('#ram-cores1 input:radio').attr('disabled', false);
				$('#ram-cores1').addClass('available');	
			} else {
				$('#ram-cores1 input:radio').attr('disabled', true).removeAttr('checked');
				$('#ram-cores1').removeClass('available');	

			}
			
			if(ramOption == 2) {
				$('#ram-cores2 input:radio').attr('disabled', false);
				$('#ram-cores2').addClass('available');	
			} else {
				$('#ram-cores2 input:radio').attr('disabled', true).removeAttr('checked');
				$('#ram-cores2').removeClass('available');
			}
			
			if(ramOption == 4) {
				$('#ram-cores4 input:radio').attr('disabled', false);
				$('#ram-cores4').addClass('available');	
			} else {
				$('#ram-cores4 input:radio').attr('disabled', true).removeAttr('checked');
				$('#ram-cores4').removeClass('available');
			}
			
			
		}
		
		function stepCheck(){
			//If step 1 complete enable next button
			if($('#step1 input[name="cores"]').is(':checked') && $('#step1 input[name="ram"]').is(':checked') && $('#step1 input[name="os"]').is(':checked')){
				$('#next-step button').removeAttr('disabled');
			}
			
			//If step 2 complete enable print and send buttons
			if($('#step2 input[name="storage"]').is(':checked') && $('#step2 input[name="backup"]').is(':checked') && $('#step2 input[name="region"]').is(':checked')){
				$('#print').css('display', 'block');
				$('#send-results').css('display', 'block');
				
			}
		}
		
		function selectLabel(selectedInput){
			var radioGroup = selectedInput.attr('name');
			
			//clear previous selected
			$('input[name="' + radioGroup + '"]').parents('label').removeClass('selected');
			
			//Highlight current selected
			if(selectedInput.is(':checked')) {
				selectedInput.parents('label').addClass('selected');
			}
		}
		
		//disabled ram options on page load
		$('#step1-2 input:radio').each(function() {
        	$(this).attr('disabled', true);    
        });
		
		
		
		// On input change, update calculations
		$('#configure input:radio').change(function() {
			updateCloud($(this));
			updateEstimate();
			selectLabel($(this));
			stepCheck();		
		});
		
		// disable/enable ram options
		$('#step1-1').find('input:radio').change(function(){
			enableRam();
		});
		
		
		
		
		//next button
		$('#next-step button').click(function(){
				$('#step2').show();
				$('#step1').hide();
				return false;
		});
		
		//prev button
		$('#prev-step button').click(function(){
				$('#step1').show();
				$('#step2').hide();
				return false;
		});
		
		//print button
		$('#print').click(function() {
			// remove validation class
			// submit form
			$("#results").submit();
			//return false;
		});
		
	
		$("#send-results").bind("click", function() {
			$.fancybox.showActivity();
			
			var cores = $("#set_cores").val();
			var ram = "&ram=" + $("#set_ram").val();
			var os = "&os=" + $("#set_os").val();
			var storage = "&storage=" + $("#set_storage").val();
			var backup = "&backup=" + $("#set_backup").val();
			var region = "&region=" + $("#set_region").val();
			var server_costs = "&server_costs=" + $("#set_server_costs").val();
			var os_costs = "&os_costs=" + $("#set_os_costs").val();
			var storage_costs = "&storage_costs=" + $("#set_storage_costs").val();
			var monthly_costs = "&monthly_costs=" + $("#set_monthly_costs").val();
			var install_costs = "&install_costs=" + $("#set_install_costs").val();	
			
			var data_send = "cores="+cores+ram+os+storage+backup+region+server_costs+os_costs+storage_costs+monthly_costs+install_costs;
			//alert(data_send);
			
			$.ajax({
				type		: "POST",
				cache	: false,
				url		: "/email/",
				data		: data_send,
				success: function(data) {
					$.fancybox(data);
				}
			});
		
			return false;
		});


		

		
		$("#send").click(function(){
			$("#cloud_estimate").submit();
		});
		
		
		//Tooltip 
		
		/*$('.tooltip').mouseover(function() {
			$('.help-info', this).fadeIn('fast');
				
		}).mouseout(function() {
			$('.help-info', this).fadeOut('fast');
		});*/
		
		var tooltipTimeout;
		
		$('.tooltip').mouseover(function() {
			var selected = $(this);
			tooltipTimeout = setTimeout( function() {
				$('.help-info', selected).fadeIn('fast');
			}, 1000 );	
		}).mouseout(function() {
			$('.help-info', this).fadeOut('fast');
			clearTimeout(tooltipTimeout);
		});
		
	
		/* 	END CALCULATOR
		----------------------------------------------------------*/



		/* 	EXPAND SEO TEXT
		----------------------------------------------------------*/
		$('#additional').hide();
		$('#expand').click(function(e){
			e.preventDefault();
			$('#additional').slideToggle('slow');
			$('#expand').toggleClass('open_arrow');
		});

});


//noConflit
jQuery(document).ready(function($) {
  	
	
	/* 	JQUERY TOOLS - HOME PAGE SCROLLABlE
		----------------------------------------------------------*/	
	
		$("#scrollable").scrollable({circular: true, speed: 400}).autoscroll({ autoplay: true, autopause: true, interval: 5000 }).navigator();
		
		
	/* 	JQUERY TOOLS - CONTACT TABS
		----------------------------------------------------------*/
	
		$("ul.tabs").tabs("div.panes > div", {effect: 'fade'});	
			
		var api = $("ul.tabs").data("tabs");

});
