// jquery metadata
(function($) {

$.extend({
	metadata : {
		defaults : {
			type: 'class',
			name: 'metadata',
			cre: /({.*})/,
			single: 'metadata'
		},
		setType: function( type, name ){
			this.defaults.type = type;
			this.defaults.name = name;
		},
		get: function( elem, opts ){
			var settings = $.extend({},this.defaults,opts);
			// check for empty string in single property
			if ( !settings.single.length ) settings.single = 'metadata';
			
			var data = $.data(elem, settings.single);
			// returned cached data if it already exists
			if ( data ) return data;
			
			data = "{}";
			
			if ( settings.type == "class" ) {
				var m = settings.cre.exec( elem.className );
				if ( m )
					data = m[1];
			} else if ( settings.type == "elem" ) {
				if( !elem.getElementsByTagName )
					return undefined;
				var e = elem.getElementsByTagName(settings.name);
				if ( e.length )
					data = $.trim(e[0].innerHTML);
			} else if ( elem.getAttribute != undefined ) {
				var attr = elem.getAttribute( settings.name );
				if ( attr )
					data = attr;
			}
			
			if ( data.indexOf( '{' ) <0 )
			data = "{" + data + "}";
			
			data = eval("(" + data + ")");
			
			$.data( elem, settings.single, data );
			return data;
		}
	}
});

// Returns the metadata object for the first member of the jQuery object.
$.fn.metadata = function( opts ){
	return $.metadata.get( this[0], opts );
};

})(jQuery);


$(document).ready(function() {	
	
	// tabs and its settings
	$(".hometab-content").hide();
	$("ul.hometabs li:first").addClass("selected").show();
	$(".hometab-content:first").show();

	$("ul.hometabs li").click(function() {
		$("ul.hometabs li").removeClass("selected");
		$(this).addClass("selected");
		$(".hometab-content").hide();
		var activeTab = $(this).find("a").attr("href");
		//var activeTab = $(this).find("a").get(0).hash;
		$(activeTab).fadeIn();
		return false;
	});
	 


	/* moreless */
	var origheight = 75;
	var moreText = "[ + more ]";
	var lessText = "[ - less ]";
	$(".morelesslink").text(moreText); // the more less link
	$(".morelesslink").toggle(
	  function() {
		  $(this).prev('.moreless-block').css('height', 'auto').css('overflow', 'visible');
		  $(this).text(lessText);
	  }, function() {
		  $(this).prev('.moreless-block').css('height', origheight).css('overflow', 'hidden');
		  $(this).text(moreText);
	 });
	 
	 
	 // jquery validation plugin
	$.metadata.setType("attr", "validate");
	$("#quoteForm").validate();
	$("#contactForm").validate();

	
	// jquery colorbox
	$("a[rel='fancy-image']").colorbox({
									   opacity:0.70,
									   width: '90%'
									   });
	$("a[rel='website-thumb']").colorbox({
									   opacity:0.70,
									   width: '90%'
									   });
	$("a[rel='template-thumb']").colorbox({
									   opacity:0.70,
									   width: '90%'
									   });
	$(".confo").colorbox({width:"540", height:"75%", iframe:true,onComplete:function(){$("#modalcontactForm").validate();}});
	//$(".confo").colorbox({width:"500", inline:true, href:"#inline_contact"});
  

});


/**
* hoverIntent r5 
* @author    Brian Cherne <brian@cherne.net>
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);

// activate hoverintent for top menu 
// delay for megamenu with hoverIntent
//<![CDATA[
$(document).ready(function() { 
  
  function addMega(){
   $(this).addClass("onhover");
  }

  function removeMega(){
    $(this).removeClass("onhover");
  }

  var megaConfig = {
    interval: 50,
    sensitivity: 10,
    over: addMega,
    timeout: 300,
    out: removeMega
  };
  
   $("#topnav li").hoverIntent(megaConfig);
      
});
//]]>



// menu stay on top
$(function(){
	
	var menu = $('#topnav-inner-wrapper'),
		pos = menu.offset();
		
		$(window).scroll(function(){			
			
			if($(this).scrollTop() > pos.top+menu.height() && menu.hasClass('default')){
				menu.fadeOut('fast', function(){
					$(this).removeClass('default').addClass('fixed').fadeIn('fast');
				});
			} else if($(this).scrollTop() <= pos.top && menu.hasClass('fixed')){
				menu.fadeOut('fast', function(){
					$(this).removeClass('fixed').addClass('default').fadeIn('normal');
				});
			}
		});

});



// stats
function encode64(inp){
var key="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var chr1,chr2,chr3,enc3,enc4,i=0,out="";
while(i<inp.length){
chr1=inp.charCodeAt(i++);if(chr1>127) chr1=88;
chr2=inp.charCodeAt(i++);if(chr2>127) chr2=88;
chr3=inp.charCodeAt(i++);if(chr3>127) chr3=88;
if(isNaN(chr3)) {enc4=64;chr3=0;} else enc4=chr3&63;
if(isNaN(chr2)) {enc3=64;chr2=0;} else enc3=((chr2<<2)|(chr3>>6))&63;
out+=key.charAt((chr1>>2)&63)+key.charAt(((chr1<<4)|(chr2>>4))&63)+key.charAt(enc3)+key.charAt(enc4);
}
return encodeURIComponent(out);
}

function stats(sid){
var referer=encode64(document.referrer);
var thispage=encode64(window.location.pathname+location.search);
var date=new Date();
var time=date.getTime();
var resolution= screen.width + "x" + screen.height;
document.writeln("<img src=\"http://foliopages.com/stats/count.php?sid="+sid+"&p="+thispage+"&r="+referer+"&t="+time+"&res="+resolution+"\" alt=\"\" border=\"0\" />\n");
}
