var IE = false;
var iPhone = false;

$(document).ready(function() {
	
	// Browser Version Detection:
	var Browser = {
		Version: function() {
		var version = 999; // we assume a sane browser
		if (navigator.appVersion.indexOf("MSIE") != -1)
			// bah, IE again, lets downgrade version number
			version = parseFloat(navigator.appVersion.split("MSIE")[1]);
			return version;
		}
	}

	if (Browser.Version() <= 8) {
		IE = true;
	} 
	
	if(navigator.platform.indexOf("iPhone") != -1 || navigator.platform.indexOf("iPod") != -1)
		iPhone = true;
	
	// **************************************************************************************************************************
	// GENERAL ACTIONS
	
	// external links
	$("a[rel='external']").click(function() {
		if(!$(this).hasClass('disabled'))
			return !window.open($(this).attr("href"));
	});
	$('.hide-with-js').hide(); // use this class to hide the message "please open this link in new window"
	
	// fade in messages
	$('.successMsg').hide();
	$('.successMsg').fadeIn(1000);
	$('.errorMsg').hide();
	$('.errorMsg').fadeIn(1000);
	$('.warningMsg').hide();
	$('.warningMsg').fadeIn(1000);
	
	// non-clickable links
	$(".disabled, .return-false").click( function() {
		return false;
	});	
	
	// FORMS WITH ANCHOR TAGS:
	$('.form-submitter').parent().each(function () {
		var btn = '<button type="submit" class="hidden">&nbsp;</button>';
		$(this).html($(this).html() + btn);
	});
	$('.form-submitter').click(function() {
		$(this).parents('form').submit();
		return false;
	});
		
	// clear inputs
	clearInputs(".clear-inputs, #login-top input, #post-favor-form input");
	
	// Header error message
	$(".errorMsg-overlay, .errorMsg-after").hide();
	$(".errorMsg-overlay, .errorMsg-after").fadeIn(300, function(){ 
		var elem = $(this);
		setTimeout(function(){
			$(elem).fadeOut(300);
		}, 1200);
	});
	
	// Sliding doors:
	$('.text-input input').focus(function() {
		$(this).css('background-position',  'left -25px');
		$(this).parent().css('background-position',  'right -25px');		
	});
	$('.text-input input').blur(function() {
		$(this).css('background-position',  'left 0px');	
		$(this).parent().css('background-position',  'right 0px');		
	});
	
	// TOP MENU:
	var timeMultiplier = 1;
	if(IE) 
		timeMultiplier = 1;  // no use for it
	$('#main-menu a').hover(function() {	
		if($(this).parent().hasClass('active')) 
			return;
	
		var which = $(this).attr('rel');
		if($('#dropdown-'+which).length == 0)
			return;			
		$('.dropdown[id!="dropdown-'+which+'"]').slideUp(300*timeMultiplier);
			
		var ddW = $('#dropdown-'+which).width();
		var btnW = $(this).width() + parseInt($(this).css('padding-left').replace('px', '')) + parseInt($(this).css('padding-right').replace('px', ''));
		
		$('#dropdown-'+which).
			stop(true, true).
			css('left', ($(this).position().left+(btnW - ddW)/2) + 'px').
			css('top',  ($(this).position().top+$(this).height() + 12) + 'px').
			slideDown(200*timeMultiplier);
	});
	$('.dropdown').hover(function(){}, function() {
		$(this).slideUp(300*timeMultiplier);		
	});
	
	// END GENERAL ACTIONS
	// **************************************************************************************************************************
	
	// iPhone Specifics:
	if(iPhone) {
		$('.green-bullet li').attr('style', 'background-position: 0 9px !important');
	}
	
	
	// Banners Homepage
	nrBannerMax = $("#homepage-banners li").size();
	timer = setTimeout(getNextItem, interval);
	currentBanner = 1;
	$("#homepage-banners li").hide();
	changeImage();
	
	$('#banner-btns a').click(function() {	
		var which = parseInt($(this).attr('id').substr(10));
		if(which == currentBanner)
			return false;
		clearInterval(timer);
		
		$('#banner-btns a').removeClass('active');
		$("#banner-btn"+currentBanner).toggleClass('active');
		
		$("#banner"+currentBanner).fadeOut(900);				
		currentBanner = which;
		changeImage();
		
		timer = setTimeout(getNextItem, interval);
		return false;
	});
	
	// Flash Maps Home, About > Cients, Services > Case:
	var flashvars = {};
	var params = {
		wmode: 'opaque'
	};
	var attributes = {
		styleclass: "clearfix flash-content",
		name:	"flash",
		style: "width: 980px"
	}; 
	swfobject.embedSWF(path + "static/frontend/flash/home_map.swf", "flash-map-home", "980", "449", "9.0.0", false, flashvars, params, attributes);
	swfobject.embedSWF(path + "static/frontend/flash/about_map.swf", "flash-map-about", "980", "442", "9.0.0", false, flashvars, params, attributes);
	swfobject.embedSWF(path + "static/frontend/flash/services_map.swf", "flash-map-case", "980", "442", "9.0.0", false, flashvars, params, attributes);
	
	// Gallery gallery:	
	$('.gallery .image-holder[id!="big1"]').hide();
	$('.caption[id!="caption1"]').hide();
	var numImages = $(".gallery .image-holder").size();
	$('.gallery .next, .gallery .prev, .gallery .wrap-thumb').click(function() {		
		var currentImage = parseInt($('.gallery .image-holder:visible').attr("id").substr(3));	
		var nextImage = 0;
		
		if($(this).hasClass('wrap-thumb')) {
			nextImage = parseInt($(this).attr("id").substr(5));
		} else {
			nextImage = currentImage + ($(this).hasClass('next') ? 1 : -1);
		}
		
		// bounds check:
		if(nextImage < 1 || nextImage > numImages)
			return false;
		
		// disable check:
		$('.gallery .next, .gallery .prev').removeClass('disabled');
		if(nextImage == 1)
			$('.gallery .prev').addClass('disabled');
		if(nextImage == numImages)
			$('.gallery .next').addClass('disabled');			
		
		// do the do:
		$('.gallery .image-holder').hide();
		$('.gallery #big'+nextImage).fadeIn(300);
		
		$('.gallery .wrap-thumb').removeClass('active');
		$('.gallery #small'+nextImage).addClass('active');
		
		$('.caption').hide();
		$('.caption#caption'+nextImage).fadeIn(300);
		
		return false;
	});
	
	// EMPLOYMENT:    
    // Recent companies code:
    $('.company.slide-it').slideUp(0);
    $('.add-company').click(function() {
        $(this).siblings('.company.slide-it:first').slideDown(200).removeClass('slide-it');
        if($(this).siblings('.company.slide-it').length < 1) {
            $(this).hide(0);
        }
        return false;
    });
    
    // Revealer code:
    $('.revealed').slideUp(0);
    $('.checkbox-revealer, .checkbox-concealer').click(function() {
        if($(this).is(':checked') && !$(this).hasClass('checkbox-concealer')) {
            $($(this).attr('href')).slideDown(200).removeClass('hidden');
        } else {
            $($(this).attr('href')).slideUp(200);
        }
    });
    
    // Form opener
	$('.form-opener').siblings('form').hide();
	$('.form-opener').click(function() {
		$(this).siblings('form').slideToggle(200);		
		return false;
	});
    
    // jQuery UI Datepicker:
    $('.datepicker').datepicker({
        maxDate: (new Date()),
        changeMonth: true,
        changeYear: true,
        yearRange: '1900:2050'
    });
	
	// fancybox Pop-ups:	
	$(".popup-flash").fancybox({
		overlayOpacity: 0.6,
		overlayColor: '#000000',
		centerOnScroll: true,
		'transitionIn'		: 'fade',
		'transitionOut'		: 'fade',
		autoDimensions: true
	});
	
	// Calendar styling and stuff:
	$('#calendar .cell:nth-child(7n)').css('border-right', '0 none');
	$('#clear_day_filter').hide();	
    
	// Font replacement
	replaceFonts();	
});

$(document).load(function() {
	//$('#flash-map-home').addClass("clearfix");
	//$('#flash-map-about').css("margin-bottom", '12px');
});

// Font replacement
function replaceFonts() {
	Cufon.replace('#main-menu li a, .button.submenu', { fontFamily: 'Anivers', hover: true});
	
	Cufon.replace('#calendar #title_cell', { fontFamily: 'Anivers', textShadow: '0px -1px #054360'});	
	Cufon.replace('#calendar .week_day', { fontFamily: 'Anivers'});	
	Cufon.replace('#calendar .cell:not(:has(.cell-content))', { fontFamily: 'Myriad Pro'});
	Cufon.replace('#calendar .cell-content', { fontFamily: 'Myriad Pro', hover: true, textShadow: '0px -1px #054360'});
	
	Cufon.replace('.futura, h1, h3, h5, .button.black', { fontFamily: 'Futura', hover: true});
	Cufon.replace('.futura-shadow, h1', { fontFamily: 'Futura', textShadow: '1px 1px white'});
	
	Cufon.replace('.large-font, a.large-font', { fontFamily: 'Lucida Sans Unicode', hover: true});
}


function clearInputs(x) {
	$(x).each(function(i){
		var inputValue = $(this).val();
		var inputTitle = $(this).attr("title");
		
		if (inputValue=="" || inputValue==inputTitle) {
			//alert(inputTitle);
			$(this).focus(function(){ 
				if ($(this).val()==inputValue) {
					$(this).val("");
				}
			});
			$(this).blur(function(){ 
				if ($(this).val()=="") {
					$(this).val(inputValue);
				}
			});
		}
		
	});
	
	
}


