var galleryItems = 0;
var galleryCurrent = 1;
var galleryJump = 0;
var galleryReadMore = 0;
var galleryTitleTimeout = 0;
var followTitle = 'undefined';

function showFilterInIE() {
    jQuery.each(jQuery.browser, function (d, c) {
        if (jQuery.browser.msie && parseInt(jQuery.browser.version.substr(0, 1), 10) <= 7) {
            $("fieldset").css("display", "block")
        }
    })
}
function hideFilterInIE() {
    jQuery.each(jQuery.browser, function (d, c) {
        if (jQuery.browser.msie && parseInt(jQuery.browser.version.substr(0, 1), 10) <= 7) {
            $("fieldset").css("display", "none")
        }
    })
}
function slideUpCallback() {
    hideFilterInIE()
    if(Math.abs($(window).scrollTop()) > 40){
		$("#filterLogo:hidden").css('opacity',0).show().animate({opacity:1}, 250);
		$("#filter").stop().animate({opacity:.87});
	}else{
		$("#filterLogo").stop().css('opacity',0).hide();
	}
}
function slideDownCallback() {
    showFilterInIE()
}
function closeGallery() {
    $("#gallery").css("display", "none");
    $("#entry").css("display", "block");
    $("#jsBackBtn").css("display", "block")
}
function galleryNext() {
    if (galleryTitleTimeout) {
        clearTimeout(galleryTitleTimeout)
    }
    for (var b = 1; b <= galleryItems; b++) {
        $("#gallery-slide-" + b).css("display", "none")
    }
    if (galleryItems > 0 && galleryCurrent < galleryItems) {
        galleryCurrent = galleryCurrent + 1;
        $("#galleryLeft").css("display", "block");
        if (galleryJump && galleryCurrent == (galleryItems)) {
            $("#galleryRight").css("display", "none")
        }
    } else {
        if (!galleryJump) {
            galleryCurrent = 1;
            closeGallery()
        } else {
            galleryCurrent = 1
        }
    }
    $("#galleryLabel").text(galleryCurrent + "/" + galleryItems);
    $("#gallery-slide-" + galleryCurrent).css("display", "block");
    $("#galleryTitle").css("display", "none");
    return false
}
function galleryPrevious() {
    if (galleryTitleTimeout) {
        clearTimeout(galleryTitleTimeout)
    }
    for (var b = 1; b <= galleryItems; b++) {
        $("#gallery-slide-" + b).css("display", "none")
    }
    if (galleryItems > 0 && galleryCurrent > 1) {
        galleryCurrent = galleryCurrent - 1;
        $("#galleryRight").css("display", "block");
        if (galleryCurrent == 1) {
            $("#galleryLeft").css("display", "none")
        }
    } else {
        galleryCurrent = galleryItems
    }
    $("#galleryLabel").text(galleryCurrent + "/" + galleryItems);
    $("#gallery-slide-" + (galleryCurrent)).css("display", "block");
    $("#galleryTitle").css("display", "none");
    return false
}
function filterSubmit(a) {
    a("#filterForm form").submit()
}
$(document).ready(function () {
    var k = $("#footerFilter");
    var m = $("#filter");
    var fh = $('#filterHeader').addClass("closed");
    k.css("display", "none");
    $("#filterForm").append(k);
    $("#filter input").customInput();
    k.slideUp(0);
    if(Math.abs($(window).scrollTop()) > 40){
    	$("#filterLogo").css('opacity',1).show();
    }else{
    	$("#filterLogo").css('opacity',0).hide();
    }
	
    m.removeClass("none").addClass("closed").css({"z-index":"2","position":"fixed","top":"0px"});
    $("body").addClass("js");
    
    fh.css({position:'fixed','z-index':3,width:'100%','padding-right':'30px'});
    
    //$("#breadcrumb").append('<div id="dscroll"></div>');
    
    $(window).scroll(function(){
		//$('#dscroll').html($(window).scrollTop());
		if($(window).scrollTop() != 0){
			if(Math.abs($(window).scrollTop()) > 40){
				$("#filterLogo:hidden").css('opacity',0).show().animate({opacity:1}, 250);
			}else{
				$(".closed #filterLogo").stop().css('opacity',0).hide();
			}
			//$("#filter.closed").css('opacity', .87);
			$("#filter.closed").stop().animate({opacity:.87});
		}else{
			$(".closed #filterLogo").stop().css('opacity',0).hide();
			//m.css('opacity', 1);
			m.stop().animate({opacity:1});
		}
    });
    
    $("#filterGoodsButton input").click(function (b) {
        b.preventDefault();
        var a = new Array();
        $("#filterCheckboxes input:checked").each(function (c, d) {
            a.push($("label[for='" + $(d).attr("id") + "']").html())
        });
        a = a.join(", ");
        filterizeEvent(a);
        setTimeout("filterSubmit($)", 100);
        return false
    });
    $("#filterButton a").each(function(b,a){
        $(a).addClass("filterButton");
        $(a).click(function () {
            if (m) {
                if (m.hasClass("open")) {
                    filterEvent("Close");
                    hideFilterInIE();
                    k.slideUp("slow", slideUpCallback);
                    m.addClass("closed");
                    fh.addClass("closed");
                    m.removeClass("open");
                    fh.removeClass("open")
                } else {
                	m.css('opacity', 1).addClass("open").removeClass("closed");
                	$("#filterLogo:hidden").css('opacity',0).show().animate({opacity:1}, 200);
                    filterEvent("Open");
                    hideFilterInIE();
                    k.slideDown("slow", slideDownCallback);
                    fh.addClass("open");
                    fh.removeClass("closed");
                    if ($.browser.msie && $.browser.version.substr(0, 1) > 8) {
                    	$('#filterLogo').css('padding-top','7px');
                    	$('#filterButton').css('padding-top','3px');
                    	fh.children().css('background-color','transparent9');
                    	fh.css('border','1px solid transparent9');
                    }
                }
            }
        })
    });
    var l = $("#header #s");
    $("#header #searchsubmit").css("display", "none");
    if (l.size() > 0 && l.attr("value").length === 0) {
        l.attr("value", "SEARCH SITE")
    }
    l.focus(function () {
        var a = l.attr("value") + "";
        if (a == "SEARCH SITE") {
            $("#container #header .s").attr("value", "")
        }
    });
    l.blur(function () {
        var a = l.attr("value") + "";
        if (a == "") {
            l.attr("value", "SEARCH SITE")
        }
    });
    $(function () {
        l.keypress(function (a) {
            if ((a.which && a.which == 13) || (a.keyCode && a.keyCode == 13)) {
                $("#header #searchform").submit();
                return false
            } else {
                return true
            }
        })
    });
    if ($(".white-paper")) {
        $("#whitePaperEmail a").click(function (a) {
            a.preventDefault();
            var b = $("title").html().substring(0, $("title").html().indexOf("|")).toLowerCase().replace(/ +/g, "-");
            b = b.replace(/([^a-z0-9\- ])|(-$)/ig, "");
            b = b.replace("--hiebing", "");
            return trackOutboundPageview("white-paper-click-" + b + "/", $(this).attr("href"))
        })
    }
    $(".cardWrapper").cardHover();
    var o = $(".genericBtn");
    o.css("cursor", "pointer");
    o.click(function () {
        if ($(this).find("div a").size() > 0) {
            window.location = $(this).find("div a").attr("href")
        } else {
            if ($(this).find("div input").size() > 0) {
                $("#subForm").submit()
            }
        }
        return false
    });
    $(".back #main #entry").prepend('<div id="jsBackBtn"><a href="javascript:history.go(-1);"></a></div>');
    $("#integratedStory").prepend('<div id="jsBackBtn"><a href="javascript:history.go(-1);"></a></div>');
    var h = $("#gallery");
    var p = $("#main");
    if (h.size() > 0) {
        $("#entry").css("display", "block");
        h.css("display", "none");
        p.append(h);
        p.append('<div class="break"></div>');
        if (($("#main #entry img:eq(0)").size() > 0) !== true) {
            galleryJump = 1;
            $("#entry").append('<div id="galleryTitle"></div>');
            $("#content h1").remove().appendTo("#galleryTitle");
            $("#content h2").remove().appendTo("#galleryTitle");
            if ($("#content").size() > 0) {
                galleryReadMore = 1
            }
        }
        h.customGallery();
        if (galleryItems > 0) {
            if ($(".galleryDesc").size() > 0) {
                $(".galleryDesc").slideUp(0);
                $(".galleryDesc").css("display", "none")
            }
            if (galleryJump) {
                $("#jsBackBtn").css("display", "none");
                $("#entry").css("display", "none");
                h.css("display", "block");
                $("#seework").css("display", "none")
            } else {
                $("#main #entry img:eq(0)").css("cursor", "pointer").click(function () {
                    $("#galleryLeft").css("display", "none");
                    $("#jsBackBtn").css("display", "none");
                    $("#entry").css("display", "none");
                    h.css("display", "block")
                });
                $("#seework div a").click(function () {
                    $("#galleryLeft").css("display", "none");
                    $("#jsBackBtn").css("display", "none");
                    $("#entry").css("display", "none");
                    h.css("display", "block");
                    return false
                });
                $("#seework").css("cursor", "pointer").click(function () {
                    $("#galleryLeft").css("display", "none");
                    $("#entry").css("display", "none");
                    h.css("display", "block");
                    return false
                });
                $(".galleryNext").css("cursor", "pointer").click(function () {
                    galleryNext();
                    return false
                })
            }
        } else {
            $("#seework").css("display", "none")
        }
    } else {
        $("#integratedStory #main #entry img:eq(0)").css("padding-bottom", "11px")
    }
    if ($("#subnav")) {
        var e = $("#subnav").height() + 215;
        if ($("#simplePage").height() > e) {
            $("#subnav").height($("#simplePage").height() - 215)
        }
    }
    try {
        document.execCommand("BackgroundImageCache", false, true)
    } catch (n) {}

    if ($('#tweet').size() > 0) {
        followTitle = 'Home';
        loadTwitterAnywhere();
    } else if ($('#entry.careers').size() > 0) {
        tweetReady = true;
        followTitle = 'Careers';
        $('#careersLeft').css('min-height', '0');
        $('#careersSocialContent').height(320);
        var th = $('#careersLeft').height() - 600;
        if (th <= 0) {
            th = 0;
            $('#careersLeft').css('min-height', '600px');
        }
        if ($.browser.msie && $.browser.version.substr(0, 1) < 7) {
            $('#interior #simplePage').css('border-bottom', '1px solid transparent');
        }
        $('#careersSocialBack').height(th + 15);
        $('#interior #simplePage').css('padding', '0px');

        loadTwitterAnywhere();
    } else if ($('#entry.career').size() > 0) {
        $('#careersLeft').css('min-height', '0');
        $('#careersRight').css('min-height', '0');
        $('#careersSocialContent').height(320);
        var th = $('#simplePage').height() - 660; //  - $('#careersLeft').height()
        if (th <= 0) {
            th = 0;
        }
        if ($.browser.msie && $.browser.version.substr(0, 1) < 7) {
            $('#interior #simplePage').css('border-bottom', '1px solid transparent');
            $('#careersSocialBack').height(th + 12);
        } else {
            $('#careersSocialBack').height(th + 15);
        }
        $('#interior #simplePage').css('padding', '0px');

        tweetReady = true;
        followTitle = 'Career ' + getTitle();
        loadTwitterAnywhere();
    }

});

