document.documentElement.className += 'js_active';
function mycarousel_initCallback(carousel) {
    $('#featuredProjectsNav a').bind('click', function() {
        carousel.scroll($.jcarousel.intval($(this).attr('href')));
		$('#featuredProjectsNav a').removeClass('selected');
		$(this).addClass('selected');
        return false;
    });
}
var noOfFeaturedProjects;
var animation = 1000;
function mycarousel_itemVisibleInCallbackBeforeAnimation(carousel, item, idx, state) {
	setTimeout(function(){
		$('#featuredProjectsNav a').removeClass('selected');
		$('#featuredProjectsNav a:eq('+ parseInt(idx - 1) % noOfFeaturedProjects +')').addClass('selected');
	},animation/4);
};
$(document).ready(function(){
	var a=navigator.userAgent.toLowerCase();$.browser.chrome=/chrome/.test(navigator.userAgent.toLowerCase());if($.browser.msie){$('body').addClass('browserIE');$('body').addClass('browserIE'+$.browser.version.substring(0,1))}if($.browser.chrome){$('body').addClass('browserChrome');a=a.substring(a.indexOf('chrome/')+7);a=a.substring(0,1);$('body').addClass('browserChrome'+a);$.browser.safari=false}if($.browser.safari){$('body').addClass('browserSafari');a=a.substring(a.indexOf('version/')+8);a=a.substring(0,1);$('body').addClass('browserSafari'+a)}if($.browser.mozilla){if(navigator.userAgent.toLowerCase().indexOf('firefox')!=-1){$('body').addClass('browserFirefox');a=a.substring(a.indexOf('firefox/')+8);a=a.substring(0,1);$('body').addClass('browserFirefox'+a)}else{$('body').addClass('browserMozilla')}}if($.browser.opera){$('body').addClass('browserOpera')};
	$('#featuredProjects').before('<div id="featuredProjectsNav"><ul></ul></div>');
	noOfFeaturedProjects = $('#featuredProjects ul li').size();
	$('#featuredProjects ul li').each(function(i){
		$('#featuredProjectsNav ul').append('<li><a href="'+ parseInt(i + 1) +'">&nbsp;</a></li>')
	});
	$('#featuredProjects ul').jcarousel({
            auto: 6,
            scroll: 1,
            animation: animation,
            wrap: 'circular',
			itemVisibleInCallback: {
				onBeforeAnimation: mycarousel_itemVisibleInCallbackBeforeAnimation
			},
			initCallback: mycarousel_initCallback
    });
	var slideAutoRotation = 1, slideAutoRotationDelay = 5, slideAnimationSpeed = 500; slideAutoRotation = slideAutoRotation == 2 ? false : true;
	
	$("#featured").not('.fadeslider, .newsslider').kricordion({
			slides: '.featured',
			animationSpeed: slideAnimationSpeed,
			autorotation: slideAutoRotation,
			autorotationSpeed:slideAutoRotationDelay,
			event: 'mouseover',
			imageShadow:true,
			easing: 'easeOutQuart',
			imageShadowStrength:0.5
	});
	$('input:text').empty_input();
	$('#main').nice_image_preloader({delay:0, callback:removeloader});
	$('.infoMeel').html('<a href="mailto:&#115;&#105;&#120;&#109;&#111; &lt;&#105;&#110;&#102;&#111;&#64;&#115;&#105;&#120;&#109;&#111;&#46;&#099;&#111;&#109;&gt;">&#105;&#110;&#102;&#111;&#64;&#115;&#105;&#120;&#109;&#111;&#46;&#099;&#111;&#109;</a>');
	$('.infoTel').html('+&#51;&#49; &#40;&#48;&#41;&#54; &#52;&#50;&#55; &#49;&#54;&#52; &#48;&#48;');
});

function removeloader(){
	$('#main .preloading_background').removeClass('preloading_background');
	$('.fadeslider .featured').css('backgroundImage','none');
}