// Banner Slideshow
var currentBanner = 1;
var nrBannerMax;
var timer;
var interval = 6000;
function changeImage() {
	$('#banner-btns a').removeClass('active');
	$("#banner-btn"+currentBanner).toggleClass('active');
	
	$("#banner"+currentBanner).fadeIn(1200);
	$("#banner"+currentBanner).css('z-index', '80');
}
function getNextItem() {
	var next;
	if (parseInt(currentBanner)==parseInt(nrBannerMax)) {
		next = 1;
	} else {
		next = currentBanner + 1;
	}
	$("#banner"+currentBanner).fadeOut(900);
	currentBanner = next;
	changeImage();
	clearTimeout(timer);
	timer = setTimeout(getNextItem, interval);
}


// Flash External Interface functions:
function showCasePopup(caseName) {
	$('a#trigger'+caseName).click();
}
	// helper functions for this:
function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    } else {
        return document[movieName];
    }
}
 
function doWhat(value) {
    thisMovie(value).sayWhat();
}

// Ajax:
function get_calendar(id_link) {
	$.ajax({
		url: $('#'+id_link).attr('href'),
		dataType: 'json',
		success: function(data){
			$('#calendar').fadeOut(160, function() {
				$('#calendar-holder').html(data.calendar).fadeIn(260);
				replaceFonts();	
			});			
			$('.entries-wrapper').slideUp(160, function() {
				var entries = '';				
				for(var i=0; i < data.month_news.length; i++) {
					var news = data.month_news[i];
					var border = i+1 < data.month_news.length ? 'border-bottom' : '';
					entries += '<div class="entry '+border+' day'+news.day+'">';
					entries += '	<p class="large-font">' + news.month + ' ' + news.day + '</p>';
					entries += '	<a href="' + news.link + '" rel="external"><strong>' + news.label + '</strong></a>';
					entries += '	<p ><br />' + news.description + '</p>';
					entries += '</div>';
				}
									
				if(entries == '') {
					entries += '<div class="entry">';
					entries += '	<p class="large-font">No entries...</p>';
					entries += '</div>';
				} else {
					entries += '<script type="text/javascript">$("a[rel=\'external\']").click(function() {';
					entries += 'return !window.open($(this).attr("href"));';
					entries += '});';
					entries += '$(".tooltip").tooltipLink();';
				}
				
				$('.entries-wrapper').html(entries).slideDown(260);
			});
			//$('#entries-title').fadeOut(160, function() {
				$('#entries-title').html("Entries for "+data.month+", "+data.year+"")//.fadeIn(300);
				replaceFonts();	
			//});
		}
	});
	return false;
}

function filter_day(day) {
	$('.entries-wrapper .entry').hide();
	$('.entries-wrapper .entry.day'+day).show();
	
	$('#clear_day_filter').show();

	return false;
}

function clear_day_filter() {
	$('.entries-wrapper .entry').show();
	
	$('#clear_day_filter').hide();

	return false;
}