function toggleGalleryRead(d) {
    var c = 0;
    if (jQuery.browser.msie && parseInt(jQuery.browser.version.substr(0, 1), 10) <= 6) {
        c = 1
    }
    if (!d.hasClass("galleryReading")) {
        if (c) {
            $(".gallery-slide-content").css("top", "-" + ($(".galleryDesc:eq(0)").height() + 30) + "px");
            $(".galleryDesc").css("display", "block")
        } else {
            $(".galleryDesc").slideDown("slow")
        }
        $(".galleryRead").addClass("galleryReading")
    } else {
        if (c) {
            $(".gallery-slide-content").css("top", "-30px");
            $(".galleryDesc").css("display", "none")
        } else {
            d.parent().children(".galleryDesc").slideUp("slow", function () {
                $(".galleryDesc").css("display", "none")
            })
        }
        $(".galleryRead").removeClass("galleryReading")
    }
}
function gallerySlideUpCallback() {
    $(".galleryDesc").css("display", "none")
}
jQuery.fn.cardHover = function () {
    var b = $(this).find(".card");
    b.canhover = true;
    $(".card").css("cursor", "pointer");
    b.mouseover(function () {
        if (b.canhover) {
            $(this).addClass("cardHover")
        }
    });
    b.mouseout(function () {
        $(this).removeClass("cardHover")
    });
    b.click(function () {
        window.location = $(this).find(".cardNav a").attr("href");
        return false
    });
    $(".card .cardTags div:not(.cardTitle) a").mouseover(function () {
        b.canhover = false
    });
    $(".card .cardTags div:not(.cardTitle) a").mouseout(function () {
        b.canhover = true
    });
    $(".card .cardTags div a").click(function () {
        window.location = $(this).attr("href");
        return false
    })
};
jQuery.fn.customGallery = function () {
    var j = 0;
    var l;
    var k;
    var h = $(this).height("538px");
    h.css("overflow", "hidden");
    var i = "";
    var g = false;
    $(this).children().each(function () {
        if ($(this).is("h1,h2,h3,h4,strong")) {
            j++;
            l = $(this);
            l.css("float", "left");
            i = $("#content");
            g = false;
        } else {
            if ($(this).is("p") && $(this).find("img").size() == 0 && $(this).find("div").size() == 0) {
                $(this).hide();
                i = $(this);
                
            } else {
                k = $(this);
                if (j != 1) {
                    $('<div id="gallery-slide-' + j + '" class="gallery-slide" style="display:none;"></div>').insertBefore(l).append(l, k)
                } else {
                    $('<div id="gallery-slide-' + j + '" class="gallery-slide"></div>').insertBefore(l).append(l, k)
                }
                $('<div class="gallery-slide-label" id="gallery-slide-label-' + j + '"></div>').insertBefore(l).append(l);
                $('<div class="gallery-slide-content"></div>').insertBefore(k).append(k);
                if (!galleryJump) {
                	
                	//alert(i.html());
                	if(i.attr('id') != 'content' && i.text().trim().length > 0){
                		$("#gallery-slide-label-" + j).append('<a href="javascript:void(0);" id="galleryBack' + j + '" class="galleryRead"></a>');
                        $("#galleryBack" + j).click(function () {
                            toggleGalleryRead($(this));
                            return false
                        });
                        $("#gallery-slide-label-" + j).append('<div class="galleryDesc"><div>' + i.html() + "</div></div>");
                        i.remove(':hidden');
                	}else{
                    	$("#gallery-slide-label-" + j).append('<a href="javascript:void(0);" class="galleryBack" onclick="javascript:closeGallery();return false;"><img src="/wp-content/themes/hiebing/images/btn-back-in-black.gif" alt="Back" /></a>')
						i.remove(':hidden');
	                }
                    /*if (g) {
                        
                    } else {
                    }*/
                } else {
                    if ((galleryReadMore || g) && k.children().size() > 0) {
                        $("#gallery-slide-label-" + j).append('<a href="javascript:void(0);" id="galleryBack' + j + '" class="galleryRead"></a>');
                        $("#galleryBack" + j).click(function () {
                            toggleGalleryRead($(this));
                            return false
                        });
                        //$("#gallery-slide-label-" + j).append('<div class="galleryDesc"><div>' + i.html() + "</div></div>");
                        if(i.text().trim().length > 0){
                        	//alert(i.text().trim()+'-');
                        	$("#gallery-slide-label-" + j).append('<div class="galleryDesc"><div>' + i.html() + "</div></div>");
                        }else{
                        	//$("#gallery-slide-label-" + j).append('<div class="galleryDesc"><div>****</div></div>');
                        	$("#galleryBack" + j).attr('class', '');
                        	if (history.length > 1) {
	                            $("#gallery-slide-label-" + j).append('<a href="javascript:history.go(-1);" class="galleryBack"><img src="/wp-content/themes/hiebing/images/btn-back-in-black.gif" alt="Back" /></a>')
	                        }
                        }
                        i.remove(':hidden');
                    } else {
                        if (history.length > 1) {
                            $("#gallery-slide-label-" + j).append('<a href="javascript:history.go(-1);" class="galleryBack"><img src="/wp-content/themes/hiebing/images/btn-back-in-black.gif" alt="Back" /></a>')
                        }
                    }
                }
            }
        }
    });
    var q = 0;
    var blnvar = false;
    $('div.gallery-slide div.gallery-slide-label').each(function () {
        q++;
        //alert('Testing '+q + ' ' + $(this).children());
        $(this).children().each(function () {
            if ( $(this).is("a")) { // && !$(this).has("img") 
                blnvar = true;
            }
        });
        if (blnvar == false) {
            $(this).append('<a href="javascript:void(0);" id="galleryBack' + q + '" class="galleryRead"></a>');
            $("#galleryBack" + q).click(function () {
                toggleGalleryRead($(this));
                return false
            });
        }
        blnvar = false;
/*if (!$(this).find('a')) {
        	//alert('this far');
        	$(this).append('<a href="javascript:void(0);" id="galleryBack' + q + '" class="galleryRead"></a>');
            $("#galleryBack" + q).click(function () {
                toggleGalleryRead($(this));
                return false
            });
        }*/
    });
    $(this).children().each(function () {
        if ($(this).is("p")) {
            $(this).prev().find('div.gallery-slide-label').append('<div class="galleryDesc"><div>' + $(this).html() + '</div></div>');
        }
    });
    galleryItems = j;
    if (j > 1) {
        $("#entry #galleryTitle").remove().appendTo("#gallery");
        $(this).append('<div id="galleryLeft"><div id="galleryLeftBox"><div id="galleryPrev"></div><div id="galleryPrevious" onclick="javascript:galleryPrevious();"></div></div></div><div id="galleryRight"><div id="galleryRightBox"><div id="galleryNext" onclick="javascript:galleryNext();"></div><div id="galleryNex"></div></div></div>');
        $("#galleryLeft").css("display", "none");
        $(this).append('<div id="galleryLabel">1/' + galleryItems + "</div>")
    } else {
        if (j == 1) {
            $("#entry #galleryTitle").remove().appendTo("#gallery")
        }
    }
};
$(window).load(function () {
    $galleryTitle = $("#galleryTitle");
    if ($galleryTitle) {
        if (galleryJump) {
            $galleryTitle.css("display", "block");
            var b = $("#galleryTitle h2").text().length;
            if (b > 12) {
                $("#galleryTitle h2").css({
                    "font-size": "30px",
                    "line-height": "30px"
                })
            } else {
                if (b > 22) {
                    $("#galleryTitle h2").css({
                        "font-size": "14px",
                        "line-height": "14px"
                    })
                }
            }
        }
        galleryTitleTimeout = setTimeout(function () {
            $galleryTitle.fadeTo("slow", 0)
        }, 2500)
    }
});
jQuery.fn.customInput = function () {
    $(this).each(function (j) {
        if ($(this).is("[type=checkbox],[type=radio]")) {
            var g = $(this);
            var f = $("label[for=" + g.attr("id") + "]");
            var i = (g.is("[type=checkbox]")) ? "checkbox" : "radio";
            $('<div class="custom-' + i + '"></div>').insertBefore(g).append(g, f);
            var h = $("input[name=" + g.attr("name").replace('filters[]','filters') + "]");
            f.hover(function () {
                $(this).addClass("hover");
                if (i == "checkbox" && g.is(":checked")) {
                    $(this).addClass("checkedHover")
                }
            }, function () {
                $(this).removeClass("hover checkedHover")
            });
            g.bind("updateState", function () {
                if (g.is(":checked")) {
                    if (g.is(":radio")) {
                        h.each(function () {
                            $("label[for=" + $(this).attr("id") + "]").removeClass("checked")
                        })
                    }
                    f.addClass("checked")
                } else {
                    f.removeClass("checked checkedHover checkedFocus")
                }
            }).trigger("updateState").click(function () {
                $(this).trigger("updateState")
            }).focus(function () {
                f.addClass("focus");
                if (i == "checkbox" && g.is(":checked")) {
                    $(this).addClass("checkedFocus")
                }
            }).blur(function () {
                f.removeClass("focus checkedFocus")
            })
        }
    })
};

