var $j = jQuery.noConflict();

function isTooLightYIQ(hexcolor){
	var r = parseInt(hexcolor.substr(0,2),16);
	var g = parseInt(hexcolor.substr(2,2),16);
	var b = parseInt(hexcolor.substr(4,2),16);
	var yiq = ((r*299)+(g*587)+(b*114))/1000;
	return yiq >= 128;
}

$j.fn.getIndex = function(){
	var $jp=$j(this).parent().children();
    return $jp.index(this);
}

this.imagePreview = function(){	
	/* CONFIG */
		
		xOffset = 0;
		yOffset = 0;
		
		// these 2 variable determine popup's distance from the cursor
		// you might want to adjust to get the right result
		
	/* END CONFIG */
	$j("a.preview").hover(function(e){
		this.t = this.title;
		this.title = "";	
		var c = (this.t != "") ? "<br/>" + this.t : "";
		$j("#option_wrapper").append("<p id='preview'><img src='"+ this.name +"' alt='Image preview' style='z-index:999999' />"+ c +"</p>");								 
		$j("#preview")
			.css("top",(e.pageY - 50) + "px")
			.css("left",(e.pageX - 20) + "px")
			.fadeIn("fast");						
    },
	function(){
		this.title = this.t;	
		$j("#preview").remove()
    });		
    
    $j("a.preview").mousemove(function(e){
		$j("#preview")
			.css("top",(e.pageY - 50) + "px")
			.css("left",(e.pageX - 20) + "px");
	});	
};

$j.fn.setNav = function(){
	$j('#main_menu li ul').css({display: 'none'});

	$j('#main_menu li').each(function()
	{	
		var $jsublist = $j(this).find('ul:first');
		
		$j(this).hover(function()
		{	
			position = $j(this).position();
			
			if($j(this).parents().attr('class') == 'sub-menu')
			{	
				$jsublist.css({top: position.top-10+'px', paddingTop: '10px', paddingBottom: '5px'});
				$jsublist.stop().css({height:'auto', display:'none'}).show();
			}
			else
			{
				$jsublist.stop().css({overflow: 'visible', height:'auto', display:'none'}).show();
				
				if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version < 8)
 				{
 					hackMargin = -$j(this).width()-2;
					$jsublist.css({marginLeft: hackMargin+'px'});
				}
			}
		},
		function()
		{	
			$jsublist.stop().css({height:'auto', display:'none'}).slideUp(200);	
		});

	});
	
	$j('#main_menu li').each(function()
	{
		
		$j(this).hover(function()
		{	
			$j(this).find('a:first').addClass('hover');
		},
		function()
		{	
			$j(this).find('a:first').removeClass('hover');
		});	
		
	});
	
	$j('#menu_wrapper .nav ul li ul').css({display: 'none'});

	$j('#menu_wrapper .nav ul li').each(function()
	{
		
		var $jsublist = $j(this).find('ul:first');
		
		$j(this).hover(function()
		{	
			if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version < 8)
 			{
 				$jsublist.css({top: position.top-10+'px', paddingTop: '10px', paddingBottom: '5px'});		
 			}
 			else
 			{
 				$jsublist.css({top: position.top-10+'px', paddingTop: '10px', paddingBottom: '5px'});
 			}
		
			$jsublist.stop().css({height:'auto', display:'none'}).show();	
		},
		function()
		{	
			$jsublist.stop().css({height:'auto', display:'none'}).slideUp(200);	
		});		
		
	});
	
	$j('#menu_wrapper .nav ul li').each(function()
	{
		
		$j(this).hover(function()
		{	
			$j(this).find('a:first').addClass('hover');
		},
		function()
		{	
			$j(this).find('a:first').removeClass('hover');
		});	
		
	});
}

$j(document).ready(function(){ 

	$j(document).setNav();
	
	$j('.img_frame').fancybox({ 
		padding: 0,
		overlayColor: '#000',
		transitionIn: 'fade',
		transitionOut: 'fade',
		overlayOpacity: .7
	});
	
	$j('.pp_gallery a').fancybox({ 
		padding: 0,
		overlayColor: '#000', 
		transitionIn: 'fade',
		transitionOut: 'fade',
		overlayOpacity: .7
	});
	
	$j('.flickr li a').fancybox({ 
		padding: 0,
		overlayColor: '#000', 
		transitionIn: 'fade',
		transitionOut: 'fade',
		overlayOpacity: .7
	});
	
	$j('.lightbox').fancybox({ 
		padding: 0,
		overlayColor: '#000', 
		transitionIn: 'fade',
		transitionOut: 'fade',
		overlayOpacity: .7
	});
	
	$j('.lightbox_youtube').fancybox({ 
		padding: 0,
		overlayColor: '#000', 
		transitionIn: 'fade',
		transitionOut: 'fade',
		overlayOpacity: .7
	});
	
	$j('.lightbox_vimeo').fancybox({ 
		padding: 0,
		overlayColor: '#000', 
		transitionIn: 'fade',
		transitionOut: 'fade',
		overlayOpacity: .7
	});
	
	$j('.lightbox_dailymotion').fancybox({ 
		padding: 0,
		overlayColor: '#000', 
		transitionIn: 'fade',
		transitionOut: 'fade',
		overlayOpacity: .7
	});
	
	$j('.lightbox_iframe').fancybox({ 
		padding: 0,
		type: 'iframe',
		overlayColor: '#000', 
		transitionIn: 'fade',
		transitionOut: 'fade',
		overlayOpacity: .7,
		width: 900,
		height: 650
	});
	
	$j('a[rel=gallery]').fancybox({ 
		padding: 0,
		overlayColor: '#000', 
		overlayOpacity: .7
	});
	
	if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version < 8)
	{
		var zIndexNumber = 1000;
		$j('div').each(function() {
			$j(this).css('zIndex', zIndexNumber);
			zIndexNumber -= 10;
		});

		$j('#thumbNav').css('zIndex', 1000);
		$j('#thumbLeftNav').css('zIndex', 1000);
		$j('#thumbRightNav').css('zIndex', 1000);
		$j('#fancybox-wrap').css('zIndex', 1001);
		$j('#fancybox-overlay').css('zIndex', 1000);
	}
	
	$j(".pp_accordion_close").accordion({ active: 1, collapsible: true, clearStyle: true });
	
	$j(".pp_accordion").accordion({ active: 0, collapsible: true, clearStyle: true });
	
	$j(".tabs").tabs();
	
	$j('.tipsy').tipsy({fade: true, gravity: 's'});
	
	$j('.tipsy_html').tipsy({fade: true, gravity: 'n', html: true});
	
	$j('.social_wrapper li a').tipsy({fade: false, gravity: 'n'});
	
	var footerLi = 0;
	$j('#footer .sidebar_widget li.widget').each(function()
	{
		footerLi++;
		
		if(footerLi%$j('#pp_footer_style').val() == 0)
		{ 
			$j(this).addClass('last');
		}
	});
	
	VideoJS.setupAllWhenReady({
      controlsBelow: false, // Display control bar below video instead of in front of
      controlsHiding: true, // Hide controls when mouse is not over the video
      defaultVolume: 0.75, // Will be overridden by user's last volume if available
      flashVersion: 9, // Required flash version for fallback
      linksHiding: true // Hide download links when video is supported
    });
	
	$j('.html5_wrapper').hide();
	
	$j('#searchform input[type=text]').attr('title', 'Enter keywords...');
	
	$j('input[title!=""]').hint();
	
	$j('textarea[title!=""]').hint();
	
	$j('.portfolio_title').tipsy({fade: true, gravity: 's'});
	
	$j('a.portfolio_image.gallery').tipsy({fade: true, gravity: 's'});
	
	$j('.tagline').css('visibility', 'visible');
	
	// Clone applications to get a second collection
	var $jdata = $j(".portfolio-content").clone();
	var pp_portfolio_sorting = $j('#pp_portfolio_sorting').val();

	$j('.portfolio-main li').click(function(e) {
	
		$j(".filter li").removeClass("active");	
		// Use the last category class as the category to filter by. This means that multiple categories are not supported (yet)
		var filterClass=$j(this).attr('class').split(' ').slice(-1)[0];
		
		if (filterClass == 'all-projects') {
			var $jfilteredData = $jdata.find('.project');
		} else {
			var $jfilteredData = $jdata.find('.project[data-type~=' + filterClass + ']');
		}
		$j(".portfolio-content").quicksand($jfilteredData, {
			duration: 400,
			easing: pp_portfolio_sorting,
			useScaling: true,
    		enhancement: function() {
    			$j('.img_frame').fancybox({ 
					padding: 10,
					overlayColor: '#000',
					transitionIn: 'fade',
					transitionOut: 'fade',
					overlayOpacity: .7
				});
				
				$j('.lightbox_youtube').fancybox({ 
					padding: 10,
					overlayColor: '#000', 
					transitionIn: 'fade',
					transitionOut: 'fade',
					overlayOpacity: .7
				});
				
				$j('.lightbox_vimeo').fancybox({ 
					padding: 10,
					overlayColor: '#000', 
					transitionIn: 'fade',
					transitionOut: 'fade',
					overlayOpacity: .7
				});
				
				$j('.portfolio200_shadow').hover(function(){ 
					$j(this).find('.portfolio200_overlay').animate({ opacity: 0.7 }, 400);
				},
				function()
				{	
					$j(this).find('.portfolio200_overlay').animate({ opacity: 0 }, 400);
				});
				
				$j('.portfolio642_shadow').hover(function(){ 
					$j(this).find('.portfolio642_overlay').animate({ opacity: 0.7 }, 400);
				},
				function()
				{	
					$j(this).find('.portfolio642_overlay').animate({ opacity: 0 }, 400);
				});
				
				$j('.portfolio480_shadow').hover(function(){ 
					$j(this).find('.portfolio480_overlay').animate({ opacity: 0.7 }, 400);
				},
				function()
				{	
					$j(this).find('.portfolio480_overlay').animate({ opacity: 0 }, 400);
				});
				
				$j('.portfolio450_shadow').hover(function(){ 
					$j(this).find('.portfolio450_overlay').animate({ opacity: 0.7 }, 400);
				},
				function()
				{	
					$j(this).find('.portfolio450_overlay').animate({ opacity: 0 }, 400);
				});
				
				$j('.portfolio220_shadow').hover(function(){ 
					$j(this).find('.portfolio220_overlay').animate({ opacity: 0.7 }, 400);
				},
				function()
				{	
					$j(this).find('.portfolio220_overlay').animate({ opacity: 0 }, 400);
				});
				
				$j('.portfolio295_shadow').hover(function(){ 
					$j(this).find('.portfolio295_overlay').animate({ opacity: 0.7 }, 400);
				},
				function()
				{	
					$j(this).find('.portfolio295_overlay').animate({ opacity: 0 }, 400);
				});
				
				$j('.portfolio180_shadow').hover(function(){ 
					$j(this).find('.portfolio180_overlay').animate({ opacity: 0.7 }, 400);
				},
				function()
				{	
					$j(this).find('.portfolio180_overlay').animate({ opacity: 0 }, 400);
				});
    		}
		});	
		$j(this).addClass("active"); 
					
		return false;
	});
		
	$j.validator.setDefaults({
		submitHandler: function() { 
		    var actionUrl = $j('#contact_form').attr('action');
		    
		    $j.ajax({
  		    	type: 'GET',
  		    	url: actionUrl,
  		    	data: $j('#contact_form').serialize(),
  		    	success: function(msg){
  		    		$j('#contact_form').hide();
  		    		$j('#reponse_msg').html(msg);
  		    	}
		    });
		    
		    return false;
		}
	});
		    
		
	$j('#contact_form').validate({
		rules: {
		    your_name: "required",
		    email: {
		    	required: true,
		    	email: true
		    },
		    message: "required"
		},
		messages: {
		    your_name: "Please enter your name",
		    email: "Please enter a valid email address",
		    agree: "Please enter some message"
		}
	});	
	
	$j('#galleria').galleria({
        width:960,
        height:500,
        transition: 'fade'
    });
    
    $j('pre').each(function()
	{
		preContent = $j(this).html();
	});
 	
 	$j(".reflection").reflect();
 	
 	$j('#main_menu > li a').not("ul li ul a").each(function()
	{
		if($j(this).attr('title'))
		{
			$j(this).append('<span>'+$j(this).attr('title')+'</span>');
			$j(this).removeAttr('title');
		}
	});
	
	$j('.portfolio200_shadow').hover(function(){ 
		$j(this).find('.portfolio200_overlay').animate({ opacity: 0.7 }, 400);
	},
	function()
	{	
		$j(this).find('.portfolio200_overlay').animate({ opacity: 0 }, 400);
	});
	
	$j('.portfolio642_shadow').hover(function(){ 
		$j(this).find('.portfolio642_overlay').animate({ opacity: 0.7 }, 400);
	},
	function()
	{	
		$j(this).find('.portfolio642_overlay').animate({ opacity: 0 }, 400);
	});
	
	$j('.portfolio480_shadow').hover(function(){ 
		$j(this).find('.portfolio480_overlay').animate({ opacity: 0.7 }, 400);
	},
	function()
	{	
		$j(this).find('.portfolio480_overlay').animate({ opacity: 0 }, 400);
	});
	
	$j('.portfolio450_shadow').hover(function(){ 
		$j(this).find('.portfolio450_overlay').animate({ opacity: 0.7 }, 400);
	},
	function()
	{	
		$j(this).find('.portfolio450_overlay').animate({ opacity: 0 }, 400);
	});
	
	$j('.portfolio220_shadow').hover(function(){ 
		$j(this).find('.portfolio220_overlay').animate({ opacity: 0.7 }, 400);
	},
	function()
	{	
		$j(this).find('.portfolio220_overlay').animate({ opacity: 0 }, 400);
	});
	
	$j('.portfolio295_shadow').hover(function(){ 
		$j(this).find('.portfolio295_overlay').animate({ opacity: 0.7 }, 400);
	},
	function()
	{	
		$j(this).find('.portfolio295_overlay').animate({ opacity: 0 }, 400);
	});
	
	$j('.portfolio180_shadow').hover(function(){ 
		$j(this).find('.portfolio180_overlay').animate({ opacity: 0.7 }, 400);
	},
	function()
	{	
		$j(this).find('.portfolio180_overlay').animate({ opacity: 0 }, 400);
	});
	
	$j('.post_shadow_link').hover(function(){ 
		$j(this).find('.post_shadow_overlay').animate({ opacity: 0.7 }, 400);
	},
	function()
	{	
		$j(this).find('.post_shadow_overlay').animate({ opacity: 0 }, 400);
	});
	
	$j('#option_btn').click(
    	function() {
    		if($j('#option_wrapper').css('left') != '0px')
    		{
 				$j('#option_wrapper').animate({"left": "0px"}, { duration: 300 });
	 			$j(this).animate({"left": "240px"}, { duration: 300 });
	 		}
	 		else
	 		{
	 			$j('#option_wrapper').animate({"left": "-245px"}, { duration: 300 });
    			$j('#option_btn').animate({"left": "0px"}, { duration: 300 });
	 		}
    	}
    );
    
    $j('#bg_header_preview').ColorPicker({
		color: $j('#pp_header_bg').val(),
		onShow: function (colpkr) {
			$j(colpkr).fadeIn(500);
			return false;
		},
		onHide: function (colpkr) { 
			$j.ajax({
  				type: 'GET',
  				url: $j('#form_option').attr('action'),
  				data: 'pp_header_bg='+$j('#bg_header_preview').css('backgroundColor')
			});
			
			$j(colpkr).fadeOut(500);
			return false;
		},
		onChange: function (hsb, hex, rgb) {
			$j('#bg_header_preview').css('backgroundColor', '#' + hex);
			$j('#header_wrapper').css('backgroundColor', '#' + hex);
		}
	});
	
	$j('#pp_bg_pattern').change(function(){ 
 		pp_pattern = $j(this).val();
 	
 		$j.ajax({
  			type: 'GET',
  			url: $j('#form_option').attr('action'),
  			data: 'pp_bg_pattern='+$j(this).val(),
  			success: function(){
   				if(pp_pattern == '')
				{
					location.href = location.href;
				}
  			}
		});
		
		$j('#header_pattern').attr('class', '');
		$j('#header_pattern').addClass($j(this).val());
		
 	});
 	
 	$j("#pp_font").change(function(){
	    $j("#pp_font_family").attr('value', $j("#pp_font option:selected").attr('data-family'));
	
	    var ppCufonFont = 'http://fonts.googleapis.com/css?family='+$j(this).attr('value');
	    $j('#google_fonts-css').attr('href', ppCufonFont);
	    
	    $j.ajax({
  			type: 'GET',
  			url: $j('#form_option').attr('action'),
  			data: 'pp_font='+$j("#pp_font option:selected").attr('value')+'&pp_font_family='+$j("#pp_font option:selected").attr('data-family'),
  			success: function(){
   				if(pp_pattern == '')
				{
					location.href = location.href;
				}
  			}
		});
	    
	    if($j("#pp_font option:selected").attr('data-family') != '')
	    {
	    	$j('h1, h2, h3, h4, h5, h6, .tagline_text').css('font-family', '"'+$j("#pp_font option:selected").attr('data-family')+'"');
	    }
	    else
	    {
	    	$j('h1, h2, h3, h4, h5, h6, .tagline_text').css('font-family', 'ColabReg');
	    }
	});
	
	imagePreview();
});
