var MARGIN_WIDTH = 12;
var MARGIN_HEIGHT = 12;
var FOOTER_HEIGHT = 31;
var IS_BEST_FIT = false;
function fireConversionPixel(referral) {
document.getElementById("conversionPixel").src = "/wixBeacon";
}
function getCookieValue(cookieName) {
if (document.cookie) {
var cookies = document.cookie.split(/;\s*/);
for (var i = 0, n = cookies.length; i < n; i++) {
var cookie = cookies[i];
if (cookie.indexOf(cookieName + "=") == 0)
return cookie.substr(cookieName.length + 1);
}
}
return null;
}
//expires in minutes
function setCookie(name, value, expires) {
var date = new Date();
date.setTime(date.getTime() + (expires * 60 * 1000));
var domain;
var hostName = window.location.host;
// get domain name without subdomain
if (hostName.indexOf(".") == hostName.lastIndexOf(".")) {
domain = hostName;
}
else {
domain = hostName.substring(hostName.indexOf("."));
}
document.cookie = name + "=" + encodeURIComponent(value) + "; path=/; expires=" + date.toUTCString() + "; domain=" + domain;
}
function deleteCookie(name) {
setCookie(name, "", -1);
}
var USER_SERVER_LOG = [];
function handleUserServerResponse(action, success, errorCode, errorDescription, userJson, token) {
try {
USER_SERVER_LOG.push({action:action, success:success, errorCode:errorCode, errorDescription:errorDescription, userJson:userJson, token:token});
getFlashAppInstance().handleUserServerResponse(action, success, errorCode, errorDescription, userJson, token);
} catch(e) {
logError("VIEWER", "handleUserServerResponse", e.message, action, "basic.js");
}
}
function logError(origin, errType, description, apiCall, appVersion, apiParams, additionalParams) {
var url;
if (window.location.host.indexOf(".wix.com") != -1) {
url = "http://frog.wix.com/plebs";
} else {
url = "http://flogger.wixpress.com/plebs";
}
var arr = [];
arr.push(url + "?origin=" + encodeURI(origin));
if (typeof errType != "undefined") arr.push("errType=" + encodeURI(errType));
if (typeof description != "undefined") arr.push("description=" + encodeURI(description));
if (typeof apiCall != "undefined") arr.push("apiCall=" + encodeURI(apiCall));
if (typeof appVersion != "undefined") arr.push("appVersion=" + encodeURI(appVersion));
if (typeof apiParams != "undefined") arr.push("apiParams=" + encodeURI(apiParams));
if (typeof additionalParams != "undefined") arr.push("additionalParams=" + encodeURI(additionalParams));
if (typeof wixDocId != "undefined") arr.push("docID=" + encodeURI(wixDocId));
new Image(0, 0).src = arr.join("&");
}
var APP_TYPE = "VIEWER";
var APP_STATUS = "appLoading";
var APP_TIMESTAMPS = [];
var LAST_ERROR_TYPE = null;
APP_TIMESTAMPS[APP_STATUS] = new Date().getTime();
var APP_TIMER = window.setInterval("testReadyState()", 250);
var isFirstTime = true;
function setReadyState(appType, status) {
APP_TYPE = appType;
APP_STATUS = status;
APP_TIMESTAMPS[APP_STATUS] = new Date().getTime();
/*Sending hash to urlState object*/
/*comment this section to shut down deep linking*/
if (APP_STATUS == "appLoadedXML" && isFirstTime === true) {
isFirstTime = false;
hashToFlash(urlState.getHash());
}
}
function testReadyState() {
var version = APP_TYPE.substring(0, 2) + "XXX";
var now = new Date().getTime();
var secondsSinceStart = (now - APP_TIMESTAMPS["appLoading"]) / 1000;
var secondsSinceLast = (now - APP_TIMESTAMPS[APP_STATUS]) / 1000;
switch (APP_STATUS) {
case "appLoading":
if (secondsSinceLast > 20 && LAST_ERROR_TYPE != "appStarted") {
LAST_ERROR_TYPE = "appStarted";
logError(APP_TYPE, LAST_ERROR_TYPE, "The application failed to load the first phase within " + secondsSinceStart + " seconds", "setReadyState", version, secondsSinceStart);
}
break;
case "appStarted":
if (secondsSinceLast > 20 && LAST_ERROR_TYPE != "appLoadedXML") {
LAST_ERROR_TYPE = "appLoadedXML";
logError(APP_TYPE, LAST_ERROR_TYPE, "The application failed to load the page-xml within " + secondsSinceStart + " seconds. Time of appStarted was " + getSecondsSinceState("appStarted"), "setReadyState", version, secondsSinceStart);
}
break;
case "appLoadedXML":
if (secondsSinceLast > 20 && LAST_ERROR_TYPE != "appLoadedAll") {
LAST_ERROR_TYPE = "appLoadedAll";
logError(APP_TYPE, LAST_ERROR_TYPE, "The application failed to finish loading within " + secondsSinceStart + " seconds. Time of appStarted was " + getSecondsSinceState("appStarted") + ". Time of appLoadedXML was " + getSecondsSinceState("appLoadedXML"), "setReadyState", version, secondsSinceStart);
}
break;
case "appLoadedAll":
window.clearInterval(APP_TIMER);
preCache();
break;
}
}
function getSecondsSinceState(state) {
return ((APP_TIMESTAMPS[state] - APP_TIMESTAMPS["appLoading"]) / 1000);
}
function addListener(win, eventName, handler) {
if (win.addEventListener)
win.addEventListener(eventName, handler, false);
else if (win.attachEvent)
win.attachEvent("on" + eventName, handler);
else
win["on" + eventName] = handler;
}
function openUrl(url, vaildatePopup) {
try {
var popupBlocked = false;
var win = window.open(url, '_blank');
if (!win || win.closed || typeof win.closed == 'undefined') {
popupBlocked = true;
} else {
win.focus();
}
if (vaildatePopup) {
try {
getFlashAppInstance().popupFailure(popupBlocked);
} catch(e) {
logError("VIEWER", "openUrl", "Flash object is not yet ready", url, "basic.js");
}
}
return true;
} catch (e) {
logError("VIEWER", "openUrl", e.message, url, "basic.js");
return false;
}
}
function openUrlNoMenu(url, vaildatePopup) {
try {
var popupBlocked = false;
var screenSize = getPhysicalScreenDimensions();
var win = window.open(url, '_blank', "resizable=yes,menubar=no,status=no,titlebar=no,toolbar=no,channelmode=yes,width=" + screenSize.width + ",height=" + screenSize.height);
if (!win || win.closed || typeof win.closed == 'undefined') {
popupBlocked = true;
} else {
win.focus();
}
if (vaildatePopup) {
try {
getFlashAppInstance().popupFailure(popupBlocked);
} catch(e) {
logError("VIEWER", "openUrlNoMenu", "Flash object is not yet ready", url, "basic.js");
}
}
return true;
} catch(e) {
logError("VIEWER", "openUrlNoMenu", e.message, url, "basic.js");
return false;
}
}
function getPhysicalScreenDimensions() {
var winW = 1024, winH = 768;
try {
winW = screen.availWidth;
winH = screen.availHeight;
if (typeof winW == "undefined") {
winW = 1024;
}
if (typeof winH == "undefined") {
winH = 768;
}
} catch(e) {
winW = 1024;
winH = 768;
}
return {width: (winW ), height: (winH )};
}
function getBodyDimensions() {
var w = 0, h = 0;
if (!window.innerWidth) {
//strict mode
if (!(document.documentElement.clientWidth == 0)) {
w = document.documentElement.clientWidth;
h = document.documentElement.clientHeight;
} else { //quirks mode
w = document.body.clientWidth;
h = document.body.clientHeight;
}
} else { //w3c
w = window.innerWidth;
h = window.innerHeight;
}
return {width:w,height:h}
}
function getScreenDimensions() {
var d = getBodyDimensions();
return {width: (d.width - (2 * MARGIN_WIDTH)), height: (d.height - (2 * MARGIN_HEIGHT + ((getFooter() || document.getElementById("wixfooter1")) ? FOOTER_HEIGHT : 0)))};
}
function getScrollOffset() {
var x = 0,y = 0;
if (self.pageYOffset) { // all except Explorer
x = self.pageXOffset;
y = self.pageYOffset;
} else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict
x = document.documentElement.scrollLeft;
y = document.documentElement.scrollTop;
} else if (document.body) {
// all other Explorers
x = document.body.scrollLeft;
y = document.body.scrollTop;
}
return {x:x,y:y}
}
function getViewport() {
var app = getFlashAppInstance();
var dimensions = getScreenDimensions();
var position = findFlashAppInstancePosition();
var scroll = getScrollOffset();
return {x:scroll.x, y:scroll.y, width:Math.min(dimensions.width - position.x,
app.clientWidth), height:Math.min(dimensions.height - position.y, app.clientHeight)};
}
function findFlashAppInstancePosition() {
return findElementPosition(getFlashAppInstance());
}
function findElementPosition(oElement) {
if (typeof( oElement.offsetParent ) != 'undefined') {
for (var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent) {
posX += oElement.offsetLeft;
posY += oElement.offsetTop;
}
return {x:posX, y:posY};
} else {
return {x:oElement.x, y:oElement.y};
}
}
function getScreenSize() {
var dimensions = getScreenDimensions();
return dimensions.width + "," + dimensions.height;
}
function setTitle(title) {
document.title = title;
}
function getFlashAppInstance() {
return swfobject.getObjectById("app");
}
function getFooter() {
return document.getElementById("wixfooter");
}
function setFooterWidth(width) {
try {
var footer = getFooter();
if (footer) {
footer.style.width = width + "px";
} else {
footer = document.getElementById("wixfooter1");
if (footer) {
if (navigator.userAgent.indexOf("Firefox") == -1) {
footer.style.position = "static";
footer.style.width = width + "px";
}
}
}
} catch(e) {
}
}
function setSize(width, height) {
setFooterWidth(width);
var app = getFlashAppInstance();
app.width = width;
app.height = height;
var dimensions = getScreenDimensions();
document.body.style.marginTop = height > dimensions.height ? "8px" : "0";
}
function createStyles(autoSize, width, height) {
IS_BEST_FIT = (autoSize == "fitScreen");
var cssText = new Array();
cssText.push('');
document.write(cssText.join(""));
}
//this function should call both the wix googlitics and the users (if the user have one)
function doGooglitics(fakeUrl) {
pageTracker._trackPageview(fakeUrl);
if (hasGoogleAnalytics) {
pageTrackerUser._trackPageview(fakeUrl);
}
}
//this function should call only the wix googlitics
function doGoogliticsWix(fakeUrl) {
pageTracker._trackPageview(fakeUrl);
}
//this function should call only the user googlitics (if the user doesnt have one the function should be empty
function doGoogliticsUser(fakeUrl) {
if (null != userGoogleAnalytics && "" != userGoogleAnalytics) {
if (hasGoogleAnalytics) {
pageTrackerUser._trackPageview(fakeUrl);
}
}
}
function gaSSDSLoad(acct) {
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."),
pageTracker,
s;
s = document.createElement('script');
s.src = gaJsHost + 'google-analytics.com/ga.js';
s.type = 'text/javascript';
s.onloadDone = false;
function initPageTrackers() {
pageTracker = _gat._getTracker(acct);
if (wixGoogleAnalytics){
pageTracker._trackPageview();
if (hasGoogleAnalytics) {
pageTrackerUser = _gat._getTracker(userGoogleAnalytics);
pageTrackerUser._initData();
pageTrackerUser._trackPageview();
}
}
}
s.onload = function () {
s.onloadDone = true;
initPageTrackers();
};
s.onreadystatechange = function() {
if (('loaded' === s.readyState || 'complete' === s.readyState) && !s.onloadDone) {
s.onloadDone = true;
initPageTrackers();
}
};
document.getElementsByTagName('head')[0].appendChild(s);
}
function pageOnLoad() {
if (typeof wixGoogleAnalytics != "undefined")
gaSSDSLoad(wixGoogleAnalytics);
//comment this line to shut down deep linking
urlState.init(docTitle);
}
function preCache(){
//Run pre cache for the flex when on a wix document
try {
if (docTypeFlags == 2) {
window.setTimeout(function() {
var ph = document.createElement('div');
ph.id = "preCacheLoader";
ph.style.width = "1px";
ph.style.height = "1px";
ph.style.position = "absolute";
document.body.appendChild(ph);
swfobject.embedSWF(staticServerUrl + "client/PreCache.swf?" + cacheKiller + "&max-age=172800", "preCacheLoader", "1", "1", minimalFlashVersion);
}, 3000);
}
} catch(e) {
}
}
function pageOnResize() {
var dimensions = getScreenDimensions();
var app = getFlashAppInstance();
if (app != null) {
try {
app.onScreenResize(dimensions.width, dimensions.height);
} catch(e) {
}
}
return false;
}
function setHistoryFrame(address, additionalInfo) {
var ifrm;
try {
var page_name = address.substr(8, adress.indexOf(',') - 8);
if (additionalInfo != null && additionalInfo.length > 0) {
page_name = page_name + '_' + additionalInfo;
}
page_name = page_name + '.html';
ifrm = document.getElementById("historyframe");
if (ifrm != null) {
ifrm.src = "/siteBackHtml?adress=" + address + '&additionalInfo=' + additionalInfo;
}
} catch(ex) {
ifrm = document.getElementById("historyframe");
if (ifrm != null) {
ifrm.src = "/siteBackFiles/siteBack.html?adress=" + address + '&additionalInfo=' + additionalInfo;
}
}
}
function onHistoryFrameLoaded(adress, additionalInfo) {
var app = getFlashAppInstance();
if (app != null) {
try {
app.onHistoryFrameLoaded(adress, additionalInfo);
} catch(e) {
}
}
}
addListener(window, "load", function() {
pageOnLoad();
});
addListener(window, "resize", function() {
pageOnResize();
});
// =============================================== settings (vars) ======================================================
FOOTER_HEIGHT = 23;
var desing_wix = "http://www.wix.com/";
var free_web = "Make a free website";
var campaign_id = "sf_footer";
//var experiment_id = _
var twitter_txt = "Check out this @Wix site";
var addrWithParamsNotEnc = window.location.href + "?client_bi=true&utm_campaign=" + campaign_id + "&experiment_id=";
var iconImageAddr = "";
var floggerAddr = "http://frog.wix.com";
var domain = "";
function buildFootbar() {
if (parseInt(biSequence) % 2 == 0) {
var oldDomain = "" + usersDomain;
domain = oldDomain.replace("users.", "static.");
iconImageAddr = "http://" + domain + "/media/" + siteIconName;
var suf = document.getElementById("wfa1");
if (suf.href) {
desing_wix = suf.href;
}
if (suf.innerHTML) {
suf_txt = suf.innerHTML;
free_web = suf.innerHTML;
}
buildFootbarNew();
// call inform
inform(floggerAddr + "/footer_bi?event_id=1&site_id=" + biSequence + "&target_sn=0");
} else {
document.getElementById("wixfooter1").parentNode.innerHTML = '';
inform(floggerAddr + "/footer_bi?event_id=3&site_id=" + biSequence + "&target_sn=0");
pageOnResize();
}
}
function buildFootbarNew() {
var footerElem = document.getElementById("wixfooter1");
footerElem.style.backgroundColor = "#F0F0F0";
footerElem.style.bottom = "0px";
footerElem.style.position = "fixed";
footerElem.style.width = "100%";
footerElem.innerHTML = "";
footerElem.parentNode.style.height = "23px";
buildPrefix(footerElem);
buildFacebook(footerElem);
buildTwitter(footerElem);
buildBuzz(footerElem);
buildDigg(footerElem);
buildStumble(footerElem);
buildSuffix(footerElem);
}
function buildPrefix(footerElem) {
var tagA = document.createElement("a");
tagA.href = desing_wix;
tagA.title = "website builder";
tagA.id = "a0id";
var L1 = document.createElement("span");
L1.className = "logo";
tagA.appendChild(L1);
footerElem.appendChild(tagA);
var imLine = document.createElement("img");
imLine.src = "http://" + domain + "/client/images/Line.png";
imLine.align = "left";
imLine.style.height = "21px";
footerElem.appendChild(imLine);
var tagA1 = document.createElement("a");
tagA1.title = "Website builder";
tagA1.className = "link1";
tagA1.align = "left";
tagA1.innerHTML = " Share this site!: ";
footerElem.appendChild(tagA1);
}
function buildTwitter(footerElem) {
var tagA = document.createElement("a");
tagA.title = "Share site on Twitter";
tagA.target = "_blank";
tagA.id = "a2id";
var experiment_id = getSocialCode("Twitter") + "_" + biSequence;
tagA.href = "http://twitter.com/share?url=" + encodeURIComponent(addrWithParamsNotEnc + experiment_id) + "&text=" + encodeURIComponent(twitter_txt) + "&original_referer=" + encodeURIComponent(document.referrer);
tagA.onclick = new Function('inform("' + floggerAddr + '/footer_bi?event_id=2&site_id=' + biSequence + '&target_sn=2")');
footerElem.appendChild(tagA);
var im = document.createElement("img");
im.alt = "Share site on Twitter";
im.border = "0";
im.hspace = "6";
im.align = "left";
im.src = "http://" + domain + "/client/images/twitter.png";
im.style.marginLeft = '7px';
im.style.width = "17px";
im.style.height = "17px";
im.style.marginTop = '3px';
im.id = "twitterId";
tagA.appendChild(im);
}
function buildStumble(footerElem) {
var tagA = document.createElement("a");
var experiment_id = getSocialCode("StumbleUpon") + "_" + biSequence;
tagA.href = "http://www.stumbleupon.com/submit?url=" + encodeURIComponent(addrWithParamsNotEnc + experiment_id) + "&title=WIX";
tagA.onclick = new Function('inform("' + floggerAddr + '/footer_bi?event_id=2&site_id=' + biSequence + '&target_sn=5")');
tagA.title = "Share site on StumbleUpon";
tagA.id = "a4id";
tagA.target = "_blank";
tagA.rel = "external";
footerElem.appendChild(tagA);
var im = document.createElement("img");
im.alt = "Share site on StumbleUpon";
im.border = "0";
im.hspace = "6";
im.align = "left";
im.src = "http://" + domain + "/client/images/stumbleupon.png";
im.style.width = "17px";
im.style.height = "17px";
im.style.marginTop = '3px';
tagA.appendChild(im);
}
function buildDigg(footerElem) {
var tagA = document.createElement("a");
var experiment_id = getSocialCode("Digg") + "_" + biSequence;
tagA.href = "http://digg.com/submit?phase=2&url=" + encodeURIComponent(addrWithParamsNotEnc + experiment_id) + "&title=WIX";
tagA.title = "Share site on Digg";
tagA.id = "a5id";
tagA.onclick = new Function('inform("' + floggerAddr + '/footer_bi?event_id=2&site_id=' + biSequence + '&target_sn=4")');
tagA.rel = "external";
tagA.target = "_blank";
footerElem.appendChild(tagA);
var im = document.createElement("img");
im.alt = "Share site on Digg";
im.border = "0";
im.hspace = "6";
im.align = "left";
im.src = "http://" + domain + "/client/images/digg.png";
im.style.width = "17px";
im.style.height = "17px";
im.style.marginTop = '3px';
tagA.appendChild(im);
}
function buildFacebook(footerElem) {
var tagA = document.createElement("a");
tagA.title = "Share site on Facebook";
tagA.id = "a6id";
var experiment_id = getSocialCode("Facebook") + "_" + biSequence;
tagA.href = "http://www.facebook.com/share.php?u=" + encodeURIComponent(addrWithParamsNotEnc + experiment_id);
tagA.onclick = new Function('return start_publish()');
tagA.target = "_blank";
footerElem.appendChild(tagA);
var im = document.createElement("img");
im.alt = "Share site on Facebook";
im.border = "0";
im.hspace = "6";
im.align = "left";
im.src = "http://" + domain + "/client/images/facebook.png";
im.style.width = "17px";
im.style.height = "17px";
im.style.marginTop = '3px';
tagA.appendChild(im);
}
function buildBuzz(footerElem) {
var tagA = document.createElement("a");
tagA.title = "Share site on Google Buzz";
var experiment_id = getSocialCode("Buzz") + "_" + biSequence;
tagA.href = "http://www.google.com/buzz/post?url=" + encodeURIComponent(addrWithParamsNotEnc + experiment_id) + "&imageurl=" + iconImageAddr;
tagA.onclick = new Function('inform("' + floggerAddr + '/footer_bi?event_id=2&site_id=' + biSequence + '&target_sn=3")');
tagA.id = "a3id";
tagA.target = "_blank";
footerElem.appendChild(tagA);
var im = document.createElement("img");
im.alt = "Share site on Google Buzz";
im.border = "0";
im.hspace = "6";
im.align = "left";
im.src = "http://" + domain + "/client/images/buzz.png";
im.style.width = "17px";
im.style.height = "17px";
im.style.marginTop = '3px';
tagA.appendChild(im);
}
function buildSuffix(footerElem) {
var tagA = document.createElement("a");
tagA.id = "wfa1";
tagA.href = desing_wix;
tagA.className = "link2";
tagA.title = "Free website";
tagA.innerHTML = free_web;
footerElem.appendChild(tagA);
var node = document.getElementById("wfa1");
}
function inform(name) {
new Image(0, 0).src = name;
}
function start_publish() {
var docname = "";
var url = addrWithParamsNotEnc + "1_" + biSequence;
var message = "";
shareOnFacebook(docname, url, iconImageAddr, message);
inform(floggerAddr + "/footer_bi?event_id=2&site_id=" + biSequence + "&target_sn=1");
return false;
}
function getSocialCode(name) {
var codes = {
"Facebook":"1",
"Twitter":"2",
"Buzz":"3",
"Digg":"4",
"StumbleUpon":"5"
};
for (x in codes) {
if (x.toUpperCase() == name.toUpperCase()) {
return codes[x];
}
}
return null;
}
// START: social footer persol ver
/**
* Social footer link and bi builder
* @param options A dictionary of parameters:
* @param options.url The url to share, defaults to current page.
* @param options.title The text to share, defaults to page title.
* @param options.campaign_id The campaign id defaults to window.campaign_id.
* @param options.biSequence The BI name for the campaign, defaults to window.biSequence.
* @param options.socialItems A dictionary of the links to build. Defaults are hard coded here.
* @param options.floggerAddr The flossger address. Defaults to window.floggerAddr.
* @param options.ABTesting Show the social footer only for even biSequence IDs.
*/
function buildSocialFootbar(options){
options = options || {};
var biSequence = options.biSequence || window.biSequence || 0;
var ABTesting = (typeof options.ABTesting == 'undefined') ? true : options.ABTesting;
// 1 == social footer, 3 == normal footer
var footerStatus = 3;
var url = options.url || window.location.href;
var title = options.title || document.title;
var campaign_id = options.campaign_id || 'sf_footer2'; // || window.campaign_id || 'sf_footer2';
var urlParams = "?client_bi=true&utm_campaign=" + campaign_id + "&experiment_id=";
var floggerAddr = options.floggerAddr || window.floggerAddr || '';
var socialItems = options.socialItems || {
'facebook':{'name':'Facebook', 'target_sn':1, 'id':'ficn', 'href':'http://www.facebook.com/share.php?', 'url': 'u=' , 'text':'', 'title': '', 'extra': ''},
'twitter': {'name':'Twitter', 'target_sn':2, 'id':'ticn', 'href':'https://twitter.com/share/?', 'url': 'url=', 'text':'&text=', 'title':'Check out this @Wix site', 'extra': '&original_referer=' + document.referrer},
'buzz': {'name':'Google Buzz', 'target_sn':3, 'id':'bicn', 'href':'http://www.google.com/buzz/post?', 'url': 'url=', 'text':'&text=', 'title': '', 'extra': ''},
'digg': {'name':'Digg', 'target_sn':4, 'id':'dicn', 'href':'http://digg.com/submit?phase=2&', 'url': 'url=', 'text':'&title=', 'title': 'WIX', 'extra': ''},
'stumble': {'name':'StumbleUpon', 'target_sn':5, 'id':'suicn', 'href':'http://www.stumbleupon.com/submit?', 'url': 'url=', 'text':'&title=', 'title': 'WIX', 'extra': ''}
}
var buildButtons = function(){
footerStatus = 1;
var footer = document.getElementById('footer');
var links = document.getElementById('sfshare');
links.style.display = 'block';
for (var i in socialItems){
if(socialItems.hasOwnProperty(i)){
var item = socialItems[i];
var link = document.getElementById(item.id);
if (!link) continue;
link.href = item.href
// Build URL + bi parameters and encode it
+ item.url + encodeURIComponent(url + (item.urlParams || urlParams) + item.target_sn + '_' + biSequence)
// Text or title to show in share - leave 'item.text' empty to skip, else will print page title if text not explicitly defined
+ item.text + (item.text && (item.title || title))
// Add other parameters if exist
+ (item.extra || '');
link.target = '_blank';
link.title = 'Share site on ' + item.name;
link.rel = item.target_sn;
addEvent(link, 'click', function(e){
var e = e || window.event;
var tgt = e.target || e.srcElement;
inform(floggerAddr + '/footer_bi?event_id=2&site_id=' + biSequence + '&target_sn=' + tgt.rel);
});
}
}
}
// Helper functions
/**
* Simple cross browser add event
* fixes 'this' context for IE
* @param html_element The element to apply the event on
* @param event_name The name of the event (like 'click', 'focus' etc.)
* @param event_function The function to run on event.
*/
function addEvent(html_element, event_name, event_function)
{
if (html_element.attachEvent) //Internet Explorer
html_element.attachEvent("on" + event_name, event_function);
else if (html_element.addEventListener) //Firefox & company
html_element.addEventListener(event_name, event_function, false); //don't need the 'call' trick because in FF everything already works in the right way
}
// Set Footer width
func = function(){
document.getElementById('footer').style.width = document.getElementById('app') ? document.getElementById('app').width + 'px' : '1000px';
};
// Run!
setTimeout(func, 1000);
if (!ABTesting || (ABTesting && (+biSequence % 2 == 0))){
buildButtons();
}
inform(floggerAddr + "/footer_bi?event_id=" + footerStatus + "&site_id=" + biSequence + "&target_sn=0");
}
// END: social footer persol ver
function setUrlFragment(newHash) {
urlState.setUrlFragment(newHash);
}
function hashToFlash(hashVal) {
var app = getFlashAppInstance();
if (app != null) {
try {
app.onUrlFragmentChange(hashVal);
} catch(e) {
}
}
}
var docTitle = document.title;
var urlState = {
options:{
currentHash:""
},
init:function(docTitle) {
document.title = docTitle;
this.options.currentHash = this.getHash();
/*Browser detection*/
var browser = navigator.userAgent.toLowerCase();
var place = browser.indexOf("msie");
var version = browser.charAt(place + 3);
if (typeof document.all !== "undefined" && (version == "6" || version === "7")) {
setInterval(this.ieCheckChange, 100);
} else {
window.onhashchange = function() {
urlState.urlchanged();
};
}
},
urlchanged:function() {
var hashValue = this.getHash();
hashToFlash(hashValue);
this.options.currentHash = hashValue;
document.title = docTitle;
},
getHash:function() {
var hashStr = this.setString(window.location.hash);
return hashStr;
},
setString:function(str) {
var hashValue;
var fullUrl = str.replace("%20", "-");
fullUrl = fullUrl.replace(" ", "-");
/* deprecated, used to unescape values for safari only */
fullUrl = unescape(fullUrl);
fullUrl = fullUrl.toLowerCase();
if (fullUrl.indexOf("#!") == 0 || fullUrl.indexOf("#!") == true) {
hashValue = fullUrl.split("#!")[1];
} else {
hashValue = "";
}
return hashValue;
},
setUrlFragment:function(newHash) {
/* timeout is a fix for chrome who execute go to page after hash change */
setTimeout(function(){window.location.hash = "!" + newHash;}, 1000);
document.title = docTitle;
},
ieCheckChange:function() {
var curHash = urlState.getHash();
var lastHash = urlState.options.currentHash;
if (lastHash !== curHash) {
urlState.options.currentHash = curHash;
hashToFlash(curHash);
}
},
getLocation:function(){
return window.location.href;
}
};