function supports_video() {
    return !!document.createElement("video").canPlayType
}
function supports_h264_baseline_video() {
    if (!supports_video()) {
        return false
    }
    var b = document.createElement("video");
    return b.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"')
}

function getTitle() {
    return $.trim(document.title.substring(0, document.title.indexOf('|')).replace(/[^A-Za-z0-9\- ]/g, ''));
}

function filterizeEvent(a) {
    trackEvent("Filterized", "Submit", a)
}

function filterEvent(a) {
    trackEvent("Filterized", "Click", a)
}

function followEvent(a) {
	trackSocial("twitter","follow");
    trackEvent("SocialMedia", "Twitter Follow", a);
}

function likeEvent(a) {
	trackSocial("facebook","like");
    trackEvent("SocialMedia", "Facebook Like", a);
}

function cardnavEvent(b, a) {
    trackEvent("CardNav", "Click", b);
    return gotoUrl(a.href)
}

function footernavEvent(b, a) {
    trackEvent("FooterNav", "Click", b);
    return gotoUrl(a.href)
}

function socialEvent(b, a) {
    trackEvent("SocialMedia", "Click", b);
}

function trackOutboundPageview(b, a) {
    trackPageview(b);
    return gotoUrl(a)
}

function exitUrl(a) {
    window.open(a, '_blank');
    return false
}

