jQuery.getScript = function (url, callback, cache) { jQuery.ajax({ type: "GET", url: url, success: callback, dataType: "script", cache: cache });}; var safeTubePressInit = function () { try { TubePress.init(getTubePressBaseUrl());} catch (f) { alert("TubePress failed to initialize: " + f.message);}
}
if (!jQuery.browser.msie) { var oldReady = jQuery.ready, TubePress; jQuery.ready = function () { try { oldReady.apply(this, arguments);} catch (e) { }
safeTubePressInit();};} else { jQuery().ready(function () { safeTubePressInit();});}
TubePress = (function () { var init, loadEmbeddedJs, parseRels, loadPlayerJs, triggerPlayerLoadedEvent, clickListener, swapEmbedded, deepConstructObject, callPlayerJs, callWhenTrue, getWaitCall, loadCss, centerThumbs, ajaxifyPaginationForGallery, processAjaxRequest, postAjaxGallerySetup; init = function (baseUrl) { jQuery().bind('tubepressPlayerLoaded', function (x, playerName, baseUrl) { var funcName = 'tubepress_' + playerName + '_player_init', f = function () { window[funcName](baseUrl);}; callWhenTrue(function () { return typeof window[funcName] === 'function';}, f);}); loadEmbeddedJs(baseUrl); loadPlayerJs(baseUrl); jQuery("a[id^='tubepress_']").click(clickListener);}; loadEmbeddedJs = function (baseUrl) { var embeddedNames = parseRels(1), i, emptyFunc = function () {}; for (i = 0; i < embeddedNames.length; i = i + 1) { jQuery.getScript(baseUrl + "/ui/embedded_flash/" + embeddedNames[i] + "/" + embeddedNames[i] + ".js", emptyFunc, true);}
}; parseRels = function (index) { var returnValue = []; jQuery("a[rel^='tubepress_']").each(function () { var thisName = jQuery(this).attr("rel").split("_")[index]; if (jQuery.inArray(thisName, returnValue) === -1) { returnValue.push(thisName);}
}); return returnValue;}; loadPlayerJs = function (baseUrl) { var playerNames = parseRels(2), i; for (i = 0; i < playerNames.length; i = i + 1) { var name = playerNames[i]; jQuery.getScript(baseUrl + "/ui/players/" + name + "/" + name + ".js", triggerPlayerLoadedEvent(name, baseUrl), true);}
}; triggerPlayerLoadedEvent = function (name, baseUrl) { jQuery().trigger('tubepressPlayerLoaded', [name, baseUrl]);}; clickListener = function () { var rel_split = jQuery(this).attr("rel").split("_"), galleryId = rel_split[3], playerName = rel_split[2], embeddedName = rel_split[1], videoId = jQuery(this).attr("id").substring(16, 27); swapEmbedded(galleryId, videoId, embeddedName); callPlayerJs(galleryId, videoId, embeddedName, playerName);}; swapEmbedded = function (galleryId, videoId, embeddedName) { var wrapperId = "#tubepress_embedded_object_" + galleryId, wrapper = jQuery(wrapperId), newHtml; if (wrapper.length === 0) { return;}
var matcher = window["tubepress_" + embeddedName + "_matcher"](), paramName = window["tubepress_" + embeddedName + "_param"](), obj = jQuery(wrapperId + " > object"), oldVideoId = obj.children("param[name='" + paramName + "']").attr("value").match(matcher)[1]; obj.siblings().remove(); var params = obj.children("param"); params.remove(); newHtml = deepConstructObject(wrapper, params).replace(new RegExp(oldVideoId, 'g'), videoId); wrapper.html(newHtml);}; callPlayerJs = function (galleryId, videoId, embeddedName, playerName) { if ((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) { return;}
var playerFunctionName = "tubepress_" + playerName + "_player"; window[playerFunctionName](galleryId, videoId);}; deepConstructObject = function (wrapper, params) { var newHtml = wrapper.html().replace(/\s\s*$/, ''); newHtml = newHtml.substring(0, newHtml.length - 9); params.each(function () { newHtml += '<param name="' + this.name + '" value="' + this.value + '" />';}); newHtml += '</object>'; return newHtml;}; callWhenTrue = function (test, callback) { if (!test()) { var futureTest = function () { callWhenTrue(test, callback);}; setTimeout(futureTest, 400); return;}
callback();}; getWaitCall = function (scriptPath, test, callback) { var futureCallback = function () { callWhenTrue(test, callback);}; jQuery.getScript(scriptPath, futureCallback, true);}; loadCss = function (path) { var fileref = document.createElement("link"); fileref.setAttribute("rel", "stylesheet"); fileref.setAttribute("type", "text/css"); fileref.setAttribute("href", path); document.getElementsByTagName("head")[0].appendChild(fileref);}; centerThumbs = function (gallerySelector) { jQuery(document).ready(function () { jQuery(gallerySelector + " div.tubepress_thumb").children().each(function () { var myWidth = jQuery(this).width(), parentWidth = jQuery(this).parent().width(), offset = (parentWidth - myWidth) / 2; jQuery(this).css("margin-left", offset);});});}; ajaxifyPaginationForGallery = function (galleryId) { var clickCallback = function () { processAjaxRequest(jQuery(this), galleryId);}; jQuery("#tubepress_gallery_" + galleryId + " div.pagination a").click(clickCallback);}; processAjaxRequest = function (anchor, galleryId) { var baseUrl = getTubePressBaseUrl(), shortcode = window["getUrlEncodedShortcodeForTubePressGallery" + galleryId](), page = anchor.attr("rel"), thumbnailArea = "#tubepress_gallery_" + galleryId + "_thumbnail_area", postLoadCallback = function () { postAjaxGallerySetup(thumbnailArea, galleryId);}, pageToLoad = baseUrl + "/env/pro/lib/ajax/responder.php?shortcode=" + shortcode + "&tubepress_" + page + "&tubepress_galleryId=" + galleryId, remotePageSelector = thumbnailArea + " > *", loadFunction = function () { jQuery(thumbnailArea).load(pageToLoad + " " + remotePageSelector, postLoadCallback);}; jQuery(thumbnailArea).fadeTo('fast', '.01'); setTimeout(loadFunction, 100);}; postAjaxGallerySetup = function (thumbnailArea, galleryId) { centerThumbs("#tubepress_gallery_" + galleryId); jQuery("a[id^='tubepress_']").click(clickListener); ajaxifyPaginationForGallery(galleryId); jQuery(thumbnailArea).fadeTo('fast', 1);}; return { init : init, deepConstructObject : deepConstructObject, getWaitCall : getWaitCall, clickListener : clickListener, loadCss : loadCss, ajaxifyPaginationForGallery : ajaxifyPaginationForGallery, centerThumbs : centerThumbs
};}()); 