(function($){
	$.fn.empty_input = function(options){
		return this.each(function(){
			var currentField = $(this);
			currentField.methods = {
				startingValue:  currentField.val(),
				resetValue: function() {
					var currentValue = currentField.val();
					if(currentField.methods.startingValue == currentValue) currentField.val('');
				},
				restoreValue: function() {
					var currentValue = currentField.val();
					if(currentValue == '') currentField.val(currentField.methods.startingValue);
				}
			};
			currentField.bind('focus',currentField.methods.resetValue);
			currentField.bind('blur',currentField.methods.restoreValue);
		});
	}
})($);
(function($){
	$.fn.nice_image_preloader = function(variables, callback){
		var defaults = {
			fadeInSpeed: 400,
			maxLoops: 10,
			callback: '',
			delay:200
		};
		var options = $.extend(defaults, variables);
		return this.each(function(){
			var container 	= $(this),
				images		= $('img', this).css({opacity:0, visibility:'visible', display:'block'}),
				parent = images.parent(),
				imageCount = images.length,
				interval = '',
				allImages = images ;
			var methods = {
				checkImage: function(){
					images.each(function(i){
						if(this.complete == true) images = images.not(this);
					});
					if(images.length && options.maxLoops >= 0){
						options.maxLoops--;
						setTimeout(methods.checkImage, 500);
					}
					else {
						methods.showImages();
					}
				},
				showImages: function(){
					allImages.each(function(i){
						var currentImage = $(this);
						setTimeout(function(){
							currentImage.animate({opacity:1}, options.fadeInSpeed, function(){
								if(allImages.length == i+1) methods.callback(i);
							});
						},options.delay*(i+1));
					});
				},
				callback: function(){		
					if (variables instanceof Function) { callback = variables; }
					if (callback  instanceof Function) { callback.call(this);  }
					if(options.callback != '') (options.callback)();
				}
			};
			methods.checkImage();
		});
	};
})($);
(function($){
	$.fn.kricordion = function(options){
		var defaults = {
			slides: '>div',
			animationSpeed: 900,
			autorotation: true,
			autorotationSpeed:3,
			easing: 'easeOutQuint',
			event: 'mouseover',
			imageShadow:true,
			imageShadowStrength:0.5,
			fontOpacity: 1,
			backgroundOpacity:1
		};
		var options = $.extend(defaults, options);

		return this.each(function(){
			var slideWrapper 	= $(this),
				slides			= slideWrapper.find(options.slides).css('display','block'),
				slide_count 	= slides.length,
				slide_width		= slideWrapper.width() / slide_count
				expand_slide 	= slides.width(),
				minimized_slide	= (slideWrapper.width() - expand_slide) / (slide_count - 1),
				overlay_modifier = 200 *(1- options.imageShadowStrength),
				excerptWrapper = slideWrapper.find('.feature_excerpt'),
				interval = '',
				current_slide = 0;
			excerptWrapper.wrap('<span class="feature_excerpt"></span>').removeClass('feature_excerpt').addClass('position_excerpt');
			excerptWrapper = slideWrapper.find('.feature_excerpt').css('opacity',options.backgroundOpacity);
			excerptWrapper.equalHeights().find('.position_excerpt').css({display:'block', opacity:0, position:'absolute'});
			var excerptWrapperHeight = excerptWrapper.height();
			slides.each(function(i){
				var this_slide = $(this),
					this_slide_a = this_slide.find('.featureContainer'),
					real_excerpt = this_slide.find('.position_excerpt'),
					real_excerpt_height = real_excerpt.height(),
					slide_heading = this_slide.find('.sliderheading'),
					cloned_heading = slide_heading.clone().appendTo(this_slide_a).addClass('heading_clone').css({opacity:options.fontOpacity, width:slide_width-10}),
					clone_height = cloned_heading.height();
					this_slide.css('backgroundPosition',parseInt(slide_width/2-8) + 'px ' + parseInt((this_slide.height()- excerptWrapperHeight)/2 -8) + 'px');		
					this_slide.data(
					'data', {
						this_slides_position: i * slide_width,
						pos_active_higher: i * minimized_slide,
						pos_active_lower: ((i-1) * minimized_slide) + expand_slide
					});
				this_slide.css({zIndex:i+1, left: i * slide_width, width:slide_width + overlay_modifier});
				if(options.imageShadow) this_slide.find('>.featureContainer').prepend('<span class="fadeout ie6fix"></span>');
			});
			$('#featured').nice_image_preloader({callback:add_functionality});
	
			function add_functionality(){
				if(options.autorotation) interval = setInterval(function() { autorotation(); }, (parseInt(options.autorotationSpeed) * 1000));
				slides.each(function(i){
					var this_slide = $(this),
						real_excerpt = this_slide.find('.position_excerpt'),
						cloned_heading = this_slide.find('.heading_clone');
					this_slide.bind(options.event, function(event, continue_autoslide){
						if(!continue_autoslide){
							clearInterval(interval)
						}
						var objData = this_slide.data( 'data' );
						real_excerpt.stop().animate({opacity:options.fontOpacity},options.animationSpeed, options.easing);
						cloned_heading.stop().animate({opacity:0},options.animationSpeed, options.easing);
				
						this_slide.stop().animate({	width: expand_slide + (overlay_modifier * 1.2),
													left: objData.pos_active_higher},
													options.animationSpeed, options.easing);
						slides.each(function(j){
							if (i !== j){
								var this_slide = $(this),
									real_excerpt = this_slide.find('.position_excerpt'),
									cloned_heading = this_slide.find('.heading_clone'),
									objData = this_slide.data( 'data' ),
									new_pos = objData.pos_active_higher;
							
								if(i < j) new_pos = objData.pos_active_lower;
								this_slide.stop().animate({left: new_pos, width:minimized_slide + overlay_modifier},options.animationSpeed, options.easing);
								real_excerpt.stop().animate({opacity:0},options.animationSpeed, options.easing);
								cloned_heading.stop().animate({opacity:options.fontOpacity},options.animationSpeed, options.easing);
							}
						});
					});
				});
				slideWrapper.bind('mouseleave', function(){
					slides.each(function(i){
						var this_slide = $(this),
							real_excerpt = this_slide.find('.position_excerpt'),
							cloned_heading = this_slide.find('.heading_clone'),
							objData = this_slide.data( 'data' ),
							new_pos = objData.this_slides_position;
					
							this_slide.stop().animate({left: new_pos, width:slide_width + overlay_modifier},options.animationSpeed, options.easing);
							real_excerpt.stop().animate({opacity:0},options.animationSpeed, options.easing);
							cloned_heading.stop().animate({opacity:options.fontOpacity},options.animationSpeed, options.easing);
					});
			
				});
			}
			function autorotation(){
				if(slide_count  == current_slide){
					slideWrapper.trigger('mouseleave');
					current_slide = 0;
				}
				else{
					slides.filter(':eq('+current_slide+')').trigger(options.event,[true]);
					current_slide ++;
				}
			}
		});
	};
})($);
$.fn.equalHeights = function() {
    return this.height(Math.max.apply(null,
        this.map(function() {
           return $(this).height()
        }).get()
    ));
};
$.easing['jswing'] = $.easing['swing'];

