// JavaScript Document

/**

 * Twit

 *  jQuery Plugin to Display Twitter Tweets on a Blog.

 *  http://code.google.com/p/jquery-twit/

 *

 * Copyright (c) 2009 Yusuke Horie

 *

 * Released under the MIT License:

 * http://www.opensource.org/licenses/mit-license.php

 *

 * Since  : 0.1.0 - 08/26/2009

 * Version: 0.1.0 - 08/26/2009

 */

(function(jQuery){var _i=0;jQuery.fn.twit=function(user,options){if(typeof user!='string')return this;var opts=jQuery.extend({},jQuery.fn.twit.defaults,options),c=jQuery.isFunction(opts.callback)?opts.callback:_callback,url='',params={};opts.user=user;url='http://twitter.com/statuses/user_timeline/'+opts.user+'.json';params.count=opts.count;return this.each(function(i,e){var $e=$(e);if(!$e.hasClass('twit'))$e.addClass('twit');jQuery.ajax({url:url,data:params,dataType:'jsonp',success:function(o){c.apply(this,[(o.results)?o.results:o,e,opts])}})})};jQuery.fn.twit.defaults={user:null,callback:null,icon:true,username:true,text:true,count:200,limit:7,label:'Twitter',title:''};var _callback=function(o,e,opts){var $this=$(e);if(!o||o.length==0||$this.length==0)return false;$this.data('_inc',1);_i++;var username=o[0].user.screen_name,icon=o[0].user.profile_image_url;var h='<div class="twitHeader">'+' <span class="twitLabel">'+opts.label+'</span>&nbsp;&nbsp;'+' <span class="twitTitle">'+opts.title+'</span>'+'</div>';if(opts.icon||opts.username){h+='<div class="twitUser">';if(opts.icon)h+=' <a href="http://twitter.com/'+username+'/">'+'  <img src="'+icon+'" alt="'+username+'" title="'+username+'" style="vertical-align:middle;" />'+' </a>&nbsp;&nbsp;';if(opts.username)h+='<a href="http://twitter.com/'+username+'/">'+username+'</a>';h+='</div>'}h+='<ul class="twitBody" id="twitList'+_i+'">'+_build(o,$this,opts)+'</ul>';$this.html(h);$('#twitList'+_i+' a.twitEntryShow').live('click.twitEntryShow'+_i,function(event){event.preventDefault();var $t=$(this);$t.parent().fadeOut(400,function(){var i=$this.data('_inc');i++;$this.data('_inc',i);if($t.hasClass('twitEntryAll')){$t.die('click.twitEntryShow'+_i);var start=(i*opts.limit)-opts.limit;$(this).after(_build(o,$this,opts,start,o.length)).remove()}else{$(this).after(_build(o,$this,opts)).remove()}})})};var _build=function(o,$t,opts,s,e){var h='',inc=$t.data('_inc'),start=s||(inc*opts.limit)-opts.limit,end=e||((o.length>start+opts.limit)?start+opts.limit:o.length);for(var i=start;i<end;i++){var t=o[i],username=t.user.screen_name,icon=t.user.profile_image_url;h+='<li class="twitEntry">';if(opts.text){var text=t.text.replace(/(https?:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/,function(u){var shortUrl=(u.length>30)?u.substr(0,30)+'...':u;return'<a href="'+u+'">'+shortUrl+'</a>'}).replace(/@([a-zA-Z_]+)/g,'@<a href="http://twitter.com/$1">$1</a>').replace(/(?:^|\s)#([^\s\.\+:!]+)/g,function(a,u){return' <a href="http://twitter.com/search?q='+encodeURIComponent(u)+'">#'+u+'</a>'});h+=' <span>'+text+'</span>'}h+='</li>'}if(o.length>end){h+='<li class="twitNavi">'+'<a href="#" class="twitEntryShow">more</a> &nbsp;/&nbsp;';if(o.length>opts.limit)h+='<a href="#" class="twitEntryShow twitEntryAll">all</a>';h+='</li>'}return h}})(jQuery);





/*!

 * CSS Browser Selector v0.4.0 (Nov 02, 2010)

 * http://rafael.adm.br/css_browser_selector

 */

function css_browser_selector(u){var ua=u.toLowerCase(),is=function(t){return ua.indexOf(t)>-1},g='gecko',w='webkit',s='safari',o='opera',m='mobile',h=document.documentElement,b=[(!(/opera|webtv/i.test(ua))&&/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3.5')?g+' ff3 ff3_5':is('firefox/3.6')?g+' ff3 ff3_6':is('firefox/3')?g+' ff3':is('gecko/')?g:is('opera')?o+(/version\/(\d+)/.test(ua)?' '+o+RegExp.$1:(/opera(\s|\/)(\d+)/.test(ua)?' '+o+RegExp.$2:'')):is('konqueror')?'konqueror':is('blackberry')?m+' blackberry':is('android')?m+' android':is('chrome')?w+' chrome':is('iron')?w+' iron':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?m+' j2me':is('iphone')?m+' iphone':is('ipod')?m+' ipod':is('ipad')?m+' ipad':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win'+(is('windows nt 6.0')?' vista':''):is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent);



/*!

 * (v) Compact labels plugin (v20110124)

 * Takes one option: labelOpacity [default: true] set to false to disable label opacity change on empty input focus

 */

(function($){$.fn.compactize=function(options){var defaults={labelOpacity:true};options=$.extend(defaults,options);return this.each(function(){var label=$(this),input=$('#'+label.attr('for'));input.focus(function(){if(options.labelOpacity){if(input.val()===''){label.css('opacity','0.5');}}else{label.hide();}});input.keydown(function(){label.hide();});input.blur(function(){if(input.val()===''){label.show();if(options.labelOpacity){label.css('opacity',1);}}});window.setTimeout(function(){if(input.val()!==''){label.hide();}},50);});};})(jQuery);



/*!

 * (v) hrefID jQuery extention

 * returns a valid #hash string from link href attribute in Internet Explorer

 */

(function($){$.fn.extend({hrefId:function(){return $(this).attr('href').substr($(this).attr('href').indexOf('#'));}});})(jQuery);



/*!

 * Scripts

 *

 */

jQuery(function($) {

 

    var Engine = {

        utils : {

            links : function(){

                $('a[rel*="external"]').click(function(e){

                    e.preventDefault();

                    window.open($(this).attr('href'));

                });

            },

            mails : function(){

                $('a[href^="mailto:"]').each(function(){

                    var mail = $(this).attr('href').replace('mailto:','');

                    var replaced = mail.replace('/at/','@');

                    $(this).attr('href','mailto:'+replaced);

                    if($(this).text() === mail) {

                        $(this).text(replaced);

                    }

                });

            }

        },

        forms : {

            labels : function() {

                $('#search-form label').compactize();

                $('.form-b label').compactize();

            }

        },

        ui : {

            rotator : function() {

                var 

                options = arguments[0] || {},

                defaults = {

                    interval : 5000,

                    autorotate : true

                };



                options = $.extend(defaults,options);



                $('.showcase-a').each(function(e){

                    var 

                    triggers = $(this).find('.controls a'),

                    tabs = $(this).find('div.tab'),

                    current = 0,

                    interval;



                    tabs.hide().eq(0).show();



                    triggers.each(function(index, item){

                        $(this).data('index',index);

                    });



                    var moveTo = function(pos) {

                        current = pos;

                        tabs.hide().eq(pos).fadeIn();

                        triggers.removeClass('active').eq(pos).addClass('active');

                    };



                    triggers.click(function(e){

                        e.preventDefault();

                        moveTo($(this).data('index'));

                    });



                    //only if autorotate option is on

                    if (options.autorotate) {

                        interval = window.setInterval(function(){

                            //loop back to the first tab

                            var pos = current + 1;



                            if (pos >= tabs.length) {

                                pos = 0;

                            }

                            moveTo(pos);

                        }, options.interval);



                        //clear autorotation when you hover over the rotator

                        $(this).mouseenter(function(){

                            window.clearInterval(interval);

                        });

                    }

                    

                    if(jQuery(".controls li a.active").length < 1){

                        jQuery(".controls li:first a").addClass("active");

                    }

                    

                });

            }

        },

        fixes : {

            enhancements : function() {

                if($.browser.msie && parseInt($.browser.version,10) < 9){

                    $(':last-child:not(cufon)').addClass('last-child');

                    $('#nav > div > ul > li').prepend('<span class="before">|</span>');

                    $('#nav > div > ul > li.selected > a').prepend('<strong class="border">|</strong>');

                    $('#footer ul li').prepend('<span class="before">|</span>');

                }

            }

        },

        

        tweaks : {

            

            activeNav : function(){

                // adds selected state to blog drill down main nav item.

                if(jQuery("body.blog").length > 0){

                    jQuery("li#main-nav-blog").addClass("selected");

                }   

            },

            

            latestTweets : function(){

                         if(location.href.indexOf("worldsecuresystems") != -1){

                              jQuery("div.tweetsContainer, a.addthis_button_tweet").remove();

                         }else{

                              // if we are not secure then run tweets

                              if ($('#tweets').size() === 0) { return;}

                   

                                   $('#tweets').twit('tribevita', {

                                     limit: 5,

                                     icon: false

                                   });    

                         }

                    },

                    

                    

                    faqSlide : function(){

                    // contols faq section / behavior

                    if(jQuery("ul.questions li a").size === 0){ return; }

                    

                       jQuery("ul.questions li a").each(function(){

                             jQuery(this).click(function(){

                             

                                 jQuery(this).parent().find("div.faqAnswer").slideToggle();

                                 jQuery(this).toggleClass("faqBold");

                                     return false;

                     

                             });

                       });   

                    } // faqSlide





            

            

        }// tweaks

    };



    Engine.utils.links();

    Engine.utils.mails();

    Engine.forms.labels();

    Engine.ui.rotator();

    Engine.fixes.enhancements();

    

    Engine.tweaks.activeNav();

    Engine.tweaks.latestTweets();

    Engine.tweaks.faqSlide();

    

});