function gotoUrl(a) {
    setTimeout('document.location="' + a + '"', 100);
    return false
}

var tweetReady = false;

(function ($) {

    $.fn.tweet = function (o) {
        var s = {
            username: ["hiebing"],
            // [string]   required, unless you want to display our tweets. :) it can be an array, just do ["username1","username2","etc"]
            list: null,
            //[string]   optional name of list belonging to username
            avatar_size: null,
            // [integer]  height and width of avatar if displayed (48px max)
            count: 1,
            // [integer]  how many tweets to display?
            intro_text: null,
            // [string]   do you want text BEFORE your your tweets?
            outro_text: null,
            // [string]   do you want text AFTER your tweets?
            join_text: null,
            // [string]   optional text in between date and tweet, try setting to "auto"
            auto_join_text_default: "i said,",
            // [string]   auto text for non verb: "i said" bullocks
            auto_join_text_ed: "i",
            // [string]   auto text for past tense: "i" surfed
            auto_join_text_ing: "i am",
            // [string]   auto tense for present tense: "i was" surfing
            auto_join_text_reply: "i replied to",
            // [string]   auto tense for replies: "i replied to" @someone "with"
            auto_join_text_url: "i was looking at",
            // [string]   auto tense for urls: "i was looking at" http:...
            loading_text: null,
            // [string]   optional loading text, displayed while tweets load
            query: null // [string]   optional search query
        };

        if (o) $.extend(s, o);

        $.fn.extend({
            linkUrl: function () {
                var returning = [];
                var regexp = /((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi;
                this.each(function () {
                    returning.push(this.replace(regexp, "<a href=\"$1\" target=\"_blank\">$1</a>"));
                });
                return $(returning);
            },
            linkUser: function () {
                var returning = [];
                var regexp = /[\@]+([A-Za-z0-9-_]+)/gi;
                this.each(function () {
                    returning.push(this.replace(regexp, "<a href=\"http://twitter.com/$1\" target=\"_blank\">@$1</a>"));
                });
                return $(returning);
            },
            linkHash: function () {
                var returning = [];
                var regexp = /(?:^| )[\#]+([A-Za-z0-9-_]+)/gi;
                this.each(function () {
                    returning.push(this.replace(regexp, ' <a href="http://search.twitter.com/search?q=&tag=$1&lang=all&from=' + s.username.join("%2BOR%2B") + '" target=\"_blank\">#$1</a>'));
                });
                return $(returning);
            }
        });

        function parse_date(date_str) {
            return Date.parse(date_str.replace(/^([a-z]{3})( [a-z]{3} \d\d?)(.*)( \d{4})$/i, '$1,$2$4$3'));
        }

        function relative_time(time_value) {
            var parsed_date = parse_date(time_value);
            var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
            var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
            var pluralize = function (singular, n) {
                    return '' + n + ' ' + singular + (n == 1 ? '' : 's');
                };
            if (delta < 60) {
                return 'less than a minute ago';
            } else if (delta < (60 * 60)) {
                return 'about ' + pluralize("minute", parseInt(delta / 60)) + ' ago';
            } else if (delta < (24 * 60 * 60)) {
                return 'about ' + pluralize("hour", parseInt(delta / 3600)) + ' ago';
            } else {
                return 'about ' + pluralize("day", parseInt(delta / 86400)) + ' ago';
            }
        }

        function build_url() {
            var proto = ('https:' == document.location.protocol ? 'https:' : 'http:');
            if (s.list) {
                return proto + "//api.twitter.com/1/" + s.username[0] + "/lists/" + s.list + "/statuses.json?per_page=" + s.count + "&callback=?";
            } else if (s.query == null && s.username.length == 1) {
                return proto + '//api.twitter.com/1/statuses/user_timeline.json?screen_name=' + s.username[0] + '&count=' + s.count + '&callback=?';
            } else {
                var query = (s.query || 'from:' + s.username.join(' OR from:'));
                return proto + '//search.twitter.com/search.json?&q=' + escape(query) + '&rpp=' + s.count + '&callback=?';
            }
        }

        return this.each(function (i, widget) {
            var intro = '<p class="tweet_intro">' + s.intro_text + '</p>';
            var outro = '<p class="tweet_outro">' + s.outro_text + '</p>';
            var loading = $('<p class="loading">' + s.loading_text + '</p>');

            if (typeof (s.username) == "string") {
                s.username = [s.username];
            }

            if (s.loading_text) $(widget).append(loading);
            $.getJSON(build_url(), function (data) {

                var tweets = (data.results || data);
                if (tweets) {
                    if (s.loading_text) loading.remove();
                }
                $.each(tweets, function (i, item) {
                    if (s.join_text == "auto") {
                        if (item.text.match(/^(@([A-Za-z0-9-_]+)) .*/i)) {
                            var join_text = s.auto_join_text_reply;
                        } else if (item.text.match(/(^\w+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+) .*/i)) {
                            var join_text = s.auto_join_text_url;
                        } else if (item.text.match(/^((\w+ed)|just) .*/im)) {
                            var join_text = s.auto_join_text_ed;
                        } else if (item.text.match(/^(\w*ing) .*/i)) {
                            var join_text = s.auto_join_text_ing;
                        } else {
                            var join_text = s.auto_join_text_default;
                        }
                    } else {
                        var join_text = s.join_text;
                    };

                    var from_user = item.from_user || item.user.screen_name;
                    var profile_image_url = item.profile_image_url || item.user.profile_image_url;
                    var join_template = '<span class="tweet_join"> ' + join_text + ' </span>';
                    var join = ((s.join_text) ? join_template : ' ');
                    var avatar_template = '<a class="tweet_avatar" href="http://twitter.com/' + from_user + '"><img src="' + profile_image_url + '" height="' + s.avatar_size + '" width="' + s.avatar_size + '" alt="' + from_user + '\'s avatar" title="' + from_user + '\'s avatar" border="0"/></a>';
                    var avatar = (s.avatar_size ? avatar_template : '');
                    var date = '<span class="tweet_time"><a href="http://twitter.com/' + from_user + '/statuses/' + item.id + '" title="view tweet on twitter">' + relative_time(item.created_at) + '</a></span>';
                    var text = '<span class="tweet_text">' + $([item.text]).linkUrl().linkUser().linkHash()[0] + '</span>';

                    // until we create a template option, arrange the items below to alter a tweet's display.
                    var d = new Date(item.created_at);
                    if (isNaN(d)) {
                        d = new Date(parse_date(item.created_at));
                    }
                    $(widget).append('<p><span id="anywhere"><a href="http://www.twitter.com/hiebing"><em>@</em>Hiebing:</a></span> ' + text + '</p>');
                    if (tweetReady) {
                        initTwitterAnywhere();
                    } else {
                        tweetReady = true;
                    }
                    return false;
                });
                $(widget).trigger("loaded").trigger((tweets.length == 0 ? "empty" : "full"));
            });

        });
    };
})(jQuery);

function followTwitterAnywhere(T) {
    T.User.find('hiebing').follow({
        success: function (user) {
            followEvent(followTitle);
            $('#followBtn').removeClass('followPendingBtn');
            $('#followBtn').addClass('followingBtn');
            $('#followBtn').unbind();
        },
        error: function () {
            window.location('http://www.twitter.com/Hiebing');
        }
    });
}

function initTwitterAnywhere() {
    twttr.anywhere({
        "domain": document.domain
    }, function (T) {
        T.bind("authComplete", function (e, user) {
            // triggered when auth completed successfully
            $('#followBtn').addClass('followPendingBtn');

            T.currentUser.isFollowing('@hiebing', function (value) {
                if (value) {
                    //alert('already following');
                    $('#followBtn').removeClass('followPendingBtn');
                    $('#followBtn').addClass('followingBtn');
                    $('#followBtn').unbind();
                } else {
                    followTwitterAnywhere(T);
                }
            });
        });

        T("#anywhere").hovercards({
            infer: true
        });
        T("#follow-hiebing").hovercards({
            username: function (node) {
                return '@hiebing';
            }
        });

        if (T.isConnected()) {
            //alert('twitter connected');
            try {
                T.currentUser.isFollowing('@hiebing', function (value) {
                    if (value) {
                        $('#followUs').append('<div id="followBtn" class="followingBtn"></div>');
                    } else {
                        $('#followUs').append('<div id="followBtn"></div>');
                        $('#followBtn').click(function (event) {
                            $(this).addClass('followPendingBtn');
                            followTwitterAnywhere(T);
                        });
                    }
                });
            } catch (error) {}
        } else {
            $('#followUs').append('<div id="followBtn"></div>');
            $('#followBtn').click(function (event) {
                $(this).addClass('followPendingBtn');
                T.signIn();
            });
        }
        $('.card').mouseover(function () {
            $('.twitter-bubble').css({
                visibility: 'hidden'
            });
        });
    });
}

function loadTwitterAnywhere() {
    try {
        document.domain = docdomain;
    } catch (error) {}
    var s = document.createElement('SCRIPT'),
        s1 = document.getElementsByTagName('SCRIPT')[0];
    s.type = 'text/javascript';
    s.async = true;
    s.onload = function (event) {
        if (tweetReady) {
            initTwitterAnywhere();
        }
        tweetReady = true;
    };
    s.src = 'http://platform.twitter.com/anywhere.js?id=' + twitterid + '&amp;v=1';
    s1.parentNode.insertBefore(s, s1);
};
