/*
 * Formulists common source code
 * http://formuli.st
 *
 * Copyright 2010, Kutano Corp.
 *
 * Dependency: jQuery-1.4.2
 *             The global variable 
 *
 */
(function(c,b){var a=function(){return new a.fn.init};a.fn=a.prototype={init:function(){}};a.templates=a.templates||{};a.templates.hovercard_content='<div class="hovercard">\n <div class="hovercard-inner">\n <div class="hovercard-content-inner">\n  <div class="bd">\n    <a href="http://twitter.com/{{screen_name}}" class="tweet-url profile-pic"><img class="avatar" src="{{profile_image_url}}" width="48" height="48"></a>\n    <div class="bio">\n      <p class="fn-above">{{name}}</p>\n      <p class="sn"><a href="http://twitter.com/{{screen_name}}" class="screen_name tweet-url screen-name"><span class=\'at_symbol\'>@</span>{{screen_name}}</a>\n        {{#verified}}\n          <img src="https://twitter.com/images/verified/verified_small.png">\n        {{/verified}}\n      </p>\n      <p class="location">\n      {{#location}}\n        {{location}}\n      {{/location}}\n\n    <a href="#" class="load-more">{{_i}}more...{{/i}}</a>\n      </p>\n    </div>\n    <div class="description description-inactive">\n      <div class="description-inner">\n        {{#url}}<p><strong>{{_i}}Web:{{/i}}</strong> <a href="{{url}}" rel="nofollow" target="_blank">{{url}}</a></p>{{/url}}\n        {{#description}}<p><strong>{{_i}}Bio:{{/i}}</strong> {{description}}</p>{{/description}}\n        {{#status}}<p class="latest_status"><strong>{{_i}}Latest Tweet:{{/i}}</strong> {{text}}</p>{{/status}}\n        <ul class="user_stats">\n          <li class="first">\n            <span class="stat">{{statuses_count}}</span>\n            <span class="type">{{_i}}tweets{{/i}}</span>\n          </li>\n          <li>\n            <span class="stat">{{friends_count}}</span>\n            <span class="type">{{_i}}following{{/i}}</span>\n          </li>\n          <li {{~lists_count}}class="last"{{/lists_count}}>\n            <span class="stat">{{followers_count}}</span>\n            <span class="type">{{_i}}followers{{/i}}</span>\n          </li>\n          {{#lists_count}}\n          <li class="last">\n            <span class="stat">{{lists_count}}</span>\n            <span class="type">{{_i}}lists{{/i}}</span>\n          </li>\n          {{/lists_count}}\n        </ul>\n      </div>\n    </div>\n  </div>\n  <div class="hovercard-inner-footer">\n    <div class="control-container">\n       </div>\n  </div>\n</div>\n</div>\n</div>\n\n';a.templates.hovercard_inner_footer='<div class="control-container {{^following}}not-{{/following}}following">\n  <div class="following-controls">\n    <span class="is-following"></span>\n    <span class="you-follow-user">{{_i}}You follow{{/i}}</span>\n    <span title="{{_i}}Tweets by text message{{/i}}" class="setting sms-setting sms-setting-{{#notifications}}not-{{/notifications}}off"></span>\n  </div>\n\n  <div class="follow-controls">\n    <a href="" class="a-btn user"><i></i>{{_i}}Follow{{/i}}</a>\n  </div>\n\n  <div class="action-dropdowns">\n    <a href="" class="a-btn unfollow">{{_i}}Unfollow{{/i}}</a>\n  </div>\n  <div class="is-you">{{_i}}That’s You!{{/i}}</div>\n  <div class="pending">{{_i}}Follow pending for @{{screen_name}}{{/i}}</div>\n  <div class="alert"><i></i>{{_i}}Can\'t follow @{{screen_name}}{{/i}}</div>\n</div>';jQuery.extend(a,{services:{makeVerifiedRequest:function(g,h,f,a,i,e){var d=$("input[name=__RequestVerificationToken]").val();if(a)a.__RequestVerificationToken=d;else a={__RequestVerificationToken:d};$.ajax({type:g,url:h,dataType:f,data:a,success:i,error:function(a,d,f){if(a==b||a.status=="500")e&&e(a,d,f);else if(a.status=="401")c.location=formulistsHomePage+"/login"}})},getAvailableJobs:function(b,c){var a=$("input[name=__RequestVerificationToken]").val();$.post(formulistsHomePage+"Lists/JsonGetAvailableJobs",{__RequestVerificationToken:a,includeExistingJobs:b},c,"json")},getExistingJobs:function(b){var a=$("input[name=__RequestVerificationToken]").val();$.post(formulistsHomePage+"Lists/JsonGetExistingJobs",{__RequestVerificationToken:a},b,"json")},getAddView:function(a,b){$.get(formulistsHomePage+"Lists/Add/"+a,null,b,"text/html")},deleteJob:function(c,f){var d="POST",e=c,a="json",b=null;this.makeVerifiedRequest(d,e,a,b,f)},loadJobMembers:function(e,a,b){var f="POST",g=e,c="json",d=null;this.makeVerifiedRequest(f,g,c,d,function(c){if(a){$(a).html(c.membersContent);$(b).html(c.membersCount)}})},appendJobHistory:function(e,b,a){var f="POST",g=e,c="json",d=null;this.makeVerifiedRequest(f,g,c,d,function(c){if(b){$(b).append($(c.historyContent));if(c.nextPageLink){$(a).html("more");$(a).attr("href",c.nextPageLink)}else $(a).hide()}})},loadBlackListMembers:function(e,a,b){var f="POST",g=e,c="json",d=null;this.makeVerifiedRequest(f,g,c,d,function(c){if(a){$(a).html(c.blackListContent);$(b).html(c.blackListCount)}})},twitterGetLists:function(g,f,e){var c="POST",d=formulistsHomePage+"Twitter/GetLists/"+g,a="json",b={retCache:f};this.makeVerifiedRequest(c,d,a,b,e)},twitterGetUserProfile:function(g,f,e){var c="POST",d=formulistsHomePage+"Twitter/GetUserProfile/"+g,a="json",b={retCache:f};this.makeVerifiedRequest(c,d,a,b,e)},twitterGetUserRawInfo:function(c,a){var f="POST",g=formulistsHomePage+"Twitter/GetUserRawInfo/"+c,b="json",e=null,d=function(){a(null,false)};this.makeVerifiedRequest(f,g,b,e,a,d)},twitterFriendshipCreate:function(f,e){var c="POST",d=formulistsHomePage+"Twitter/FriendshipCreate/"+f,a="json",b=null;this.makeVerifiedRequest(c,d,a,b,e)},twitterFriendshipDestroy:function(f,e){var c="POST",d=formulistsHomePage+"Twitter/FriendshipDestroy/"+f,a="json",b=null;this.makeVerifiedRequest(c,d,a,b,e)},twitterSetNotifications:function(g,a,f){var d="POST",e=formulistsHomePage+"Twitter/SetNotifications/"+g,b="json",c={notificationStatus:a};this.makeVerifiedRequest(d,e,b,c,f)},twitterAuthorizeUrl:function(f,e){var c="POST",d=formulistsHomePage+"Twitter/AuthorizeUrl",a="json",b={reqUrl:f};this.makeVerifiedRequest(c,d,a,b,e)},twitterMakeRequest:function(g,f,e){var c="POST",d=formulistsHomePage+"Twitter/MakeRequest",a="json",b={reqUrl:g,reqType:f};this.makeVerifiedRequest(c,d,a,b,e)}},twitter:{getUserInfo:function(e,d){var c="http://api.twitter.com/1/users/show.json?user_id="+e,a="jsonp",b=null;$.ajax({url:c,dataType:a,data:b,success:d})},getUsersInfo:function(d){var c="http://api.twitter.com/1/users/lookup.json?user_id="+encodeURIComponent(d)+"",b="GET";a.services.twitterMakeRequest(c,b,function(){})},getUsersLists:function(e,c){var b="http://api.twitter.com/1/raul_f/lists.json?cursor=-1&callback=myJsonPCallback",d="GET";a.services.twitterAuthorizeUrl(b,function(a){var e=a,b="jsonp",d=null;$.ajax({url:e,dataType:b,data:d,jsonpCallback:myJsonPCallback,success:c})})}},uiElements:{hovercards:function(e,d){if(d==b)d={corner:{target:"topMiddle",tooltip:"bottomMiddle"}};e.qtip({content:{text:'<div class="loadingPanel">loading...</div>'},show:{solo:true,when:{event:"mouseover"}},hide:{delay:1e3,when:{event:"mouseout"}},position:d,style:{width:300,padding:0,overflow:"visible",color:"Gray",border:{width:3,radius:5},name:"light"},api:{beforeHide:function(){return this.status.targetFocused||this.status.tooltipFocused?false:true},beforeShow:function(){var a=$(this.elements.tooltip);a.find(".description").addClass("description-inactive");a.find("a.load-more").show()},onContentUpdate:function(){try{this.updatePosition(b,false)}catch(a){}},onRender:function(){var d=this,e=function(){!d.status.targetFocused&&!d.status.tooltipFocused&&$(d.elements.tooltip).hide()},g=function(){d.updatePosition(b,false)};if(d.elements!=null&&d.elements.target!=null&&d.elements.tooltip!=null){d.status.targetFocused=false;d.status.tooltipFocused=false;$(d.elements.tooltip).bind("mouseout",null,function(){d.status.tooltipFocused=false;setTimeout(e,200)}).bind("mouseover",null,function(){d.status.tooltipFocused=true});$(d.elements.target).bind("mouseout",null,function(){d.status.targetFocused=false;setTimeout(e,200)}).bind("mouseover",null,function(){d.status.targetFocused=true})}var f=$(this.elements.target).attr("href").split("/"),h=f[f.length-1];a.services.twitterGetUserRawInfo(h,function(j){if(j!=null){var h=eval("("+j+")"),k=a.templates.hovercard_content.replace('<div class="control-container">\n       </div>\n',a.templates.hovercard_inner_footer),l=Mustache.to_html(k,h);d.updateContent(l,true);var e=$(d.elements.tooltip),m=this,b=e.find(".control-container");e.find(".follow-controls a").click(function(c){c.preventDefault();b.addClass("following").removeClass("not-following");a.services.twitterFriendshipCreate(h.id,function(a){if(a!=null&&a.status=="error")if(!(a.code=403&&a.result&&a.result.search("already on your list")>0))if(a.code=403&&a.result&&a.result.search("already requested to follow")>0)b.addClass("follow-pending");else a.code!=401&&b.addClass("follow-alert")})});e.find("a.unfollow").click(function(c){c.preventDefault();b.addClass("not-following").removeClass("following");a.services.twitterFriendshipDestroy(h.id,function(a){if(a!=null&&a.status=="error")if(a.code==403&&a.result&&a.result.search("You are not friends with the specified user")>0)b.removeClass("sms-setting-not-off").addClass("sms-setting-off");else b.removeClass("not-following").addClass("following");else b.removeClass("sms-setting-not-off").addClass("sms-setting-off")})});var f=e.find("span.sms-setting");function i(){if(f.hasClass("sms-setting-off"))f.addClass("sms-setting-not-off").removeClass("sms-setting-off");else f.removeClass("sms-setting-not-off").addClass("sms-setting-off")}f.click(function(c){c.preventDefault();var b=f.hasClass("sms-setting-off")?"on":"off";i();a.services.twitterSetNotifications(h.id,b,function(a){a!=null&&a.status=="error"&&i()})});e.find("a.load-more").click(function(a){a.preventDefault();$(a.target).hide();e.find(".description").removeClass("description-inactive")});e.find("a.screen_name").click(function(a){c.open(a.target.href);return false})}else d.updateContent("Sorry, this user's Twitter account is inaccessible",true);setTimeout(g,150);return true})}}})}},jobDetails:{listSlug:"",init:function(a){this.listSlug=a},members:function(){},history:function(){}}});c.jFormulists=a})(window);$(document).ready(function(){});(function(a){a.scrollToElement=function(b,c){c=c||750;a("html, body").animate({scrollTop:b.offset().top,scrollLeft:b.offset().left},c);return b};a.fn.scrollTo=function(b){b=b||"normal";return a.scrollToElement(this,b)}})(jQuery);