$.extend( $.easing,
{
	def: 'easeOutQuad',
	swing: function (x, t, b, c, d) {
		return $.easing[$.easing.def](x, t, b, c, d);
	},
	easeInQuad: function (x, t, b, c, d) {
		return c*(t/=d)*t + b;
	},
	easeOutQuad: function (x, t, b, c, d) {
		return -c *(t/=d)*(t-2) + b;
	},
	easeInOutQuad: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t + b;
		return -c/2 * ((--t)*(t-2) - 1) + b;
	},
	easeInCubic: function (x, t, b, c, d) {
		return c*(t/=d)*t*t + b;
	},
	easeOutCubic: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t + 1) + b;
	},
	easeInOutCubic: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t + b;
		return c/2*((t-=2)*t*t + 2) + b;
	},
	easeInQuart: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t + b;
	},
	easeOutQuart: function (x, t, b, c, d) {
		return -c * ((t=t/d-1)*t*t*t - 1) + b;
	},
	easeInOutQuart: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;
	},
	easeInQuint: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t*t + b;
	},
	easeOutQuint: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t*t*t + 1) + b;
	},
	easeInOutQuint: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
		return c/2*((t-=2)*t*t*t*t + 2) + b;
	},
	easeInSine: function (x, t, b, c, d) {
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
	},
	easeOutSine: function (x, t, b, c, d) {
		return c * Math.sin(t/d * (Math.PI/2)) + b;
	},
	easeInOutSine: function (x, t, b, c, d) {
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
	},
	easeInExpo: function (x, t, b, c, d) {
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
	},
	easeOutExpo: function (x, t, b, c, d) {
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
	},
	easeInOutExpo: function (x, t, b, c, d) {
		if (t==0) return b;
		if (t==d) return b+c;
		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
	},
	easeInCirc: function (x, t, b, c, d) {
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
	},
	easeOutCirc: function (x, t, b, c, d) {
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
	},
	easeInOutCirc: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
	},
	easeInElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
	},
	easeOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
	},
	easeInOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
	},
	easeInBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*(t/=d)*t*((s+1)*t - s) + b;
	},
	easeOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
	},
	easeInOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
	},
	easeInBounce: function (x, t, b, c, d) {
		return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b;
	},
	easeOutBounce: function (x, t, b, c, d) {
		if ((t/=d) < (1/2.75)) {
			return c*(7.5625*t*t) + b;
		} else if (t < (2/2.75)) {
			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
		} else if (t < (2.5/2.75)) {
			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
		} else {
			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
		}
	},
	easeInOutBounce: function (x, t, b, c, d) {
		if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
		return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
	}
});
