Skip to content

Instantly share code, notes, and snippets.

@perminder-klair
Created October 27, 2013 09:12
Show Gist options
  • Save perminder-klair/7179481 to your computer and use it in GitHub Desktop.
Save perminder-klair/7179481 to your computer and use it in GitHub Desktop.
blugaa ajax code
function getRandomString(e) {
var t = "";
var n = "abcdefghijklmnopqrstuvqxyz";
for (var r = 0; r < e; r++) t += n.charAt(Math.floor(Math.random() * n.length));
return t
}
function blugaaRadio() {
this.queue = new Array;
this.dequeue = function() {
this.enqueue();
return this.queue.shift()
};
this.power = false;
this.setup = function() {
this.enqueue();
this.enqueue()
};
this.enqueue = function() {
f = getRandomString(5);
$.getJSON("/api/radio.php?id=" + f, function(e) {
bplayer.radio.queue.push(e)
})
};
this.play = function() {
bplayer.playTrack(this.dequeue())
};
this.activate = function() {
this.power = true;
soundManager.stopAll();
$("#player_buttonRadio").removeClass("player_buttonRadioOff").addClass("player_buttonRadioOn");
this.play()
};
this.deactivate = function() {
bplayer.resetRadio();
$("#player_buttonRadio").removeClass("player_buttonRadioOn").addClass("player_buttonRadioOff")
};
this.getNextTrack = function() {
return this.queue[0]
}
}
function reloadAds() {
return;
googletag.pubads().refresh([slot1]);
googletag.cmd.push(function() {
googletag.display("div-gpt-ad-1358757159521-0")
});
if ($("#div-gpt-ad-1367927631285-0").length) {
googletag.display("div-gpt-ad-1367927631285-0")
}
if ($("#div-gpt-ad-1368271506639-0").length) {
googletag.display("div-gpt-ad-1368271506639-0")
}
}
function trackPage(e) {
e = e.replace('http://www.blugaa.com', '').replace('http://blugaa.com', '');
_gaq.push(["_trackPageview", e]);
}
function cantPlay() {
alert("This Track is unavailable due to licensing restrictions. \nYou can enjoy videos.")
}
function addToPlaylist(e) {
if (!loggedIn) {
showToast("You Need To Be Logged In!");
return
}
$.post("/api/favourite.php", {
track: e,
action: 1
}, function(e) {
if (e.status) {
showToast("Added To Favourites")
}
})
}
function playTrackIfReqested() {
var e = window.location.search;
if (e) {
e = e.substr(6);
if (e) {
if (e == "album") {
playAllTracks()
} else {
bplayer.enqueue(e)
}
}
}
}
function fbShare(e) {
NewWindow("https://www.facebook.com/sharer/sharer.php?u=" + e, "login", 500, 500, "no")
}
function bindContactForm() {
$.post("/api/contact/index.php", $("#contact").serialize(), function(e) {
if (e) alert("You Message Was Sent.");
else alert("There was some error.!")
})
}
function openLoginWindow(e) {
NewWindow("/auth/authenticate.php?provider=" + e, "login", 500, 500, "no")
}
function openLogoutWindow() {
NewWindow("/auth/authenticate.php?mode=logout", "login", 500, 500, "no")
}
function NewWindow(e, t, n, r, i) {
LeftPosition = screen.width ? (screen.width - n) / 2 : 0;
TopPosition = screen.height ? (screen.height - r) / 2 : 0;
settings = "height=" + r + ",width=" + n + ",top=" + TopPosition + ",left=" + LeftPosition + ",scrollbars=" + i + ",resizable=no";
win = window.open(e, t, settings)
}
function bindRemoveTrackFromQueue() {
$(".removeAllTracksFromQueue").click(function() {
bplayer.reset();
bplayer.updatePlaylist();
hideToast()
});
$("div.removeTrackFromQueue").click(function() {
bplayer.remove($(this).attr("data-id"));
bplayer.updatePlaylist();
var e = bplayer.getNextTrack();
if (e == undefined) {
e.title = ""
}
$("#player_nextTrackTitle").text(e.title.substring(0, 17))
})
}
function showToast(e, t) {
clearTimeout(toastTimer);
$("#notificationToast").show();
$("#notificationToast").text(e);
if (t == undefined) {
toastTimer = setTimeout(hideToast, 5e3)
} else {
if (t != 0) {
toastTimer = setTimeout(hideToast, t * 1e3)
}
}
}
function hideToast() {
$("#notificationToast").fadeOut("slow")
}
function bindAllLinks() {
$("a").click(function() {
if ($(this).attr("no-ajax") == 1) {
return true
}
if ($(this).attr("href") == undefined) {
return false
}
if ($(this).attr("href") == "#") {
return false
}
var e = $(this).attr("href");
History.pushState({
state: 1
}, "Loading. Please Wait....", e);
return false
})
}
function blugaaPlayer() {
this.setup = function() {
seekSlider.slider("disable");
soundManager.setup({
url: "/swf/v2",
ontimeout: function() {
alert("Error")
},
debugMode: true,
useConsole: true,
useHTML5Audio: true
});
soundManager.onready(function() {
playTrackIfReqested()
});
bplayer.updateHd();
bplayer.radio.setup()
};
this.radio = new blugaaRadio;
this.currentTrack = null;
this.play = function(e) {
if (!e) {
if (!this.currentTrack) {
showToast("Nothing to play!");
return
}
soundManager.play(this.currentTrack.id);
return
}
showToast("Buffering");
$.getJSON("/api/getTrackInfo.php?id=" + e, function(e) {
bplayer.playTrack(e)
})
};
this.playtime = 1;
this.cover = "";
this.shuffle = false;
this.hd = readCookie("hd") == 1 ? true : false;
this.repeat = true;
this.lastRandom = -1;
this.pause = function() {
soundManager.pause(this.currentTrack.id)
};
this.volume = function(e) {
if (this.currentTrack != null) {
soundManager.setVolume(this.currentTrack.id, e)
}
showToast("Volume: " + e)
};
this.playTrack = function(e) {
if (e == null) {
return
}
_gaq.push(['_trackEvent', 'desktop', 'play']);
console.log('play tracked');;
if (this.currentTrack) {
this.currentTrack.destruct()
}
seekSlider.slider("value", 0);
this.playtime = e.playtime;
this.cover = e.cover;
this.likeStatus = false;
showToast('Initializing: "' + e.title + '"');
this.currentTrack = soundManager.createSound({
id: e.id,
url: this.hd ? e.urlHd ? e.urlHd : e.url : e.url,
title: e.title,
playtime: e.playtime,
autoLoad: false,
autoPlay: true,
multishot: false,
volume: volumeSlider.slider("value"),
whileloading: function() {},
whileplaying: function() {
var e = this.position / 10;
var t = e / bplayer.playtime;
seekSlider.slider("value", t)
},
onload: function() {
$("#player_buttonPlay").hide();
$("#player_buttonPause").show();
seekSlider.slider("enable")
},
onplay: function() {
showToast('Now Playing: "' + e.title + '"');
$("#player_curTrackTitle").text(e.title);
var t = bplayer.getNextTrack();
var n = new Object;
if (!t) {
t.title = ""
}
$("#player_nextTrackTitle").text(t.title.substring(0, 17));
$("#player_albumCover").attr("src", bplayer.cover);
$("#player_buttonPlay").hide();
$("#player_buttonPause").show();
seekSlider.slider("enable");
bplayer.isPlaying = true
},
onfinish: function() {
bplayer.isPlaying = false;
showToast("Finished !");
$("#player_buttonPause").hide();
$("#player_buttonPlay").show();
seekSlider.slider("value", 0);
seekSlider.slider("disable");
bplayer.next()
},
onpause: function() {
showToast("Paused");
$("#player_buttonPause").hide();
$("#player_buttonPlay").show()
},
onresume: function() {
showToast('Resuming: "' + e.title + '"');
$("#player_buttonPlay").hide();
$("#player_buttonPause").show()
},
onstop: function() {
$("#player_buttonPause").hide();
$("#player_buttonPlay").show();
this.isPlaying = false
}
});
this.updatePlaylist();
this.likeStatus = e.likeStatus;
this.updateLikeStatus()
};
this.updateLikeStatus = function() {
if (this.currentPointer >= 0) this.queue[this.currentPointer].likeStatus = this.likeStatus;
if (this.likeStatus == true) {
$("#player_buttonLike").removeClass("player_buttonNotLiked").addClass("player_buttonLiked");
return
}
$("#player_buttonLike").removeClass("player_buttonLiked").addClass("player_buttonNotLiked");
return
};
this.likeIt = function() {
if (!this.isPlaying) return;
if (this.likeStatus == false) {
if (!loggedIn) {
showToast("You Need To Be Logged In!");
return
}
$.post("/api/favourite.php", {
track: bplayer.currentTrack.id,
action: 1
}, function(e) {
bplayer.likeStatus = e.status;
bplayer.updateLikeStatus()
})
}
if (this.likeStatus == true) {
if (!loggedIn) {
showToast("You Need To Be Logged In!");
return
}
$.post("/api/favourite.php", {
track: bplayer.currentTrack.id,
action: 0
}, function(e) {
bplayer.likeStatus = e.status;
bplayer.updateLikeStatus()
})
}
};
this.toggleShuffle = function() {
if (!this.shuffle) {
$("#player_buttonShuffle").removeClass("player_buttonShuffleOff").addClass("player_buttonShuffleOn");
this.shuffle = true;
showToast("Shuffle On");
return
}
$("#player_buttonShuffle").removeClass("player_buttonShuffleOn").addClass("player_buttonShuffleOff");
this.shuffle = false;
showToast("Shuffle Off")
};
this.toggleRadio = function() {
if (!this.radio.power) {
this.radio.activate();
return
} else this.radio.deactivate()
};
this.toggleHd = function() {
if (!this.hd) {
$("#player_buttonHd").removeClass("player_buttonHdOff").addClass("player_buttonHdOn");
this.hd = true;
createCookie("hd", "1", 365);
showToast("HD On");
if (bplayer.currentPointer != -1) bplayer.playNthTrack(bplayer.currentPointer, true);
return
}
$("#player_buttonHd").removeClass("player_buttonHdOn").addClass("player_buttonHdOff");
this.hd = false;
createCookie("hd", "0", 365);
showToast("HD Off");
if (bplayer.currentPointer != -1) bplayer.playNthTrack(bplayer.currentPointer, true)
};
this.updateHd = function() {
if (!this.hd) {
$("#player_buttonHd").removeClass("player_buttonHdOn").addClass("player_buttonHdOff");
return
}
$("#player_buttonHd").removeClass("player_buttonHdOff").addClass("player_buttonHdOn")
};
this.toggleRepeat = function() {
if (!this.repeat) {
$("#player_buttonRepeat").removeClass("player_buttonRepeatOff").addClass("player_buttonRepeatOn");
this.repeat = true;
showToast("Repeat On");
return
}
$("#player_buttonRepeat").removeClass("player_buttonRepeatOn").addClass("player_buttonRepeatOff");
this.repeat = false;
showToast("Repeat Off")
};
this.getNextTrack = function() {
if (this.radio.power) {
return this.radio.getNextTrack();
return
}
if (this.queue.length == 0) {
return null
}
var e = this.currentPointer;
e++;
e %= this.queue.length;
return this.queue[e]
};
this.queue = new Array;
this.shuffleQueue = new Array;
this.enqueue = function(e) {
if (this.radio.power) {
this.radio.deactivate()
}
var t = -1;
$(this.queue).each(function(n, r) {
if (r.id == e) {
t = n;
return
}
});
if (t != -1) {
showToast("Alread IN Queue");
bplayer.playNthTrack(t);
return
}
$.getJSON("/api/getTrackInfo.php?id=" + e, function(e) {
bplayer.queue.push(e);
showToast("Added To Queue.");
if (bplayer.queue.length == 1) {
bplayer.next()
}
if (bplayer.currentPointer == bplayer.queue.length) {
bplayer.currentPointer = 0
}
var t = bplayer.getNextTrack();
if (t == undefined) {
t.title = ""
}
$("#player_nextTrackTitle").text(t.title.substring(0, 17))
})
};
this.currentPointer = -1;
this.dequeue = function() {
if (this.radio.power) {
return this.radio.dequeue()
}
if (this.queue.length == 0) {
return null
}
if (this.shuffle) {
while (this.queue.length > 1 && this.lastRandom == this.currentPointer) {
this.currentPointer = Math.round(Math.random() * (this.queue.length - 1))
}
this.lastRandom = this.currentPointer;
return this.queue[this.currentPointer]
}
this.currentPointer++;
if (this.repeat == false && this.currentPointer == this.queue.length) {
this.currentPointer--;
showToast("List Finished.");
return null
}
this.currentPointer %= this.queue.length;
this.lastRandom = this.currentPointer;
return this.queue[this.currentPointer]
};
this.prev = function() {
if (this.queue.length == 0) {
bplayer.playTrack(null);
return
}
this.currentPointer--;
if (this.currentPointer < 0) {
this.currentPointer = this.queue.length - 1
}
bplayer.playTrack(this.queue[this.currentPointer])
};
this.next = function() {
this.playTrack(this.dequeue())
};
this.playNthTrack = function(e, t) {
if (typeof t === "undefined") t = false;
if (this.currentPointer == e && !t) {
showToast("Already Playing");
return
}
this.playTrack(this.queue[e]);
this.currentPointer = e;
this.lastRandom = this.currentPointer
};
this.updatePlaylist = function() {
$("#playlist").html("");
if (this.queue.length == 0) {
$("#playlist").html("<h1>Songs are added to the queue when you start playing.</h1>");
return
}
var e = 0;
$("#playlist").html("<h3>" + bplayer.queue.length + " Songs in Queue</h3>");
$("#playlist").append('<ol id="playlistOl">');
$("#playlistOl").append('<li class="removeAllTracksFromQueue"> <a href="javascript:void(0)");">Remove All</a></span></li>');
$(this.queue).each(function(t, n) {
if (bplayer.currentTrack.id == n.id) {
$("#playlistOl").append('<li class="currentTrack">' + (e + 1) + '. <a href="javascript:void(0)" onclick="bplayer.playNthTrack(' + e + ');">' + n.title + '</a><div class="removeTrackFromQueue" data-id="' + e + '"></div></li>')
} else {
$("#playlistOl").append("<li>" + (e + 1) + '. <a href="javascript:void(0)" onclick="bplayer.playNthTrack(' + e + ');">' + n.title + '</a><div class="removeTrackFromQueue" data-id="' + e + '"></div></li>')
}
e++
});
$("#playlist").append("</ol>");
bindRemoveTrackFromQueue()
};
this.remove = function(e) {
if (this.queue.length == 1) {
this.reset();
return
}
this.queue.splice(e, 1);
if (this.currentPointer >= e) {
this.currentPointer--
}
if (this.currentPointer == e - 1) {
this.next()
}
};
this.reset = function() {
this.queue.splice(0, this.queue.length);
soundManager.stopAll();
this.currentPointer = -1;
$("#player_curTrackTitle").text("Click To Play");
$("#player_nextTrackTitle").text("");
$("#player_albumCover").attr("src", "http://cdn.blugaa.com/images/no-song.jpg");
$("#player_buttonPlay").show();
$("#player_buttonPause").hide();
seekSlider.slider("disable");
bplayer.isPlaying = false;
this.likeStatus = false;
this.updateLikeStatus();
showToast("Queue Cleared")
};
this.resetRadio = function() {
bplayer.isPlaying = false;
soundManager.stopAll();
this.currentTrack = null;
$("#player_curTrackTitle").text("Click To Play");
$("#player_nextTrackTitle").text("");
$("#player_albumCover").attr("src", "http://cdn.blugaa.com/images/no-song.jpg");
$("#player_buttonPlay").show();
$("#player_buttonPause").hide();
seekSlider.slider("disable");
if (bplayer.currentPointer != -1 && bplayer.radio.power) {
var e = bplayer.queue[bplayer.currentPointer];
bplayer.currentTrack = soundManager.createSound({
id: e.id,
url: bplayer.hd ? e.urlHd ? e.urlHd : e.url : e.url,
title: e.title,
playtime: e.playtime,
autoLoad: false,
autoPlay: true,
multishot: false,
volume: volumeSlider.slider("value"),
whileloading: function() {},
whileplaying: function() {
var e = this.position / 10;
var t = e / bplayer.playtime;
seekSlider.slider("value", t)
},
onload: function() {
$("#player_buttonPlay").hide();
$("#player_buttonPause").show();
seekSlider.slider("enable")
},
onplay: function() {
showToast('Now Playing: "' + e.title + '"');
$("#player_curTrackTitle").text(e.title);
var t = bplayer.getNextTrack();
var n = new Object;
if (!t) {
t.title = ""
}
$("#player_nextTrackTitle").text(t.title.substring(0, 17));
$("#player_albumCover").attr("src", bplayer.cover);
$("#player_buttonPlay").hide();
$("#player_buttonPause").show();
seekSlider.slider("enable");
bplayer.isPlaying = true
},
onfinish: function() {
bplayer.isPlaying = false;
showToast("Finished !");
$("#player_buttonPause").hide();
$("#player_buttonPlay").show();
seekSlider.slider("value", 0);
seekSlider.slider("disable");
bplayer.next()
},
onpause: function() {
showToast("Paused");
$("#player_buttonPause").hide();
$("#player_buttonPlay").show()
},
onresume: function() {
showToast('Resuming: "' + e.title + '"');
$("#player_buttonPlay").hide();
$("#player_buttonPause").show()
},
onstop: function() {
$("#player_buttonPause").hide();
$("#player_buttonPlay").show();
this.isPlaying = false
}
});
this.updatePlaylist();
this.likeStatus = e.likeStatus;
this.updateLikeStatus()
}
bplayer.radio.power = false
}
}
function showPlaylist() {}
function createCookie(e, t, n) {
if (n) {
var r = new Date;
r.setTime(r.getTime() + n * 24 * 60 * 60 * 1e3);
var i = "; expires=" + r.toGMTString()
} else {
var i = ""
}
document.cookie = e + "=" + t + i + "; path=/"
}
function readCookie(e) {
var t = e + "=";
var n = document.cookie.split(";");
for (var r = 0; r < n.length; r++) {
var i = n[r];
while (i.charAt(0) == " ") {
i = i.substring(1, i.length)
}
if (i.indexOf(t) == 0) {
return i.substring(t.length, i.length)
}
}
return null
}
function eraseCookie(e) {
createCookie(e, "", -1)
}
function playAllTracks() {
if (allCheckedFlag == 0) {
checkAllBoxes()
}
$("#play").submit()
}
function checkAllBoxes() {
if (allCheckedFlag == 0) {
$('input[type="checkbox"]').each(function() {
$(this).attr("checked", true)
});
$("a#selectAll").text("Deselect All");
allCheckedFlag = 1
} else {
$('input[type="checkbox"]').each(function() {
$(this).attr("checked", false)
});
$("a#selectAll").text("Select All");
allCheckedFlag = 0
}
}
function bindPlayButton() {
allCheckedFlag = 0;
$("ul.trackList li").hover(function() {
$(this).css("background-color", "#D0E4F0")
}, function() {
$(this).css("background-color", "")
});
$('input[type="checkbox"][name="checkAll"]').change(function() {
checkAllBoxes()
});
$("a#selectAll").click(function() {
checkAllBoxes()
});
$("a#playAll").click(function() {
playAllTracks()
});
$("a#playSelected").click(function() {
$("#play").submit()
})
}
function playButtonListener() {
$('input[name="play[]"]').each(function() {
if ($(this).attr("checked")) {
bplayer.enqueue($(this).val())
}
});
return false
}
function getUserDetails() {
$.ajaxSetup({
cache: false
});
$.getJSON("/api/mydetails.php", function(e) {
var t = '<a href="/login.php" style="color:#fff;font-weight:bold;"> Login</a>';
if (e.name != "Login") {
t = '<a href="' + e.url + '" style="color:#fff;font-weight:bold;"><img src="' + e.image + '"/>' + e.name + "</a>";
loggedIn = true
}
$("#userLinks").html(t);
bindAllLinks();
$.ajaxSetup({
cache: true
})
})
}
function delTrackFromPlaylist(e, t) {
$.post("/playlists/editPlaylist.php", {
action: "deleteTrack",
track_id: e,
playlist_id: t
}, function(e) {
var t = $(e).find("#content").contents();
$("#content").html(t);
bindAllLinks();
bindPlayButton();
showToast("Track Deleted");
$("#playlistCreateSubmit").removeAttr("disabled");
$("#playlistCreateSubmit").val("Create")
})
}
var bplayer;
var lastAjaxRequest;
var toastTimer = null;
var allCheckedFlag = 0;
var trackToAdd = null;
var myPlaylists = Array();
var loggedIn = false;
$(document).ready(function() {
volumeSlider = $("#volumeSlider");
volumeSlider.slider({
range: "min",
min: 0,
max: 100,
value: readCookie("volumeCookie") ? readCookie("volumeCookie") : 33,
slide: function(e, t) {
createCookie("volumeCookie", t.value, 365);
bplayer.volume(t.value)
}
});
seekSlider = $("#seekSlider");
seekSlider.slider({
range: "min",
min: 0,
max: 100,
value: 0,
slide: function(e, t) {
var n = Math.round(t.value / 100 * bplayer.playtime * 1e3);
soundManager.setPosition(bplayer.currentTrack.id, n)
}
});
bplayer = new blugaaPlayer;
bplayer.setup();
$("#player_buttonPlay").click(function() {
bplayer.play()
});
$("#player_buttonPlaylist").click(function() {
bplayer.updatePlaylist();
$("#playlistArea").modal({
autoPosition: false,
overlayClose: true,
appendTo: "#playlist_container"
})
});
bindRemoveTrackFromQueue();
$("#player_buttonPause").click(function() {
bplayer.pause()
});
$("#player_buttonRepeat").click(function() {
bplayer.toggleRepeat()
});
$("#player_buttonShuffle").click(function() {
bplayer.toggleShuffle()
});
$("#player_buttonHd").click(function() {
bplayer.toggleHd()
});
$("#player_buttonRadio").click(function() {
bplayer.toggleRadio()
});
$("#player_buttonNext").click(function() {
bplayer.next()
});
$("#player_nextTrackTitle").click(function() {
bplayer.next()
});
$("#player_buttonPrev").click(function() {
bplayer.prev()
});
$("#player_buttonLike").click(function() {
bplayer.likeIt()
});
var e = window.History;
if (!e.enabled) {
return
}
getUserDetails();
bindAllLinks();
bindPlayButton();
$("#search").submit(function() {
var t = $("#searchBoxTop").val();
if (t.length < 3) {
showToast("Please Type At Least 3 Characters To Search.");
return false
}
var n = "/search.php?q=" + t;
e.pushState({
state: 1
}, "Loading. Please Wait....", n);
return false
});
e.Adapter.bind(window, "statechange", function() {
var t = e.getState();
showToast("Loading.....", 0);
var n = t.url;
$(window).scrollTop(0);
$("#content").html('<img src="http://static.blugaa.com/images/splash-loader.gif" style="margin:150px 300px;">');
if (lastAjaxRequest) {
lastAjaxRequest.abort()
}
lastAjaxRequest = $.ajax({
url: encodeURI(n),
type: "get",
error: function(t, n, r) {
showToast("Error: " + t.status + " " + t.statusText, 1);
e.back(1)
},
success: function(e) {
var t = $(e);
$(document).attr("title", t.filter("title").text());
$("#wrapper").replaceWith($("#wrapper", e));
reloadAds();
trackPage(n);
hideToast();
bindAllLinks();
bindPlayButton();
FB.XFBML.parse()
}
})
})
});
(function(e) {
"function" === typeof define && define.amd ? define(["jquery"], e) : e(jQuery)
})(function(e) {
var t = [],
n = e(document),
r = e.browser.msie && 6 === parseInt(e.browser.version) && "object" !== typeof window.XMLHttpRequest,
i = e.browser.msie && 7 === parseInt(e.browser.version),
s = null,
o = e(window),
u = [];
e.modal = function(t, n) {
return e.modal.impl.init(t, n)
};
e.modal.close = function() {
e.modal.impl.close()
};
e.modal.focus = function(t) {
e.modal.impl.focus(t)
};
e.modal.setContainerDimensions = function() {
e.modal.impl.setContainerDimensions()
};
e.modal.setPosition = function() {
e.modal.impl.setPosition()
};
e.modal.update = function(t, n) {
e.modal.impl.update(t, n)
};
e.fn.modal = function(t) {
return e.modal.impl.init(this, t)
};
e.modal.defaults = {
appendTo: "body",
focus: !0,
opacity: 50,
overlayId: "simplemodal-overlay",
overlayCss: {},
containerId: "simplemodal-container",
containerCss: {},
dataId: "simplemodal-data",
dataCss: {},
minHeight: null,
minWidth: null,
maxHeight: null,
maxWidth: null,
autoResize: !1,
autoPosition: !0,
zIndex: 1e3,
close: !0,
closeHTML: '<a class="modalCloseImg" title="Close"></a>',
closeClass: "simplemodal-close",
escClose: !0,
overlayClose: !1,
fixed: !0,
position: null,
persist: !1,
modal: !0,
onOpen: null,
onShow: null,
onClose: null
};
e.modal.impl = {
d: {},
init: function(t, n) {
if (this.d.data) return !1;
s = e.browser.msie && !e.support.boxModel;
this.o = e.extend({}, e.modal.defaults, n);
this.zIndex = this.o.zIndex;
this.occb = !1;
if ("object" === typeof t) {
if (t = t instanceof e ? t : e(t), this.d.placeholder = !1, 0 < t.parent().parent().size() && (t.before(e("<span></span>").attr("id", "simplemodal-placeholder").css({
display: "none"
})), this.d.placeholder = !0, this.display = t.css("display"), !this.o.persist)) this.d.orig = t.clone(!0)
} else if ("string" === typeof t || "number" === typeof t) t = e("<div></div>").html(t);
else return alert("SimpleModal Error: Unsupported data type: " + typeof t), this;
this.create(t);
this.open();
e.isFunction(this.o.onShow) && this.o.onShow.apply(this, [this.d]);
return this
},
create: function(n) {
this.getDimensions();
if (this.o.modal && r) this.d.iframe = e('<iframe src="javascript:false;"></iframe>').css(e.extend(this.o.iframeCss, {
display: "none",
opacity: 0,
position: "fixed",
height: u[0],
width: u[1],
zIndex: this.o.zIndex,
top: 0,
left: 0
})).appendTo(this.o.appendTo);
this.d.overlay = e("<div></div>").attr("id", this.o.overlayId).addClass("simplemodal-overlay").css(e.extend(this.o.overlayCss, {
display: "none",
opacity: this.o.opacity / 100,
height: this.o.modal ? t[0] : 0,
width: this.o.modal ? t[1] : 0,
position: "fixed",
left: 0,
top: 0,
zIndex: this.o.zIndex + 1
})).appendTo(this.o.appendTo);
this.d.container = e("<div></div>").attr("id", this.o.containerId).addClass("simplemodal-container").css(e.extend({
position: this.o.fixed ? "fixed" : "absolute"
}, this.o.containerCss, {
display: "none",
zIndex: this.o.zIndex + 2
})).append(this.o.close && this.o.closeHTML ? e(this.o.closeHTML).addClass(this.o.closeClass) : "").appendTo(this.o.appendTo);
this.d.wrap = e("<div></div>").attr("tabIndex", -1).addClass("simplemodal-wrap").css({
height: "100%",
outline: 0,
width: "100%"
}).appendTo(this.d.container);
this.d.data = n.attr("id", n.attr("id") || this.o.dataId).addClass("simplemodal-data").css(e.extend(this.o.dataCss, {
display: "none"
})).appendTo("body");
this.setContainerDimensions();
this.d.data.appendTo(this.d.wrap);
(r || s) && this.fixIE()
},
bindEvents: function() {
var i = this;
e("." + i.o.closeClass).bind("click.simplemodal", function(e) {
e.preventDefault();
i.close()
});
i.o.modal && i.o.close && i.o.overlayClose && i.d.overlay.bind("click.simplemodal", function(e) {
e.preventDefault();
i.close()
});
n.bind("keydown.simplemodal", function(e) {
i.o.modal && 9 === e.keyCode ? i.watchTab(e) : i.o.close && i.o.escClose && 27 === e.keyCode && (e.preventDefault(), i.close())
});
o.bind("resize.simplemodal orientationchange.simplemodal", function() {
i.getDimensions();
i.o.autoResize ? i.setContainerDimensions() : i.o.autoPosition && i.setPosition();
r || s ? i.fixIE() : i.o.modal && (i.d.iframe && i.d.iframe.css({
height: u[0],
width: u[1]
}), i.d.overlay.css({
height: t[0],
width: t[1]
}))
})
},
unbindEvents: function() {
e("." + this.o.closeClass).unbind("click.simplemodal");
n.unbind("keydown.simplemodal");
o.unbind(".simplemodal");
this.d.overlay.unbind("click.simplemodal")
},
fixIE: function() {
var t = this.o.position;
e.each([this.d.iframe || null, !this.o.modal ? null : this.d.overlay, "fixed" === this.d.container.css("position") ? this.d.container : null], function(e, n) {
if (n) {
var r = n[0].style;
r.position = "absolute";
if (2 > e) r.removeExpression("height"), r.removeExpression("width"), r.setExpression("height", 'document.body.scrollHeight > document.body.clientHeight ? document.body.scrollHeight : document.body.clientHeight + "px"'), r.setExpression("width", 'document.body.scrollWidth > document.body.clientWidth ? document.body.scrollWidth : document.body.clientWidth + "px"');
else {
var i, s;
t && t.constructor === Array ? (i = t[0] ? "number" === typeof t[0] ? t[0].toString() : t[0].replace(/px/, "") : n.css("top").replace(/px/, ""), i = -1 === i.indexOf("%") ? i + ' + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"' : parseInt(i.replace(/%/, "")) + ' * ((document.documentElement.clientHeight || document.body.clientHeight) / 100) + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"', t[1] && (s = "number" === typeof t[1] ? t[1].toString() : t[1].replace(/px/, ""), s = -1 === s.indexOf("%") ? s + ' + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"' : parseInt(s.replace(/%/, "")) + ' * ((document.documentElement.clientWidth || document.body.clientWidth) / 100) + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"')) : (i = '(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"', s = '(document.documentElement.clientWidth || document.body.clientWidth) / 2 - (this.offsetWidth / 2) + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"');
r.removeExpression("top");
r.removeExpression("left");
r.setExpression("top", i);
r.setExpression("left", s)
}
}
})
},
focus: function(t) {
var n = this,
t = t && -1 !== e.inArray(t, ["first", "last"]) ? t : "first",
r = e(":input:enabled:visible:" + t, n.d.wrap);
setTimeout(function() {
0 < r.length ? r.focus() : n.d.wrap.focus()
}, 10)
},
getDimensions: function() {
var e = "undefined" === typeof window.innerHeight ? o.height() : window.innerHeight;
t = [n.height(), n.width()];
u = [e, o.width()]
},
getVal: function(e, t) {
return e ? "number" === typeof e ? e : "auto" === e ? 0 : 0 < e.indexOf("%") ? parseInt(e.replace(/%/, "")) / 100 * ("h" === t ? u[0] : u[1]) : parseInt(e.replace(/px/, "")) : null
},
update: function(e, t) {
if (!this.d.data) return !1;
this.d.origHeight = this.getVal(e, "h");
this.d.origWidth = this.getVal(t, "w");
this.d.data.hide();
e && this.d.container.css("height", e);
t && this.d.container.css("width", t);
this.setContainerDimensions();
this.d.data.show();
this.o.focus && this.focus();
this.unbindEvents();
this.bindEvents()
},
setContainerDimensions: function() {
var t = r || i,
n = this.d.origHeight ? this.d.origHeight : e.browser.opera ? this.d.container.height() : this.getVal(t ? this.d.container[0].currentStyle.height : this.d.container.css("height"), "h"),
t = this.d.origWidth ? this.d.origWidth : e.browser.opera ? this.d.container.width() : this.getVal(t ? this.d.container[0].currentStyle.width : this.d.container.css("width"), "w"),
s = this.d.data.outerHeight(!0),
o = this.d.data.outerWidth(!0);
this.d.origHeight = this.d.origHeight || n;
this.d.origWidth = this.d.origWidth || t;
var a = this.o.maxHeight ? this.getVal(this.o.maxHeight, "h") : null,
f = this.o.maxWidth ? this.getVal(this.o.maxWidth, "w") : null,
a = a && a < u[0] ? a : u[0],
f = f && f < u[1] ? f : u[1],
l = this.o.minHeight ? this.getVal(this.o.minHeight, "h") : "auto",
n = n ? this.o.autoResize && n > a ? a : n < l ? l : n : s ? s > a ? a : this.o.minHeight && "auto" !== l && s < l ? l : s : l,
a = this.o.minWidth ? this.getVal(this.o.minWidth, "w") : "auto",
t = t ? this.o.autoResize && t > f ? f : t < a ? a : t : o ? o > f ? f : this.o.minWidth && "auto" !== a && o < a ? a : o : a;
this.d.container.css({
height: n,
width: t
});
this.d.wrap.css({
overflow: s > n || o > t ? "auto" : "visible"
});
this.o.autoPosition && this.setPosition()
},
setPosition: function() {
var e, t;
e = u[0] / 2 - this.d.container.outerHeight(!0) / 2;
t = u[1] / 2 - this.d.container.outerWidth(!0) / 2;
var n = "fixed" !== this.d.container.css("position") ? o.scrollTop() : 0;
this.o.position && "[object Array]" === Object.prototype.toString.call(this.o.position) ? (e = n + (this.o.position[0] || e), t = this.o.position[1] || t) : e = n + e;
this.d.container.css({
left: t,
top: e
})
},
watchTab: function(t) {
if (0 < e(t.target).parents(".simplemodal-container").length) {
if (this.inputs = e(":input:enabled:visible:first, :input:enabled:visible:last", this.d.data[0]), !t.shiftKey && t.target === this.inputs[this.inputs.length - 1] || t.shiftKey && t.target === this.inputs[0] || 0 === this.inputs.length) t.preventDefault(), this.focus(t.shiftKey ? "last" : "first")
} else t.preventDefault(), this.focus()
},
open: function() {
this.d.iframe && this.d.iframe.show();
e.isFunction(this.o.onOpen) ? this.o.onOpen.apply(this, [this.d]) : (this.d.overlay.show(), this.d.container.show(), this.d.data.show());
this.o.focus && this.focus();
this.bindEvents()
},
close: function() {
if (!this.d.data) return !1;
this.unbindEvents();
if (e.isFunction(this.o.onClose) && !this.occb) this.occb = !0, this.o.onClose.apply(this, [this.d]);
else {
if (this.d.placeholder) {
var t = e("#simplemodal-placeholder");
this.o.persist ? t.replaceWith(this.d.data.removeClass("simplemodal-data").css("display", this.display)) : (this.d.data.hide().remove(), t.replaceWith(this.d.orig))
} else this.d.data.hide().remove();
this.d.container.hide().remove();
this.d.overlay.hide();
this.d.iframe && this.d.iframe.hide().remove();
this.d.overlay.remove();
this.d = {}
}
}
}
});
(function(e) {
function t(t, n) {
function r(e) {
return a.preferFlash && St && !a.ignoreFlash && "undefined" !== typeof a.flash[e] && a.flash[e]
}
function i(e) {
return function(t) {
var n = this._t;
return !n || !n._a ? null : e.call(this, t)
}
}
this.setupOptions = {
url: t || null,
flashVersion: 8,
debugMode: !0,
debugFlash: !1,
useConsole: !0,
consoleOnly: !0,
waitForWindowLoad: !1,
bgColor: "#ffffff",
useHighPerformance: !1,
flashPollingInterval: null,
html5PollingInterval: null,
flashLoadTimeout: 1e3,
wmode: null,
allowScriptAccess: "always",
useFlashBlock: !1,
useHTML5Audio: !0,
html5Test: /^(probably|maybe)$/i,
preferFlash: !0,
noSWFCache: !1
};
this.defaultOptions = {
autoLoad: !1,
autoPlay: !1,
from: null,
loops: 1,
onid3: null,
onload: null,
whileloading: null,
onplay: null,
onpause: null,
onresume: null,
whileplaying: null,
onposition: null,
onstop: null,
onfailure: null,
onfinish: null,
multiShot: !0,
multiShotEvents: !1,
position: null,
pan: 0,
stream: !0,
to: null,
type: null,
usePolicyFile: !1,
volume: 100
};
this.flash9Options = {
isMovieStar: null,
usePeakData: !1,
useWaveformData: !1,
useEQData: !1,
onbufferchange: null,
ondataerror: null
};
this.movieStarOptions = {
bufferTime: 3,
serverURL: null,
onconnect: null,
duration: null
};
this.audioFormats = {
mp3: {
type: ['audio/mpeg; codecs="mp3"', "audio/mpeg", "audio/mp3", "audio/MPA", "audio/mpa-robust"],
required: !0
},
mp4: {
related: ["aac", "m4a", "m4b"],
type: ['audio/mp4; codecs="mp4a.40.2"', "audio/aac", "audio/x-m4a", "audio/MP4A-LATM", "audio/mpeg4-generic"],
required: !1
},
ogg: {
type: ["audio/ogg; codecs=vorbis"],
required: !1
},
wav: {
type: ['audio/wav; codecs="1"', "audio/wav", "audio/wave", "audio/x-wav"],
required: !1
}
};
this.movieID = "sm2-container";
this.id = n || "sm2movie";
this.debugID = "soundmanager-debug";
this.debugURLParam = /([#?&])debug=1/i;
this.versionNumber = "V2.97a.20120916";
this.altURL = this.movieURL = this.version = null;
this.enabled = this.swfLoaded = !1;
this.oMC = null;
this.sounds = {};
this.soundIDs = [];
this.didFlashBlock = this.muted = !1;
this.filePattern = null;
this.filePatterns = {
flash8: /\.mp3(\?.*)?$/i,
flash9: /\.mp3(\?.*)?$/i
};
this.features = {
buffering: !1,
peakData: !1,
waveformData: !1,
eqData: !1,
movieStar: !1
};
this.sandbox = {};
var s;
try {
s = "undefined" !== typeof Audio && "undefined" !== typeof(Mt && 10 > opera.version() ? new Audio(null) : new Audio).canPlayType
} catch (o) {
s = !1
}
this.hasHTML5 = s;
this.html5 = {
usingFlash: null
};
this.flash = {};
this.ignoreFlash = this.html5Only = !1;
var u, a = this,
f = null,
l, c = navigator.userAgent,
h = e,
p = h.location.href.toString(),
d = document,
v, m, g, y, b = [],
w = !1,
E = !1,
S = !1,
x = !1,
T = !1,
N, C, k, L, A, O, M, _, D, P, H, B, j, F, I, q, R, U, z, W, X, V, $, J = null,
K = null,
Q, G, Y, Z, et, tt, nt, rt = !1,
it = !1,
st, ot, ut, at = 0,
ft = null,
lt, ct = null,
ht, pt, dt, vt, mt, gt, yt, bt, wt = Array.prototype.slice,
Et = !1,
St, xt, Tt, Nt, Ct, kt = c.match(/(ipad|iphone|ipod)/i),
Lt = c.match(/msie/i),
At = c.match(/webkit/i),
Ot = c.match(/safari/i) && !c.match(/chrome/i),
Mt = c.match(/opera/i),
_t = c.match(/(mobile|pre\/|xoom)/i) || kt,
Dt = !p.match(/usehtml5audio/i) && !p.match(/sm2\-ignorebadua/i) && Ot && !c.match(/silk/i) && c.match(/OS X 10_6_([3-7])/i),
Pt = "undefined" !== typeof d.hasFocus ? d.hasFocus() : null,
Ht = Ot && ("undefined" === typeof d.hasFocus || !d.hasFocus()),
Bt = !Ht,
jt = /(mp3|mp4|mpa|m4a|m4b)/i,
Ft = d.location ? d.location.protocol.match(/http/i) : null,
It = !Ft ? "http://" : "",
qt = /^\s*audio\/(?:x-)?(?:mpeg4|aac|flv|mov|mp4||m4v|m4a|m4b|mp4v|3gp|3g2)\s*(?:$|;)/i,
Rt = "mpeg4,aac,flv,mov,mp4,m4v,f4v,m4a,m4b,mp4v,3gp,3g2".split(","),
Ut = RegExp("\\.(" + Rt.join("|") + ")(\\?.*)?$", "i");
this.mimePattern = /^\s*audio\/(?:x-)?(?:mp(?:eg|3))\s*(?:$|;)/i;
this.useAltURL = !Ft;
this._global_a = null;
if (_t && (a.useHTML5Audio = !0, a.preferFlash = !1, kt)) Et = a.ignoreFlash = !0;
this.setup = function(e) {
var t = !a.url;
"undefined" !== typeof e && S && ct && a.ok() && ("undefined" !== typeof e.flashVersion || "undefined" !== typeof e.url) && tt(Q("setupLate"));
k(e);
t && I && "undefined" !== typeof e.url && a.beginDelayedInit();
!I && "undefined" !== typeof e.url && "complete" === d.readyState && setTimeout(j, 1);
return a
};
this.supported = this.ok = function() {
return ct ? S && !x : a.useHTML5Audio && a.hasHTML5
};
this.getMovie = function(e) {
return l(e) || d[e] || h[e]
};
this.createSound = function(e, t) {
function n() {
r = Z(r);
a.sounds[s.id] = new u(s);
a.soundIDs.push(s.id);
return a.sounds[s.id]
}
var r = null,
i = null,
s = null;
if (!S || !a.ok()) return tt(void 0), !1;
"undefined" !== typeof t && (e = {
id: e,
url: t
});
r = C(e);
r.url = lt(r.url);
s = r;
if (nt(s.id, !0)) return a.sounds[s.id];
if (pt(s)) i = n(), i._setup_html5(s);
else {
if (8 < y && null === s.isMovieStar) s.isMovieStar = !(!s.serverURL && !(s.type && s.type.match(qt) || s.url.match(Ut)));
s = et(s, void 0);
i = n();
if (8 === y) f._createSound(s.id, s.loops || 1, s.usePolicyFile);
else if (f._createSound(s.id, s.url, s.usePeakData, s.useWaveformData, s.useEQData, s.isMovieStar, s.isMovieStar ? s.bufferTime : !1, s.loops || 1, s.serverURL, s.duration || null, s.autoPlay, !0, s.autoLoad, s.usePolicyFile), !s.serverURL) i.connected = !0, s.onconnect && s.onconnect.apply(i);
!s.serverURL && (s.autoLoad || s.autoPlay) && i.load(s)
}!s.serverURL && s.autoPlay && i.play();
return i
};
this.destroySound = function(e, t) {
if (!nt(e)) return !1;
var n = a.sounds[e],
r;
n._iO = {};
n.stop();
n.unload();
for (r = 0; r < a.soundIDs.length; r++) if (a.soundIDs[r] === e) {
a.soundIDs.splice(r, 1);
break
}
t || n.destruct(!0);
delete a.sounds[e];
return !0
};
this.load = function(e, t) {
return !nt(e) ? !1 : a.sounds[e].load(t)
};
this.unload = function(e) {
return !nt(e) ? !1 : a.sounds[e].unload()
};
this.onposition = this.onPosition = function(e, t, n, r) {
return !nt(e) ? !1 : a.sounds[e].onposition(t, n, r)
};
this.clearOnPosition = function(e, t, n) {
return !nt(e) ? !1 : a.sounds[e].clearOnPosition(t, n)
};
this.start = this.play = function(e, t) {
var n = !1;
if (!S || !a.ok()) return tt("soundManager.play(): " + Q(!S ? "notReady" : "notOK")), n;
if (!nt(e)) {
t instanceof Object || (t = {
url: t
});
if (t && t.url) t.id = e, n = a.createSound(t).play();
return n
}
return a.sounds[e].play(t)
};
this.setPosition = function(e, t) {
return !nt(e) ? !1 : a.sounds[e].setPosition(t)
};
this.stop = function(e) {
return !nt(e) ? !1 : a.sounds[e].stop()
};
this.stopAll = function() {
for (var e in a.sounds) a.sounds.hasOwnProperty(e) && a.sounds[e].stop()
};
this.pause = function(e) {
return !nt(e) ? !1 : a.sounds[e].pause()
};
this.pauseAll = function() {
var e;
for (e = a.soundIDs.length - 1; 0 <= e; e--) a.sounds[a.soundIDs[e]].pause()
};
this.resume = function(e) {
return !nt(e) ? !1 : a.sounds[e].resume()
};
this.resumeAll = function() {
var e;
for (e = a.soundIDs.length - 1; 0 <= e; e--) a.sounds[a.soundIDs[e]].resume()
};
this.togglePause = function(e) {
return !nt(e) ? !1 : a.sounds[e].togglePause()
};
this.setPan = function(e, t) {
return !nt(e) ? !1 : a.sounds[e].setPan(t)
};
this.setVolume = function(e, t) {
return !nt(e) ? !1 : a.sounds[e].setVolume(t)
};
this.mute = function(e) {
var t = 0;
"string" !== typeof e && (e = null);
if (e) return !nt(e) ? !1 : a.sounds[e].mute();
for (t = a.soundIDs.length - 1; 0 <= t; t--) a.sounds[a.soundIDs[t]].mute();
return a.muted = !0
};
this.muteAll = function() {
a.mute()
};
this.unmute = function(e) {
"string" !== typeof e && (e = null);
if (e) return !nt(e) ? !1 : a.sounds[e].unmute();
for (e = a.soundIDs.length - 1; 0 <= e; e--) a.sounds[a.soundIDs[e]].unmute();
a.muted = !1;
return !0
};
this.unmuteAll = function() {
a.unmute()
};
this.toggleMute = function(e) {
return !nt(e) ? !1 : a.sounds[e].toggleMute()
};
this.getMemoryUse = function() {
var e = 0;
f && 8 !== y && (e = parseInt(f._getMemoryUse(), 10));
return e
};
this.disable = function(e) {
var t;
"undefined" === typeof e && (e = !1);
if (x) return !1;
x = !0;
for (t = a.soundIDs.length - 1; 0 <= t; t--) X(a.sounds[a.soundIDs[t]]);
N(e);
bt.remove(h, "load", M);
return !0
};
this.canPlayMIME = function(e) {
var t;
a.hasHTML5 && (t = dt({
type: e
}));
!t && ct && (t = e && a.ok() ? !! (8 < y && e.match(qt) || e.match(a.mimePattern)) : null);
return t
};
this.canPlayURL = function(e) {
var t;
a.hasHTML5 && (t = dt({
url: e
}));
!t && ct && (t = e && a.ok() ? !! e.match(a.filePattern) : null);
return t
};
this.canPlayLink = function(e) {
return "undefined" !== typeof e.type && e.type && a.canPlayMIME(e.type) ? !0 : a.canPlayURL(e.href)
};
this.getSoundById = function(e) {
if (!e) throw Error("soundManager.getSoundById(): sID is null/undefined");
return a.sounds[e]
};
this.onready = function(e, t) {
var n = !1;
if ("function" === typeof e) t || (t = h), A("onready", e, t), O();
else throw Q("needFunction", "onready");
return !0
};
this.ontimeout = function(e, t) {
var n = !1;
if ("function" === typeof e) t || (t = h), A("ontimeout", e, t), O({
type: "ontimeout"
});
else throw Q("needFunction", "ontimeout");
return !0
};
this._wD = this._writeDebug = function() {
return !0
};
this._debug = function() {};
this.reboot = function() {
var e, t;
for (e = a.soundIDs.length - 1; 0 <= e; e--) a.sounds[a.soundIDs[e]].destruct();
if (f) try {
if (Lt) K = f.innerHTML;
J = f.parentNode.removeChild(f)
} catch (n) {}
K = J = ct = null;
a.enabled = I = S = rt = it = w = E = x = a.swfLoaded = !1;
a.soundIDs = [];
a.sounds = {};
f = null;
for (e in b) if (b.hasOwnProperty(e)) for (t = b[e].length - 1; 0 <= t; t--) b[e][t].fired = !1;
h.setTimeout(a.beginDelayedInit, 20)
};
this.getMoviePercent = function() {
return f && "undefined" !== typeof f.PercentLoaded ? f.PercentLoaded() : null
};
this.beginDelayedInit = function() {
T = !0;
j();
setTimeout(function() {
if (it) return !1;
R();
B();
return it = !0
}, 20);
_()
};
this.destruct = function() {
a.disable(!0)
};
u = function(e) {
var t, n, r = this,
i, s, o, u, l, c, h = !1,
p = [],
d = 0,
v, m, g = null;
t = null;
n = null;
this.sID = this.id = e.id;
this.url = e.url;
this._iO = this.instanceOptions = this.options = C(e);
this.pan = this.options.pan;
this.volume = this.options.volume;
this.isHTML5 = !1;
this._a = null;
this.id3 = {};
this._debug = function() {};
this.load = function(e) {
var t = null;
if ("undefined" !== typeof e) r._iO = C(e, r.options), r.instanceOptions = r._iO;
else if (e = r.options, r._iO = e, r.instanceOptions = r._iO, g && g !== r.url) r._iO.url = r.url, r.url = null;
if (!r._iO.url) r._iO.url = r.url;
r._iO.url = lt(r._iO.url);
if (r._iO.url === r.url && 0 !== r.readyState && 2 !== r.readyState) return 3 === r.readyState && r._iO.onload && r._iO.onload.apply(r, [ !! r.duration]), r;
e = r._iO;
g = r.url && r.url.toString ? r.url.toString() : null;
r.loaded = !1;
r.readyState = 1;
r.playState = 0;
r.id3 = {};
if (pt(e)) {
if (t = r._setup_html5(e), !t._called_load) {
r._html5_canplay = !1;
if (r._a.src !== e.url) r._a.src = e.url, r.setPosition(0);
r._a.autobuffer = "auto";
r._a.preload = "auto";
t._called_load = !0;
e.autoPlay && r.play()
}
} else try {
r.isHTML5 = !1, r._iO = et(Z(e)), e = r._iO, 8 === y ? f._load(r.id, e.url, e.stream, e.autoPlay, e.whileloading ? 1 : 0, e.loops || 1, e.usePolicyFile) : f._load(r.id, e.url, !! e.stream, !! e.autoPlay, e.loops || 1, !! e.autoLoad, e.usePolicyFile)
} catch (n) {
U({
type: "SMSOUND_LOAD_JS_EXCEPTION",
fatal: !0
})
}
r.url = e.url;
return r
};
this.unload = function() {
if (0 !== r.readyState) {
if (r.isHTML5) {
if (u(), r._a) r._a.pause(), mt(r._a, "about:blank"), r.url = "about:blank"
} else 8 === y ? f._unload(r.id, "about:blank") : f._unload(r.id);
i()
}
return r
};
this.destruct = function(e) {
if (r.isHTML5) {
if (u(), r._a) r._a.pause(), mt(r._a), Et || o(), r._a._t = null, r._a = null
} else r._iO.onfailure = null, f._destroySound(r.id);
e || a.destroySound(r.id, !0)
};
this.start = this.play = function(e, t) {
var n, i;
i = !0;
i = null;
t = "undefined" === typeof t ? !0 : t;
e || (e = {});
if (r.url) r._iO.url = r.url;
r._iO = C(r._iO, r.options);
r._iO = C(e, r._iO);
r._iO.url = lt(r._iO.url);
r.instanceOptions = r._iO;
if (r._iO.serverURL && !r.connected) return r.getAutoPlay() || r.setAutoPlay(!0), r;
pt(r._iO) && (r._setup_html5(r._iO), l());
if (1 === r.playState && !r.paused)(n = r._iO.multiShot) || (i = r);
if (null !== i) return i;
e.url && e.url !== r.url && r.load(r._iO);
if (!r.loaded) if (0 === r.readyState) {
if (!r.isHTML5) r._iO.autoPlay = !0;
r.load(r._iO)
} else 2 === r.readyState && (i = r);
if (null !== i) return i;
if (!r.isHTML5 && 9 === y && 0 < r.position && r.position === r.duration) e.position = 0;
if (r.paused && 0 <= r.position && (!r._iO.serverURL || 0 < r.position)) r.resume();
else {
r._iO = C(e, r._iO);
if (null !== r._iO.from && null !== r._iO.to && 0 === r.instanceCount && 0 === r.playState && !r._iO.serverURL) {
n = function() {
r._iO = C(e, r._iO);
r.play(r._iO)
};
if (r.isHTML5 && !r._html5_canplay) r.load({
_oncanplay: n
}), i = !1;
else if (!r.isHTML5 && !r.loaded && (!r.readyState || 2 !== r.readyState)) r.load({
onload: n
}), i = !1;
if (null !== i) return i;
r._iO = m()
}(!r.instanceCount || r._iO.multiShotEvents || !r.isHTML5 && 8 < y && !r.getAutoPlay()) && r.instanceCount++;
r._iO.onposition && 0 === r.playState && c(r);
r.playState = 1;
r.paused = !1;
r.position = "undefined" !== typeof r._iO.position && !isNaN(r._iO.position) ? r._iO.position : 0;
if (!r.isHTML5) r._iO = et(Z(r._iO));
r._iO.onplay && t && (r._iO.onplay.apply(r), h = !0);
r.setVolume(r._iO.volume, !0);
r.setPan(r._iO.pan, !0);
r.isHTML5 ? (l(), i = r._setup_html5(), r.setPosition(r._iO.position), i.play()) : (i = f._start(r.id, r._iO.loops || 1, 9 === y ? r._iO.position : r._iO.position / 1e3, r._iO.multiShot), 9 === y && !i && r._iO.onplayerror && r._iO.onplayerror.apply(r))
}
return r
};
this.stop = function(e) {
var t = r._iO;
if (1 === r.playState) {
r._onbufferchange(0);
r._resetOnPosition(0);
r.paused = !1;
if (!r.isHTML5) r.playState = 0;
v();
t.to && r.clearOnPosition(t.to);
if (r.isHTML5) {
if (r._a) e = r.position, r.setPosition(0), r.position = e, r._a.pause(), r.playState = 0, r._onTimer(), u()
} else f._stop(r.id, e), t.serverURL && r.unload();
r.instanceCount = 0;
r._iO = {};
t.onstop && t.onstop.apply(r)
}
return r
};
this.setAutoPlay = function(e) {
r._iO.autoPlay = e;
r.isHTML5 || (f._setAutoPlay(r.id, e), e && !r.instanceCount && 1 === r.readyState && r.instanceCount++)
};
this.getAutoPlay = function() {
return r._iO.autoPlay
};
this.setPosition = function(e) {
"undefined" === typeof e && (e = 0);
var t = r.isHTML5 ? Math.max(e, 0) : Math.min(r.duration || r._iO.duration, Math.max(e, 0));
r.position = t;
e = r.position / 1e3;
r._resetOnPosition(r.position);
r._iO.position = t;
if (r.isHTML5) {
if (r._a && r._html5_canplay && r._a.currentTime !== e) try {
r._a.currentTime = e, (0 === r.playState || r.paused) && r._a.pause()
} catch (n) {}
} else e = 9 === y ? r.position : e, r.readyState && 2 !== r.readyState && f._setPosition(r.id, e, r.paused || !r.playState, r._iO.multiShot);
r.isHTML5 && r.paused && r._onTimer(!0);
return r
};
this.pause = function(e) {
if (r.paused || 0 === r.playState && 1 !== r.readyState) return r;
r.paused = !0;
r.isHTML5 ? (r._setup_html5().pause(), u()) : (e || "undefined" === typeof e) && f._pause(r.id, r._iO.multiShot);
r._iO.onpause && r._iO.onpause.apply(r);
return r
};
this.resume = function() {
var e = r._iO;
if (!r.paused) return r;
r.paused = !1;
r.playState = 1;
r.isHTML5 ? (r._setup_html5().play(), l()) : (e.isMovieStar && !e.serverURL && r.setPosition(r.position), f._pause(r.id, e.multiShot));
!h && e.onplay ? (e.onplay.apply(r), h = !0) : e.onresume && e.onresume.apply(r);
return r
};
this.togglePause = function() {
if (0 === r.playState) return r.play({
position: 9 === y && !r.isHTML5 ? r.position : r.position / 1e3
}), r;
r.paused ? r.resume() : r.pause();
return r
};
this.setPan = function(e, t) {
"undefined" === typeof e && (e = 0);
"undefined" === typeof t && (t = !1);
r.isHTML5 || f._setPan(r.id, e);
r._iO.pan = e;
if (!t) r.pan = e, r.options.pan = e;
return r
};
this.setVolume = function(e, t) {
"undefined" === typeof e && (e = 100);
"undefined" === typeof t && (t = !1);
if (r.isHTML5) {
if (r._a) r._a.volume = Math.max(0, Math.min(1, e / 100))
} else f._setVolume(r.id, a.muted && !r.muted || r.muted ? 0 : e);
r._iO.volume = e;
if (!t) r.volume = e, r.options.volume = e;
return r
};
this.mute = function() {
r.muted = !0;
if (r.isHTML5) {
if (r._a) r._a.muted = !0
} else f._setVolume(r.id, 0);
return r
};
this.unmute = function() {
r.muted = !1;
var e = "undefined" !== typeof r._iO.volume;
if (r.isHTML5) {
if (r._a) r._a.muted = !1
} else f._setVolume(r.id, e ? r._iO.volume : r.options.volume);
return r
};
this.toggleMute = function() {
return r.muted ? r.unmute() : r.mute()
};
this.onposition = this.onPosition = function(e, t, n) {
p.push({
position: parseInt(e, 10),
method: t,
scope: "undefined" !== typeof n ? n : r,
fired: !1
});
return r
};
this.clearOnPosition = function(e, t) {
var n, e = parseInt(e, 10);
if (isNaN(e)) return !1;
for (n = 0; n < p.length; n++) if (e === p[n].position && (!t || t === p[n].method)) p[n].fired && d--, p.splice(n, 1)
};
this._processOnPosition = function() {
var e, t;
e = p.length;
if (!e || !r.playState || d >= e) return !1;
for (e -= 1; 0 <= e; e--) if (t = p[e], !t.fired && r.position >= t.position) t.fired = !0, d++, t.method.apply(t.scope, [t.position]);
return !0
};
this._resetOnPosition = function(e) {
var t, n;
t = p.length;
if (!t) return !1;
for (t -= 1; 0 <= t; t--) if (n = p[t], n.fired && e <= n.position) n.fired = !1, d--;
return !0
};
m = function() {
var e = r._iO,
t = e.from,
n = e.to,
i, s;
s = function() {
r.clearOnPosition(n, s);
r.stop()
};
i = function() {
if (null !== n && !isNaN(n)) r.onPosition(n, s)
};
if (null !== t && !isNaN(t)) e.position = t, e.multiShot = !1, i();
return e
};
c = function() {
var e, t = r._iO.onposition;
if (t) for (e in t) if (t.hasOwnProperty(e)) r.onPosition(parseInt(e, 10), t[e])
};
v = function() {
var e, t = r._iO.onposition;
if (t) for (e in t) t.hasOwnProperty(e) && r.clearOnPosition(parseInt(e, 10))
};
l = function() {
r.isHTML5 && st(r)
};
u = function() {
r.isHTML5 && ot(r)
};
i = function(e) {
e || (p = [], d = 0);
h = !1;
r._hasTimer = null;
r._a = null;
r._html5_canplay = !1;
r.bytesLoaded = null;
r.bytesTotal = null;
r.duration = r._iO && r._iO.duration ? r._iO.duration : null;
r.durationEstimate = null;
r.buffered = [];
r.eqData = [];
r.eqData.left = [];
r.eqData.right = [];
r.failures = 0;
r.isBuffering = !1;
r.instanceOptions = {};
r.instanceCount = 0;
r.loaded = !1;
r.metadata = {};
r.readyState = 0;
r.muted = !1;
r.paused = !1;
r.peakData = {
left: 0,
right: 0
};
r.waveformData = {
left: [],
right: []
};
r.playState = 0;
r.position = null;
r.id3 = {}
};
i();
this._onTimer = function(e) {
var i, s = !1,
o = {};
if (r._hasTimer || e) {
if (r._a && (e || (0 < r.playState || 1 === r.readyState) && !r.paused)) {
i = r._get_html5_duration();
if (i !== t) t = i, r.duration = i, s = !0;
r.durationEstimate = r.duration;
i = 1e3 * r._a.currentTime || 0;
i !== n && (n = i, s = !0);
(s || e) && r._whileplaying(i, o, o, o, o)
}
return s
}
};
this._get_html5_duration = function() {
var e = r._iO;
return (e = r._a && r._a.duration ? 1e3 * r._a.duration : e && e.duration ? e.duration : null) && !isNaN(e) && Infinity !== e ? e : null
};
this._apply_loop = function(e, t) {
e.loop = 1 < t ? "loop" : ""
};
this._setup_html5 = function(e) {
var e = C(r._iO, e),
t = decodeURI,
n = Et ? a._global_a : r._a,
o = t(e.url),
u = n && n._t ? n._t.instanceOptions : null,
f;
if (n) {
if (n._t) {
if (!Et && o === t(g)) f = n;
else if (Et && u.url === e.url && (!g || g === u.url)) f = n;
if (f) return r._apply_loop(n, e.loops), f
}
Et && n._t && n._t.playState && e.url !== u.url && n._t.stop();
i(u && u.url ? e.url === u.url : g ? g === e.url : !1);
n.src = e.url;
g = r.url = e.url;
n._called_load = !1
} else if (r._a = e.autoLoad || e.autoPlay ? new Audio(e.url) : Mt && 10 > opera.version() ? new Audio(null) : new Audio, n = r._a, n._called_load = !1, Et) a._global_a = n;
r.isHTML5 = !0;
r._a = n;
n._t = r;
s();
r._apply_loop(n, e.loops);
e.autoLoad || e.autoPlay ? r.load() : (n.autobuffer = !1, n.preload = "auto");
return n
};
s = function() {
if (r._a._added_events) return !1;
var e;
r._a._added_events = !0;
for (e in Nt) Nt.hasOwnProperty(e) && r._a && r._a.addEventListener(e, Nt[e], !1);
return !0
};
o = function() {
var e;
r._a._added_events = !1;
for (e in Nt) Nt.hasOwnProperty(e) && r._a && r._a.removeEventListener(e, Nt[e], !1)
};
this._onload = function(e) {
e = !! e || !r.isHTML5 && 8 === y && r.duration;
r.loaded = e;
r.readyState = e ? 3 : 2;
r._onbufferchange(0);
r._iO.onload && r._iO.onload.apply(r, [e]);
return !0
};
this._onbufferchange = function(e) {
if (0 === r.playState || e && r.isBuffering || !e && !r.isBuffering) return !1;
r.isBuffering = 1 === e;
r._iO.onbufferchange && r._iO.onbufferchange.apply(r);
return !0
};
this._onsuspend = function() {
r._iO.onsuspend && r._iO.onsuspend.apply(r);
return !0
};
this._onfailure = function(e, t, n) {
r.failures++;
if (r._iO.onfailure && 1 === r.failures) r._iO.onfailure(r, e, t, n)
};
this._onfinish = function() {
var e = r._iO.onfinish;
r._onbufferchange(0);
r._resetOnPosition(0);
if (r.instanceCount) {
r.instanceCount--;
if (!r.instanceCount && (v(), r.playState = 0, r.paused = !1, r.instanceCount = 0, r.instanceOptions = {}, r._iO = {}, u(), r.isHTML5)) r.position = 0;
(!r.instanceCount || r._iO.multiShotEvents) && e && e.apply(r)
}
};
this._whileloading = function(e, t, n, i) {
var s = r._iO;
r.bytesLoaded = e;
r.bytesTotal = t;
r.duration = Math.floor(n);
r.bufferLength = i;
r.durationEstimate = !r.isHTML5 && !s.isMovieStar ? s.duration ? r.duration > s.duration ? r.duration : s.duration : parseInt(r.bytesTotal / r.bytesLoaded * r.duration, 10) : r.duration;
if (!r.isHTML5) r.buffered = [{
start: 0,
end: r.duration
}];
(3 !== r.readyState || r.isHTML5) && s.whileloading && s.whileloading.apply(r)
};
this._whileplaying = function(e, t, n, i, s) {
var o = r._iO;
if (isNaN(e) || null === e) return !1;
r.position = Math.max(0, e);
r._processOnPosition();
if (!r.isHTML5 && 8 < y) {
if (o.usePeakData && "undefined" !== typeof t && t) r.peakData = {
left: t.leftPeak,
right: t.rightPeak
};
if (o.useWaveformData && "undefined" !== typeof n && n) r.waveformData = {
left: n.split(","),
right: i.split(",")
};
if (o.useEQData && "undefined" !== typeof s && s && s.leftEQ && (e = s.leftEQ.split(","), r.eqData = e, r.eqData.left = e, "undefined" !== typeof s.rightEQ && s.rightEQ)) r.eqData.right = s.rightEQ.split(",")
}
1 === r.playState && (!r.isHTML5 && 8 === y && !r.position && r.isBuffering && r._onbufferchange(0), o.whileplaying && o.whileplaying.apply(r));
return !0
};
this._oncaptiondata = function(e) {
r.captiondata = e;
r._iO.oncaptiondata && r._iO.oncaptiondata.apply(r, [e])
};
this._onmetadata = function(e, t) {
var n = {},
i, s;
for (i = 0, s = e.length; i < s; i++) n[e[i]] = t[i];
r.metadata = n;
r._iO.onmetadata && r._iO.onmetadata.apply(r)
};
this._onid3 = function(e, t) {
var n = [],
i, s;
for (i = 0, s = e.length; i < s; i++) n[e[i]] = t[i];
r.id3 = C(r.id3, n);
r._iO.onid3 && r._iO.onid3.apply(r)
};
this._onconnect = function(e) {
e = 1 === e;
if (r.connected = e) r.failures = 0, nt(r.id) && (r.getAutoPlay() ? r.play(void 0, r.getAutoPlay()) : r._iO.autoLoad && r.load()), r._iO.onconnect && r._iO.onconnect.apply(r, [e])
};
this._ondataerror = function() {
0 < r.playState && r._iO.ondataerror && r._iO.ondataerror.apply(r)
}
};
q = function() {
return d.body || d._docElement || d.getElementsByTagName("div")[0]
};
l = function(e) {
return d.getElementById(e)
};
C = function(e, t) {
var n = e || {},
r, i;
r = "undefined" === typeof t ? a.defaultOptions : t;
for (i in r) r.hasOwnProperty(i) && "undefined" === typeof n[i] && (n[i] = "object" !== typeof r[i] || null === r[i] ? r[i] : C(n[i], r[i]));
return n
};
L = {
onready: 1,
ontimeout: 1,
defaultOptions: 1,
flash9Options: 1,
movieStarOptions: 1
};
k = function(e, t) {
var n, r = !0,
i = "undefined" !== typeof t,
s = a.setupOptions;
for (n in e) if (e.hasOwnProperty(n)) if ("object" !== typeof e[n] || null === e[n] || e[n] instanceof Array) i && "undefined" !== typeof L[t] ? a[t][n] = e[n] : "undefined" !== typeof s[n] ? (a.setupOptions[n] = e[n], a[n] = e[n]) : "undefined" === typeof L[n] ? (tt(Q("undefined" === typeof a[n] ? "setupUndef" : "setupError", n), 2), r = !1) : a[n] instanceof Function ? a[n].apply(a, e[n] instanceof Array ? e[n] : [e[n]]) : a[n] = e[n];
else if ("undefined" === typeof L[n]) tt(Q("undefined" === typeof a[n] ? "setupUndef" : "setupError", n), 2), r = !1;
else return k(e[n], n);
return r
};
bt = function() {
function e(e) {
var e = wt.call(e),
t = e.length;
n ? (e[1] = "on" + e[1], 3 < t && e.pop()) : 3 === t && e.push(!1);
return e
}
function t(e, t) {
var i = e.shift(),
s = [r[t]];
if (n) i[s](e[0], e[1]);
else i[s].apply(i, e)
}
var n = h.attachEvent,
r = {
add: n ? "attachEvent" : "addEventListener",
remove: n ? "detachEvent" : "removeEventListener"
};
return {
add: function() {
t(e(arguments), "add")
},
remove: function() {
t(e(arguments), "remove")
}
}
}();
Nt = {
abort: i(function() {}),
canplay: i(function() {
var e = this._t,
t;
if (e._html5_canplay) return !0;
e._html5_canplay = !0;
e._onbufferchange(0);
t = "undefined" !== typeof e._iO.position && !isNaN(e._iO.position) ? e._iO.position / 1e3 : null;
if (e.position && this.currentTime !== t) try {
this.currentTime = t
} catch (n) {}
e._iO._oncanplay && e._iO._oncanplay()
}),
canplaythrough: i(function() {
var e = this._t;
e.loaded || (e._onbufferchange(0), e._whileloading(e.bytesLoaded, e.bytesTotal, e._get_html5_duration()), e._onload(!0))
}),
ended: i(function() {
this._t._onfinish()
}),
error: i(function() {
this._t._onload(!1)
}),
loadeddata: i(function() {
var e = this._t;
if (!e._loaded && !Ot) e.duration = e._get_html5_duration()
}),
loadedmetadata: i(function() {}),
loadstart: i(function() {
this._t._onbufferchange(1)
}),
play: i(function() {
this._t._onbufferchange(0)
}),
playing: i(function() {
this._t._onbufferchange(0)
}),
progress: i(function(e) {
var t = this._t,
n, r, i = 0,
i = e.target.buffered;
n = e.loaded || 0;
var s = e.total || 1;
t.buffered = [];
if (i && i.length) {
for (n = 0, r = i.length; n < r; n++) t.buffered.push({
start: 1e3 * i.start(n),
end: 1e3 * i.end(n)
});
i = 1e3 * (i.end(0) - i.start(0));
n = i / (1e3 * e.target.duration)
}
isNaN(n) || (t._onbufferchange(0), t._whileloading(n, s, t._get_html5_duration()), n && s && n === s && Nt.canplaythrough.call(this, e))
}),
ratechange: i(function() {}),
suspend: i(function(e) {
var t = this._t;
Nt.progress.call(this, e);
t._onsuspend()
}),
stalled: i(function() {}),
timeupdate: i(function() {
this._t._onTimer()
}),
waiting: i(function() {
this._t._onbufferchange(1)
})
};
pt = function(e) {
return e.serverURL || e.type && r(e.type) ? !1 : e.type ? dt({
type: e.type
}) : dt({
url: e.url
}) || a.html5Only
};
mt = function(e, t) {
if (e) e.src = t
};
dt = function(e) {
if (!a.useHTML5Audio || !a.hasHTML5) return !1;
var t = e.url || null,
e = e.type || null,
n = a.audioFormats,
i;
if (e && "undefined" !== typeof a.html5[e]) return a.html5[e] && !r(e);
if (!vt) {
vt = [];
for (i in n) n.hasOwnProperty(i) && (vt.push(i), n[i].related && (vt = vt.concat(n[i].related)));
vt = RegExp("\\.(" + vt.join("|") + ")(\\?.*)?$", "i")
}
i = t ? t.toLowerCase().match(vt) : null;
!i || !i.length ? e && (t = e.indexOf(";"), i = (-1 !== t ? e.substr(0, t) : e).substr(6)) : i = i[1];
i && "undefined" !== typeof a.html5[i] ? t = a.html5[i] && !r(i) : (e = "audio/" + i, t = a.html5.canPlayType({
type: e
}), t = (a.html5[i] = t) && a.html5[e] && !r(e));
return t
};
yt = function() {
function e(e) {
var n, r, i = n = !1;
if (!t || "function" !== typeof t.canPlayType) return n;
if (e instanceof Array) {
for (n = 0, r = e.length; n < r; n++) if (a.html5[e[n]] || t.canPlayType(e[n]).match(a.html5Test)) i = !0, a.html5[e[n]] = !0, a.flash[e[n]] = !! e[n].match(jt);
n = i
} else e = t && "function" === typeof t.canPlayType ? t.canPlayType(e) : !1, n = !(!e || !e.match(a.html5Test));
return n
}
if (!a.useHTML5Audio || !a.hasHTML5) return !1;
var t = "undefined" !== typeof Audio ? Mt && 10 > opera.version() ? new Audio(null) : new Audio : null,
n, r, i = {},
s;
s = a.audioFormats;
for (n in s) if (s.hasOwnProperty(n) && (r = "audio/" + n, i[n] = e(s[n].type), i[r] = i[n], n.match(jt) ? (a.flash[n] = !0, a.flash[r] = !0) : (a.flash[n] = !1, a.flash[r] = !1), s[n] && s[n].related)) for (r = s[n].related.length - 1; 0 <= r; r--) i["audio/" + s[n].related[r]] = i[n], a.html5[s[n].related[r]] = i[n], a.flash[s[n].related[r]] = i[n];
i.canPlayType = t ? e : null;
a.html5 = C(a.html5, i);
return !0
};
Q = function() {};
Z = function(e) {
if (8 === y && 1 < e.loops && e.stream) e.stream = !1;
return e
};
et = function(e) {
if (e && !e.usePolicyFile && (e.onid3 || e.usePeakData || e.useWaveformData || e.useEQData)) e.usePolicyFile = !0;
return e
};
tt = function() {};
v = function() {
return !1
};
X = function(e) {
for (var t in e) e.hasOwnProperty(t) && "function" === typeof e[t] && (e[t] = v)
};
V = function(e) {
"undefined" === typeof e && (e = !1);
(x || e) && a.disable(e)
};
$ = function(e) {
var t = null;
if (e) if (e.match(/\.swf(\?.*)?$/i)) {
if (t = e.substr(e.toLowerCase().lastIndexOf(".swf?") + 4)) return e
} else e.lastIndexOf("/") !== e.length - 1 && (e += "/");
e = (e && -1 !== e.lastIndexOf("/") ? e.substr(0, e.lastIndexOf("/") + 1) : "./") + a.movieURL;
a.noSWFCache && (e += "?ts=" + (new Date).getTime());
return e
};
P = function() {
y = parseInt(a.flashVersion, 10);
if (8 !== y && 9 !== y) a.flashVersion = y = 8;
var e = a.debugMode || a.debugFlash ? "_debug.swf" : ".swf";
if (a.useHTML5Audio && !a.html5Only && a.audioFormats.mp4.required && 9 > y) a.flashVersion = y = 9;
a.version = a.versionNumber + (a.html5Only ? " (HTML5-only mode)" : 9 === y ? " (AS3/Flash 9)" : " (AS2/Flash 8)");
8 < y ? (a.defaultOptions = C(a.defaultOptions, a.flash9Options), a.features.buffering = !0, a.defaultOptions = C(a.defaultOptions, a.movieStarOptions), a.filePatterns.flash9 = RegExp("\\.(mp3|" + Rt.join("|") + ")(\\?.*)?$", "i"), a.features.movieStar = !0) : a.features.movieStar = !1;
a.filePattern = a.filePatterns[8 !== y ? "flash9" : "flash8"];
a.movieURL = (8 === y ? "soundmanager2.swf" : "soundmanager2_flash9.swf").replace(".swf", e);
a.features.peakData = a.features.waveformData = a.features.eqData = 8 < y
};
z = function(e, t) {
if (!f) return !1;
f._setPolling(e, t)
};
W = function() {
if (a.debugURLParam.test(p)) a.debugMode = !0
};
nt = this.getSoundById;
Y = function() {
var e = [];
a.debugMode && e.push("sm2_debug");
a.debugFlash && e.push("flash_debug");
a.useHighPerformance && e.push("high_performance");
return e.join(" ")
};
G = function() {
Q("fbHandler");
var e = a.getMoviePercent(),
t = {
type: "FLASHBLOCK"
};
if (a.html5Only) return !1;
if (a.ok()) {
if (a.oMC) a.oMC.className = [Y(), "movieContainer", "swf_loaded" + (a.didFlashBlock ? " swf_unblocked" : "")].join(" ")
} else {
if (ct) a.oMC.className = Y() + " movieContainer " + (null === e ? "swf_timedout" : "swf_error");
a.didFlashBlock = !0;
O({
type: "ontimeout",
ignoreInit: !0,
error: t
});
U(t)
}
};
A = function(e, t, n) {
"undefined" === typeof b[e] && (b[e] = []);
b[e].push({
method: t,
scope: n || null,
fired: !1
})
};
O = function(e) {
e || (e = {
type: a.ok() ? "onready" : "ontimeout"
});
if (!S && e && !e.ignoreInit || "ontimeout" === e.type && (a.ok() || x && !e.ignoreInit)) return !1;
var t = {
success: e && e.ignoreInit ? a.ok() : !x
},
n = e && e.type ? b[e.type] || [] : [],
r = [],
i, t = [t],
s = ct && a.useFlashBlock && !a.ok();
if (e.error) t[0].error = e.error;
for (e = 0, i = n.length; e < i; e++)!0 !== n[e].fired && r.push(n[e]);
if (r.length) for (e = 0, i = r.length; e < i; e++) if (r[e].scope ? r[e].method.apply(r[e].scope, t) : r[e].method.apply(this, t), !s) r[e].fired = !0;
return !0
};
M = function() {
h.setTimeout(function() {
a.useFlashBlock && G();
O();
"function" === typeof a.onload && a.onload.apply(h);
a.waitForWindowLoad && bt.add(h, "load", M)
}, 1)
};
xt = function() {
if ("undefined" !== typeof St) return St;
var e = !1,
t = navigator,
n = t.plugins,
r, i = h.ActiveXObject;
if (n && n.length)(t = t.mimeTypes) && t["application/x-shockwave-flash"] && t["application/x-shockwave-flash"].enabledPlugin && t["application/x-shockwave-flash"].enabledPlugin.description && (e = !0);
else if ("undefined" !== typeof i) {
try {
r = new i("ShockwaveFlash.ShockwaveFlash")
} catch (s) {}
e = !! r
}
return St = e
};
ht = function() {
var e, t, n = a.audioFormats;
if (kt && c.match(/os (1|2|3_0|3_1)/i)) {
if (a.hasHTML5 = !1, a.html5Only = !0, a.oMC) a.oMC.style.display = "none"
} else if (a.useHTML5Audio && (!a.html5 || !a.html5.canPlayType)) a.hasHTML5 = !1;
if (a.useHTML5Audio && a.hasHTML5) for (t in n) if (n.hasOwnProperty(t) && (n[t].required && !a.html5.canPlayType(n[t].type) || a.preferFlash && (a.flash[t] || a.flash[n[t].type]))) e = !0;
a.ignoreFlash && (e = !1);
a.html5Only = a.hasHTML5 && a.useHTML5Audio && !e;
return !a.html5Only
};
lt = function(e) {
var t, n, r = 0;
if (e instanceof Array) {
for (t = 0, n = e.length; t < n; t++) if (e[t] instanceof Object) {
if (a.canPlayMIME(e[t].type)) {
r = t;
break
}
} else if (a.canPlayURL(e[t])) {
r = t;
break
}
if (e[r].url) e[r] = e[r].url;
e = e[r]
}
return e
};
st = function(e) {
if (!e._hasTimer) e._hasTimer = !0, !_t && a.html5PollingInterval && (null === ft && 0 === at && (ft = h.setInterval(ut, a.html5PollingInterval)), at++)
};
ot = function(e) {
if (e._hasTimer) e._hasTimer = !1, !_t && a.html5PollingInterval && at--
};
ut = function() {
var e;
if (null !== ft && !at) return h.clearInterval(ft), ft = null, !1;
for (e = a.soundIDs.length - 1; 0 <= e; e--) a.sounds[a.soundIDs[e]].isHTML5 && a.sounds[a.soundIDs[e]]._hasTimer && a.sounds[a.soundIDs[e]]._onTimer()
};
U = function(e) {
e = "undefined" !== typeof e ? e : {};
"function" === typeof a.onerror && a.onerror.apply(h, [{
type: "undefined" !== typeof e.type ? e.type : null
}]);
"undefined" !== typeof e.fatal && e.fatal && a.disable()
};
Tt = function() {
if (!Dt || !xt()) return !1;
var e = a.audioFormats,
t, n;
for (n in e) if (e.hasOwnProperty(n) && ("mp3" === n || "mp4" === n)) if (a.html5[n] = !1, e[n] && e[n].related) for (t = e[n].related.length - 1; 0 <= t; t--) a.html5[e[n].related[t]] = !1
};
this._setSandboxType = function() {};
this._externalInterfaceOK = function() {
if (a.swfLoaded) return !1;
(new Date).getTime();
a.swfLoaded = !0;
Ht = !1;
Dt && Tt();
setTimeout(g, Lt ? 100 : 1)
};
R = function(e, t) {
function n(e, t) {
return '<param name="' + e + '" value="' + t + '" />'
}
if (w && E) return !1;
if (a.html5Only) return P(), a.oMC = l(a.movieID), g(), E = w = !0, !1;
var r = t || a.url,
i = a.altURL || r,
s = q(),
o = Y(),
u = null,
u = d.getElementsByTagName("html")[0],
f, h, p, u = u && u.dir && u.dir.match(/rtl/i),
e = "undefined" === typeof e ? a.id : e;
P();
a.url = $(Ft ? r : i);
t = a.url;
a.wmode = !a.wmode && a.useHighPerformance ? "transparent" : a.wmode;
if (null !== a.wmode && (c.match(/msie 8/i) || !Lt && !a.useHighPerformance) && navigator.platform.match(/win32|win64/i)) a.wmode = null;
s = {
name: e,
id: e,
src: t,
quality: "high",
allowScriptAccess: a.allowScriptAccess,
bgcolor: a.bgColor,
pluginspage: It + "www.macromedia.com/go/getflashplayer",
title: "JS/Flash audio component (SoundManager 2)",
type: "application/x-shockwave-flash",
wmode: a.wmode,
hasPriority: "true"
};
if (a.debugFlash) s.FlashVars = "debug=1";
a.wmode || delete s.wmode;
if (Lt) r = d.createElement("div"), h = ['<object id="' + e + '" data="' + t + '" type="' + s.type + '" title="' + s.title + '" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="' + It + 'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0">', n("movie", t), n("AllowScriptAccess", a.allowScriptAccess), n("quality", s.quality), a.wmode ? n("wmode", a.wmode) : "", n("bgcolor", a.bgColor), n("hasPriority", "true"), a.debugFlash ? n("FlashVars", s.FlashVars) : "", "</object>"].join("");
else for (f in r = d.createElement("embed"), s) s.hasOwnProperty(f) && r.setAttribute(f, s[f]);
W();
o = Y();
if (s = q()) if (a.oMC = l(a.movieID) || d.createElement("div"), a.oMC.id) {
p = a.oMC.className;
a.oMC.className = (p ? p + " " : "movieContainer") + (o ? " " + o : "");
a.oMC.appendChild(r);
if (Lt) f = a.oMC.appendChild(d.createElement("div")), f.className = "sm2-object-box", f.innerHTML = h;
E = !0
} else {
a.oMC.id = a.movieID;
a.oMC.className = "movieContainer " + o;
f = o = null;
if (!a.useFlashBlock) if (a.useHighPerformance) o = {
position: "fixed",
width: "8px",
height: "8px",
bottom: "0px",
left: "0px",
overflow: "hidden"
};
else if (o = {
position: "absolute",
width: "6px",
height: "6px",
top: "-9999px",
left: "-9999px"
}, u) o.left = Math.abs(parseInt(o.left, 10)) + "px";
if (At) a.oMC.style.zIndex = 1e4;
if (!a.debugFlash) for (p in o) o.hasOwnProperty(p) && (a.oMC.style[p] = o[p]);
try {
Lt || a.oMC.appendChild(r);
s.appendChild(a.oMC);
if (Lt) f = a.oMC.appendChild(d.createElement("div")), f.className = "sm2-object-box", f.innerHTML = h;
E = !0
} catch (v) {
throw Error(Q("domError") + " \n" + v.toString())
}
}
return w = !0
};
B = function() {
if (a.html5Only) return R(), !1;
if (f || !a.url) return !1;
f = a.getMovie(a.id);
if (!f) J ? (Lt ? a.oMC.innerHTML = K : a.oMC.appendChild(J), J = null, w = !0) : R(a.id, a.url), f = a.getMovie(a.id);
"function" === typeof a.oninitmovie && setTimeout(a.oninitmovie, 1);
return !0
};
_ = function() {
setTimeout(D, 1e3)
};
D = function() {
var e, t = !1;
if (!a.url || rt) return !1;
rt = !0;
bt.remove(h, "load", _);
if (Ht && !Pt) return !1;
S || (e = a.getMoviePercent(), 0 < e && 100 > e && (t = !0));
setTimeout(function() {
e = a.getMoviePercent();
if (t) return rt = !1, h.setTimeout(_, 1), !1;
!S && Bt && (null === e ? a.useFlashBlock || 0 === a.flashLoadTimeout ? a.useFlashBlock && G() : V(!0) : 0 !== a.flashLoadTimeout && V(!0))
}, a.flashLoadTimeout)
};
H = function() {
if (Pt || !Ht) return bt.remove(h, "focus", H), !0;
Pt = Bt = !0;
rt = !1;
_();
bt.remove(h, "focus", H);
return !0
};
Ct = function() {};
N = function(e) {
if (S) return !1;
if (a.html5Only) return S = !0, M(), !0;
var t = !0,
n;
if (!a.useFlashBlock || !a.flashLoadTimeout || a.getMoviePercent()) S = !0, x && (n = {
type: !St && ct ? "NO_FLASH" : "INIT_TIMEOUT"
});
if (x || e) {
if (a.useFlashBlock && a.oMC) a.oMC.className = Y() + " " + (null === a.getMoviePercent() ? "swf_timedout" : "swf_error");
O({
type: "ontimeout",
error: n,
ignoreInit: !0
});
U(n);
t = !1
}
x || (a.waitForWindowLoad && !T ? bt.add(h, "load", M) : M());
return t
};
m = function() {
var e, t = a.setupOptions;
for (e in t) t.hasOwnProperty(e) && ("undefined" === typeof a[e] ? a[e] = t[e] : a[e] !== t[e] && (a.setupOptions[e] = a[e]))
};
g = function() {
if (S) return !1;
if (a.html5Only) {
if (!S) bt.remove(h, "load", a.beginDelayedInit), a.enabled = !0, N();
return !0
}
B();
try {
f._externalInterfaceTest(!1), z(!0, a.flashPollingInterval || (a.useHighPerformance ? 10 : 50)), a.debugMode || f._disableDebug(), a.enabled = !0, a.html5Only || bt.add(h, "unload", v)
} catch (e) {
return U({
type: "JS_TO_FLASH_EXCEPTION",
fatal: !0
}), V(!0), N(), !1
}
N();
bt.remove(h, "load", a.beginDelayedInit);
return !0
};
j = function() {
if (I) return !1;
I = !0;
m();
W();
!St && a.hasHTML5 && a.setup({
useHTML5Audio: !0,
preferFlash: !1
});
yt();
a.html5.usingFlash = ht();
ct = a.html5.usingFlash;
Ct();
!St && ct && a.setup({
flashLoadTimeout: 1
});
d.removeEventListener && d.removeEventListener("DOMContentLoaded", j, !1);
B();
return !0
};
gt = function() {
"complete" === d.readyState && (j(), d.detachEvent("onreadystatechange", gt));
return !0
};
F = function() {
T = !0;
bt.remove(h, "load", F)
};
xt();
bt.add(h, "focus", H);
bt.add(h, "load", _);
bt.add(h, "load", F);
d.addEventListener ? d.addEventListener("DOMContentLoaded", j, !1) : d.attachEvent ? d.attachEvent("onreadystatechange", gt) : U({
type: "NO_DOM2_EVENTS",
fatal: !0
})
}
var n = null;
if ("undefined" === typeof SM2_DEFER || !SM2_DEFER) n = new t;
e.SoundManager = t;
e.soundManager = n
})(window);
(function(e, t) {
function n(t, n) {
var i, s, o, u = t.nodeName.toLowerCase();
return "area" === u ? (i = t.parentNode, s = i.name, !t.href || !s || i.nodeName.toLowerCase() !== "map" ? !1 : (o = e("img[usemap=#" + s + "]")[0], !! o && r(o))) : (/input|select|textarea|button|object/.test(u) ? !t.disabled : "a" === u ? t.href || n : n) && r(t)
}
function r(t) {
return e.expr.filters.visible(t) && !e(t).parents().andSelf().filter(function() {
return e.css(this, "visibility") === "hidden"
}).length
}
var i = 0,
s = /^ui-id-\d+$/;
e.ui = e.ui || {};
if (e.ui.version) return;
e.extend(e.ui, {
version: "1.9.2",
keyCode: {
BACKSPACE: 8,
COMMA: 188,
DELETE: 46,
DOWN: 40,
END: 35,
ENTER: 13,
ESCAPE: 27,
HOME: 36,
LEFT: 37,
NUMPAD_ADD: 107,
NUMPAD_DECIMAL: 110,
NUMPAD_DIVIDE: 111,
NUMPAD_ENTER: 108,
NUMPAD_MULTIPLY: 106,
NUMPAD_SUBTRACT: 109,
PAGE_DOWN: 34,
PAGE_UP: 33,
PERIOD: 190,
RIGHT: 39,
SPACE: 32,
TAB: 9,
UP: 38
}
}), e.fn.extend({
_focus: e.fn.focus,
focus: function(t, n) {
return typeof t == "number" ? this.each(function() {
var r = this;
setTimeout(function() {
e(r).focus(), n && n.call(r)
}, t)
}) : this._focus.apply(this, arguments)
},
scrollParent: function() {
var t;
return e.ui.ie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? t = this.parents().filter(function() {
return /(relative|absolute|fixed)/.test(e.css(this, "position")) && /(auto|scroll)/.test(e.css(this, "overflow") + e.css(this, "overflow-y") + e.css(this, "overflow-x"))
}).eq(0) : t = this.parents().filter(function() {
return /(auto|scroll)/.test(e.css(this, "overflow") + e.css(this, "overflow-y") + e.css(this, "overflow-x"))
}).eq(0), /fixed/.test(this.css("position")) || !t.length ? e(document) : t
},
zIndex: function(n) {
if (n !== t) return this.css("zIndex", n);
if (this.length) {
var r = e(this[0]),
i, s;
while (r.length && r[0] !== document) {
i = r.css("position");
if (i === "absolute" || i === "relative" || i === "fixed") {
s = parseInt(r.css("zIndex"), 10);
if (!isNaN(s) && s !== 0) return s
}
r = r.parent()
}
}
return 0
},
uniqueId: function() {
return this.each(function() {
this.id || (this.id = "ui-id-" + ++i)
})
},
removeUniqueId: function() {
return this.each(function() {
s.test(this.id) && e(this).removeAttr("id")
})
}
}), e.extend(e.expr[":"], {
data: e.expr.createPseudo ? e.expr.createPseudo(function(t) {
return function(n) {
return !!e.data(n, t)
}
}) : function(t, n, r) {
return !!e.data(t, r[3])
},
focusable: function(t) {
return n(t, !isNaN(e.attr(t, "tabindex")))
},
tabbable: function(t) {
var r = e.attr(t, "tabindex"),
i = isNaN(r);
return (i || r >= 0) && n(t, !i)
}
}), e(function() {
var t = document.body,
n = t.appendChild(n = document.createElement("div"));
n.offsetHeight, e.extend(n.style, {
minHeight: "100px",
height: "auto",
padding: 0,
borderWidth: 0
}), e.support.minHeight = n.offsetHeight === 100, e.support.selectstart = "onselectstart" in n, t.removeChild(n).style.display = "none"
}), e("<a>").outerWidth(1).jquery || e.each(["Width", "Height"], function(n, r) {
function i(t, n, r, i) {
return e.each(s, function() {
n -= parseFloat(e.css(t, "padding" + this)) || 0, r && (n -= parseFloat(e.css(t, "border" + this + "Width")) || 0), i && (n -= parseFloat(e.css(t, "margin" + this)) || 0)
}), n
}
var s = r === "Width" ? ["Left", "Right"] : ["Top", "Bottom"],
o = r.toLowerCase(),
u = {
innerWidth: e.fn.innerWidth,
innerHeight: e.fn.innerHeight,
outerWidth: e.fn.outerWidth,
outerHeight: e.fn.outerHeight
};
e.fn["inner" + r] = function(n) {
return n === t ? u["inner" + r].call(this) : this.each(function() {
e(this).css(o, i(this, n) + "px")
})
}, e.fn["outer" + r] = function(t, n) {
return typeof t != "number" ? u["outer" + r].call(this, t) : this.each(function() {
e(this).css(o, i(this, t, !0, n) + "px")
})
}
}), e("<a>").data("a-b", "a").removeData("a-b").data("a-b") && (e.fn.removeData = function(t) {
return function(n) {
return arguments.length ? t.call(this, e.camelCase(n)) : t.call(this)
}
}(e.fn.removeData)), function() {
var t = /msie ([\w.]+)/.exec(navigator.userAgent.toLowerCase()) || [];
e.ui.ie = t.length ? !0 : !1, e.ui.ie6 = parseFloat(t[1], 10) === 6
}(), e.fn.extend({
disableSelection: function() {
return this.bind((e.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection", function(e) {
e.preventDefault()
})
},
enableSelection: function() {
return this.unbind(".ui-disableSelection")
}
}), e.extend(e.ui, {
plugin: {
add: function(t, n, r) {
var i, s = e.ui[t].prototype;
for (i in r) s.plugins[i] = s.plugins[i] || [], s.plugins[i].push([n, r[i]])
},
call: function(e, t, n) {
var r, i = e.plugins[t];
if (!i || !e.element[0].parentNode || e.element[0].parentNode.nodeType === 11) return;
for (r = 0; r < i.length; r++) e.options[i[r][0]] && i[r][1].apply(e.element, n)
}
},
contains: e.contains,
hasScroll: function(t, n) {
if (e(t).css("overflow") === "hidden") return !1;
var r = n && n === "left" ? "scrollLeft" : "scrollTop",
i = !1;
return t[r] > 0 ? !0 : (t[r] = 1, i = t[r] > 0, t[r] = 0, i)
},
isOverAxis: function(e, t, n) {
return e > t && e < t + n
},
isOver: function(t, n, r, i, s, o) {
return e.ui.isOverAxis(t, r, s) && e.ui.isOverAxis(n, i, o)
}
})
})(jQuery);
(function(e, t) {
var n = 0,
r = Array.prototype.slice,
i = e.cleanData;
e.cleanData = function(t) {
for (var n = 0, r;
(r = t[n]) != null; n++) try {
e(r).triggerHandler("remove")
} catch (s) {}
i(t)
}, e.widget = function(t, n, r) {
var i, s, o, u, a = t.split(".")[0];
t = t.split(".")[1], i = a + "-" + t, r || (r = n, n = e.Widget), e.expr[":"][i.toLowerCase()] = function(t) {
return !!e.data(t, i)
}, e[a] = e[a] || {}, s = e[a][t], o = e[a][t] = function(e, t) {
if (!this._createWidget) return new o(e, t);
arguments.length && this._createWidget(e, t)
}, e.extend(o, s, {
version: r.version,
_proto: e.extend({}, r),
_childConstructors: []
}), u = new n, u.options = e.widget.extend({}, u.options), e.each(r, function(t, i) {
e.isFunction(i) && (r[t] = function() {
var e = function() {
return n.prototype[t].apply(this, arguments)
},
r = function(e) {
return n.prototype[t].apply(this, e)
};
return function() {
var t = this._super,
n = this._superApply,
s;
return this._super = e, this._superApply = r, s = i.apply(this, arguments), this._super = t, this._superApply = n, s
}
}())
}), o.prototype = e.widget.extend(u, {
widgetEventPrefix: s ? u.widgetEventPrefix : t
}, r, {
constructor: o,
namespace: a,
widgetName: t,
widgetBaseClass: i,
widgetFullName: i
}), s ? (e.each(s._childConstructors, function(t, n) {
var r = n.prototype;
e.widget(r.namespace + "." + r.widgetName, o, n._proto)
}), delete s._childConstructors) : n._childConstructors.push(o), e.widget.bridge(t, o)
}, e.widget.extend = function(n) {
var i = r.call(arguments, 1),
s = 0,
o = i.length,
u, a;
for (; s < o; s++) for (u in i[s]) a = i[s][u], i[s].hasOwnProperty(u) && a !== t && (e.isPlainObject(a) ? n[u] = e.isPlainObject(n[u]) ? e.widget.extend({}, n[u], a) : e.widget.extend({}, a) : n[u] = a);
return n
}, e.widget.bridge = function(n, i) {
var s = i.prototype.widgetFullName || n;
e.fn[n] = function(o) {
var u = typeof o == "string",
a = r.call(arguments, 1),
f = this;
return o = !u && a.length ? e.widget.extend.apply(null, [o].concat(a)) : o, u ? this.each(function() {
var r, i = e.data(this, s);
if (!i) return e.error("cannot call methods on " + n + " prior to initialization; " + "attempted to call method '" + o + "'");
if (!e.isFunction(i[o]) || o.charAt(0) === "_") return e.error("no such method '" + o + "' for " + n + " widget instance");
r = i[o].apply(i, a);
if (r !== i && r !== t) return f = r && r.jquery ? f.pushStack(r.get()) : r, !1
}) : this.each(function() {
var t = e.data(this, s);
t ? t.option(o || {})._init() : e.data(this, s, new i(o, this))
}), f
}
}, e.Widget = function() {}, e.Widget._childConstructors = [], e.Widget.prototype = {
widgetName: "widget",
widgetEventPrefix: "",
defaultElement: "<div>",
options: {
disabled: !1,
create: null
},
_createWidget: function(t, r) {
r = e(r || this.defaultElement || this)[0], this.element = e(r), this.uuid = n++, this.eventNamespace = "." + this.widgetName + this.uuid, this.options = e.widget.extend({}, this.options, this._getCreateOptions(), t), this.bindings = e(), this.hoverable = e(), this.focusable = e(), r !== this && (e.data(r, this.widgetName, this), e.data(r, this.widgetFullName, this), this._on(!0, this.element, {
remove: function(e) {
e.target === r && this.destroy()
}
}), this.document = e(r.style ? r.ownerDocument : r.document || r), this.window = e(this.document[0].defaultView || this.document[0].parentWindow)), this._create(), this._trigger("create", null, this._getCreateEventData()), this._init()
},
_getCreateOptions: e.noop,
_getCreateEventData: e.noop,
_create: e.noop,
_init: e.noop,
destroy: function() {
this._destroy(), this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)), this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled " + "ui-state-disabled"), this.bindings.unbind(this.eventNamespace), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus")
},
_destroy: e.noop,
widget: function() {
return this.element
},
option: function(n, r) {
var i = n,
s, o, u;
if (arguments.length === 0) return e.widget.extend({}, this.options);
if (typeof n == "string") {
i = {}, s = n.split("."), n = s.shift();
if (s.length) {
o = i[n] = e.widget.extend({}, this.options[n]);
for (u = 0; u < s.length - 1; u++) o[s[u]] = o[s[u]] || {}, o = o[s[u]];
n = s.pop();
if (r === t) return o[n] === t ? null : o[n];
o[n] = r
} else {
if (r === t) return this.options[n] === t ? null : this.options[n];
i[n] = r
}
}
return this._setOptions(i), this
},
_setOptions: function(e) {
var t;
for (t in e) this._setOption(t, e[t]);
return this
},
_setOption: function(e, t) {
return this.options[e] = t, e === "disabled" && (this.widget().toggleClass(this.widgetFullName + "-disabled ui-state-disabled", !! t).attr("aria-disabled", t), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus")), this
},
enable: function() {
return this._setOption("disabled", !1)
},
disable: function() {
return this._setOption("disabled", !0)
},
_on: function(t, n, r) {
var i, s = this;
typeof t != "boolean" && (r = n, n = t, t = !1), r ? (n = i = e(n), this.bindings = this.bindings.add(n)) : (r = n, n = this.element, i = this.widget()), e.each(r, function(r, o) {
function u() {
if (!t && (s.options.disabled === !0 || e(this).hasClass("ui-state-disabled"))) return;
return (typeof o == "string" ? s[o] : o).apply(s, arguments)
}
typeof o != "string" && (u.guid = o.guid = o.guid || u.guid || e.guid++);
var a = r.match(/^(\w+)\s*(.*)$/),
f = a[1] + s.eventNamespace,
l = a[2];
l ? i.delegate(l, f, u) : n.bind(f, u)
})
},
_off: function(e, t) {
t = (t || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, e.unbind(t).undelegate(t)
},
_delay: function(e, t) {
function n() {
return (typeof e == "string" ? r[e] : e).apply(r, arguments)
}
var r = this;
return setTimeout(n, t || 0)
},
_hoverable: function(t) {
this.hoverable = this.hoverable.add(t), this._on(t, {
mouseenter: function(t) {
e(t.currentTarget).addClass("ui-state-hover")
},
mouseleave: function(t) {
e(t.currentTarget).removeClass("ui-state-hover")
}
})
},
_focusable: function(t) {
this.focusable = this.focusable.add(t), this._on(t, {
focusin: function(t) {
e(t.currentTarget).addClass("ui-state-focus")
},
focusout: function(t) {
e(t.currentTarget).removeClass("ui-state-focus")
}
})
},
_trigger: function(t, n, r) {
var i, s, o = this.options[t];
r = r || {}, n = e.Event(n), n.type = (t === this.widgetEventPrefix ? t : this.widgetEventPrefix + t).toLowerCase(), n.target = this.element[0], s = n.originalEvent;
if (s) for (i in s) i in n || (n[i] = s[i]);
return this.element.trigger(n, r), !(e.isFunction(o) && o.apply(this.element[0], [n].concat(r)) === !1 || n.isDefaultPrevented())
}
}, e.each({
show: "fadeIn",
hide: "fadeOut"
}, function(t, n) {
e.Widget.prototype["_" + t] = function(r, i, s) {
typeof i == "string" && (i = {
effect: i
});
var o, u = i ? i === !0 || typeof i == "number" ? n : i.effect || n : t;
i = i || {}, typeof i == "number" && (i = {
duration: i
}), o = !e.isEmptyObject(i), i.complete = s, i.delay && r.delay(i.delay), o && e.effects && (e.effects.effect[u] || e.uiBackCompat !== !1 && e.effects[u]) ? r[t](i) : u !== t && r[u] ? r[u](i.duration, i.easing, s) : r.queue(function(n) {
e(this)[t](), s && s.call(r[0]), n()
})
}
}), e.uiBackCompat !== !1 && (e.Widget.prototype._getCreateOptions = function() {
return e.metadata && e.metadata.get(this.element[0])[this.widgetName]
})
})(jQuery);
(function(e, t) {
var n = !1;
e(document).mouseup(function(e) {
n = !1
}), e.widget("ui.mouse", {
version: "1.9.2",
options: {
cancel: "input,textarea,button,select,option",
distance: 1,
delay: 0
},
_mouseInit: function() {
var t = this;
this.element.bind("mousedown." + this.widgetName, function(e) {
return t._mouseDown(e)
}).bind("click." + this.widgetName, function(n) {
if (!0 === e.data(n.target, t.widgetName + ".preventClickEvent")) return e.removeData(n.target, t.widgetName + ".preventClickEvent"), n.stopImmediatePropagation(), !1
}), this.started = !1
},
_mouseDestroy: function() {
this.element.unbind("." + this.widgetName), this._mouseMoveDelegate && e(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate)
},
_mouseDown: function(t) {
if (n) return;
this._mouseStarted && this._mouseUp(t), this._mouseDownEvent = t;
var r = this,
i = t.which === 1,
s = typeof this.options.cancel == "string" && t.target.nodeName ? e(t.target).closest(this.options.cancel).length : !1;
if (!i || s || !this._mouseCapture(t)) return !0;
this.mouseDelayMet = !this.options.delay, this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function() {
r.mouseDelayMet = !0
}, this.options.delay));
if (this._mouseDistanceMet(t) && this._mouseDelayMet(t)) {
this._mouseStarted = this._mouseStart(t) !== !1;
if (!this._mouseStarted) return t.preventDefault(), !0
}
return !0 === e.data(t.target, this.widgetName + ".preventClickEvent") && e.removeData(t.target, this.widgetName + ".preventClickEvent"), this._mouseMoveDelegate = function(e) {
return r._mouseMove(e)
}, this._mouseUpDelegate = function(e) {
return r._mouseUp(e)
}, e(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate), t.preventDefault(), n = !0, !0
},
_mouseMove: function(t) {
return !e.ui.ie || document.documentMode >= 9 || !! t.button ? this._mouseStarted ? (this._mouseDrag(t), t.preventDefault()) : (this._mouseDistanceMet(t) && this._mouseDelayMet(t) && (this._mouseStarted = this._mouseStart(this._mouseDownEvent, t) !== !1, this._mouseStarted ? this._mouseDrag(t) : this._mouseUp(t)), !this._mouseStarted) : this._mouseUp(t)
},
_mouseUp: function(t) {
return e(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate), this._mouseStarted && (this._mouseStarted = !1, t.target === this._mouseDownEvent.target && e.data(t.target, this.widgetName + ".preventClickEvent", !0), this._mouseStop(t)), !1
},
_mouseDistanceMet: function(e) {
return Math.max(Math.abs(this._mouseDownEvent.pageX - e.pageX), Math.abs(this._mouseDownEvent.pageY - e.pageY)) >= this.options.distance
},
_mouseDelayMet: function(e) {
return this.mouseDelayMet
},
_mouseStart: function(e) {},
_mouseDrag: function(e) {},
_mouseStop: function(e) {},
_mouseCapture: function(e) {
return !0
}
})
})(jQuery);
(function(e, t) {
var n = 5;
e.widget("ui.slider", e.ui.mouse, {
version: "1.9.2",
widgetEventPrefix: "slide",
options: {
animate: !1,
distance: 0,
max: 100,
min: 0,
orientation: "horizontal",
range: !1,
step: 1,
value: 0,
values: null
},
_create: function() {
var t, r, i = this.options,
s = this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),
o = "<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",
u = [];
this._keySliding = !1, this._mouseSliding = !1, this._animateOff = !0, this._handleIndex = null, this._detectOrientation(), this._mouseInit(), this.element.addClass("ui-slider ui-slider-" + this.orientation + " ui-widget" + " ui-widget-content" + " ui-corner-all" + (i.disabled ? " ui-slider-disabled ui-disabled" : "")), this.range = e([]), i.range && (i.range === !0 && (i.values || (i.values = [this._valueMin(), this._valueMin()]), i.values.length && i.values.length !== 2 && (i.values = [i.values[0], i.values[0]])), this.range = e("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header" + (i.range === "min" || i.range === "max" ? " ui-slider-range-" + i.range : ""))), r = i.values && i.values.length || 1;
for (t = s.length; t < r; t++) u.push(o);
this.handles = s.add(e(u.join("")).appendTo(this.element)), this.handle = this.handles.eq(0), this.handles.add(this.range).filter("a").click(function(e) {
e.preventDefault()
}).mouseenter(function() {
i.disabled || e(this).addClass("ui-state-hover")
}).mouseleave(function() {
e(this).removeClass("ui-state-hover")
}).focus(function() {
i.disabled ? e(this).blur() : (e(".ui-slider .ui-state-focus").removeClass("ui-state-focus"), e(this).addClass("ui-state-focus"))
}).blur(function() {
e(this).removeClass("ui-state-focus")
}), this.handles.each(function(t) {
e(this).data("ui-slider-handle-index", t)
}), this._on(this.handles, {
keydown: function(t) {
var r, i, s, o, u = e(t.target).data("ui-slider-handle-index");
switch (t.keyCode) {
case e.ui.keyCode.HOME:
case e.ui.keyCode.END:
case e.ui.keyCode.PAGE_UP:
case e.ui.keyCode.PAGE_DOWN:
case e.ui.keyCode.UP:
case e.ui.keyCode.RIGHT:
case e.ui.keyCode.DOWN:
case e.ui.keyCode.LEFT:
t.preventDefault();
if (!this._keySliding) {
this._keySliding = !0, e(t.target).addClass("ui-state-active"), r = this._start(t, u);
if (r === !1) return
}
}
o = this.options.step, this.options.values && this.options.values.length ? i = s = this.values(u) : i = s = this.value();
switch (t.keyCode) {
case e.ui.keyCode.HOME:
s = this._valueMin();
break;
case e.ui.keyCode.END:
s = this._valueMax();
break;
case e.ui.keyCode.PAGE_UP:
s = this._trimAlignValue(i + (this._valueMax() - this._valueMin()) / n);
break;
case e.ui.keyCode.PAGE_DOWN:
s = this._trimAlignValue(i - (this._valueMax() - this._valueMin()) / n);
break;
case e.ui.keyCode.UP:
case e.ui.keyCode.RIGHT:
if (i === this._valueMax()) return;
s = this._trimAlignValue(i + o);
break;
case e.ui.keyCode.DOWN:
case e.ui.keyCode.LEFT:
if (i === this._valueMin()) return;
s = this._trimAlignValue(i - o)
}
this._slide(t, u, s)
},
keyup: function(t) {
var n = e(t.target).data("ui-slider-handle-index");
this._keySliding && (this._keySliding = !1, this._stop(t, n), this._change(t, n), e(t.target).removeClass("ui-state-active"))
}
}), this._refreshValue(), this._animateOff = !1
},
_destroy: function() {
this.handles.remove(), this.range.remove(), this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all"), this._mouseDestroy()
},
_mouseCapture: function(t) {
var n, r, i, s, o, u, a, f, l = this,
c = this.options;
return c.disabled ? !1 : (this.elementSize = {
width: this.element.outerWidth(),
height: this.element.outerHeight()
}, this.elementOffset = this.element.offset(), n = {
x: t.pageX,
y: t.pageY
}, r = this._normValueFromMouse(n), i = this._valueMax() - this._valueMin() + 1, this.handles.each(function(t) {
var n = Math.abs(r - l.values(t));
i > n && (i = n, s = e(this), o = t)
}), c.range === !0 && this.values(1) === c.min && (o += 1, s = e(this.handles[o])), u = this._start(t, o), u === !1 ? !1 : (this._mouseSliding = !0, this._handleIndex = o, s.addClass("ui-state-active").focus(), a = s.offset(), f = !e(t.target).parents().andSelf().is(".ui-slider-handle"), this._clickOffset = f ? {
left: 0,
top: 0
} : {
left: t.pageX - a.left - s.width() / 2,
top: t.pageY - a.top - s.height() / 2 - (parseInt(s.css("borderTopWidth"), 10) || 0) - (parseInt(s.css("borderBottomWidth"), 10) || 0) + (parseInt(s.css("marginTop"), 10) || 0)
}, this.handles.hasClass("ui-state-hover") || this._slide(t, o, r), this._animateOff = !0, !0))
},
_mouseStart: function() {
return !0
},
_mouseDrag: function(e) {
var t = {
x: e.pageX,
y: e.pageY
},
n = this._normValueFromMouse(t);
return this._slide(e, this._handleIndex, n), !1
},
_mouseStop: function(e) {
return this.handles.removeClass("ui-state-active"), this._mouseSliding = !1, this._stop(e, this._handleIndex), this._change(e, this._handleIndex), this._handleIndex = null, this._clickOffset = null, this._animateOff = !1, !1
},
_detectOrientation: function() {
this.orientation = this.options.orientation === "vertical" ? "vertical" : "horizontal"
},
_normValueFromMouse: function(e) {
var t, n, r, i, s;
return this.orientation === "horizontal" ? (t = this.elementSize.width, n = e.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)) : (t = this.elementSize.height, n = e.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)), r = n / t, r > 1 && (r = 1), r < 0 && (r = 0), this.orientation === "vertical" && (r = 1 - r), i = this._valueMax() - this._valueMin(), s = this._valueMin() + r * i, this._trimAlignValue(s)
},
_start: function(e, t) {
var n = {
handle: this.handles[t],
value: this.value()
};
return this.options.values && this.options.values.length && (n.value = this.values(t), n.values = this.values()), this._trigger("start", e, n)
},
_slide: function(e, t, n) {
var r, i, s;
this.options.values && this.options.values.length ? (r = this.values(t ? 0 : 1), this.options.values.length === 2 && this.options.range === !0 && (t === 0 && n > r || t === 1 && n < r) && (n = r), n !== this.values(t) && (i = this.values(), i[t] = n, s = this._trigger("slide", e, {
handle: this.handles[t],
value: n,
values: i
}), r = this.values(t ? 0 : 1), s !== !1 && this.values(t, n, !0))) : n !== this.value() && (s = this._trigger("slide", e, {
handle: this.handles[t],
value: n
}), s !== !1 && this.value(n))
},
_stop: function(e, t) {
var n = {
handle: this.handles[t],
value: this.value()
};
this.options.values && this.options.values.length && (n.value = this.values(t), n.values = this.values()), this._trigger("stop", e, n)
},
_change: function(e, t) {
if (!this._keySliding && !this._mouseSliding) {
var n = {
handle: this.handles[t],
value: this.value()
};
this.options.values && this.options.values.length && (n.value = this.values(t), n.values = this.values()), this._trigger("change", e, n)
}
},
value: function(e) {
if (arguments.length) {
this.options.value = this._trimAlignValue(e), this._refreshValue(), this._change(null, 0);
return
}
return this._value()
},
values: function(t, n) {
var r, i, s;
if (arguments.length > 1) {
this.options.values[t] = this._trimAlignValue(n), this._refreshValue(), this._change(null, t);
return
}
if (!arguments.length) return this._values();
if (!e.isArray(arguments[0])) return this.options.values && this.options.values.length ? this._values(t) : this.value();
r = this.options.values, i = arguments[0];
for (s = 0; s < r.length; s += 1) r[s] = this._trimAlignValue(i[s]), this._change(null, s);
this._refreshValue()
},
_setOption: function(t, n) {
var r, i = 0;
e.isArray(this.options.values) && (i = this.options.values.length), e.Widget.prototype._setOption.apply(this, arguments);
switch (t) {
case "disabled":
n ? (this.handles.filter(".ui-state-focus").blur(), this.handles.removeClass("ui-state-hover"), this.handles.prop("disabled", !0), this.element.addClass("ui-disabled")) : (this.handles.prop("disabled", !1), this.element.removeClass("ui-disabled"));
break;
case "orientation":
this._detectOrientation(), this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-" + this.orientation), this._refreshValue();
break;
case "value":
this._animateOff = !0, this._refreshValue(), this._change(null, 0), this._animateOff = !1;
break;
case "values":
this._animateOff = !0, this._refreshValue();
for (r = 0; r < i; r += 1) this._change(null, r);
this._animateOff = !1;
break;
case "min":
case "max":
this._animateOff = !0, this._refreshValue(), this._animateOff = !1
}
},
_value: function() {
var e = this.options.value;
return e = this._trimAlignValue(e), e
},
_values: function(e) {
var t, n, r;
if (arguments.length) return t = this.options.values[e], t = this._trimAlignValue(t), t;
n = this.options.values.slice();
for (r = 0; r < n.length; r += 1) n[r] = this._trimAlignValue(n[r]);
return n
},
_trimAlignValue: function(e) {
if (e <= this._valueMin()) return this._valueMin();
if (e >= this._valueMax()) return this._valueMax();
var t = this.options.step > 0 ? this.options.step : 1,
n = (e - this._valueMin()) % t,
r = e - n;
return Math.abs(n) * 2 >= t && (r += n > 0 ? t : -t), parseFloat(r.toFixed(5))
},
_valueMin: function() {
return this.options.min
},
_valueMax: function() {
return this.options.max
},
_refreshValue: function() {
var t, n, r, i, s, o = this.options.range,
u = this.options,
a = this,
f = this._animateOff ? !1 : u.animate,
l = {};
this.options.values && this.options.values.length ? this.handles.each(function(r) {
n = (a.values(r) - a._valueMin()) / (a._valueMax() - a._valueMin()) * 100, l[a.orientation === "horizontal" ? "left" : "bottom"] = n + "%", e(this).stop(1, 1)[f ? "animate" : "css"](l, u.animate), a.options.range === !0 && (a.orientation === "horizontal" ? (r === 0 && a.range.stop(1, 1)[f ? "animate" : "css"]({
left: n + "%"
}, u.animate), r === 1 && a.range[f ? "animate" : "css"]({
width: n - t + "%"
}, {
queue: !1,
duration: u.animate
})) : (r === 0 && a.range.stop(1, 1)[f ? "animate" : "css"]({
bottom: n + "%"
}, u.animate), r === 1 && a.range[f ? "animate" : "css"]({
height: n - t + "%"
}, {
queue: !1,
duration: u.animate
}))), t = n
}) : (r = this.value(), i = this._valueMin(), s = this._valueMax(), n = s !== i ? (r - i) / (s - i) * 100 : 0, l[this.orientation === "horizontal" ? "left" : "bottom"] = n + "%", this.handle.stop(1, 1)[f ? "animate" : "css"](l, u.animate), o === "min" && this.orientation === "horizontal" && this.range.stop(1, 1)[f ? "animate" : "css"]({
width: n + "%"
}, u.animate), o === "max" && this.orientation === "horizontal" && this.range[f ? "animate" : "css"]({
width: 100 - n + "%"
}, {
queue: !1,
duration: u.animate
}), o === "min" && this.orientation === "vertical" && this.range.stop(1, 1)[f ? "animate" : "css"]({
height: n + "%"
}, u.animate), o === "max" && this.orientation === "vertical" && this.range[f ? "animate" : "css"]({
height: 100 - n + "%"
}, {
queue: !1,
duration: u.animate
}))
}
})
})(jQuery);
window.JSON || (window.JSON = {}), function() {
function f(e) {
return e < 10 ? "0" + e : e
}
function quote(e) {
return escapable.lastIndex = 0, escapable.test(e) ? '"' + e.replace(escapable, function(e) {
var t = meta[e];
return typeof t == "string" ? t : "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice(-4)
}) + '"' : '"' + e + '"'
}
function str(e, t) {
var n, r, i, s, o = gap,
u, a = t[e];
a && typeof a == "object" && typeof a.toJSON == "function" && (a = a.toJSON(e)), typeof rep == "function" && (a = rep.call(t, e, a));
switch (typeof a) {
case "string":
return quote(a);
case "number":
return isFinite(a) ? String(a) : "null";
case "boolean":
case "null":
return String(a);
case "object":
if (!a) return "null";
gap += indent, u = [];
if (Object.prototype.toString.apply(a) === "[object Array]") {
s = a.length;
for (n = 0; n < s; n += 1) u[n] = str(n, a) || "null";
return i = u.length === 0 ? "[]" : gap ? "[\n" + gap + u.join(",\n" + gap) + "\n" + o + "]" : "[" + u.join(",") + "]", gap = o, i
}
if (rep && typeof rep == "object") {
s = rep.length;
for (n = 0; n < s; n += 1) r = rep[n], typeof r == "string" && (i = str(r, a), i && u.push(quote(r) + (gap ? ": " : ":") + i))
} else for (r in a) Object.hasOwnProperty.call(a, r) && (i = str(r, a), i && u.push(quote(r) + (gap ? ": " : ":") + i));
return i = u.length === 0 ? "{}" : gap ? "{\n" + gap + u.join(",\n" + gap) + "\n" + o + "}" : "{" + u.join(",") + "}", gap = o, i
}
}
"use strict", typeof Date.prototype.toJSON != "function" && (Date.prototype.toJSON = function(e) {
return isFinite(this.valueOf()) ? this.getUTCFullYear() + "-" + f(this.getUTCMonth() + 1) + "-" + f(this.getUTCDate()) + "T" + f(this.getUTCHours()) + ":" + f(this.getUTCMinutes()) + ":" + f(this.getUTCSeconds()) + "Z" : null
}, String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function(e) {
return this.valueOf()
});
var JSON = window.JSON,
cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
gap, indent, meta = {
"\b": "\\b",
" ": "\\t",
"\n": "\\n",
"\f": "\\f",
"\r": "\\r",
'"': '\\"',
"\\": "\\\\"
},
rep;
typeof JSON.stringify != "function" && (JSON.stringify = function(e, t, n) {
var r;
gap = "", indent = "";
if (typeof n == "number") for (r = 0; r < n; r += 1) indent += " ";
else typeof n == "string" && (indent = n);
rep = t;
if (!t || typeof t == "function" || typeof t == "object" && typeof t.length == "number") return str("", {
"": e
});
throw new Error("JSON.stringify")
}), typeof JSON.parse != "function" && (JSON.parse = function(text, reviver) {
function walk(e, t) {
var n, r, i = e[t];
if (i && typeof i == "object") for (n in i) Object.hasOwnProperty.call(i, n) && (r = walk(i, n), r !== undefined ? i[n] = r : delete i[n]);
return reviver.call(e, t, i)
}
var j;
text = String(text), cx.lastIndex = 0, cx.test(text) && (text = text.replace(cx, function(e) {
return "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice(-4)
}));
if (/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return j = eval("(" + text + ")"), typeof reviver == "function" ? walk({
"": j
}, "") : j;
throw new SyntaxError("JSON.parse")
})
}(), function(e, t) {
"use strict";
var n = e.History = e.History || {},
r = e.jQuery;
if (typeof n.Adapter != "undefined") throw new Error("History.js Adapter has already been loaded...");
n.Adapter = {
bind: function(e, t, n) {
r(e).bind(t, n)
},
trigger: function(e, t, n) {
r(e).trigger(t, n)
},
extractEventData: function(e, n, r) {
var i = n && n.originalEvent && n.originalEvent[e] || r && r[e] || t;
return i
},
onDomLoad: function(e) {
r(e)
}
}, typeof n.init != "undefined" && n.init()
}(window), function(e, t) {
"use strict";
var n = e.document,
r = e.setTimeout || r,
i = e.clearTimeout || i,
s = e.setInterval || s,
o = e.History = e.History || {};
if (typeof o.initHtml4 != "undefined") throw new Error("History.js HTML4 Support has already been loaded...");
o.initHtml4 = function() {
if (typeof o.initHtml4.initialized != "undefined") return !1;
o.initHtml4.initialized = !0, o.enabled = !0, o.savedHashes = [], o.isLastHash = function(e) {
var t = o.getHashByIndex(),
n;
return n = e === t, n
}, o.saveHash = function(e) {
return o.isLastHash(e) ? !1 : (o.savedHashes.push(e), !0)
}, o.getHashByIndex = function(e) {
var t = null;
return typeof e == "undefined" ? t = o.savedHashes[o.savedHashes.length - 1] : e < 0 ? t = o.savedHashes[o.savedHashes.length + e] : t = o.savedHashes[e], t
}, o.discardedHashes = {}, o.discardedStates = {}, o.discardState = function(e, t, n) {
var r = o.getHashByState(e),
i;
return i = {
discardedState: e,
backState: n,
forwardState: t
}, o.discardedStates[r] = i, !0
}, o.discardHash = function(e, t, n) {
var r = {
discardedHash: e,
backState: n,
forwardState: t
};
return o.discardedHashes[e] = r, !0
}, o.discardedState = function(e) {
var t = o.getHashByState(e),
n;
return n = o.discardedStates[t] || !1, n
}, o.discardedHash = function(e) {
var t = o.discardedHashes[e] || !1;
return t
}, o.recycleState = function(e) {
var t = o.getHashByState(e);
return o.discardedState(e) && delete o.discardedStates[t], !0
}, o.emulated.hashChange && (o.hashChangeInit = function() {
o.checkerFunction = null;
var t = "",
r, i, u, a;
return o.isInternetExplorer() ? (r = "historyjs-iframe", i = n.createElement("iframe"), i.setAttribute("id", r), i.style.display = "none", n.body.appendChild(i), i.contentWindow.document.open(), i.contentWindow.document.close(), u = "", a = !1, o.checkerFunction = function() {
if (a) return !1;
a = !0;
var n = o.getHash() || "",
r = o.unescapeHash(i.contentWindow.document.location.hash) || "";
return n !== t ? (t = n, r !== n && (u = r = n, i.contentWindow.document.open(), i.contentWindow.document.close(), i.contentWindow.document.location.hash = o.escapeHash(n)), o.Adapter.trigger(e, "hashchange")) : r !== u && (u = r, o.setHash(r, !1)), a = !1, !0
}) : o.checkerFunction = function() {
var n = o.getHash();
return n !== t && (t = n, o.Adapter.trigger(e, "hashchange")), !0
}, o.intervalList.push(s(o.checkerFunction, o.options.hashChangeInterval)), !0
}, o.Adapter.onDomLoad(o.hashChangeInit)), o.emulated.pushState && (o.onHashChange = function(t) {
var r = t && t.newURL || n.location.href,
i = o.getHashByUrl(r),
s = null,
u = null,
a = null,
f;
return o.isLastHash(i) ? (o.busy(!1), !1) : (o.doubleCheckComplete(), o.saveHash(i), i && o.isTraditionalAnchor(i) ? (o.Adapter.trigger(e, "anchorchange"), o.busy(!1), !1) : (s = o.extractState(o.getFullUrl(i || n.location.href, !1), !0), o.isLastSavedState(s) ? (o.busy(!1), !1) : (u = o.getHashByState(s), f = o.discardedState(s), f ? (o.getHashByIndex(-2) === o.getHashByState(f.forwardState) ? o.back(!1) : o.forward(!1), !1) : (o.pushState(s.data, s.title, s.url, !1), !0))))
}, o.Adapter.bind(e, "hashchange", o.onHashChange), o.pushState = function(t, r, i, s) {
if (o.getHashByUrl(i)) throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");
if (s !== !1 && o.busy()) return o.pushQueue({
scope: o,
callback: o.pushState,
args: arguments,
queue: s
}), !1;
o.busy(!0);
var u = o.createStateObject(t, r, i),
a = o.getHashByState(u),
f = o.getState(!1),
l = o.getHashByState(f),
c = o.getHash();
return o.storeState(u), o.expectedStateId = u.id, o.recycleState(u), o.setTitle(u), a === l ? (o.busy(!1), !1) : a !== c && a !== o.getShortUrl(n.location.href) ? (o.setHash(a, !1), !1) : (o.saveState(u), o.Adapter.trigger(e, "statechange"), o.busy(!1), !0)
}, o.replaceState = function(e, t, n, r) {
if (o.getHashByUrl(n)) throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");
if (r !== !1 && o.busy()) return o.pushQueue({
scope: o,
callback: o.replaceState,
args: arguments,
queue: r
}), !1;
o.busy(!0);
var i = o.createStateObject(e, t, n),
s = o.getState(!1),
u = o.getStateByIndex(-2);
return o.discardState(s, i, u), o.pushState(i.data, i.title, i.url, !1), !0
}), o.emulated.pushState && o.getHash() && !o.emulated.hashChange && o.Adapter.onDomLoad(function() {
o.Adapter.trigger(e, "hashchange")
})
}, typeof o.init != "undefined" && o.init()
}(window), function(e, t) {
"use strict";
var n = e.console || t,
r = e.document,
i = e.navigator,
s = e.sessionStorage || !1,
o = e.setTimeout,
u = e.clearTimeout,
a = e.setInterval,
f = e.clearInterval,
l = e.JSON,
c = e.alert,
h = e.History = e.History || {},
p = e.history;
l.stringify = l.stringify || l.encode, l.parse = l.parse || l.decode;
if (typeof h.init != "undefined") throw new Error("History.js Core has already been loaded...");
h.init = function() {
return typeof h.Adapter == "undefined" ? !1 : (typeof h.initCore != "undefined" && h.initCore(), typeof h.initHtml4 != "undefined" && h.initHtml4(), !0)
}, h.initCore = function() {
if (typeof h.initCore.initialized != "undefined") return !1;
h.initCore.initialized = !0, h.options = h.options || {}, h.options.hashChangeInterval = h.options.hashChangeInterval || 100, h.options.safariPollInterval = h.options.safariPollInterval || 500, h.options.doubleCheckInterval = h.options.doubleCheckInterval || 500, h.options.storeInterval = h.options.storeInterval || 1e3, h.options.busyDelay = h.options.busyDelay || 250, h.options.debug = h.options.debug || !1, h.options.initialTitle = h.options.initialTitle || r.title, h.intervalList = [], h.clearAllIntervals = function() {
var e, t = h.intervalList;
if (typeof t != "undefined" && t !== null) {
for (e = 0; e < t.length; e++) f(t[e]);
h.intervalList = null
}
}, h.debug = function() {
(h.options.debug || !1) && h.log.apply(h, arguments)
}, h.log = function() {
var e = typeof n != "undefined" && typeof n.log != "undefined" && typeof n.log.apply != "undefined",
t = r.getElementById("log"),
i, s, o, u, a;
e ? (u = Array.prototype.slice.call(arguments), i = u.shift(), typeof n.debug != "undefined" ? n.debug.apply(n, [i, u]) : n.log.apply(n, [i, u])) : i = "\n" + arguments[0] + "\n";
for (s = 1, o = arguments.length; s < o; ++s) {
a = arguments[s];
if (typeof a == "object" && typeof l != "undefined") try {
a = l.stringify(a)
} catch (f) {}
i += "\n" + a + "\n"
}
return t ? (t.value += i + "\n-----\n", t.scrollTop = t.scrollHeight - t.clientHeight) : e || c(i), !0
}, h.getInternetExplorerMajorVersion = function() {
var e = h.getInternetExplorerMajorVersion.cached = typeof h.getInternetExplorerMajorVersion.cached != "undefined" ? h.getInternetExplorerMajorVersion.cached : function() {
var e = 3,
t = r.createElement("div"),
n = t.getElementsByTagName("i");
while ((t.innerHTML = "<!--[if gt IE " + ++e + "]><i></i><![endif]-->") && n[0]);
return e > 4 ? e : !1
}();
return e
}, h.isInternetExplorer = function() {
var e = h.isInternetExplorer.cached = typeof h.isInternetExplorer.cached != "undefined" ? h.isInternetExplorer.cached : Boolean(h.getInternetExplorerMajorVersion());
return e
}, h.emulated = {
pushState: !Boolean(e.history && e.history.pushState && e.history.replaceState && !/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(i.userAgent) && !/AppleWebKit\/5([0-2]|3[0-2])/i.test(i.userAgent)),
hashChange: Boolean(!("onhashchange" in e || "onhashchange" in r) || h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 8)
}, h.enabled = !h.emulated.pushState, h.bugs = {
setHash: Boolean(!h.emulated.pushState && i.vendor === "Apple Computer, Inc." && /AppleWebKit\/5([0-2]|3[0-3])/.test(i.userAgent)),
safariPoll: Boolean(!h.emulated.pushState && i.vendor === "Apple Computer, Inc." && /AppleWebKit\/5([0-2]|3[0-3])/.test(i.userAgent)),
ieDoubleCheck: Boolean(h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 8),
hashEscape: Boolean(h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 7)
}, h.isEmptyObject = function(e) {
for (var t in e) return !1;
return !0
}, h.cloneObject = function(e) {
var t, n;
return e ? (t = l.stringify(e), n = l.parse(t)) : n = {}, n
}, h.getRootUrl = function() {
var e = r.location.protocol + "//" + (r.location.hostname || r.location.host);
if (r.location.port || !1) e += ":" + r.location.port;
return e += "/", e
}, h.getBaseHref = function() {
var e = r.getElementsByTagName("base"),
t = null,
n = "";
return e.length === 1 && (t = e[0], n = t.href.replace(/[^\/]+$/, "")), n = n.replace(/\/+$/, ""), n && (n += "/"), n
}, h.getBaseUrl = function() {
var e = h.getBaseHref() || h.getBasePageUrl() || h.getRootUrl();
return e
}, h.getPageUrl = function() {
var e = h.getState(!1, !1),
t = (e || {}).url || r.location.href,
n;
return n = t.replace(/\/+$/, "").replace(/[^\/]+$/, function(e, t, n) {
return /\./.test(e) ? e : e + "/"
}), n
}, h.getBasePageUrl = function() {
var e = r.location.href.replace(/[#\?].*/, "").replace(/[^\/]+$/, function(e, t, n) {
return /[^\/]$/.test(e) ? "" : e
}).replace(/\/+$/, "") + "/";
return e
}, h.getFullUrl = function(e, t) {
var n = e,
r = e.substring(0, 1);
return t = typeof t == "undefined" ? !0 : t, /[a-z]+\:\/\//.test(e) || (r === "/" ? n = h.getRootUrl() + e.replace(/^\/+/, "") : r === "#" ? n = h.getPageUrl().replace(/#.*/, "") + e : r === "?" ? n = h.getPageUrl().replace(/[\?#].*/, "") + e : t ? n = h.getBaseUrl() + e.replace(/^(\.\/)+/, "") : n = h.getBasePageUrl() + e.replace(/^(\.\/)+/, "")), n.replace(/\#$/, "")
}, h.getShortUrl = function(e) {
var t = e,
n = h.getBaseUrl(),
r = h.getRootUrl();
return h.emulated.pushState && (t = t.replace(n, "")), t = t.replace(r, "/"), h.isTraditionalAnchor(t) && (t = "./" + t), t = t.replace(/^(\.\/)+/g, "./").replace(/\#$/, ""), t
}, h.store = {}, h.idToState = h.idToState || {}, h.stateToId = h.stateToId || {}, h.urlToId = h.urlToId || {}, h.storedStates = h.storedStates || [], h.savedStates = h.savedStates || [], h.normalizeStore = function() {
h.store.idToState = h.store.idToState || {}, h.store.urlToId = h.store.urlToId || {}, h.store.stateToId = h.store.stateToId || {}
}, h.getState = function(e, t) {
typeof e == "undefined" && (e = !0), typeof t == "undefined" && (t = !0);
var n = h.getLastSavedState();
return !n && t && (n = h.createStateObject()), e && (n = h.cloneObject(n), n.url = n.cleanUrl || n.url), n
}, h.getIdByState = function(e) {
var t = h.extractId(e.url),
n;
if (!t) {
n = h.getStateString(e);
if (typeof h.stateToId[n] != "undefined") t = h.stateToId[n];
else if (typeof h.store.stateToId[n] != "undefined") t = h.store.stateToId[n];
else {
for (;;) {
t = (new Date).getTime() + String(Math.random()).replace(/\D/g, "");
if (typeof h.idToState[t] == "undefined" && typeof h.store.idToState[t] == "undefined") break
}
h.stateToId[n] = t, h.idToState[t] = e
}
}
return t
}, h.normalizeState = function(e) {
var t, n;
if (!e || typeof e != "object") e = {};
if (typeof e.normalized != "undefined") return e;
if (!e.data || typeof e.data != "object") e.data = {};
t = {}, t.normalized = !0, t.title = e.title || "", t.url = h.getFullUrl(h.unescapeString(e.url || r.location.href)), t.hash = h.getShortUrl(t.url), t.data = h.cloneObject(e.data), t.id = h.getIdByState(t), t.cleanUrl = t.url.replace(/\??\&_suid.*/, ""), t.url = t.cleanUrl, n = !h.isEmptyObject(t.data);
if (t.title || n) t.hash = h.getShortUrl(t.url).replace(/\??\&_suid.*/, ""), /\?/.test(t.hash) || (t.hash += "?"), t.hash += "&_suid=" + t.id;
return t.hashedUrl = h.getFullUrl(t.hash), (h.emulated.pushState || h.bugs.safariPoll) && h.hasUrlDuplicate(t) && (t.url = t.hashedUrl), t
}, h.createStateObject = function(e, t, n) {
var r = {
data: e,
title: t,
url: n
};
return r = h.normalizeState(r), r
}, h.getStateById = function(e) {
e = String(e);
var n = h.idToState[e] || h.store.idToState[e] || t;
return n
}, h.getStateString = function(e) {
var t, n, r;
return t = h.normalizeState(e), n = {
data: t.data,
title: e.title,
url: e.url
}, r = l.stringify(n), r
}, h.getStateId = function(e) {
var t, n;
return t = h.normalizeState(e), n = t.id, n
}, h.getHashByState = function(e) {
var t, n;
return t = h.normalizeState(e), n = t.hash, n
}, h.extractId = function(e) {
var t, n, r;
return n = /(.*)\&_suid=([0-9]+)$/.exec(e), r = n ? n[1] || e : e, t = n ? String(n[2] || "") : "", t || !1
}, h.isTraditionalAnchor = function(e) {
var t = !/[\/\?\.]/.test(e);
return t
}, h.extractState = function(e, t) {
var n = null,
r, i;
return t = t || !1, r = h.extractId(e), r && (n = h.getStateById(r)), n || (i = h.getFullUrl(e), r = h.getIdByUrl(i) || !1, r && (n = h.getStateById(r)), !n && t && !h.isTraditionalAnchor(e) && (n = h.createStateObject(null, null, i))), n
}, h.getIdByUrl = function(e) {
var n = h.urlToId[e] || h.store.urlToId[e] || t;
return n
}, h.getLastSavedState = function() {
return h.savedStates[h.savedStates.length - 1] || t
}, h.getLastStoredState = function() {
return h.storedStates[h.storedStates.length - 1] || t
}, h.hasUrlDuplicate = function(e) {
var t = !1,
n;
return n = h.extractState(e.url), t = n && n.id !== e.id, t
}, h.storeState = function(e) {
return h.urlToId[e.url] = e.id, h.storedStates.push(h.cloneObject(e)), e
}, h.isLastSavedState = function(e) {
var t = !1,
n, r, i;
return h.savedStates.length && (n = e.id, r = h.getLastSavedState(), i = r.id, t = n === i), t
}, h.saveState = function(e) {
return h.isLastSavedState(e) ? !1 : (h.savedStates.push(h.cloneObject(e)), !0)
}, h.getStateByIndex = function(e) {
var t = null;
return typeof e == "undefined" ? t = h.savedStates[h.savedStates.length - 1] : e < 0 ? t = h.savedStates[h.savedStates.length + e] : t = h.savedStates[e], t
}, h.getHash = function() {
var e = h.unescapeHash(r.location.hash);
return e
}, h.unescapeString = function(t) {
var n = t,
r;
for (;;) {
r = e.unescape(n);
if (r === n) break;
n = r
}
return n
}, h.unescapeHash = function(e) {
var t = h.normalizeHash(e);
return t = h.unescapeString(t), t
}, h.normalizeHash = function(e) {
var t = e.replace(/[^#]*#/, "").replace(/#.*/, "");
return t
}, h.setHash = function(e, t) {
var n, i, s;
return t !== !1 && h.busy() ? (h.pushQueue({
scope: h,
callback: h.setHash,
args: arguments,
queue: t
}), !1) : (n = h.escapeHash(e), h.busy(!0), i = h.extractState(e, !0), i && !h.emulated.pushState ? h.pushState(i.data, i.title, i.url, !1) : r.location.hash !== n && (h.bugs.setHash ? (s = h.getPageUrl(), h.pushState(null, null, s + "#" + n, !1)) : r.location.hash = n), h)
}, h.escapeHash = function(t) {
var n = h.normalizeHash(t);
return n = e.escape(n), h.bugs.hashEscape || (n = n.replace(/\%21/g, "!").replace(/\%26/g, "&").replace(/\%3D/g, "=").replace(/\%3F/g, "?")), n
}, h.getHashByUrl = function(e) {
var t = String(e).replace(/([^#]*)#?([^#]*)#?(.*)/, "$2");
return t = h.unescapeHash(t), t
}, h.setTitle = function(e) {
var t = e.title,
n;
t || (n = h.getStateByIndex(0), n && n.url === e.url && (t = n.title || h.options.initialTitle));
try {
r.getElementsByTagName("title")[0].innerHTML = t.replace("<", "<").replace(">", ">").replace(" & ", " & ")
} catch (i) {}
return r.title = t, h
}, h.queues = [], h.busy = function(e) {
typeof e != "undefined" ? h.busy.flag = e : typeof h.busy.flag == "undefined" && (h.busy.flag = !1);
if (!h.busy.flag) {
u(h.busy.timeout);
var t = function() {
var e, n, r;
if (h.busy.flag) return;
for (e = h.queues.length - 1; e >= 0; --e) {
n = h.queues[e];
if (n.length === 0) continue;
r = n.shift(), h.fireQueueItem(r), h.busy.timeout = o(t, h.options.busyDelay)
}
};
h.busy.timeout = o(t, h.options.busyDelay)
}
return h.busy.flag
}, h.busy.flag = !1, h.fireQueueItem = function(e) {
return e.callback.apply(e.scope || h, e.args || [])
}, h.pushQueue = function(e) {
return h.queues[e.queue || 0] = h.queues[e.queue || 0] || [], h.queues[e.queue || 0].push(e), h
}, h.queue = function(e, t) {
return typeof e == "function" && (e = {
callback: e
}), typeof t != "undefined" && (e.queue = t), h.busy() ? h.pushQueue(e) : h.fireQueueItem(e), h
}, h.clearQueue = function() {
return h.busy.flag = !1, h.queues = [], h
}, h.stateChanged = !1, h.doubleChecker = !1, h.doubleCheckComplete = function() {
return h.stateChanged = !0, h.doubleCheckClear(), h
}, h.doubleCheckClear = function() {
return h.doubleChecker && (u(h.doubleChecker), h.doubleChecker = !1), h
}, h.doubleCheck = function(e) {
return h.stateChanged = !1, h.doubleCheckClear(), h.bugs.ieDoubleCheck && (h.doubleChecker = o(function() {
return h.doubleCheckClear(), h.stateChanged || e(), !0
}, h.options.doubleCheckInterval)), h
}, h.safariStatePoll = function() {
var t = h.extractState(r.location.href),
n;
if (!h.isLastSavedState(t)) n = t;
else return;
return n || (n = h.createStateObject()), h.Adapter.trigger(e, "popstate"), h
}, h.back = function(e) {
return e !== !1 && h.busy() ? (h.pushQueue({
scope: h,
callback: h.back,
args: arguments,
queue: e
}), !1) : (h.busy(!0), h.doubleCheck(function() {
h.back(!1)
}), p.go(-1), !0)
}, h.forward = function(e) {
return e !== !1 && h.busy() ? (h.pushQueue({
scope: h,
callback: h.forward,
args: arguments,
queue: e
}), !1) : (h.busy(!0), h.doubleCheck(function() {
h.forward(!1)
}), p.go(1), !0)
}, h.go = function(e, t) {
var n;
if (e > 0) for (n = 1; n <= e; ++n) h.forward(t);
else {
if (!(e < 0)) throw new Error("History.go: History.go requires a positive or negative integer passed.");
for (n = -1; n >= e; --n) h.back(t)
}
return h
};
if (h.emulated.pushState) {
var d = function() {};
h.pushState = h.pushState || d, h.replaceState = h.replaceState || d
} else h.onPopState = function(t, n) {
var i = !1,
s = !1,
o, u;
return h.doubleCheckComplete(), o = h.getHash(), o ? (u = h.extractState(o || r.location.href, !0), u ? h.replaceState(u.data, u.title, u.url, !1) : (h.Adapter.trigger(e, "anchorchange"), h.busy(!1)), h.expectedStateId = !1, !1) : (i = h.Adapter.extractEventData("state", t, n) || !1, i ? s = h.getStateById(i) : h.expectedStateId ? s = h.getStateById(h.expectedStateId) : s = h.extractState(r.location.href), s || (s = h.createStateObject(null, null, r.location.href)), h.expectedStateId = !1, h.isLastSavedState(s) ? (h.busy(!1), !1) : (h.storeState(s), h.saveState(s), h.setTitle(s), h.Adapter.trigger(e, "statechange"), h.busy(!1), !0))
}, h.Adapter.bind(e, "popstate", h.onPopState), h.pushState = function(t, n, r, i) {
if (h.getHashByUrl(r) && h.emulated.pushState) throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");
if (i !== !1 && h.busy()) return h.pushQueue({
scope: h,
callback: h.pushState,
args: arguments,
queue: i
}), !1;
h.busy(!0);
var s = h.createStateObject(t, n, r);
return h.isLastSavedState(s) ? h.busy(!1) : (h.storeState(s), h.expectedStateId = s.id, p.pushState(s.id, s.title, s.url), h.Adapter.trigger(e, "popstate")), !0
}, h.replaceState = function(t, n, r, i) {
if (h.getHashByUrl(r) && h.emulated.pushState) throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");
if (i !== !1 && h.busy()) return h.pushQueue({
scope: h,
callback: h.replaceState,
args: arguments,
queue: i
}), !1;
h.busy(!0);
var s = h.createStateObject(t, n, r);
return h.isLastSavedState(s) ? h.busy(!1) : (h.storeState(s), h.expectedStateId = s.id, p.replaceState(s.id, s.title, s.url), h.Adapter.trigger(e, "popstate")), !0
};
if (s) {
try {
h.store = l.parse(s.getItem("History.store")) || {}
} catch (v) {
h.store = {}
}
h.normalizeStore()
} else h.store = {}, h.normalizeStore();
h.Adapter.bind(e, "beforeunload", h.clearAllIntervals), h.Adapter.bind(e, "unload", h.clearAllIntervals), h.saveState(h.storeState(h.extractState(r.location.href, !0))), s && (h.onUnload = function() {
var e, t;
try {
e = l.parse(s.getItem("History.store")) || {}
} catch (n) {
e = {}
}
e.idToState = e.idToState || {}, e.urlToId = e.urlToId || {}, e.stateToId = e.stateToId || {};
for (t in h.idToState) {
if (!h.idToState.hasOwnProperty(t)) continue;
e.idToState[t] = h.idToState[t]
}
for (t in h.urlToId) {
if (!h.urlToId.hasOwnProperty(t)) continue;
e.urlToId[t] = h.urlToId[t]
}
for (t in h.stateToId) {
if (!h.stateToId.hasOwnProperty(t)) continue;
e.stateToId[t] = h.stateToId[t]
}
h.store = e, h.normalizeStore(), s.setItem("History.store", l.stringify(e))
}, h.intervalList.push(a(h.onUnload, h.options.storeInterval)), h.Adapter.bind(e, "beforeunload", h.onUnload), h.Adapter.bind(e, "unload", h.onUnload));
if (!h.emulated.pushState) {
h.bugs.safariPoll && h.intervalList.push(a(h.safariStatePoll, h.options.safariPollInterval));
if (i.vendor === "Apple Computer, Inc." || (i.appCodeName || "") === "Mozilla") h.Adapter.bind(e, "hashchange", function() {
h.Adapter.trigger(e, "popstate")
}), h.getHash() && h.Adapter.onDomLoad(function() {
h.Adapter.trigger(e, "hashchange")
})
}
}, h.init()
}(window)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment