copy speedtrans from extension
509
app.js
Normal file
|
@ -0,0 +1,509 @@
|
||||||
|
//init globals
|
||||||
|
//var seekBar;
|
||||||
|
var textArea;
|
||||||
|
var Video;
|
||||||
|
var filePath = false;
|
||||||
|
var videoListener;
|
||||||
|
var seekBar;
|
||||||
|
var globalUser;
|
||||||
|
var srtFilePath = undefined;
|
||||||
|
var videoPath = undefined;
|
||||||
|
var videoHash = undefined;
|
||||||
|
|
||||||
|
function adjustSize() {
|
||||||
|
var baseHeight = $(window).height() - 24 - 16;
|
||||||
|
$('#txt').height(baseHeight);
|
||||||
|
var baseWidth = $(window).width() - 400 - 64;
|
||||||
|
$('#txt').width(baseWidth);
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
//alert("hi");
|
||||||
|
globalUser = new User();
|
||||||
|
adjustSize();
|
||||||
|
$(document).keydown(function(e) {
|
||||||
|
if (!Video)
|
||||||
|
return;
|
||||||
|
//Esc
|
||||||
|
if (e.keyCode == 27) {
|
||||||
|
Video.togglePause();
|
||||||
|
if (!textArea.hasFocus) {
|
||||||
|
textArea.elem.focus();
|
||||||
|
}
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
//The weird `~ key, currently in as a silly hack because Ranjana's Esc key does not work.
|
||||||
|
if (e.keyCode == 192) {
|
||||||
|
Video.togglePause();
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
//Ins or TAB
|
||||||
|
if (e.keyCode == 45 || e.keyCode == 9) {
|
||||||
|
if (!textArea.isTc()) {
|
||||||
|
textArea.insertTc();
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Ctrl - Seek Back
|
||||||
|
if (e.keyCode == 17) {
|
||||||
|
var seekTime = parseInt(parseFloat($('#seekTime').val()) * 1000);
|
||||||
|
var currTime = Video.get();
|
||||||
|
var newTime = currTime - seekTime;
|
||||||
|
Video.set(newTime);
|
||||||
|
}
|
||||||
|
//Alt - Seek Fwd.
|
||||||
|
if (e.keyCode == 18) {
|
||||||
|
var seekTime = parseInt(parseFloat($('#seekTime').val()) * 1000);
|
||||||
|
var currTime = Video.get();
|
||||||
|
var newTime = currTime + seekTime;
|
||||||
|
Video.set(newTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Space - togglePause if no focus on TA
|
||||||
|
if (e.keyCode == 32 && textArea.hasFocus == false) {
|
||||||
|
Video.togglePause();
|
||||||
|
}
|
||||||
|
|
||||||
|
//PageUp - volume Up:
|
||||||
|
if (e.keyCode == 33) {
|
||||||
|
Video.volUp();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.keyCode == 34) {
|
||||||
|
Video.volDown();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$(window).bind('resize', adjustSize);
|
||||||
|
var loadingIcon = new Ox.LoadingIcon({
|
||||||
|
size: "medium"
|
||||||
|
})
|
||||||
|
.css({
|
||||||
|
marginLeft: "4px"
|
||||||
|
});
|
||||||
|
var mainMenu = new Ox.MainMenu({
|
||||||
|
extras: [],
|
||||||
|
menus: [
|
||||||
|
{
|
||||||
|
id: "speedtrans",
|
||||||
|
title: "SpeedTrans",
|
||||||
|
items: [
|
||||||
|
{ id: "about", title: "About" },
|
||||||
|
{},
|
||||||
|
{ id: "contact", title: "Contact", disabled: true}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "open",
|
||||||
|
title: "Open",
|
||||||
|
items: [
|
||||||
|
{ id: "load_video", title: "Video"},
|
||||||
|
{ id: "load_srt", title: "Srt File"},
|
||||||
|
{},
|
||||||
|
{ id: "convertvideo", title: "Convert and load Video", disabled: true }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "save",
|
||||||
|
title: "Save",
|
||||||
|
items: [
|
||||||
|
//{ id: "save_txt", title: "Save" },
|
||||||
|
{ id: "save_srt", title: "Save Srt"},
|
||||||
|
{ id: "save_as", title: "Save Srt As.."}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "edit",
|
||||||
|
title: "Edit",
|
||||||
|
items: [
|
||||||
|
{ id: "preferences", title: "Preferences" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "tools",
|
||||||
|
title: "Tools",
|
||||||
|
items: [
|
||||||
|
{ id: "add_time", title: "Add / Subtract time and export", disabled: true },
|
||||||
|
{ id: "export_encore", title: "Export Adobe Encore Subtitle Format" },
|
||||||
|
{ id: "export_html", title: "Export HTML" },
|
||||||
|
{},
|
||||||
|
{ id: "load_cuts", title: "Load cuts from pan.do/ra", disabled: false }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "upload",
|
||||||
|
title: "Upload",
|
||||||
|
items: [
|
||||||
|
{ id: "upload_padma", title: "Upload Transcript to Pad.ma", disabled: true }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "help",
|
||||||
|
title: "Help",
|
||||||
|
items: [
|
||||||
|
{ id: "shortcuts", title: "Keyboard Shortcuts" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
size: "large"
|
||||||
|
});
|
||||||
|
mainMenu.css({'position': 'fixed', 'top': '0px', 'left': '0px', 'right': '0px'}).appendTo('body');
|
||||||
|
textArea = new TextArea("txt");
|
||||||
|
textArea.elem.val('');
|
||||||
|
Ox.Event.bind(null, "click_load_video", function() {
|
||||||
|
saveTxt();
|
||||||
|
videoPath = undefined;
|
||||||
|
videoHash = undefined;
|
||||||
|
srtFilePath = undefined;
|
||||||
|
textArea.elem.val('');
|
||||||
|
var filters = {'Video Files': '*.dv;*.ogg;*.ogv;*.ogx;*.avi;*.mov;*.mp4;*.mpeg;*.mpg;*.vob;*.mp3;*.wav;*.webm;*.mkv;*.mts;*.m4v'};
|
||||||
|
fileObject = selectFile(filters);
|
||||||
|
if (!fileObject) { return false; }
|
||||||
|
var path = fileObject.file.path;
|
||||||
|
|
||||||
|
if ($.inArray(getFileNameExt(path.toLowerCase()), [
|
||||||
|
'oga', 'ogg', 'ogv', 'ogx', 'wav', 'webm', 'mp4', 'm4v'
|
||||||
|
]) != -1) {
|
||||||
|
loadVideo(path);
|
||||||
|
} else {
|
||||||
|
if (typeof Firefogg != 'undefined') {
|
||||||
|
var encodeConfirmDialog = new Ox.Dialog({
|
||||||
|
buttons: [
|
||||||
|
{'value': 'Continue', 'click': function() { encodeVideo(fileObject.file); encodeConfirmDialog.close(); }},
|
||||||
|
{'value': 'Cancel', 'click': function() { encodeConfirmDialog.close(); }}
|
||||||
|
],
|
||||||
|
title: "Convert Video"
|
||||||
|
});
|
||||||
|
var e = new Ox.Element();
|
||||||
|
var html = "Video needs to be encoded. Continue? (may take some time)";
|
||||||
|
e.html(html);
|
||||||
|
|
||||||
|
// Ox.tmpl("dialog_encode_confirm", {'filename': path});
|
||||||
|
// alert(html);
|
||||||
|
// e.html(html);
|
||||||
|
// e.from_tmpl("dialog_encode_confirm", {'filename': path });
|
||||||
|
encodeConfirmDialog.append(e);
|
||||||
|
encodeConfirmDialog.open();
|
||||||
|
// encodeVideo(fileObject.file);
|
||||||
|
} else {
|
||||||
|
stDialog("Download Firefogg", "You will need the <a href='http://firefogg.org'>Firefogg</a> add-on to be able to import videos that are not in the Ogg Theora format. Once you install <a href='http://firefogg.org'>Firefogg</a>, restart your browser and try opening the video again and you should be given an option to transcode the video.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Ox.Event.bind(null, "click_about", function() {
|
||||||
|
var html = Ox.tmpl("dialog_about", {});
|
||||||
|
stDialog("About", html);
|
||||||
|
});
|
||||||
|
|
||||||
|
Ox.Event.bind(null, "click_preferences", function() {
|
||||||
|
var prefs = globalUser.get_prefs(["fontSize", "theme", "autosave"]);
|
||||||
|
var html = Ox.tmpl("dialog_preferences", {});
|
||||||
|
stDialog("Preferences", html);
|
||||||
|
$('.pref_select').each(function() {
|
||||||
|
var that = this;
|
||||||
|
var pref = $(this).attr("data-pref");
|
||||||
|
var prefVal = prefs[pref];
|
||||||
|
$(this).children('option').each(function() {
|
||||||
|
if ($(this).val() == prefVal) {
|
||||||
|
$(this).attr("selected", "selected");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$('.pref_select').change(function() {
|
||||||
|
var key = $(this).attr("data-pref");
|
||||||
|
var val = $(this).val();
|
||||||
|
globalUser.set_pref(key, val);
|
||||||
|
});
|
||||||
|
/*
|
||||||
|
$('#pref_fontSize > option').each(function() {
|
||||||
|
if ($(this).val() == prefs.fontSize) {
|
||||||
|
$(this).attr("selected", "selected");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$('#pref_theme > option').each(function() {
|
||||||
|
if ($(this).val() == prefs.theme) {
|
||||||
|
$(this).attr("selected", "selected");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
*/
|
||||||
|
});
|
||||||
|
|
||||||
|
Ox.Event.bind(null, "click_shortcuts", function() {
|
||||||
|
var html = Ox.tmpl("dialog_shortcuts", {});
|
||||||
|
stDialog("Keyboard Shortcuts", html);
|
||||||
|
});
|
||||||
|
|
||||||
|
Ox.Event.bind(null, "click_save_srt", function() {
|
||||||
|
if (typeof srtFilePath == 'undefined') {
|
||||||
|
// srtFilePath = filePath + ".srt";
|
||||||
|
var path = mozillaSaveAs();
|
||||||
|
if (path) {
|
||||||
|
srtFilePath = path;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
saveSrt(srtFilePath);
|
||||||
|
});
|
||||||
|
Ox.Event.bind(null, "click_load_srt", function() {
|
||||||
|
var filters = {'Srt files': '*.srt'};
|
||||||
|
var fileObj = selectFile(filters);
|
||||||
|
if (fileObj) {
|
||||||
|
var srtPath = fileObj.file.path;
|
||||||
|
loadSrt(srtPath);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Ox.Event.bind(null, "click_save_as", function() {
|
||||||
|
var path = mozillaSaveAs();
|
||||||
|
if (path) {
|
||||||
|
srtFilePath = path;
|
||||||
|
saveSrt(path);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Ox.Event.bind(null, "click_export_html", function() {
|
||||||
|
var path = srtFilePath.replace(".srt", ".html");
|
||||||
|
saveHTML(path);
|
||||||
|
});
|
||||||
|
Ox.Event.bind(null, "click_load_cuts", function() {
|
||||||
|
var html = Ox.tmpl("dialog_load_cuts");
|
||||||
|
var loadDialog = new Ox.Dialog({
|
||||||
|
buttons: [
|
||||||
|
{'value': 'Cancel', 'click': function() {
|
||||||
|
loadDialog.close();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{'value': 'Load Cuts', 'click': function() {
|
||||||
|
var url = loadDialog.find('input')[0].value.trim();
|
||||||
|
var match = url.match(/(.*)\/([A-Z]+)$/);
|
||||||
|
if (match) {
|
||||||
|
loadCuts(match[1] + '/api/', match[2]);
|
||||||
|
}
|
||||||
|
loadDialog.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}).append(html).open();
|
||||||
|
});
|
||||||
|
|
||||||
|
if (globalUser.get_pref("recentVideo") != '') {
|
||||||
|
var html = Ox.tmpl("dialog_load_video", globalUser.get_prefs(["recentVideo", "recentSrt"]));
|
||||||
|
var loadDialog = new Ox.Dialog({
|
||||||
|
buttons: [
|
||||||
|
{'value': 'Load Recent', 'click': function() {
|
||||||
|
var isRecent = true;
|
||||||
|
loadVideo(globalUser.get_pref("recentVideo"), isRecent);
|
||||||
|
loadDialog.close();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{'value': 'Load New', 'click': function() {
|
||||||
|
Ox.Event.trigger("click_load_video");
|
||||||
|
loadDialog.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}).append(html).open();
|
||||||
|
} else {
|
||||||
|
Ox.Event.trigger("click_load_video");
|
||||||
|
}
|
||||||
|
globalUser.init();
|
||||||
|
|
||||||
|
//autosave every 1 minute.
|
||||||
|
window.autosaveInterval = setInterval(function() {
|
||||||
|
if (typeof(videoHash) !== 'undefined') {
|
||||||
|
saveTxt();
|
||||||
|
}
|
||||||
|
}, 60000);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
function loadTxt() {
|
||||||
|
var txt = globalUser.get_txt(videoHash);
|
||||||
|
//console.log('loadTxt', videoHash, txt.length);
|
||||||
|
textArea.elem.val(txt);
|
||||||
|
}
|
||||||
|
|
||||||
|
function saveTxt() {
|
||||||
|
var content = textArea.toSrt();
|
||||||
|
var txt = textArea.elem.val();
|
||||||
|
//console.log('saveTxt', videoHash, txt.length);
|
||||||
|
globalUser.set_txt(videoHash, txt);
|
||||||
|
}
|
||||||
|
|
||||||
|
//pass second argument = 'dont_confirm' to not show confirmation dialog.
|
||||||
|
function saveSrt(path) {
|
||||||
|
if (!path) { return }
|
||||||
|
var content = textArea.toSrt();
|
||||||
|
var txt = textArea.elem.val();
|
||||||
|
if (mozillaSaveFile(path, content)) {
|
||||||
|
if (arguments[1] != 'dont_confirm') {
|
||||||
|
stDialog("Saved File", "Saved File at " + path);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
stDialog("Error Saving File", "Your file could not be saved. Please make a backup of your transcription and email b@pad.ma for help.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function saveHTML(path) {
|
||||||
|
if (!path) { return }
|
||||||
|
var content = textArea.toHTML();
|
||||||
|
if (mozillaSaveFile(path, content)) {
|
||||||
|
if (arguments[1] != 'dont_confirm') {
|
||||||
|
stDialog("Saved File", "Saved File at " + path);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
stDialog("Error Saving File", "Your file could not be saved. Please make a backup of your transcription and email b@pad.ma for help.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function saveEncore() {
|
||||||
|
if (!filePath) { return }
|
||||||
|
var encPath = filePath + ".enc.txt";
|
||||||
|
var content = textArea.toSrt("enc");
|
||||||
|
if (mozillaSaveFile(encPath, content)) {
|
||||||
|
alert("saved encore compatible subtitle file at " + encPath);
|
||||||
|
} else {
|
||||||
|
alert("error creating encore compatible subtitle file");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function stDialog(titleTxt, text) {
|
||||||
|
var dialog = new Ox.Dialog({
|
||||||
|
buttons:
|
||||||
|
[
|
||||||
|
{ value: "Close", click: function() { dialog.close(); } }
|
||||||
|
],
|
||||||
|
title: titleTxt
|
||||||
|
}).append(text);
|
||||||
|
dialog.open();
|
||||||
|
return dialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadVideo(videoFile, isRecent) {
|
||||||
|
videoPath = videoFile;
|
||||||
|
filePath = getFileNameSansExt(videoFile);
|
||||||
|
srtFilePath = filePath + ".srt";
|
||||||
|
Ox.oshash(new File(videoPath), function(hash) {
|
||||||
|
videoHash = hash;
|
||||||
|
var storageKey = 'txt_' + videoHash;
|
||||||
|
if (storageKey in storage) {
|
||||||
|
loadTxt();
|
||||||
|
} else if (isRecent) {
|
||||||
|
/* If contents are not in local storage,
|
||||||
|
attempt to load recent srt file. This is mostly
|
||||||
|
to aid in users migrating to version that saves
|
||||||
|
in localStorage */
|
||||||
|
var srtPath = globalUser.get_pref('recentSrt');
|
||||||
|
if (srtPath) {
|
||||||
|
loadSrt(srtPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
$('#video').attr("src", "file://" + videoFile);
|
||||||
|
$('#filepath').text(videoFile);
|
||||||
|
document.getElementById("video").load();
|
||||||
|
$('#video').one("loadedmetadata", function() {
|
||||||
|
Video = new VideoPlayer();
|
||||||
|
Video.init("video");
|
||||||
|
Video.setDuration(Video.player.duration);
|
||||||
|
$('#insertTc').click(textArea.insertTc);
|
||||||
|
videoListener = setInterval(Video.listener, 250);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
function encodeVideo(file) {
|
||||||
|
var ogg = new Firefogg();
|
||||||
|
if(!ogg.setInputVideo(file)) {
|
||||||
|
$('#encodingStatus').text('Could not select file.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var options = JSON.stringify({'maxSize': 640, 'videoQuality': 5, 'audioQuality': 3, 'channels': 2, 'noUpscaling': true, 'videoCodec': 'vp8'});
|
||||||
|
ogg.encode(options, function(result, video) {
|
||||||
|
result = JSON.parse(result);
|
||||||
|
if (result.progress != 1) {
|
||||||
|
$('#encodingStatus').text('Encoding failed.');
|
||||||
|
} else {
|
||||||
|
statusDialog.close();
|
||||||
|
loadVideo(oggPath);
|
||||||
|
}
|
||||||
|
}, function(progress, video) {
|
||||||
|
var v = document.getElementById('previewVideo');
|
||||||
|
if(video && !v.src) {
|
||||||
|
v.removeEventListener("loadedmetadata", seekToEnd, true);
|
||||||
|
v.addEventListener("loadedmetadata", seekToEnd, true);
|
||||||
|
v.removeEventListener("seeked", getFrame, true);
|
||||||
|
v.addEventListener("seeked", getFrame, true);
|
||||||
|
v.src = URL.createObjectURL(video);
|
||||||
|
}
|
||||||
|
progress = JSON.parse(progress).progress || 0;
|
||||||
|
var percentProgress = parseInt(progress * 100);
|
||||||
|
$('#progressBar').css("width", percentProgress.toString() + "%");
|
||||||
|
$('#encodedPercent').text(percentProgress.toString());
|
||||||
|
});
|
||||||
|
var oggPath = getFileNameSansExt(file.path) + ".webm";
|
||||||
|
var statusDialog = new Ox.Dialog({
|
||||||
|
title: 'Encoding Video',
|
||||||
|
buttons: [{ value: "Cancel", click: function() { window.location.reload(); } }],
|
||||||
|
height: 480,
|
||||||
|
width: 440
|
||||||
|
});
|
||||||
|
var e = new Ox.Element();
|
||||||
|
e.from_tmpl("dialog_encoding", {'filename': file.path});
|
||||||
|
statusDialog.append(e);
|
||||||
|
statusDialog.open();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Functions to generate preview while encoding: see http://firefogg.org/examples
|
||||||
|
*/
|
||||||
|
//intialize interval to update preview and add event liseners.
|
||||||
|
//any previous listeners and intervals are cleared
|
||||||
|
var previewI=null;
|
||||||
|
|
||||||
|
function seekToEnd() {
|
||||||
|
// console.log("seeking to end of video");
|
||||||
|
var v = document.getElementById('previewVideo');
|
||||||
|
v.currentTime = v.duration-0.4;
|
||||||
|
}
|
||||||
|
//callback function render frame into canvas after seeking
|
||||||
|
function getFrame() {
|
||||||
|
var v = document.getElementById('previewVideo');
|
||||||
|
var canvas = document.getElementById('previewCanvas');
|
||||||
|
canvas.width = 400;
|
||||||
|
canvas.height = canvas.width * v.videoHeight/v.videoWidth;
|
||||||
|
var ctx = canvas.getContext("2d");
|
||||||
|
ctx.drawImage(v, 0, 0, canvas.width, canvas.height);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
End Preview functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
$(window).unload(function() {
|
||||||
|
console.log('unload');
|
||||||
|
if (typeof filePath != 'undefined' && typeof srtFilePath != 'undefined') {
|
||||||
|
globalUser.set_prefs({
|
||||||
|
'recentVideo': $('#video').attr("src").replace("file://", ""),
|
||||||
|
'recentSrt': srtFilePath
|
||||||
|
});
|
||||||
|
}
|
||||||
|
saveTxt();
|
||||||
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
This is just to kill console.logs that maybe generated by Ox.print calls, because that seems to mess with Firefogg. Debug and remove.
|
||||||
|
*/
|
||||||
|
Ox.print = function() {
|
||||||
|
$.noop();
|
||||||
|
}
|
||||||
|
|
479
classes.js
Executable file
|
@ -0,0 +1,479 @@
|
||||||
|
var url = "http://speedtrans.pad.ma";
|
||||||
|
var ios = Components.classes["@mozilla.org/network/io-service;1"]
|
||||||
|
.getService(Components.interfaces.nsIIOService);
|
||||||
|
var ssm = Components.classes["@mozilla.org/scriptsecuritymanager;1"]
|
||||||
|
.getService(Components.interfaces.nsIScriptSecurityManager);
|
||||||
|
var dsm = Components.classes["@mozilla.org/dom/storagemanager;1"]
|
||||||
|
.getService(Components.interfaces.nsIDOMStorageManager);
|
||||||
|
|
||||||
|
var uri = ios.newURI(url, "", null);
|
||||||
|
var principal = ssm.getCodebasePrincipal ? ssm.getCodebasePrincipal(uri) : ssm.getSimpleCodebasePrincipal(uri);
|
||||||
|
var storage = dsm.getLocalStorageForPrincipal(principal, "");
|
||||||
|
|
||||||
|
//elem = string (elementId to make TextArea)
|
||||||
|
var TextArea = function(elem) {
|
||||||
|
this.elem = $('#' + elem);
|
||||||
|
var that = this;
|
||||||
|
// this.elem = new Ox.Input({'type': 'textarea', 'id': 'textArea'}).attr("id", elem).appendTo('#txtWrapper');
|
||||||
|
this.hasFocus = false;
|
||||||
|
this.width = this.elem.width();
|
||||||
|
this.spans = [];
|
||||||
|
this.init()
|
||||||
|
}
|
||||||
|
|
||||||
|
TextArea.prototype.init = function() {
|
||||||
|
var that = this;
|
||||||
|
var e = this.elem;
|
||||||
|
var tc;
|
||||||
|
e.focus(function() {
|
||||||
|
that.hasFocus = true;
|
||||||
|
}).blur(function() {
|
||||||
|
that.hasFocus = false;
|
||||||
|
});
|
||||||
|
e.dblclick(function(e) {
|
||||||
|
var tc = that.isTc();
|
||||||
|
if (tc) {
|
||||||
|
Video.set(tc);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//returns tc in ms if cursor is at a time-code, else returns false
|
||||||
|
TextArea.prototype.isTc = function() {
|
||||||
|
var that = this;
|
||||||
|
var e = this.elem;
|
||||||
|
var eDom = e.get(0);
|
||||||
|
var val = e.val();
|
||||||
|
var pos = eDom.selectionStart;
|
||||||
|
var word = this.getWord(pos);
|
||||||
|
if (isValidTimecode(word)) {
|
||||||
|
return npt2ms(word);
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//inserts current timecode at cursor position
|
||||||
|
TextArea.prototype.insertTc = function(tcNpt) {
|
||||||
|
var that = this;
|
||||||
|
var e = that.elem;
|
||||||
|
var eDom = e.get(0);
|
||||||
|
var scrollTop = eDom.scrollTop;
|
||||||
|
var val = this.elem.val();
|
||||||
|
var pos = eDom.selectionStart;
|
||||||
|
if(!tcNpt) {
|
||||||
|
tcNpt = ms2npt(Video.get());
|
||||||
|
}
|
||||||
|
var newVal = val.substring(0,pos) + "\n" + tcNpt + "\n" + val.substring(pos, val.length);
|
||||||
|
e.val(newVal);
|
||||||
|
e.focus();
|
||||||
|
eDom.selectionStart = pos + tcNpt.length + 2;
|
||||||
|
eDom.selectionEnd = pos + tcNpt.length + 2;
|
||||||
|
eDom.scrollTop = scrollTop + 15;
|
||||||
|
}
|
||||||
|
|
||||||
|
//gets the word at character pos (int) [in val (str)]
|
||||||
|
TextArea.prototype.getWord = function(pos, val) {
|
||||||
|
if (!val) {
|
||||||
|
val = this.elem.val();
|
||||||
|
}
|
||||||
|
var c;
|
||||||
|
var i = pos;
|
||||||
|
var j = pos;
|
||||||
|
while (c != " " && c != "\n") {
|
||||||
|
if (i==0) {
|
||||||
|
i = -1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
i--;
|
||||||
|
c = val.substring(i,i+1);
|
||||||
|
}
|
||||||
|
var firstLetter = i+1;
|
||||||
|
var d;
|
||||||
|
while (d != " " && d != "\n") {
|
||||||
|
if (j >= val.length) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
j++;
|
||||||
|
d = val.substring(j,j+1);
|
||||||
|
}
|
||||||
|
var lastLetter = j;
|
||||||
|
var word = val.substring(firstLetter, lastLetter);
|
||||||
|
return word;
|
||||||
|
}
|
||||||
|
|
||||||
|
function cleanNewlines(str) {
|
||||||
|
var s = str.replace(/\r\n|\r|\n/g, '\n');
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
//takes an srt as param, loads into txtarea
|
||||||
|
TextArea.prototype.fromSrt = function(txt) {
|
||||||
|
var that = this;
|
||||||
|
this.spans = [];
|
||||||
|
var cleaned = cleanNewlines(txt);
|
||||||
|
var srt = strip(cleaned);
|
||||||
|
var srt_ = srt.split('\n\n');
|
||||||
|
var s;
|
||||||
|
for(s in srt_) {
|
||||||
|
st = srt_[s].split('\n');
|
||||||
|
if(st.length >=2) {
|
||||||
|
var n = st[0];
|
||||||
|
var i = strip(st[1].split(' --> ')[0]);
|
||||||
|
var o = strip(st[1].split(' --> ')[1]);
|
||||||
|
var t = st[2];
|
||||||
|
if(st.length > 2) {
|
||||||
|
for(j=3; j<st.length;j++) {
|
||||||
|
t += '\n'+st[j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var is = toSeconds(i);
|
||||||
|
var os = toSeconds(o);
|
||||||
|
if (parseInt(n) - this.spans.length == 1) {
|
||||||
|
this.spans[this.spans.length] = new Span(is, os, t, that.spans.length);
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var out = '';
|
||||||
|
var spans = this.spans;
|
||||||
|
for (span in spans) {
|
||||||
|
if (spans.hasOwnProperty(span)) {
|
||||||
|
var sp = spans[span];
|
||||||
|
out += ms2npt(sp.tcInMs) + "\n";
|
||||||
|
out += sp.text;
|
||||||
|
out += "\n";
|
||||||
|
//If the outpoint of current span is equal to inpoint of next span, dont print out timecode, and just add the extra \n to go to next span.
|
||||||
|
if (span < spans.length - 1) {
|
||||||
|
var p = parseInt(span) + 1;
|
||||||
|
if (spans[p].tcInMs != sp.tcOutMs) {
|
||||||
|
out += ms2npt(sp.tcOutMs) + "\n\n";
|
||||||
|
} else {
|
||||||
|
out += "\n";
|
||||||
|
}
|
||||||
|
} else if (parseInt(sp.tcOutMs) < parseInt(Video.player.duration * 1000)) {
|
||||||
|
out += "\n" + ms2npt(sp.tcOutMs) + "\n\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.elem.val(out);
|
||||||
|
if (this.elem.val == '' || this.spans.length == 0) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function strip(s) {
|
||||||
|
return s.replace(/^\s+|\s+$/g,"");
|
||||||
|
}
|
||||||
|
|
||||||
|
function toSeconds(t) {
|
||||||
|
var s = 0.0;
|
||||||
|
if(t) {
|
||||||
|
var p = t.split(':');
|
||||||
|
for(i=0;i<p.length;i++) {
|
||||||
|
s = s * 60 + parseFloat(p[i].replace(',', '.'))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function spansToSrt(arr, fmt, start_no) {
|
||||||
|
if (typeof start_no == 'undefined') {
|
||||||
|
start_no = 1;
|
||||||
|
}
|
||||||
|
var srt = '';
|
||||||
|
var srtNo = start_no;
|
||||||
|
for (var k=0; k < arr.length; k++) {
|
||||||
|
var s = arr[k];
|
||||||
|
if (s.text.trim() == '') {
|
||||||
|
} else {
|
||||||
|
var text = s.text.trim();
|
||||||
|
linebreaksRegex = new RegExp('\n+', "g")
|
||||||
|
text = text.replace(linebreaksRegex, "\n");
|
||||||
|
if (!s.tcOutMs) {
|
||||||
|
s.tcOutMs = parseInt(Video.player.duration * 1000);
|
||||||
|
}
|
||||||
|
if (fmt == 'srt') {
|
||||||
|
srt += srtNo + " ";
|
||||||
|
srt += "\n";
|
||||||
|
srt += "0" + ms2npt(s.tcInMs).replace(".", ",") + " --> " + "0" + ms2npt(s.tcOutMs).replace(".", ",");
|
||||||
|
srt += "\n";
|
||||||
|
srt += text;
|
||||||
|
srt += "\n\n";
|
||||||
|
}
|
||||||
|
else if (fmt == 'enc') {
|
||||||
|
srt += srtNo + ms2frames(s.tcInMs) + " " + ms2frames(s.tcOutMs) + " " + text;
|
||||||
|
srt += "\n\n";
|
||||||
|
}
|
||||||
|
srtNo++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return srt;
|
||||||
|
}
|
||||||
|
|
||||||
|
//returns textarea formatted to .srt
|
||||||
|
TextArea.prototype.toSrt = function(fmt) {
|
||||||
|
if (!fmt) var fmt = 'srt';
|
||||||
|
var text = cleanNewlines(this.elem.val());
|
||||||
|
var lines = [];
|
||||||
|
lines = text.split("\n");
|
||||||
|
var i=0;
|
||||||
|
var j=0;
|
||||||
|
var spans = this.spans = [];
|
||||||
|
while (i < lines.length) {
|
||||||
|
var l = lines[i];
|
||||||
|
if (isValidTimecode(l.trim())) {
|
||||||
|
var tcIn = l.trim();
|
||||||
|
var t = "";
|
||||||
|
var thisLine = '';
|
||||||
|
while (!isValidTimecode(thisLine.trim())) {
|
||||||
|
i++;
|
||||||
|
if (i >= lines.length) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
thisLine = lines[i];
|
||||||
|
if (!isValidTimecode(thisLine.trim())) {
|
||||||
|
t += thisLine + "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var tcOut = $.trim(thisLine);
|
||||||
|
spans[j] = new Span(tcIn, tcOut, t, j);
|
||||||
|
j++;
|
||||||
|
} else {
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.spans = spans;
|
||||||
|
var srt = spansToSrt(spans, fmt);
|
||||||
|
// console.log(srt);
|
||||||
|
return srt;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TextArea.prototype.addTime = function(ms, start_no) {
|
||||||
|
// console.log(ms);
|
||||||
|
this.toSrt();
|
||||||
|
var s = [];
|
||||||
|
var spans = this.spans;
|
||||||
|
for (var i=0; i < spans.length;i++) {
|
||||||
|
s[i] = {
|
||||||
|
index: i,
|
||||||
|
tcOutMs: spans[i].tcOutMs + ms,
|
||||||
|
text: spans[i].text,
|
||||||
|
tcInMs: spans[i].tcInMs + ms
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return spansToSrt(s, 'srt', start_no)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TextArea.prototype.toHTML = function() {
|
||||||
|
var spans = this.spans;
|
||||||
|
var html = '';
|
||||||
|
var span, txt;
|
||||||
|
for (var i=0; i<spans.length; i++) {
|
||||||
|
span = spans[i];
|
||||||
|
txt = '';
|
||||||
|
txt += '<p>\n';
|
||||||
|
txt += '<a href="http://pad.ma/PADMA_VIDEO_ID/' + ms2npt(span.tcInMs) + "-" + ms2npt(span.tcOutMs) + '">';
|
||||||
|
txt += (i + 1).toString();
|
||||||
|
txt += "</a>\n";
|
||||||
|
txt += '<br />\n';
|
||||||
|
txt += span.text + "\n";
|
||||||
|
txt += "</p>\n\n";
|
||||||
|
html += txt;
|
||||||
|
}
|
||||||
|
return html;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//creates new Span (tcIn and tcOut in npt format)
|
||||||
|
var Span = function(tcIn, tcOut, text, index) {
|
||||||
|
this.index = index;
|
||||||
|
this.tcOutMs = npt2ms(tcOut);
|
||||||
|
this.text = text;
|
||||||
|
this.tcInMs = npt2ms(tcIn);
|
||||||
|
}
|
||||||
|
|
||||||
|
var SeekBar = function(elem) {
|
||||||
|
this.elem = $('#' + elem);
|
||||||
|
this.pointerId = "seekPointer";
|
||||||
|
this.width = this.elem.width();
|
||||||
|
this.init()
|
||||||
|
}
|
||||||
|
|
||||||
|
SeekBar.prototype.init = function() {
|
||||||
|
var that = this;
|
||||||
|
var e = $('<div />');
|
||||||
|
e.attr("id", that.pointerId);
|
||||||
|
e.draggable({
|
||||||
|
containment: 'parent',
|
||||||
|
axis: 'horizontally',
|
||||||
|
drag: function() {
|
||||||
|
clearInterval(videoListener);
|
||||||
|
var pos = that.get();
|
||||||
|
$('#timeCode').html(ms2npt(pos));
|
||||||
|
},
|
||||||
|
stop: function() {
|
||||||
|
var pos = that.get();
|
||||||
|
Video.set(pos);
|
||||||
|
videoListener = setInterval(Video.listener, 250);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
that.elem.append(e);
|
||||||
|
this.pointerElem = e;
|
||||||
|
}
|
||||||
|
|
||||||
|
//gets current time-code (int) of seekbar position
|
||||||
|
SeekBar.prototype.get = function() {
|
||||||
|
var cssPos = parseInt(this.pointerElem.css("left"));
|
||||||
|
var pos = parseInt((cssPos / this.width) * (Video.player.duration * 1000));
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
//sets seek bar css pos according to current time-code
|
||||||
|
SeekBar.prototype.set = function(ms) {
|
||||||
|
var cssPos = parseInt(((ms / 1000) / Video.player.duration) * this.width);
|
||||||
|
this.elem.css("left", cssPos + "px");
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
var KeyboardController = function() {
|
||||||
|
this.
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
var User = function() {
|
||||||
|
this.padmaUser = typeof user != 'undefined' ? user : null;
|
||||||
|
this.hostname = 'chrome://speedtrans';
|
||||||
|
this.defaults = {
|
||||||
|
'fontSize': '13',
|
||||||
|
'theme': 'classic',
|
||||||
|
'recentVideo': '',
|
||||||
|
'recentSrt': '',
|
||||||
|
'autosave': 5,
|
||||||
|
'direction': 'ltr'
|
||||||
|
};
|
||||||
|
var autoSaveInterval = -1;
|
||||||
|
this.callbacks = {
|
||||||
|
'fontSize': function(newSize) {
|
||||||
|
textArea.elem.css("font-size", newSize + "px");
|
||||||
|
},
|
||||||
|
'theme': function(theme) {
|
||||||
|
if(['modern', 'classic'].indexOf(theme) == -1) {
|
||||||
|
console.log('only supporting modern, classinc, but ' + theme + ' was requested');
|
||||||
|
theme = 'classic';
|
||||||
|
}
|
||||||
|
Ox.theme(theme);
|
||||||
|
},
|
||||||
|
'recentVideo': $.noop,
|
||||||
|
'recentSrt': $.noop,
|
||||||
|
'direction': function(val) {
|
||||||
|
textArea.elem.css("direction", val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
User.prototype.init = function() {
|
||||||
|
var prefs = ['fontSize', 'theme', 'direction'];
|
||||||
|
for (var i = 0; i < prefs.length; i++) {
|
||||||
|
var key = prefs[i];
|
||||||
|
var val = this.get_pref(key);
|
||||||
|
this.callbacks[key](val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
User.prototype.set_pref = function(key, val) {
|
||||||
|
var that = this;
|
||||||
|
storage[key] = val;
|
||||||
|
this.callbacks[key](val);
|
||||||
|
}
|
||||||
|
|
||||||
|
User.prototype.get_pref = function(key) {
|
||||||
|
var that = this;
|
||||||
|
if (typeof storage[key] === 'undefined') {
|
||||||
|
storage[key] = that.defaults[key];
|
||||||
|
}
|
||||||
|
return storage[key];
|
||||||
|
}
|
||||||
|
|
||||||
|
User.prototype.set_prefs = function(keyvals) {
|
||||||
|
for (key in keyvals) {
|
||||||
|
if (keyvals.hasOwnProperty(key)) {
|
||||||
|
this.set_pref(key, keyvals[key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
User.prototype.get_prefs = function(keys) {
|
||||||
|
var ret = {};
|
||||||
|
for (var i=0; i < keys.length; i++) {
|
||||||
|
var key = keys[i];
|
||||||
|
ret[key] = this.get_pref(key);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
User.prototype.set_txt = function(filename, txt) {
|
||||||
|
var that = this;
|
||||||
|
storage['txt_' + filename] = txt;
|
||||||
|
}
|
||||||
|
|
||||||
|
User.prototype.get_txt = function(filename) {
|
||||||
|
var that = this;
|
||||||
|
return storage['txt_' + filename];
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadCuts(url, id) {
|
||||||
|
function pandora_api(action, data, callback) {
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: url,
|
||||||
|
data: {action: action, data: JSON.stringify(data)},
|
||||||
|
success: callback,
|
||||||
|
dataType: 'json'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
pandora_api('get', {id: id, keys: ['cuts']}, function(result) {
|
||||||
|
var txt = '';
|
||||||
|
result.data.cuts.forEach(function(cut) {
|
||||||
|
textArea.insertTc(ms2npt(cut*1000));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadSrt(filename) {
|
||||||
|
//alert(filename);
|
||||||
|
if (!checkFileExists(filename)) {
|
||||||
|
alert("Could not find Srt file " + filename);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// alert("hmm.. you have a .srt file but not a txt file - this is a bug. sorry.");
|
||||||
|
var txt = mozillaLoadFile(filename);
|
||||||
|
if (textArea.fromSrt(txt)) {
|
||||||
|
srtFilePath = filename;
|
||||||
|
} else {
|
||||||
|
var recovery_txt = globalUser.get_txt(filename);
|
||||||
|
textArea.elem.val(recovery_txt);
|
||||||
|
var html = Ox.tmpl("tmpl_loadError", {'filename': filename, 'txt': txt, 'recovery_txt': recovery_txt});
|
||||||
|
stDialog("Error Loading File", html);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
function loadMeta(filename) {
|
||||||
|
var m = mozillaLoadFile(filename);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
function loadSrtTxt(filename) {
|
||||||
|
var txt = mozillaLoadFile(filename);
|
||||||
|
$('#txt').val(txt);
|
||||||
|
}
|
||||||
|
*/
|
2
debug.sh
Executable file
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/bash
|
||||||
|
python3 -m http.server
|
18
firefogg.extra.js
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
|
||||||
|
$(function() {
|
||||||
|
Firefogg.prototype.loadFromFp = function(fp) {
|
||||||
|
var file = fp.file;
|
||||||
|
this._inputFile = fp.file.path;
|
||||||
|
this.sourceFilename = fp.file.leafName;
|
||||||
|
this.state = "";
|
||||||
|
this.sourceInfo = JSON.stringify(this.getFormatInfo(this._inputFile, false));
|
||||||
|
this.sourceInfo.video && this.sourceInfo.video.forEach(function(video) {
|
||||||
|
if (!video.display_aspect_ratio) {
|
||||||
|
video.display_aspect_ratio = video.width + ':' + video.height;
|
||||||
|
video.pixel_aspect_ratio = '1:1';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
});
|
BIN
icon.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
144
index.html
Executable file
|
@ -0,0 +1,144 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title>
|
||||||
|
SpeedTrans
|
||||||
|
</title>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="player.js"></script>
|
||||||
|
<!-- <script type="text/javascript" src="jquery-ui.js"></script> -->
|
||||||
|
<script type="text/javascript" src="oxjs/build/js/ox.js"></script>
|
||||||
|
<script type="text/javascript" src="oxjs/build/js/ox.ui.js"></script>
|
||||||
|
|
||||||
|
<script type="text/javascript" src="staticfuncs.js"></script>
|
||||||
|
<script type="text/javascript" src="classes.js"></script>
|
||||||
|
<script type="text/javascript" src="app.js"></script>
|
||||||
|
<script type="text/javascript" src="ox.extra.js"></script>
|
||||||
|
<script type="text/javascript" src="oshash.js"></script>
|
||||||
|
<!-- <script type="text/javascript" src="firefogg.extra.js"></script> -->
|
||||||
|
<!-- <script type="text/javascript" src="http://pad.ma/user.js"></script> -->
|
||||||
|
<link rel="stylesheet" href="styles.css" />
|
||||||
|
<link rel="stylesheet" href="oxjs/build/css/ox.ui.css" />
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- JS Templates -->
|
||||||
|
<script type="text/html" id="dialog_shortcuts">
|
||||||
|
<b>Esc</b>: Pause / Unpause <br />
|
||||||
|
<b>Insert / Tab</b>: Insert time-code<br />
|
||||||
|
<b>PageUp</b> / <b>PageDown</b>: Volume Up / Down<br />
|
||||||
|
<b>Double-click on time-code in textarea</b>: Seek video to time-code. <br />
|
||||||
|
</script>
|
||||||
|
<script type="text/html" id="dialog_encoding">
|
||||||
|
<div>
|
||||||
|
Encoding Video:
|
||||||
|
</div>
|
||||||
|
<div id="progressDiv">
|
||||||
|
<div id="progressBar"></div>
|
||||||
|
</div>
|
||||||
|
<div id="encodingStatus">
|
||||||
|
<div class="filename">
|
||||||
|
<%= filename %>
|
||||||
|
</div>
|
||||||
|
<div class="progress">
|
||||||
|
Encoded <span id="encodedPercent"></span>%
|
||||||
|
</div>
|
||||||
|
<div class="preview">
|
||||||
|
<video id="previewVideo" src="" style="display: none;"></video>
|
||||||
|
<canvas id="previewCanvas"></canvas>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<script type="text/html" id="dialog_load_cuts">
|
||||||
|
<div class="dialogWrap" style="padding-top: 24px;">
|
||||||
|
Please insert the url of this video on any pan.do/ra site:<br>
|
||||||
|
i.e. <b>https://pad.ma/DMG</b><br>
|
||||||
|
<div style="padding: 4px;padding-top: 24px">
|
||||||
|
<input type="text" value="" style="width:100%" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script type="text/html" id="dialog_about">
|
||||||
|
This is <a href="http://wiki.pad.ma/wiki/SpeedTrans" target="_new">Speedtrans</a>.
|
||||||
|
A transcribing and subtitling tool for Firefox. It is used for transcribing videos on <a href="http://pad.ma/" target="_new">Pad.ma</a>
|
||||||
|
</script>
|
||||||
|
<script type="text/html" id="dialog_load_video">
|
||||||
|
Your most recent video is: <br />
|
||||||
|
<b><%= recentVideo %></b><br />
|
||||||
|
</script>
|
||||||
|
<script type="text/html" id="dialog_encode_confirm">
|
||||||
|
<div class="dialogWrap">
|
||||||
|
You have chosen <%= filename %>. It shall need to be converted to the Ogg Theora format.<br />
|
||||||
|
Click 'Continue' to continue, else click 'Cancel'.
|
||||||
|
<span class="italic">Note: Encoding process may take a long time depending on the size of the video. Might be a good time to make a coffee, or go for a walk.</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<script type="text/html" id="dialog_preferences">
|
||||||
|
<div class="dialogWrap">
|
||||||
|
<b>Font-Size</b>:
|
||||||
|
<select id="pref_fontSize" class="pref_select" data-pref="fontSize">
|
||||||
|
<option value="10">Tiny</option>
|
||||||
|
<option value="12">Small</option>
|
||||||
|
<option value="13">Medium</option>
|
||||||
|
<option value="14">Large</option>
|
||||||
|
<option value="16">Very Large</option>
|
||||||
|
<option value="24">Huge</option>
|
||||||
|
</select> <br />
|
||||||
|
<b>Theme</b>:
|
||||||
|
<select id="pref_theme" class="pref_select" data-pref="theme">
|
||||||
|
<option value="classic">Classic</option>
|
||||||
|
<option value="modern">Modern</option>
|
||||||
|
</select> <br />
|
||||||
|
<b>Text Direction</b>:
|
||||||
|
<select id="pref_direction" class="pref_select" data-pref="direction">
|
||||||
|
<option value="ltr">Left to Right</option>
|
||||||
|
<option value="rtl">Right to Left</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script type="text/html" id="tmpl_loadError">
|
||||||
|
<div class="error_msg">
|
||||||
|
Sorry, there was a problem loading the srt file or the srt file was blank: <br />
|
||||||
|
<b><%= filename %></b><br /><br />
|
||||||
|
Please inform b@pad.ma of the error, and if there is any text in the box below, please include it in the email, as it may help solving the problem. <br />
|
||||||
|
<textarea><%= txt %></textarea><br />
|
||||||
|
Click Close to attempt to recover text from local storage. <br />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<div id="wrapper">
|
||||||
|
<div id="videoWrapper">
|
||||||
|
<video id="video" src="" controls="true">
|
||||||
|
Sorry you need <a href="http://getfirefox.com/">Firefox 3.5 or later</a> for this to work.
|
||||||
|
</video>
|
||||||
|
<div id="filepath"></div>
|
||||||
|
<div id="timeCode">0:00:00.000</div>
|
||||||
|
<div id="helpWrapper">
|
||||||
|
<b>Ctrl</b> / <b>Alt</b>: Seek back / forward <input id="seekTime" value="1" /> seconds.<br />
|
||||||
|
<b>Esc</b>: Pause / Unpause <br />
|
||||||
|
<b>Insert / Tab</b>: Insert time-code<br />
|
||||||
|
<b>PageUp</b> / <b>PageDown</b>: Volume Up / Down<br />
|
||||||
|
<b>Double-click on time-code in textarea</b>: Seek video to time-code. <br />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div id="txtWrapper">
|
||||||
|
<textarea id="txt" class="OxThemeClassic"></textarea><br /> <br />
|
||||||
|
<div id="additionalFeatures">
|
||||||
|
<div id="addTimeWrap">
|
||||||
|
Time to add: <input id="timeToAdd" /><br />
|
||||||
|
Start no: <input id="startNo" /> <button id="addTime">Add</button><br />
|
||||||
|
<textarea id="addTimeResult"></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
556
jquery-ui.js
vendored
Executable file
95
oshash.js
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
Ox.oshash = function (file, callback) {
|
||||||
|
|
||||||
|
// Needs to go via string to work for files > 2GB
|
||||||
|
var hash = fromString(file.size.toString());
|
||||||
|
|
||||||
|
read(0);
|
||||||
|
|
||||||
|
function add(A, B) {
|
||||||
|
var a, b, c, d;
|
||||||
|
d = A[3] + B[3];
|
||||||
|
c = A[2] + B[2] + (d >> 16);
|
||||||
|
d &= 0xffff;
|
||||||
|
b = A[1] + B[1] + (c >> 16);
|
||||||
|
c &= 0xffff;
|
||||||
|
a = A[0] + B[0] + (b >> 16);
|
||||||
|
b &= 0xffff;
|
||||||
|
// Cut off overflow
|
||||||
|
a &= 0xffff;
|
||||||
|
return [a, b, c, d];
|
||||||
|
}
|
||||||
|
|
||||||
|
function fromData(s, offset) {
|
||||||
|
offset = offset || 0;
|
||||||
|
return [
|
||||||
|
s.charCodeAt(offset + 6) + (s.charCodeAt(offset + 7) << 8),
|
||||||
|
s.charCodeAt(offset + 4) + (s.charCodeAt(offset + 5) << 8),
|
||||||
|
s.charCodeAt(offset + 2) + (s.charCodeAt(offset + 3) << 8),
|
||||||
|
s.charCodeAt(offset + 0) + (s.charCodeAt(offset + 1) << 8)
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
function fromString(str) {
|
||||||
|
var base = 10,
|
||||||
|
blen = 1,
|
||||||
|
i,
|
||||||
|
num,
|
||||||
|
pos,
|
||||||
|
r = [0, 0, 0, 0];
|
||||||
|
for (pos = 0; pos < str.length; pos++) {
|
||||||
|
num = parseInt(str.charAt(pos), base);
|
||||||
|
i = 0;
|
||||||
|
do {
|
||||||
|
while (i < blen) {
|
||||||
|
num += r[3 - i] * base;
|
||||||
|
r[3 - i++] = (num & 0xFFFF);
|
||||||
|
num >>>= 16;
|
||||||
|
}
|
||||||
|
if (num) {
|
||||||
|
blen++;
|
||||||
|
}
|
||||||
|
} while (num);
|
||||||
|
}
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
function pad(string, length, padding) {
|
||||||
|
padding = Ox.repeat(padding, length - string.length);
|
||||||
|
return (padding + string).slice(-length);
|
||||||
|
};
|
||||||
|
|
||||||
|
function hex(h) {
|
||||||
|
return (
|
||||||
|
pad(h[0].toString(16), 4, '0')
|
||||||
|
+ pad(h[1].toString(16), 4, '0')
|
||||||
|
+ pad(h[2].toString(16), 4, '0')
|
||||||
|
+ pad(h[3].toString(16), 4, '0')
|
||||||
|
).toLowerCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
function read(offset, last) {
|
||||||
|
var blob,
|
||||||
|
block = 65536,
|
||||||
|
length = 8,
|
||||||
|
reader = new FileReader();
|
||||||
|
reader.onload = function(data) {
|
||||||
|
var s = data.target.result,
|
||||||
|
s_length = s.length - length,
|
||||||
|
i;
|
||||||
|
for (i = 0; i <= s_length; i += length) {
|
||||||
|
hash = add(hash, fromData(s, i));
|
||||||
|
}
|
||||||
|
if (file.size < block || last) {
|
||||||
|
callback(hex(hash));
|
||||||
|
} else {
|
||||||
|
read(file.size - block, true);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
blob = file.slice(offset, offset + block);
|
||||||
|
reader.readAsBinaryString(blob);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
45
ox.extra.js
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
John Resig's micro-templating: http://ejohn.org/blog/javascript-micro-templating/
|
||||||
|
*/
|
||||||
|
(function(){
|
||||||
|
var cache = {};
|
||||||
|
|
||||||
|
Ox.tmpl = function tmpl(str, data){
|
||||||
|
// Figure out if we're getting a template, or if we need to
|
||||||
|
// load the template - and be sure to cache the result.
|
||||||
|
var fn = !/\W/.test(str) ?
|
||||||
|
cache[str] = cache[str] ||
|
||||||
|
tmpl(document.getElementById(str).innerHTML) :
|
||||||
|
|
||||||
|
// Generate a reusable function that will serve as a template
|
||||||
|
// generator (and which will be cached).
|
||||||
|
new Function("obj",
|
||||||
|
"var p=[],print=function(){p.push.apply(p,arguments);};" +
|
||||||
|
|
||||||
|
// Introduce the data as local variables using with(){}
|
||||||
|
"with(obj){p.push('" +
|
||||||
|
|
||||||
|
// Convert the template into pure JavaScript
|
||||||
|
str
|
||||||
|
.replace(/[\r\t\n]/g, " ")
|
||||||
|
.split("<%").join("\t")
|
||||||
|
.replace(/((^|%>)[^\t]*)'/g, "$1\r")
|
||||||
|
.replace(/\t=(.*?)%>/g, "',$1,'")
|
||||||
|
.split("\t").join("');")
|
||||||
|
.split("%>").join("p.push('")
|
||||||
|
.split("\r").join("\\'")
|
||||||
|
+ "');}return p.join('');");
|
||||||
|
|
||||||
|
// Provide some basic currying to the user
|
||||||
|
return data ? fn( data ) : fn;
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
|
||||||
|
Ox.Element.prototype.from_tmpl = function(tmpl_id, data) {
|
||||||
|
var that = this;
|
||||||
|
var html = Ox.tmpl(tmpl_id, data);
|
||||||
|
// console.log("TMpL", that);
|
||||||
|
this.html(html);
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
1
oxjs/.bzrignore
Normal file
|
@ -0,0 +1 @@
|
||||||
|
.DS_Store
|
205
oxjs/build/css/ox.ui.classic.css
Normal file
|
@ -0,0 +1,205 @@
|
||||||
|
body.OxThemeClassic {
|
||||||
|
background: rgb(240, 240, 240);
|
||||||
|
}
|
||||||
|
.OxThemeClassic div {
|
||||||
|
color: rgb(16, 16, 16);
|
||||||
|
}
|
||||||
|
.OxThemeClassic .OxHighlight {
|
||||||
|
background: rgb(255, 255, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Bars
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
.OxThemeClassic .OxBar.OxHorizontal {
|
||||||
|
background: -moz-linear-gradient(top, rgb(192, 192, 192), rgb(160, 160, 160));
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(rgb(192, 192, 192)), to(rgb(160, 160, 160)));
|
||||||
|
//background: -moz-linear-gradient(left top, left bottom, from(rgb(224, 224, 224)), to(rgb(192, 192, 192)));
|
||||||
|
//background: -webkit-gradient(linear, left top, left bottom, from(rgb(224, 224, 224)), to(rgb(192, 192, 192)));
|
||||||
|
}
|
||||||
|
.OxThemeClassic .OxBar.OxMainMenu {
|
||||||
|
background: -moz-linear-gradient(top, rgb(224, 224, 224), rgb(192, 192, 192));
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(rgb(224, 224, 224)), to(rgb(192, 192, 192)));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Dialog
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
.OxThemeClassic .OxDialog {
|
||||||
|
-moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.75);
|
||||||
|
-webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.75);
|
||||||
|
}
|
||||||
|
|
||||||
|
.OxThemeClassic .OxDialog .OxBar {
|
||||||
|
background: -moz-linear-gradient(top, rgba(208, 208, 208, 0.96), rgba(176, 176, 176, 0.96));
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(rgba(208, 208, 208, 0.96)), to(rgba(176, 176, 176, 0.96)));
|
||||||
|
}
|
||||||
|
|
||||||
|
.OxThemeClassic .OxDialog .OxContent {
|
||||||
|
background: rgba(224, 224, 224, 0.96);
|
||||||
|
}
|
||||||
|
|
||||||
|
.OxThemeClassic .OxDialog .OxTitle {
|
||||||
|
color: rgb(48, 48, 48);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Forms
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
.OxThemeClassic .OxButton,
|
||||||
|
.OxThemeClassic .OxInput,
|
||||||
|
.OxThemeClassic .OxLabel,
|
||||||
|
.OxThemeClassic .OxRange,
|
||||||
|
.OxThemeClassic .OxTrack {
|
||||||
|
border: 1px solid rgb(176, 176, 176);
|
||||||
|
//border: 1px solid rgb(160, 160, 160);
|
||||||
|
color: rgb(64, 64, 64);
|
||||||
|
}
|
||||||
|
.OxThemeClassic .OxInputLabel {
|
||||||
|
color: rgb(64, 64, 64);
|
||||||
|
}
|
||||||
|
.OxThemeClassic .OxButton,
|
||||||
|
.OxThemeClassic div.OxInput,
|
||||||
|
.OxThemeClassic .OxRange {
|
||||||
|
//background: -moz-linear-gradient(left top, left bottom, from(rgb(192, 192, 192)), to(rgb(160, 160, 160)));
|
||||||
|
//background: -webkit-gradient(linear, left top, left bottom, from(rgb(192, 192, 192)), to(rgb(160, 160, 160)));
|
||||||
|
background: -moz-linear-gradient(top, rgb(224, 224, 224), rgb(192, 192, 192));
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(rgb(224, 224, 224)), to(rgb(192, 192, 192)));
|
||||||
|
}
|
||||||
|
.OxThemeClassic .OxButton:focus {
|
||||||
|
-moz-box-shadow: 0 0 2px rgb(128, 128, 128);
|
||||||
|
-webkit-box-shadow: 0 2 4px rgb(128, 128, 128);
|
||||||
|
}
|
||||||
|
.OxThemeClassic .OxButton:active,
|
||||||
|
.OxThemeClassic .OxRange.OxActive {
|
||||||
|
//background: rgb(160, 160, 160);
|
||||||
|
background: rgb(192, 192, 192);
|
||||||
|
color: rgb(48, 48, 48);
|
||||||
|
}
|
||||||
|
.OxThemeClassic .OxButton.OxDisabled {
|
||||||
|
background: rgb(192, 192, 192);
|
||||||
|
color: rgb(128, 128, 128);
|
||||||
|
}
|
||||||
|
.OxThemeClassic .OxButton.OxSelected {
|
||||||
|
//background: -moz-linear-gradient(left top, left bottom, from(rgb(128, 128, 128)), to(rgb(160, 160, 160)));
|
||||||
|
//background: -webkit-gradient(linear, left top, left bottom, from(rgb(128, 128, 128)), to(rgb(160, 160, 160)));
|
||||||
|
background: -moz-linear-gradient(top, rgb(128, 128, 128), rgb(160, 160, 160) 10%, rgb(192, 192, 192));
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(rgb(128, 128, 128)), color-stop(0.1, rgb(160, 160, 160)), to(rgb(192, 192, 192)));
|
||||||
|
color: rgb(32, 32, 32);
|
||||||
|
}
|
||||||
|
.OxThemeClassic .OxButton.OxTab.OxSelected {
|
||||||
|
border-bottom: 1px solid rgb(192, 192, 192);
|
||||||
|
}
|
||||||
|
|
||||||
|
.OxThemeClassic input.OxInput,
|
||||||
|
.OxThemeClassic .OxTrack {
|
||||||
|
background: -moz-linear-gradient(top, rgb(224, 224, 224), rgb(255, 255, 255));
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(rgb(224, 224, 224)), to(rgb(255, 255, 255)));
|
||||||
|
}
|
||||||
|
.OxThemeClassic .OxInput:focus {
|
||||||
|
border: 1px solid rgb(160, 160, 160);
|
||||||
|
-moz-box-shadow: 0 0 2px rgb(128, 128, 128);
|
||||||
|
-webkit-box-shadow: 0 0 2px rgb(128, 128, 128);
|
||||||
|
}
|
||||||
|
.OxThemeClassic .OxInput.OxPlaceholder {
|
||||||
|
color: rgb(160, 160, 160)
|
||||||
|
}
|
||||||
|
|
||||||
|
.OxThemeClassic .OxLabel {
|
||||||
|
background: rgb(208, 208, 208);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Menus
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
.OxThemeClassic .OxMainMenu > .OxTitle.OxSelected {
|
||||||
|
background: -moz-linear-gradient(top, rgb(208, 208, 208), rgb(176, 176, 176));
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(rgb(208, 208, 208)), to(rgb(176, 176, 176)));
|
||||||
|
}
|
||||||
|
|
||||||
|
.OxThemeClassic .OxMenu {
|
||||||
|
-moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.75);
|
||||||
|
-webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.75);
|
||||||
|
}
|
||||||
|
.OxThemeClassic .OxMenu .OxBottom,
|
||||||
|
.OxThemeClassic .OxMenu .OxItem,
|
||||||
|
.OxThemeClassic .OxMenu .OxScrollbar,
|
||||||
|
.OxThemeClassic .OxMenu .OxSpace,
|
||||||
|
.OxThemeClassic .OxMenu .OxTop {
|
||||||
|
background: rgba(208, 208, 208, 0.96);
|
||||||
|
}
|
||||||
|
.OxThemeClassic .OxMenu .OxItem.OxSelected,
|
||||||
|
.OxThemeClassic .OxMenu .OxLine,
|
||||||
|
.OxThemeClassic .OxMenu .OxScrollbar.OxSelected {
|
||||||
|
background: rgba(192, 192, 192, 0.96);
|
||||||
|
}
|
||||||
|
.OxThemeClassic .OxMenu .OxItem.OxDisabled .OxCell {
|
||||||
|
color: rgb(160, 160, 160);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Requests
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Scrollbars
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
.OxThemeClassic ::-webkit-scrollbar {
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
border-left: 1px solid rgb(176, 176, 176);
|
||||||
|
border-right: 1px solid rgb(176, 176, 176);
|
||||||
|
background: -webkit-gradient(linear, left top, right top, from(rgb(224, 224, 224)), to(rgb(192, 192, 192)));
|
||||||
|
}
|
||||||
|
.OxThemeClassic ::-webkit-scrollbar-button {
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
}
|
||||||
|
.OxThemeClassic ::-webkit-scrollbar-button:vertical:decrement {
|
||||||
|
background: url(../png/ox.ui.classic/scrollbarVerticalDecrement.png);
|
||||||
|
}
|
||||||
|
.OxThemeClassic ::-webkit-scrollbar-button:vertical:increment {
|
||||||
|
background: url(../png/ox.ui.classic/scrollbarVerticalIncrement.png);
|
||||||
|
}
|
||||||
|
.OxThemeClassic ::-webkit-scrollbar-thumb:vertical {
|
||||||
|
border: 1px solid rgb(176, 176, 176);
|
||||||
|
background: -webkit-gradient(linear, left top, right top, from(rgb(224, 224, 224)), to(rgb(192, 192, 192)));
|
||||||
|
-webkit-border-radius: 6px;
|
||||||
|
}
|
||||||
|
.OxThemeClassic ::-webkit-scrollbar-track:vertical {
|
||||||
|
border: 1px solid rgb(176, 176, 176);
|
||||||
|
background-image: -webkit-gradient(linear, left top, right top, from(rgb(224, 224, 224)), to(rgb(255, 255, 255)));
|
||||||
|
-webkit-border-radius: 6px;
|
||||||
|
}
|
||||||
|
.OxThemeClassic ::-webkit-scrollbar:active,
|
||||||
|
.OxThemeClassic ::-webkit-scrollbar-thumb:vertical:active {
|
||||||
|
background: rgb(192, 192, 192);
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
scrollbar-face-color: #808080; /*/ obviously change this to whatever you want /*/
|
||||||
|
scrollbar-arrow-color: #FFFFFF;
|
||||||
|
scrollbar-highlight-color: #FFFBF0;
|
||||||
|
scrollbar-3dlight-color: #808080;
|
||||||
|
scrollbar-shadow-color: #FFFBF0;
|
||||||
|
scrollbar-darkshadow-color: #808080;
|
||||||
|
scrollbar-track-color: #CCCCCC;
|
||||||
|
}
|
733
oxjs/build/css/ox.ui.css
Normal file
|
@ -0,0 +1,733 @@
|
||||||
|
@import url("ox.ui.classic.css");
|
||||||
|
@import url("ox.ui.modern.css");
|
||||||
|
@import url("ox.ui.future.css");
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Base
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
-webkit-user-select: none
|
||||||
|
}
|
||||||
|
div {
|
||||||
|
-webkit-user-select: none
|
||||||
|
}
|
||||||
|
div, input, textarea {
|
||||||
|
font-family: Lucida Grande, Lucida Sans Unicode, Segoe UI;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
td {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Core
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
.OxContainer {
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.OxContent {
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Bars
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
.OxBar {
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.OxTabbar > .OxButtonGroup {
|
||||||
|
margin: 4px 0 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Dialog
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
.OxDialog {
|
||||||
|
position: absolute;
|
||||||
|
//left: 0;
|
||||||
|
//top: 0;
|
||||||
|
//right: 0;
|
||||||
|
//bottom: 0;
|
||||||
|
//margin: auto;
|
||||||
|
z-index: 11;
|
||||||
|
-moz-border-radius: 8px;
|
||||||
|
-webkit-border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.OxDialog > .OxTitleBar {
|
||||||
|
//left: 0px;
|
||||||
|
//right: 0px;
|
||||||
|
//height: 16px;
|
||||||
|
//padding: 3px 8px 5px 8px;
|
||||||
|
//padding: 3px 0 5px 0;
|
||||||
|
cursor: move;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
-moz-border-radius-topleft: 8px;
|
||||||
|
-moz-border-radius-topright: 8px;
|
||||||
|
-webkit-border-top-left-radius: 8px;
|
||||||
|
-webkit-border-top-right-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.OxDialog > .OxTitleBar > .OxTitle {
|
||||||
|
margin: 3px 8px 0 8px;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: bold;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.OxDialog > .OxContent {
|
||||||
|
top: 24px;
|
||||||
|
height: 100%;
|
||||||
|
padding: 16px;
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.OxDialog > .OxButtonsBar {
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
height: 24px;
|
||||||
|
//text-align: right;
|
||||||
|
-moz-border-radius-bottomleft: 8px;
|
||||||
|
-moz-border-radius-bottomright: 8px;
|
||||||
|
-webkit-border-bottom-left-radius: 8px;
|
||||||
|
-webkit-border-bottom-right-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.OxDialog > .OxButtonsBar > .OxButton {
|
||||||
|
margin: 4px 2px 0 2px;
|
||||||
|
}
|
||||||
|
.OxDialog > .OxButtonsBar > .OxButton.OxLeft {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.OxDialog > .OxButtonsBar > .OxButton.OxLeft:first-child {
|
||||||
|
margin-left: 16px;
|
||||||
|
}
|
||||||
|
.OxDialog > .OxButtonsBar > .OxButton.OxRight {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
.OxDialog > .OxButtonsBar > .OxResize {
|
||||||
|
float: right;
|
||||||
|
height: 24px;
|
||||||
|
width: 14px;
|
||||||
|
cursor: se-resize;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Forms
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
input,
|
||||||
|
textarea {
|
||||||
|
padding: 0;
|
||||||
|
border: 1px;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
input[type=button],
|
||||||
|
input[type=reset],
|
||||||
|
input[type=submit] {
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
-webkit-box-sizing: content-box;
|
||||||
|
}
|
||||||
|
input[type=image] {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
input:focus,
|
||||||
|
textarea:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
input.OxXlarge {
|
||||||
|
height: 26px;
|
||||||
|
font-size: 19px;
|
||||||
|
padding: 0 12px 0 12px;
|
||||||
|
-moz-border-radius: 14px;
|
||||||
|
-webkit-border-radius: 14px;
|
||||||
|
}
|
||||||
|
input.OxLarge {
|
||||||
|
height: 22px;
|
||||||
|
font-size: 16px;
|
||||||
|
padding: 0 10px 0 10px;
|
||||||
|
-moz-border-radius: 12px;
|
||||||
|
-webkit-border-radius: 12px;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
input.OxLarge {
|
||||||
|
height: 18px;
|
||||||
|
font-size: 13px;
|
||||||
|
padding: 0 8px 0 8px;
|
||||||
|
-moz-border-radius: 10px;
|
||||||
|
-webkit-border-radius: 10px;
|
||||||
|
}
|
||||||
|
input.OxMedium {
|
||||||
|
height: 14px;
|
||||||
|
padding: 0 6px 0 6px;
|
||||||
|
font-size: 11px;
|
||||||
|
-moz-border-radius: 8px;
|
||||||
|
-webkit-border-radius: 8px;
|
||||||
|
}
|
||||||
|
input.OxSmall {
|
||||||
|
height: 10px;
|
||||||
|
padding: 0 4px 0 4px;
|
||||||
|
font-size: 8px;
|
||||||
|
-moz-border-radius: 6px;
|
||||||
|
-webkit-border-radius: 6px;
|
||||||
|
}
|
||||||
|
input[type=image] {
|
||||||
|
padding: 0;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
input[type=image].OxLarge {
|
||||||
|
width: 22px;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
input[type=image].OxLarge {
|
||||||
|
width: 18px;
|
||||||
|
}
|
||||||
|
input[type=image].OxMedium {
|
||||||
|
width: 14px;
|
||||||
|
}
|
||||||
|
input[type=image].OxSmall {
|
||||||
|
width: 10px;
|
||||||
|
}
|
||||||
|
input::-moz-focus-inner {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
textarea {
|
||||||
|
//padding: 2px 4px 2px 4px;
|
||||||
|
padding: 0 4px 0 4px;
|
||||||
|
margin: -1px 0 0 0;
|
||||||
|
resize: none;
|
||||||
|
-moz-border-radius: 8px;
|
||||||
|
-webkit-border-radius: 8px;
|
||||||
|
}
|
||||||
|
.OxButton.OxSymbol,
|
||||||
|
.OxButton.OxSymbol:active,
|
||||||
|
.OxButton.OxSymbol:focus {
|
||||||
|
padding: 0;
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0);
|
||||||
|
background: rgba(0, 0, 0, 0);
|
||||||
|
-moz-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
||||||
|
//-webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
OxButtonGroup
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
.OxButtonGroup {
|
||||||
|
display: table-cell;
|
||||||
|
float: left;
|
||||||
|
//overflow: hidden;
|
||||||
|
//white-space: nowrap;
|
||||||
|
}
|
||||||
|
.OxButtonGroup > .OxButton {
|
||||||
|
border-right-width: 0;
|
||||||
|
-moz-border-radius: 0;
|
||||||
|
-webkit-border-radius: 0;
|
||||||
|
}
|
||||||
|
.OxButtonGroup > .OxButton:last-child {
|
||||||
|
border-right-width: 1px;
|
||||||
|
}
|
||||||
|
.OxButtonGroup > .OxButton.OxLarge:first-child {
|
||||||
|
-moz-border-radius-topleft: 6px;
|
||||||
|
-moz-border-radius-bottomleft: 6px;
|
||||||
|
-webkit-border-top-left-radius: 6px;
|
||||||
|
-webkit-border-bottom-left-radius: 6px;
|
||||||
|
}
|
||||||
|
.OxButtonGroup > .OxButton.OxLarge:last-child {
|
||||||
|
-moz-border-radius-topright: 6px;
|
||||||
|
-moz-border-radius-bottomright: 6px;
|
||||||
|
-webkit-border-top-right-radius: 6px;
|
||||||
|
-webkit-border-bottom-right-radius: 6px;
|
||||||
|
}
|
||||||
|
.OxButtonGroup > .OxButton.OxMedium:first-child {
|
||||||
|
-moz-border-radius-topleft: 4px;
|
||||||
|
-moz-border-radius-bottomleft: 4px;
|
||||||
|
-webkit-border-top-left-radius: 4px;
|
||||||
|
-webkit-border-bottom-left-radius: 4px;
|
||||||
|
}
|
||||||
|
.OxButtonGroup > .OxButton.OxMedium:last-child {
|
||||||
|
-moz-border-radius-topright: 4px;
|
||||||
|
-moz-border-radius-bottomright: 4px;
|
||||||
|
-webkit-border-top-right-radius: 4px;
|
||||||
|
-webkit-border-bottom-right-radius: 4px;
|
||||||
|
}
|
||||||
|
.OxButtonGroup > .OxButton.OxSmall:first-child {
|
||||||
|
-moz-border-radius-topleft: 2px;
|
||||||
|
-moz-border-radius-bottomleft: 2px;
|
||||||
|
-webkit-border-top-left-radius: 2px;
|
||||||
|
-webkit-border-bottom-left-radius: 2px;
|
||||||
|
}
|
||||||
|
.OxButtonGroup > .OxButton.OxSmall:last-child {
|
||||||
|
-moz-border-radius-topright: 2px;
|
||||||
|
-moz-border-radius-bottomright: 2px;
|
||||||
|
-webkit-border-top-right-radius: 2px;
|
||||||
|
-webkit-border-bottom-right-radius: 2px;
|
||||||
|
}
|
||||||
|
.OxButtonGroup > .OxButton.OxTab {
|
||||||
|
-moz-border-radius-topleft: 4px;
|
||||||
|
-moz-border-radius-topright: 4px;
|
||||||
|
-moz-border-radius-bottomleft: 0;
|
||||||
|
-moz-border-radius-bottomright: 0;
|
||||||
|
-webkit-border-top-left-radius: 4px;
|
||||||
|
-webkit-border-top-right-radius: 4px;
|
||||||
|
-webkit-border-bottom-left-radius: 0;
|
||||||
|
-webkit-border-bottom-right-radius: 0;
|
||||||
|
}
|
||||||
|
.OxButtonGroup > .OxButton.OxTab:first-child {
|
||||||
|
-moz-border-radius-bottomleft: 0;
|
||||||
|
-webkit-border-bottom-left-radius: 0;
|
||||||
|
}
|
||||||
|
.OxButtonGroup > .OxButton.OxTab:last-child {
|
||||||
|
-moz-border-radius-bottomright: 0;
|
||||||
|
-webkit-border-bottom-right-radius: 0;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
OxInput
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
div.OxInput {
|
||||||
|
-moz-border-radius: 8px;
|
||||||
|
-webkit-border-radius: 8px;
|
||||||
|
}
|
||||||
|
div.OxInput.OxMedium {
|
||||||
|
height: 14px;
|
||||||
|
}
|
||||||
|
div.OxInput > .OxInputLabel {
|
||||||
|
float: left;
|
||||||
|
padding-left: 8px;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
cursor: default;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
div.OxInput > .OxButton {
|
||||||
|
float: left;
|
||||||
|
//margin-left: 1px;
|
||||||
|
margin-top: -1px;
|
||||||
|
}
|
||||||
|
div.OxInput > .OxButton:last-child {
|
||||||
|
float: left;
|
||||||
|
margin-left: -1px;
|
||||||
|
margin-top: -1px;
|
||||||
|
}
|
||||||
|
input.OxInput {
|
||||||
|
float: left;
|
||||||
|
margin: -1px -1px 0 -1px;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
OxLabel
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
.OxLabel {
|
||||||
|
height: 14px;
|
||||||
|
border: 1px;
|
||||||
|
padding: 0 8px 0 8px;
|
||||||
|
-moz-border-radius: 8px;
|
||||||
|
-webkit-border-radius: 8px;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
OxRange
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
.OxRange {
|
||||||
|
height: 14px;
|
||||||
|
border: 1px;
|
||||||
|
-moz-border-radius: 8px;
|
||||||
|
-webkit-border-radius: 8px;
|
||||||
|
}
|
||||||
|
.OxRange > .OxArrow:first-child {
|
||||||
|
float: left;
|
||||||
|
margin-top: -1px;
|
||||||
|
}
|
||||||
|
.OxRange > .OxArrow:last-child {
|
||||||
|
float: left;
|
||||||
|
margin-left: -1px;
|
||||||
|
margin-top: -1px;
|
||||||
|
}
|
||||||
|
.OxRange > .OxTrack {
|
||||||
|
float: left;
|
||||||
|
height: 14px;
|
||||||
|
margin-left: -1px;
|
||||||
|
margin-top: -1px;
|
||||||
|
-moz-border-radius: 8px;
|
||||||
|
-webkit-border-radius: 8px;
|
||||||
|
}
|
||||||
|
.OxRange > .OxTrack > .OxImage {
|
||||||
|
float: left;
|
||||||
|
height: 14px;
|
||||||
|
-moz-border-radius: 6px;
|
||||||
|
-webkit-border-radius: 6px;
|
||||||
|
}
|
||||||
|
.OxRange > .OxTrack > .OxThumb {
|
||||||
|
float: left;
|
||||||
|
margin-top: -15px;
|
||||||
|
}
|
||||||
|
.OxRange > .OxTrack > .OxThumb:first-child {
|
||||||
|
margin-top: -1px;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
OxSelect
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
.OxSelect.OxMedium {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
.OxSelect > .OxButton {
|
||||||
|
float: right;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.OxSelect > .OxSymbol {
|
||||||
|
text-align: right;
|
||||||
|
cursor: default;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
}
|
||||||
|
.OxSelect.OxMedium > .OxSymbol {
|
||||||
|
float: right;
|
||||||
|
margin: -16px 0 0 -4px;
|
||||||
|
z-index: 9;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Layers
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
.OxLayer {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
top: 0px;
|
||||||
|
bottom: 0px;
|
||||||
|
left: 0px;
|
||||||
|
right: 0px;
|
||||||
|
background: rgb(0, 0, 0);
|
||||||
|
opacity: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
z-index: 10;
|
||||||
|
}
|
||||||
|
.OxLayer.OxFront {
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
.OxMainMenuLayer {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
top: 24px;
|
||||||
|
bottom: 0px;
|
||||||
|
overflow: hidden;
|
||||||
|
z-index: 10;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Menus
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
.OxMainMenu {
|
||||||
|
z-index: 9;
|
||||||
|
-moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.75);
|
||||||
|
-webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.75);
|
||||||
|
}
|
||||||
|
.OxMainMenu.OxLarge {
|
||||||
|
height: 24px;
|
||||||
|
padding-left: 8px;
|
||||||
|
}
|
||||||
|
.OxMainMenu.OxMedium {
|
||||||
|
height: 20px;
|
||||||
|
padding-left: 6px;
|
||||||
|
}
|
||||||
|
.OxMainMenu.OxSmall {
|
||||||
|
height: 16px;
|
||||||
|
padding-left: 4px;
|
||||||
|
}
|
||||||
|
.OxMainMenu > .OxTitle {
|
||||||
|
float: left;
|
||||||
|
cursor: default;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
}
|
||||||
|
.OxMainMenu.OxLarge > .OxTitle {
|
||||||
|
height: 21px;
|
||||||
|
padding-left: 8px;
|
||||||
|
padding-right: 8px;
|
||||||
|
padding-top: 3px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.OxMainMenu.OxMedium > .OxTitle {
|
||||||
|
height: 17px;
|
||||||
|
padding-left: 6px;
|
||||||
|
padding-right: 6px;
|
||||||
|
padding-top: 3px;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
.OxMainMenu.OxSmall > .OxTitle {
|
||||||
|
height: 14px;
|
||||||
|
padding-left: 4px;
|
||||||
|
padding-right: 4px;
|
||||||
|
padding-top: 2px;
|
||||||
|
font-size: 9px;
|
||||||
|
}
|
||||||
|
.OxMainMenu > .OxTitle.OxSelected {
|
||||||
|
background: rgb(48, 48, 48);
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgb(80, 80, 80)), color-stop(1, rgb(48, 48, 48)));
|
||||||
|
}
|
||||||
|
.OxMainMenu > .OxExtras {
|
||||||
|
float: right;
|
||||||
|
padding: 4px 12px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.OxMenu {
|
||||||
|
position: absolute;
|
||||||
|
display: none;
|
||||||
|
z-index: 11;
|
||||||
|
-moz-border-radius-bottomleft: 4px;
|
||||||
|
-moz-border-radius-bottomright: 4px;
|
||||||
|
-webkit-border-bottom-left-radius: 4px;
|
||||||
|
-webkit-border-bottom-right-radius: 4px;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
}
|
||||||
|
.OxMenu.OxRight {
|
||||||
|
-moz-border-radius-topright: 4px;
|
||||||
|
-webkit-border-top-right-radius: 4px;
|
||||||
|
}
|
||||||
|
.OxMenu .OxTop {
|
||||||
|
height: 4px;
|
||||||
|
}
|
||||||
|
.OxMenu.OxRight .OxTop {
|
||||||
|
-moz-border-radius-topright: 4px;
|
||||||
|
-webkit-border-top-right-radius: 4px;
|
||||||
|
}
|
||||||
|
.OxMenu .OxBottom {
|
||||||
|
height: 4px;
|
||||||
|
-moz-border-radius-bottomleft: 4px;
|
||||||
|
-moz-border-radius-bottomright: 4px;
|
||||||
|
-webkit-border-bottom-left-radius: 4px;
|
||||||
|
-webkit-border-bottom-right-radius: 4px;
|
||||||
|
}
|
||||||
|
.OxMenu .OxContainer {
|
||||||
|
background: transparent;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.OxMenu .OxContent {
|
||||||
|
position: relative;
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
}
|
||||||
|
.OxMenu .OxItem {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.OxMenu.OxLarge .OxItem {
|
||||||
|
height: 20px;
|
||||||
|
}
|
||||||
|
.OxMenu.OxMedium .OxItem {
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
.OxMenu.OxSmall .OxItem {
|
||||||
|
height: 12px;
|
||||||
|
}
|
||||||
|
.OxMenu .OxItem.OxDisabled {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.OxMenu.OxLarge .OxItem .OxCell {
|
||||||
|
height: 20px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.OxMenu.OxMedium .OxItem .OxCell {
|
||||||
|
height: 16px;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
.OxMenu.OxSmall .OxItem .OxCell {
|
||||||
|
height: 12px;
|
||||||
|
font-size: 9px;
|
||||||
|
}
|
||||||
|
.OxMenu .OxItem .OxCell.OxStatus {
|
||||||
|
padding-left: 4px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.OxMenu .OxItem .OxCell.OxIcon {
|
||||||
|
padding-left: 4px;
|
||||||
|
}
|
||||||
|
.OxMenu .OxItem .OxCell.OxIcon img {
|
||||||
|
position: relative;
|
||||||
|
top: 2px;
|
||||||
|
}
|
||||||
|
.OxMenu.OxLarge .OxItem .OxCell.OxIcon img {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
-moz-border-radius: 2px;
|
||||||
|
-webkit-border-radius: 2px;
|
||||||
|
}
|
||||||
|
.OxMenu.OxMedium .OxItem .OxCell.OxIcon img {
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
-moz-border-radius: 2px;
|
||||||
|
-webkit-border-radius: 2px;
|
||||||
|
}
|
||||||
|
.OxMenu.OxSmall .OxItem .OxCell.OxIcon img {
|
||||||
|
width: 8px;
|
||||||
|
height: 8px;
|
||||||
|
-moz-border-radius: 1px;
|
||||||
|
-webkit-border-radius: 1px;
|
||||||
|
}
|
||||||
|
.OxMenu .OxItem .OxCell.OxTitle {
|
||||||
|
padding-left: 4px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.OxMenu .OxItem .OxCell.OxModifiers {
|
||||||
|
padding-left: 4px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.OxMenu .OxItem .OxCell.OxKey {
|
||||||
|
padding-right: 8px;
|
||||||
|
}
|
||||||
|
.OxMenu .OxItem .OxCell.OxSubmenu {
|
||||||
|
padding-right: 8px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.OxMenu.OxLarge .OxItem .OxCell.OxSubmenu {
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
.OxMenu.OxMedium .OxItem .OxCell.OxSubmenu {
|
||||||
|
font-size: 8px;
|
||||||
|
}
|
||||||
|
.OxMenu.OxSmall .OxItem .OxCell.OxSubmenu {
|
||||||
|
font-size: 6px;
|
||||||
|
}
|
||||||
|
.OxMenu.OxLarge .OxItem .OxCell.OxStatus,
|
||||||
|
.OxMenu.OxLarge .OxItem .OxCell.OxKey,
|
||||||
|
.OxMenu.OxLarge .OxItem .OxCell.OxSubmenu {
|
||||||
|
width: 12px;
|
||||||
|
}
|
||||||
|
.OxMenu.OxMedium .OxItem .OxCell.OxStatus,
|
||||||
|
.OxMenu.OxMedium .OxItem .OxCell.OxKey,
|
||||||
|
.OxMenu.OxMedium .OxItem .OxCell.OxSubmenu {
|
||||||
|
width: 10px;
|
||||||
|
}
|
||||||
|
.OxMenu.OxSmall .OxItem .OxCell.OxStatus,
|
||||||
|
.OxMenu.OxSmall .OxItem .OxCell.OxKey,
|
||||||
|
.OxMenu.OxSmall .OxItem .OxCell.OxSubmenu {
|
||||||
|
width: 8px;
|
||||||
|
}
|
||||||
|
.OxMenu .OxSpace {
|
||||||
|
height: 4px;
|
||||||
|
}
|
||||||
|
.OxMenu .OxLine {
|
||||||
|
height: 1px;
|
||||||
|
}
|
||||||
|
.OxMenu .OxScrollbar {
|
||||||
|
text-align: center;
|
||||||
|
cursor: default;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.OxMenu.OxLarge .OxScrollbar {
|
||||||
|
height: 16px;
|
||||||
|
padding-top: 4px;
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
.OxMenu.OxMedium .OxScrollbar {
|
||||||
|
height: 13px;
|
||||||
|
padding-top: 3px;
|
||||||
|
font-size: 8px;
|
||||||
|
}
|
||||||
|
.OxMenu.OxSmall .OxScrollbar {
|
||||||
|
height: 10px;
|
||||||
|
padding-top: 2px;
|
||||||
|
font-size: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Panels
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
.OxCollapsePanel > .OxBar {
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
.OxCollapsePanel > .OxBar > .OxButton {
|
||||||
|
float: left;
|
||||||
|
margin: 2px 0 0 4px;
|
||||||
|
}
|
||||||
|
.OxCollapsePanel > .OxBar > .OxTitle {
|
||||||
|
float: left;
|
||||||
|
margin: 3px 0 0 4px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.OxCollapsePanel > .OxContent {
|
||||||
|
position: relative;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.OxPanel {
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.OxSplitPanel {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Requests
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
.OxLoadingIcon {
|
||||||
|
opacity: 0;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.OxLoadingIcon.OxLarge {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
}
|
||||||
|
.OxLoadingIcon.OxMedium {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
.OxLoadingIcon.OxSmall {
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
}
|
37
oxjs/build/css/ox.ui.future.css
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
body.OxThemeFuture {
|
||||||
|
background: rgb(240, 240, 240);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
input
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
.OxThemeFuture .OxButton,
|
||||||
|
.OxThemeFuture .OxInput {
|
||||||
|
border: 1px solid rgb(128, 128, 128);
|
||||||
|
color: rgb(64, 64, 64);
|
||||||
|
}
|
||||||
|
.OxThemeFuture .OxButton {
|
||||||
|
background: -moz-linear-gradient(left top, left bottom, from(rgb(224, 224, 224)), to(rgb(192, 192, 192)));
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(rgb(224, 224, 224)), to(rgb(192, 192, 192)));
|
||||||
|
}
|
||||||
|
.OxThemeFuture .OxButton:active {
|
||||||
|
background: rgb(208, 208, 208);
|
||||||
|
}
|
||||||
|
.OxThemeFuture .OxInput {
|
||||||
|
//border-top-color: rgb(96, 96, 96);
|
||||||
|
//border-right-color: rgb(128, 128, 128);
|
||||||
|
//border-bottom-color: rgb(160, 160, 160);
|
||||||
|
//border-left-color: rgb(128, 128, 128);
|
||||||
|
background: -moz-linear-gradient(left top, left bottom, from(rgb(224, 224, 224)), to(rgb(255, 255, 255)));
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(rgb(224, 224, 224)), to(rgb(255, 255, 255)));
|
||||||
|
}
|
||||||
|
.OxThemeFuture .OxInput:focus {
|
||||||
|
-moz-box-shadow: 0 0 4px rgb(128, 128, 128);
|
||||||
|
-webkit-box-shadow: 0 0 4px rgb(128, 128, 128);
|
||||||
|
}
|
||||||
|
.OxThemeFuture .OxInput.OxPlaceholder {
|
||||||
|
color: rgb(160, 160, 160)
|
||||||
|
}
|
163
oxjs/build/css/ox.ui.modern.css
Normal file
|
@ -0,0 +1,163 @@
|
||||||
|
body.OxThemeModern {
|
||||||
|
background: rgb(16, 16, 16);
|
||||||
|
}
|
||||||
|
.OxThemeModern div {
|
||||||
|
color: rgb(240, 240, 240);
|
||||||
|
}
|
||||||
|
.OxThemeModern .OxHighlight {
|
||||||
|
background: rgb(255, 255, 0);
|
||||||
|
color: rgb(0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Bars
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
.OxThemeModern .OxBar.OxHorizontal {
|
||||||
|
//background: -moz-linear-gradient(left top, left bottom, from(rgb(96, 96, 96)), to(rgb(64, 64, 64)));
|
||||||
|
//background: -webkit-gradient(linear, left top, left bottom, from(rgb(96, 96, 96)), to(rgb(64, 64, 64)));
|
||||||
|
background: -moz-linear-gradient(top, rgb(64, 64, 64), rgb(32, 32, 32));
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(rgb(64, 64, 64)), to(rgb(32, 32, 32)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Dialog
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
.OxThemeModern .OxDialog {
|
||||||
|
-moz-box-shadow: 0px 0px 8px rgba(0, 0, 0, 1);
|
||||||
|
-webkit-box-shadow: 0px 0px 8px rgba(0, 0, 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.OxThemeModern .OxDialog .OxBar {
|
||||||
|
background: -moz-linear-gradient(top, rgba(64, 64, 64, 0.96), rgba(32, 32, 32, 0.96));
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(rgba(64, 64, 64, 0.96)), to(rgba(32, 32, 32, 0.96)));
|
||||||
|
}
|
||||||
|
|
||||||
|
.OxThemeModern .OxDialog .OxContent {
|
||||||
|
background: rgba(48, 48, 48, 0.96);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Forms
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
.OxThemeModern .OxButton,
|
||||||
|
.OxThemeModern .OxInput,
|
||||||
|
.OxThemeModern .OxRange,
|
||||||
|
.OxThemeModern .OxTrack {
|
||||||
|
//border: 1px solid rgb(80, 80, 80);
|
||||||
|
border: 1px solid rgb(48, 48, 48);
|
||||||
|
color: rgb(192, 192, 192);
|
||||||
|
}
|
||||||
|
.OxThemeModern .OxButton,
|
||||||
|
.OxThemeModern div.OxInput,
|
||||||
|
.OxThemeModern .OxRange {
|
||||||
|
background: -moz-linear-gradient(top, rgb(96, 96, 96), rgb(64, 64, 64));
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(rgb(96, 96, 96)), to(rgb(64, 64, 64)));
|
||||||
|
//background: -moz-linear-gradient(left top, left bottom, from(rgb(64, 64, 64)), to(rgb(32, 32, 32)));
|
||||||
|
//background: -webkit-gradient(linear, left top, left bottom, from(rgb(64, 64, 64)), to(rgb(32, 32, 32)));
|
||||||
|
}
|
||||||
|
.OxThemeModern .OxButton:active,
|
||||||
|
.OxThemeModern .OxRange.OxActive {
|
||||||
|
background: rgb(80, 80, 80);
|
||||||
|
//background: rgb(64, 64, 64);
|
||||||
|
}
|
||||||
|
.OxThemeModern .OxButton.OxDisabled {
|
||||||
|
background: rgb(80, 80, 80);
|
||||||
|
color: rgb(128, 128, 128);
|
||||||
|
}
|
||||||
|
.OxThemeModern .OxButton.OxSelected {
|
||||||
|
//background: -moz-linear-gradient(left top, left bottom, from(rgb(80, 80, 80)), to(rgb(112, 112, 112)));
|
||||||
|
//background: -webkit-gradient(linear, left top, left bottom, from(rgb(80, 80, 80)), to(rgb(112, 112, 112)));
|
||||||
|
background: -moz-linear-gradient(top, rgb(0, 0, 0), rgb(32, 32, 32) 10%, rgb(64, 64, 64));
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(rgb(0, 0, 0)), color-stop(0.1, rgb(32, 32, 32)), to(rgb(64, 64, 64)));
|
||||||
|
color: rgb(224, 224, 224);
|
||||||
|
}
|
||||||
|
.OxThemeModern .OxButton.OxTab.OxSelected {
|
||||||
|
border-bottom: 1px solid rgb(64, 64, 64);
|
||||||
|
}
|
||||||
|
.OxThemeModern .OxInput,
|
||||||
|
.OxThemeModern .OxTrack {
|
||||||
|
background: -moz-linear-gradient(top, rgb(0, 0, 0), rgb(32, 32, 32));
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(rgb(0, 0, 0)), to(rgb(32, 32, 32)));
|
||||||
|
}
|
||||||
|
.OxThemeModern .OxInput:focus {
|
||||||
|
border: 1px solid rgb(80, 80, 80);
|
||||||
|
-moz-box-shadow: 0 0 2px rgb(128, 128, 128);
|
||||||
|
-webkit-box-shadow: 0 0 2px rgb(128, 128, 128);
|
||||||
|
}
|
||||||
|
.OxThemeModern .OxInput.OxPlaceholder {
|
||||||
|
color: rgb(96, 96, 96)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Menus
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
.OxThemeModern .OxMenu {
|
||||||
|
-moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.75);
|
||||||
|
-webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.75);
|
||||||
|
}
|
||||||
|
.OxThemeModern .OxMenu .OxBottom,
|
||||||
|
.OxThemeModern .OxMenu .OxItem,
|
||||||
|
.OxThemeModern .OxMenu .OxScrollbar,
|
||||||
|
.OxThemeModern .OxMenu .OxSpace,
|
||||||
|
.OxThemeModern .OxMenu .OxTop {
|
||||||
|
background: rgba(48, 48, 48, 0.96);
|
||||||
|
}
|
||||||
|
.OxThemeModern .OxMenu .OxItem.OxSelected,
|
||||||
|
.OxThemeModern .OxMenu .OxLine,
|
||||||
|
.OxThemeModern .OxMenu .OxScrollbar.OxSelected {
|
||||||
|
background: rgba(64, 64, 64, 0.96);
|
||||||
|
}
|
||||||
|
.OxThemeModern .OxMenu .OxItem.OxDisabled .OxCell {
|
||||||
|
color: rgb(80, 80, 80);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
Scrollbars
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
.OxThemeModern ::-webkit-scrollbar {
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
border-left: 1px solid rgb(48, 48, 48);
|
||||||
|
border-right: 1px solid rgb(48, 48, 48);
|
||||||
|
background: -webkit-gradient(linear, left top, right top, from(rgb(96, 96, 96)), to(rgb(64, 64, 64)));
|
||||||
|
}
|
||||||
|
.OxThemeModern ::-webkit-scrollbar-button {
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
}
|
||||||
|
.OxThemeModern ::-webkit-scrollbar-button:vertical:decrement {
|
||||||
|
background: url(../png/ox.ui.modern/scrollbarVerticalDecrement.png);
|
||||||
|
}
|
||||||
|
.OxThemeModern ::-webkit-scrollbar-button:vertical:increment {
|
||||||
|
background: url(../png/ox.ui.modern/scrollbarVerticalIncrement.png);
|
||||||
|
}
|
||||||
|
.OxThemeModern ::-webkit-scrollbar-thumb:vertical {
|
||||||
|
border: 1px solid rgb(48, 48, 48);
|
||||||
|
background: -webkit-gradient(linear, left top, right top, from(rgb(96, 96, 96)), to(rgb(64, 64, 64)));
|
||||||
|
-webkit-border-radius: 6px;
|
||||||
|
}
|
||||||
|
.OxThemeModern ::-webkit-scrollbar-track:vertical {
|
||||||
|
border: 1px solid rgb(32, 32, 32);
|
||||||
|
background: -webkit-gradient(linear, left top, right top, from(rgb(0, 0, 0)), to(rgb(32, 32, 32)));
|
||||||
|
-webkit-border-radius: 6px;
|
||||||
|
}
|
||||||
|
.OxThemeModern ::-webkit-scrollbar:active,
|
||||||
|
.OxThemeModern ::-webkit-scrollbar-thumb:vertical:active {
|
||||||
|
background: rgb(64, 64, 64);
|
||||||
|
}
|
4376
oxjs/build/js/jquery-1.3.2.js
vendored
Normal file
6078
oxjs/build/js/jquery-1.4.1.js
vendored
Normal file
152
oxjs/build/js/jquery-1.4.1.min.js
vendored
Normal file
|
@ -0,0 +1,152 @@
|
||||||
|
/*!
|
||||||
|
* jQuery JavaScript Library v1.4.1
|
||||||
|
* http://jquery.com/
|
||||||
|
*
|
||||||
|
* Copyright 2010, John Resig
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* Includes Sizzle.js
|
||||||
|
* http://sizzlejs.com/
|
||||||
|
* Copyright 2010, The Dojo Foundation
|
||||||
|
* Released under the MIT, BSD, and GPL Licenses.
|
||||||
|
*
|
||||||
|
* Date: Mon Jan 25 19:43:33 2010 -0500
|
||||||
|
*/
|
||||||
|
(function(z,v){function la(){if(!c.isReady){try{r.documentElement.doScroll("left")}catch(a){setTimeout(la,1);return}c.ready()}}function Ma(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,i){var j=a.length;if(typeof b==="object"){for(var n in b)X(a,n,b[n],f,e,d);return a}if(d!==v){f=!i&&f&&c.isFunction(d);for(n=0;n<j;n++)e(a[n],b,f?d.call(a[n],n,e(a[n],b)):d,i);return a}return j?
|
||||||
|
e(a[0],b):null}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function ma(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function na(a){var b,d=[],f=[],e=arguments,i,j,n,o,m,s,x=c.extend({},c.data(this,"events").live);if(!(a.button&&a.type==="click")){for(o in x){j=x[o];if(j.live===a.type||j.altLive&&c.inArray(a.type,j.altLive)>-1){i=j.data;i.beforeFilter&&i.beforeFilter[a.type]&&!i.beforeFilter[a.type](a)||f.push(j.selector)}else delete x[o]}i=c(a.target).closest(f,
|
||||||
|
a.currentTarget);m=0;for(s=i.length;m<s;m++)for(o in x){j=x[o];n=i[m].elem;f=null;if(i[m].selector===j.selector){if(j.live==="mouseenter"||j.live==="mouseleave")f=c(a.relatedTarget).closest(j.selector)[0];if(!f||f!==n)d.push({elem:n,fn:j})}}m=0;for(s=d.length;m<s;m++){i=d[m];a.currentTarget=i.elem;a.data=i.fn.data;if(i.fn.apply(i.elem,e)===false){b=false;break}}return b}}function oa(a,b){return"live."+(a?a+".":"")+b.replace(/\./g,"`").replace(/ /g,"&")}function pa(a){return!a||!a.parentNode||a.parentNode.nodeType===
|
||||||
|
11}function qa(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var i in f)for(var j in f[i])c.event.add(this,i,f[i][j],f[i][j].data)}}})}function ra(a,b,d){var f,e,i;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&a[0].indexOf("<option")<0&&(c.support.checkClone||!sa.test(a[0]))){e=true;if(i=c.fragments[a[0]])if(i!==1)f=i}if(!f){b=b&&b[0]?b[0].ownerDocument||b[0]:r;f=b.createDocumentFragment();
|
||||||
|
c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=i?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(ta.concat.apply([],ta.slice(0,b)),function(){d[this]=a});return d}function ua(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Na=z.jQuery,Oa=z.$,r=z.document,S,Pa=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Qa=/^.[^:#\[\.,]*$/,Ra=/\S/,Sa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Ta=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,O=navigator.userAgent,
|
||||||
|
va=false,P=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,Q=Array.prototype.slice,wa=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(typeof a==="string")if((d=Pa.exec(a))&&(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:r;if(a=Ta.exec(a))if(c.isPlainObject(b)){a=[r.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=ra([d[1]],
|
||||||
|
[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}}else{if(b=r.getElementById(d[2])){if(b.id!==d[2])return S.find(a);this.length=1;this[0]=b}this.context=r;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=r;a=r.getElementsByTagName(a)}else return!b||b.jquery?(b||S).find(a):c(b).find(a);else if(c.isFunction(a))return S.ready(a);if(a.selector!==v){this.selector=a.selector;this.context=a.context}return c.isArray(a)?this.setArray(a):c.makeArray(a,
|
||||||
|
this)},selector:"",jquery:"1.4.1",length:0,size:function(){return this.length},toArray:function(){return Q.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){a=c(a||null);a.prevObject=this;a.context=this.context;if(b==="find")a.selector=this.selector+(this.selector?" ":"")+d;else if(b)a.selector=this.selector+"."+b+"("+d+")";return a},setArray:function(a){this.length=0;ba.apply(this,a);return this},each:function(a,b){return c.each(this,
|
||||||
|
a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(r,c);else P&&P.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(Q.apply(this,arguments),"slice",Q.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};
|
||||||
|
c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,i,j,n;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(i in e){j=a[i];n=e[i];if(a!==n)if(f&&n&&(c.isPlainObject(n)||c.isArray(n))){j=j&&(c.isPlainObject(j)||c.isArray(j))?j:c.isArray(n)?[]:{};a[i]=c.extend(f,j,n)}else if(n!==v)a[i]=n}return a};c.extend({noConflict:function(a){z.$=
|
||||||
|
Oa;if(a)z.jQuery=Na;return c},isReady:false,ready:function(){if(!c.isReady){if(!r.body)return setTimeout(c.ready,13);c.isReady=true;if(P){for(var a,b=0;a=P[b++];)a.call(r,c);P=null}c.fn.triggerHandler&&c(r).triggerHandler("ready")}},bindReady:function(){if(!va){va=true;if(r.readyState==="complete")return c.ready();if(r.addEventListener){r.addEventListener("DOMContentLoaded",L,false);z.addEventListener("load",c.ready,false)}else if(r.attachEvent){r.attachEvent("onreadystatechange",L);z.attachEvent("onload",
|
||||||
|
c.ready);var a=false;try{a=z.frameElement==null}catch(b){}r.documentElement.doScroll&&a&&la()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,"isPrototypeOf"))return false;var b;for(b in a);return b===v||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;
|
||||||
|
return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return z.JSON&&z.JSON.parse?z.JSON.parse(a):(new Function("return "+a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Ra.test(a)){var b=r.getElementsByTagName("head")[0]||
|
||||||
|
r.documentElement,d=r.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(r.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,i=a.length,j=i===v||c.isFunction(a);if(d)if(j)for(f in a){if(b.apply(a[f],d)===false)break}else for(;e<i;){if(b.apply(a[e++],d)===false)break}else if(j)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=
|
||||||
|
a[0];e<i&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Sa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==
|
||||||
|
v;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,i=a.length;e<i;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,i=0,j=a.length;i<j;i++){e=b(a[i],i,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=v}else if(b&&!c.isFunction(b)){d=b;b=v}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},
|
||||||
|
uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});O=c.uaMatch(O);if(O.browser){c.browser[O.browser]=true;c.browser.version=O.version}if(c.browser.webkit)c.browser.safari=true;if(wa)c.inArray=function(a,b){return wa.call(b,a)};S=c(r);if(r.addEventListener)L=function(){r.removeEventListener("DOMContentLoaded",
|
||||||
|
L,false);c.ready()};else if(r.attachEvent)L=function(){if(r.readyState==="complete"){r.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=r.documentElement,b=r.createElement("script"),d=r.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=d.getElementsByTagName("*"),i=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!i)){c.support=
|
||||||
|
{leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(i.getAttribute("style")),hrefNormalized:i.getAttribute("href")==="/a",opacity:/^0.55$/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:r.createElement("select").appendChild(r.createElement("option")).selected,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};
|
||||||
|
b.type="text/javascript";try{b.appendChild(r.createTextNode("window."+f+"=1;"))}catch(j){}a.insertBefore(b,a.firstChild);if(z[f]){c.support.scriptEval=true;delete z[f]}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function n(){c.support.noCloneEvent=false;d.detachEvent("onclick",n)});d.cloneNode(true).fireEvent("onclick")}d=r.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=r.createDocumentFragment();a.appendChild(d.firstChild);
|
||||||
|
c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var n=r.createElement("div");n.style.width=n.style.paddingLeft="1px";r.body.appendChild(n);c.boxModel=c.support.boxModel=n.offsetWidth===2;r.body.removeChild(n).style.display="none"});a=function(n){var o=r.createElement("div");n="on"+n;var m=n in o;if(!m){o.setAttribute(n,"return;");m=typeof o[n]==="function"}return m};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=i=null}})();c.props=
|
||||||
|
{"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ua=0,xa={},Va={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var f=a[G],e=c.cache;if(!b&&!f)return null;f||(f=++Ua);if(typeof b==="object"){a[G]=f;e=e[f]=c.extend(true,
|
||||||
|
{},b)}else e=e[f]?e[f]:typeof d==="undefined"?Va:(e[f]={});if(d!==v){a[G]=f;e[b]=d}return typeof b==="string"?e[b]:e}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{try{delete a[G]}catch(i){a.removeAttribute&&a.removeAttribute(G)}delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,
|
||||||
|
a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===v){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===v&&this.length)f=c.data(this[0],a);return f===v&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);
|
||||||
|
return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===v)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||
|
||||||
|
a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var ya=/[\n\t]/g,ca=/\s+/,Wa=/\r/g,Xa=/href|src|style/,Ya=/(button|input)/i,Za=/(button|input|object|select|textarea)/i,$a=/^(a|area)$/i,za=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(o){var m=
|
||||||
|
c(this);m.addClass(a.call(this,o,m.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className)for(var i=" "+e.className+" ",j=0,n=b.length;j<n;j++){if(i.indexOf(" "+b[j]+" ")<0)e.className+=" "+b[j]}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var m=c(this);m.removeClass(a.call(this,o,m.attr("class")))});if(a&&typeof a==="string"||a===v)for(var b=(a||"").split(ca),
|
||||||
|
d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var i=(" "+e.className+" ").replace(ya," "),j=0,n=b.length;j<n;j++)i=i.replace(" "+b[j]+" "," ");e.className=i.substring(1,i.length-1)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var i=c(this);i.toggleClass(a.call(this,e,i.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,i=0,j=c(this),n=b,o=
|
||||||
|
a.split(ca);e=o[i++];){n=f?n:!j.hasClass(e);j[n?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(ya," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===v){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||
|
||||||
|
{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var i=b?d:0;for(d=b?d+1:e.length;i<d;i++){var j=e[i];if(j.selected){a=c(j).val();if(b)return a;f.push(a)}}return f}if(za.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Wa,"")}return v}var n=c.isFunction(a);return this.each(function(o){var m=c(this),s=a;if(this.nodeType===1){if(n)s=a.call(this,o,m.val());
|
||||||
|
if(typeof s==="number")s+="";if(c.isArray(s)&&za.test(this.type))this.checked=c.inArray(m.val(),s)>=0;else if(c.nodeName(this,"select")){var x=c.makeArray(s);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),x)>=0});if(!x.length)this.selectedIndex=-1}else this.value=s}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return v;if(f&&b in c.attrFn)return c(a)[b](d);
|
||||||
|
f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==v;b=f&&c.props[b]||b;if(a.nodeType===1){var i=Xa.test(b);if(b in a&&f&&!i){if(e){b==="type"&&Ya.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:Za.test(a.nodeName)||$a.test(a.nodeName)&&a.href?0:v;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=
|
||||||
|
""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&i?a.getAttribute(b,2):a.getAttribute(b);return a===null?v:a}return c.style(a,b,d)}});var ab=function(a){return a.replace(/[^\w\s\.\|`]/g,function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==z&&!a.frameElement)a=z;if(!d.guid)d.guid=c.guid++;if(f!==v){d=c.proxy(d);d.data=f}var e=c.data(a,"events")||c.data(a,"events",{}),i=c.data(a,"handle"),j;if(!i){j=
|
||||||
|
function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(j.elem,arguments):v};i=c.data(a,"handle",j)}if(i){i.elem=a;b=b.split(/\s+/);for(var n,o=0;n=b[o++];){var m=n.split(".");n=m.shift();if(o>1){d=c.proxy(d);if(f!==v)d.data=f}d.type=m.slice(0).sort().join(".");var s=e[n],x=this.special[n]||{};if(!s){s=e[n]={};if(!x.setup||x.setup.call(a,f,m,d)===false)if(a.addEventListener)a.addEventListener(n,i,false);else a.attachEvent&&a.attachEvent("on"+n,i)}if(x.add)if((m=x.add.call(a,
|
||||||
|
d,f,m,s))&&c.isFunction(m)){m.guid=m.guid||d.guid;m.data=m.data||d.data;m.type=m.type||d.type;d=m}s[d.guid]=d;this.global[n]=true}a=null}}},global:{},remove:function(a,b,d){if(!(a.nodeType===3||a.nodeType===8)){var f=c.data(a,"events"),e,i,j;if(f){if(b===v||typeof b==="string"&&b.charAt(0)===".")for(i in f)this.remove(a,i+(b||""));else{if(b.type){d=b.handler;b=b.type}b=b.split(/\s+/);for(var n=0;i=b[n++];){var o=i.split(".");i=o.shift();var m=!o.length,s=c.map(o.slice(0).sort(),ab);s=new RegExp("(^|\\.)"+
|
||||||
|
s.join("\\.(?:.*\\.)?")+"(\\.|$)");var x=this.special[i]||{};if(f[i]){if(d){j=f[i][d.guid];delete f[i][d.guid]}else for(var A in f[i])if(m||s.test(f[i][A].type))delete f[i][A];x.remove&&x.remove.call(a,o,j);for(e in f[i])break;if(!e){if(!x.teardown||x.teardown.call(a,o)===false)if(a.removeEventListener)a.removeEventListener(i,c.data(a,"handle"),false);else a.detachEvent&&a.detachEvent("on"+i,c.data(a,"handle"));e=null;delete f[i]}}}}for(e in f)break;if(!e){if(A=c.data(a,"handle"))A.elem=null;c.removeData(a,
|
||||||
|
"events");c.removeData(a,"handle")}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();this.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return v;a.result=v;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,
|
||||||
|
b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(i){}if(!a.isPropagationStopped()&&f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){d=a.target;var j;if(!(c.nodeName(d,"a")&&e==="click")&&!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()])){try{if(d[e]){if(j=d["on"+e])d["on"+e]=null;this.triggered=true;d[e]()}}catch(n){}if(j)d["on"+e]=j;this.triggered=false}}},handle:function(a){var b,
|
||||||
|
d;a=arguments[0]=c.event.fix(a||z.event);a.currentTarget=this;d=a.type.split(".");a.type=d.shift();b=!d.length&&!a.exclusive;var f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)");d=(c.data(this,"events")||{})[a.type];for(var e in d){var i=d[e];if(b||f.test(i.type)){a.handler=i;a.data=i.data;i=i.apply(this,arguments);if(i!==v){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
|
||||||
|
fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||r;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=r.documentElement;d=r.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
|
||||||
|
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==v)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a,b){c.extend(a,b||{});a.guid+=b.selector+b.live;b.liveProxy=a;c.event.add(this,b.live,na,b)},remove:function(a){if(a.length){var b=
|
||||||
|
0,d=new RegExp("(^|\\.)"+a[0]+"(\\.|$)");c.each(c.data(this,"events").live||{},function(){d.test(this.type)&&b++});b<1&&c.event.remove(this,a[0],na)}},special:{}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};
|
||||||
|
c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y};var Aa=function(a){for(var b=
|
||||||
|
a.relatedTarget;b&&b!==this;)try{b=b.parentNode}catch(d){break}if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}},Ba=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ba:Aa,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ba:Aa)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(a,b,d){if(this.nodeName.toLowerCase()!==
|
||||||
|
"form"){c.event.add(this,"click.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="submit"||i==="image")&&c(e).closest("form").length)return ma("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="text"||i==="password")&&c(e).closest("form").length&&f.keyCode===13)return ma("submit",this,arguments)})}else return false},remove:function(a,b){c.event.remove(this,"click.specialSubmit"+(b?"."+b.guid:""));c.event.remove(this,
|
||||||
|
"keypress.specialSubmit"+(b?"."+b.guid:""))}};if(!c.support.changeBubbles){var da=/textarea|input|select/i;function Ca(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d}function ea(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Ca(d);if(a.type!=="focusout"||
|
||||||
|
d.type!=="radio")c.data(d,"_change_data",e);if(!(f===v||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}}c.event.special.change={filters:{focusout:ea,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return ea.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return ea.call(this,a)},beforeactivate:function(a){a=
|
||||||
|
a.target;a.nodeName.toLowerCase()==="input"&&a.type==="radio"&&c.data(a,"_change_data",Ca(a))}},setup:function(a,b,d){for(var f in T)c.event.add(this,f+".specialChange."+d.guid,T[f]);return da.test(this.nodeName)},remove:function(a,b){for(var d in T)c.event.remove(this,d+".specialChange"+(b?"."+b.guid:""),T[d]);return da.test(this.nodeName)}};var T=c.event.special.change.filters}r.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,
|
||||||
|
f)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var i in d)this[b](i,f,d[i],e);return this}if(c.isFunction(f)){e=f;f=v}var j=b==="one"?c.proxy(e,function(n){c(this).unbind(n,j);return e.apply(this,arguments)}):e;return d==="unload"&&b!=="one"?this.one(d,f,e):this.each(function(){c.event.add(this,d,j,f)})}});c.fn.extend({unbind:function(a,
|
||||||
|
b){if(typeof a==="object"&&!a.preventDefault){for(var d in a)this.unbind(d,a[d]);return this}return this.each(function(){c.event.remove(this,a,b)})},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+
|
||||||
|
a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e){var i,j=0;if(c.isFunction(f)){e=f;f=v}for(d=(d||"").split(/\s+/);(i=d[j++])!=null;){i=i==="focus"?"focusin":i==="blur"?"focusout":i==="hover"?d.push("mouseleave")&&"mouseenter":i;b==="live"?c(this.context).bind(oa(i,this.selector),{data:f,selector:this.selector,
|
||||||
|
live:i},e):c(this.context).unbind(oa(i,this.selector),e?{guid:e.guid+this.selector+i}:null)}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});z.attachEvent&&!z.addEventListener&&z.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
|
||||||
|
(function(){function a(g){for(var h="",k,l=0;g[l];l++){k=g[l];if(k.nodeType===3||k.nodeType===4)h+=k.nodeValue;else if(k.nodeType!==8)h+=a(k.childNodes)}return h}function b(g,h,k,l,q,p){q=0;for(var u=l.length;q<u;q++){var t=l[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===k){y=l[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=k;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}l[q]=y}}}function d(g,h,k,l,q,p){q=0;for(var u=l.length;q<u;q++){var t=l[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===
|
||||||
|
k){y=l[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=k;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(o.filter(h,[t]).length>0){y=t;break}}t=t[g]}l[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,i=Object.prototype.toString,j=false,n=true;[0,0].sort(function(){n=false;return 0});var o=function(g,h,k,l){k=k||[];var q=h=h||r;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||
|
||||||
|
typeof g!=="string")return k;for(var p=[],u,t,y,R,H=true,M=w(h),I=g;(f.exec(""),u=f.exec(I))!==null;){I=u[3];p.push(u[1]);if(u[2]){R=u[3];break}}if(p.length>1&&s.exec(g))if(p.length===2&&m.relative[p[0]])t=fa(p[0]+p[1],h);else for(t=m.relative[p[0]]?[h]:o(p.shift(),h);p.length;){g=p.shift();if(m.relative[g])g+=p.shift();t=fa(g,t)}else{if(!l&&p.length>1&&h.nodeType===9&&!M&&m.match.ID.test(p[0])&&!m.match.ID.test(p[p.length-1])){u=o.find(p.shift(),h,M);h=u.expr?o.filter(u.expr,u.set)[0]:u.set[0]}if(h){u=
|
||||||
|
l?{expr:p.pop(),set:A(l)}:o.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=u.expr?o.filter(u.expr,u.set):u.set;if(p.length>0)y=A(t);else H=false;for(;p.length;){var D=p.pop();u=D;if(m.relative[D])u=p.pop();else D="";if(u==null)u=h;m.relative[D](y,u,M)}}else y=[]}y||(y=t);y||o.error(D||g);if(i.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))k.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&
|
||||||
|
y[g].nodeType===1&&k.push(t[g]);else k.push.apply(k,y);else A(y,k);if(R){o(R,q,k,l);o.uniqueSort(k)}return k};o.uniqueSort=function(g){if(C){j=n;g.sort(C);if(j)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};o.matches=function(g,h){return o(g,null,null,h)};o.find=function(g,h,k){var l,q;if(!g)return[];for(var p=0,u=m.order.length;p<u;p++){var t=m.order[p];if(q=m.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");l=m.find[t](q,
|
||||||
|
h,k);if(l!=null){g=g.replace(m.match[t],"");break}}}}l||(l=h.getElementsByTagName("*"));return{set:l,expr:g}};o.filter=function(g,h,k,l){for(var q=g,p=[],u=h,t,y,R=h&&h[0]&&w(h[0]);g&&h.length;){for(var H in m.filter)if((t=m.leftMatch[H].exec(g))!=null&&t[2]){var M=m.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(u===p)p=[];if(m.preFilter[H])if(t=m.preFilter[H](t,u,k,p,l,R)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=u[U])!=null;U++)if(D){I=M(D,t,U,u);var Da=
|
||||||
|
l^!!I;if(k&&I!=null)if(Da)y=true;else u[U]=false;else if(Da){p.push(D);y=true}}if(I!==v){k||(u=p);g=g.replace(m.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)o.error(g);else break;q=g}return u};o.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var m=o.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
|
||||||
|
TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,h){var k=typeof h==="string",l=k&&!/\W/.test(h);k=k&&!l;if(l)h=h.toLowerCase();l=0;for(var q=g.length,
|
||||||
|
p;l<q;l++)if(p=g[l]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[l]=k||p&&p.nodeName.toLowerCase()===h?p||false:p===h}k&&o.filter(h,g,true)},">":function(g,h){var k=typeof h==="string";if(k&&!/\W/.test(h)){h=h.toLowerCase();for(var l=0,q=g.length;l<q;l++){var p=g[l];if(p){k=p.parentNode;g[l]=k.nodeName.toLowerCase()===h?k:false}}}else{l=0;for(q=g.length;l<q;l++)if(p=g[l])g[l]=k?p.parentNode:p.parentNode===h;k&&o.filter(h,g,true)}},"":function(g,h,k){var l=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=
|
||||||
|
h=h.toLowerCase();q=b}q("parentNode",h,l,g,p,k)},"~":function(g,h,k){var l=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,l,g,p,k)}},find:{ID:function(g,h,k){if(typeof h.getElementById!=="undefined"&&!k)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var k=[];h=h.getElementsByName(g[1]);for(var l=0,q=h.length;l<q;l++)h[l].getAttribute("name")===g[1]&&k.push(h[l]);return k.length===0?null:k}},
|
||||||
|
TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,k,l,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var u;(u=h[p])!=null;p++)if(u)if(q^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))k||l.push(u);else if(k)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&
|
||||||
|
"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,k,l,q,p){h=g[1].replace(/\\/g,"");if(!p&&m.attrMap[h])g[1]=m.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,k,l,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=o(g[3],null,null,h);else{g=o.filter(g[3],h,k,true^q);k||l.push.apply(l,g);return false}else if(m.match.POS.test(g[0])||m.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);
|
||||||
|
return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,k){return!!o(k[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===
|
||||||
|
g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,h){return h===0},last:function(g,h,k,l){return h===l.length-1},even:function(g,h){return h%2===
|
||||||
|
0},odd:function(g,h){return h%2===1},lt:function(g,h,k){return h<k[3]-0},gt:function(g,h,k){return h>k[3]-0},nth:function(g,h,k){return k[3]-0===h},eq:function(g,h,k){return k[3]-0===h}},filter:{PSEUDO:function(g,h,k,l){var q=h[1],p=m.filters[q];if(p)return p(g,k,h,l);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=h[3];k=0;for(l=h.length;k<l;k++)if(h[k]===g)return false;return true}else o.error("Syntax error, unrecognized expression: "+
|
||||||
|
q)},CHILD:function(g,h){var k=h[1],l=g;switch(k){case "only":case "first":for(;l=l.previousSibling;)if(l.nodeType===1)return false;if(k==="first")return true;l=g;case "last":for(;l=l.nextSibling;)if(l.nodeType===1)return false;return true;case "nth":k=h[2];var q=h[3];if(k===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var u=0;for(l=p.firstChild;l;l=l.nextSibling)if(l.nodeType===1)l.nodeIndex=++u;p.sizcache=h}g=g.nodeIndex-q;return k===0?g===0:g%k===0&&g/k>=
|
||||||
|
0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var k=h[1];g=m.attrHandle[k]?m.attrHandle[k](g):g[k]!=null?g[k]:g.getAttribute(k);k=g+"";var l=h[2];h=h[4];return g==null?l==="!=":l==="="?k===h:l==="*="?k.indexOf(h)>=0:l==="~="?(" "+k+" ").indexOf(h)>=0:!h?k&&g!==false:l==="!="?k!==h:l==="^="?
|
||||||
|
k.indexOf(h)===0:l==="$="?k.substr(k.length-h.length)===h:l==="|="?k===h||k.substr(0,h.length+1)===h+"-":false},POS:function(g,h,k,l){var q=m.setFilters[h[2]];if(q)return q(g,k,h,l)}}},s=m.match.POS;for(var x in m.match){m.match[x]=new RegExp(m.match[x].source+/(?![^\[]*\])(?![^\(]*\))/.source);m.leftMatch[x]=new RegExp(/(^(?:.|\r|\n)*?)/.source+m.match[x].source.replace(/\\(\d+)/g,function(g,h){return"\\"+(h-0+1)}))}var A=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};
|
||||||
|
try{Array.prototype.slice.call(r.documentElement.childNodes,0)}catch(B){A=function(g,h){h=h||[];if(i.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var k=0,l=g.length;k<l;k++)h.push(g[k]);else for(k=0;g[k];k++)h.push(g[k]);return h}}var C;if(r.documentElement.compareDocumentPosition)C=function(g,h){if(!g.compareDocumentPosition||!h.compareDocumentPosition){if(g==h)j=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===
|
||||||
|
h?0:1;if(g===0)j=true;return g};else if("sourceIndex"in r.documentElement)C=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)j=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)j=true;return g};else if(r.createRange)C=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)j=true;return g.ownerDocument?-1:1}var k=g.ownerDocument.createRange(),l=h.ownerDocument.createRange();k.setStart(g,0);k.setEnd(g,0);l.setStart(h,0);l.setEnd(h,0);g=k.compareBoundaryPoints(Range.START_TO_END,
|
||||||
|
l);if(g===0)j=true;return g};(function(){var g=r.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var k=r.documentElement;k.insertBefore(g,k.firstChild);if(r.getElementById(h)){m.find.ID=function(l,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(l[1]))?q.id===l[1]||typeof q.getAttributeNode!=="undefined"&&q.getAttributeNode("id").nodeValue===l[1]?[q]:v:[]};m.filter.ID=function(l,q){var p=typeof l.getAttributeNode!=="undefined"&&l.getAttributeNode("id");
|
||||||
|
return l.nodeType===1&&p&&p.nodeValue===q}}k.removeChild(g);k=g=null})();(function(){var g=r.createElement("div");g.appendChild(r.createComment(""));if(g.getElementsByTagName("*").length>0)m.find.TAG=function(h,k){k=k.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var l=0;k[l];l++)k[l].nodeType===1&&h.push(k[l]);k=h}return k};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")m.attrHandle.href=function(h){return h.getAttribute("href",
|
||||||
|
2)};g=null})();r.querySelectorAll&&function(){var g=o,h=r.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){o=function(l,q,p,u){q=q||r;if(!u&&q.nodeType===9&&!w(q))try{return A(q.querySelectorAll(l),p)}catch(t){}return g(l,q,p,u)};for(var k in g)o[k]=g[k];h=null}}();(function(){var g=r.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===
|
||||||
|
0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){m.order.splice(1,0,"CLASS");m.find.CLASS=function(h,k,l){if(typeof k.getElementsByClassName!=="undefined"&&!l)return k.getElementsByClassName(h[1])};g=null}}})();var E=r.compareDocumentPosition?function(g,h){return g.compareDocumentPosition(h)&16}:function(g,h){return g!==h&&(g.contains?g.contains(h):true)},w=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},fa=function(g,h){var k=[],
|
||||||
|
l="",q;for(h=h.nodeType?[h]:h;q=m.match.PSEUDO.exec(g);){l+=q[0];g=g.replace(m.match.PSEUDO,"")}g=m.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)o(g,h[q],k);return o.filter(l,k)};c.find=o;c.expr=o.selectors;c.expr[":"]=c.expr.filters;c.unique=o.uniqueSort;c.getText=a;c.isXMLDoc=w;c.contains=E})();var bb=/Until$/,cb=/^(?:parents|prevUntil|prevAll)/,db=/,/;Q=Array.prototype.slice;var Ea=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,i){return!!b.call(e,i,e)===d});else if(b.nodeType)return c.grep(a,
|
||||||
|
function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Qa.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;c.find(a,this[f],b);if(f>0)for(var i=d;i<b.length;i++)for(var j=0;j<d;j++)if(b[j]===b[i]){b.splice(i--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=
|
||||||
|
0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ea(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ea(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,i={},j;if(f&&a.length){e=0;for(var n=a.length;e<n;e++){j=a[e];i[j]||(i[j]=c.expr.match.POS.test(j)?c(j,b||this.context):j)}for(;f&&f.ownerDocument&&f!==b;){for(j in i){e=i[j];if(e.jquery?e.index(f)>
|
||||||
|
-1:c(f).is(e)){d.push({selector:j,elem:f});delete i[j]}}f=f.parentNode}}return d}var o=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(m,s){for(;s&&s.ownerDocument&&s!==b;){if(o?o.index(s)>-1:c(s).is(a))return s;s=s.parentNode}return null})},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),
|
||||||
|
a);return this.pushStack(pa(a[0])||pa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},
|
||||||
|
nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);bb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):
|
||||||
|
e;if((this.length>1||db.test(f))&&cb.test(a))e=e.reverse();return this.pushStack(e,a,Q.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===v||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==
|
||||||
|
b&&d.push(a);return d}});var Fa=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ga=/(<([\w:]+)[^>]*?)\/>/g,eb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,Ha=/<([\w:]+)/,fb=/<tbody/i,gb=/<|&\w+;/,sa=/checked\s*(?:[^=]|=\s*.checked.)/i,Ia=function(a,b,d){return eb.test(d)?a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],
|
||||||
|
col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==v)return this.empty().append((this[0]&&this[0].ownerDocument||r).createTextNode(a));return c.getText(this)},
|
||||||
|
wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?
|
||||||
|
d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,
|
||||||
|
false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&
|
||||||
|
!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Fa,"").replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){qa(this,b);qa(this.find("*"),b.find("*"))}return b},html:function(a){if(a===v)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Fa,""):null;else if(typeof a==="string"&&!/<script/i.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(Ha.exec(a)||
|
||||||
|
["",""])[1].toLowerCase()]){a=a.replace(Ga,Ia);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var i=c(this),j=i.html();i.empty().append(function(){return a.call(this,e,j)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,
|
||||||
|
b,f))});else a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(s){return c.nodeName(s,"table")?s.getElementsByTagName("tbody")[0]||s.appendChild(s.ownerDocument.createElement("tbody")):s}var e,i,j=a[0],n=[];if(!c.support.checkClone&&arguments.length===3&&typeof j===
|
||||||
|
"string"&&sa.test(j))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(j))return this.each(function(s){var x=c(this);a[0]=j.call(this,s,b?x.html():v);x.domManip(a,b,d)});if(this[0]){e=a[0]&&a[0].parentNode&&a[0].parentNode.nodeType===11?{fragment:a[0].parentNode}:ra(a,this,n);if(i=e.fragment.firstChild){b=b&&c.nodeName(i,"tr");for(var o=0,m=this.length;o<m;o++)d.call(b?f(this[o],i):this[o],e.cacheable||this.length>1||o>0?e.fragment.cloneNode(true):e.fragment)}n&&c.each(n,
|
||||||
|
Ma)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);for(var e=0,i=d.length;e<i;e++){var j=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),j);f=f.concat(j)}return this.pushStack(f,a,d.selector)}});c.each({remove:function(a,b){if(!a||c.filter(a,[this]).length){if(!b&&this.nodeType===1){c.cleanData(this.getElementsByTagName("*"));c.cleanData([this])}this.parentNode&&
|
||||||
|
this.parentNode.removeChild(this)}},empty:function(){for(this.nodeType===1&&c.cleanData(this.getElementsByTagName("*"));this.firstChild;)this.removeChild(this.firstChild)}},function(a,b){c.fn[a]=function(){return this.each(b,arguments)}});c.extend({clean:function(a,b,d,f){b=b||r;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||r;var e=[];c.each(a,function(i,j){if(typeof j==="number")j+="";if(j){if(typeof j==="string"&&!gb.test(j))j=b.createTextNode(j);else if(typeof j===
|
||||||
|
"string"){j=j.replace(Ga,Ia);var n=(Ha.exec(j)||["",""])[1].toLowerCase(),o=F[n]||F._default,m=o[0];i=b.createElement("div");for(i.innerHTML=o[1]+j+o[2];m--;)i=i.lastChild;if(!c.support.tbody){m=fb.test(j);n=n==="table"&&!m?i.firstChild&&i.firstChild.childNodes:o[1]==="<table>"&&!m?i.childNodes:[];for(o=n.length-1;o>=0;--o)c.nodeName(n[o],"tbody")&&!n[o].childNodes.length&&n[o].parentNode.removeChild(n[o])}!c.support.leadingWhitespace&&V.test(j)&&i.insertBefore(b.createTextNode(V.exec(j)[0]),i.firstChild);
|
||||||
|
j=c.makeArray(i.childNodes)}if(j.nodeType)e.push(j);else e=c.merge(e,j)}});if(d)for(a=0;e[a];a++)if(f&&c.nodeName(e[a],"script")&&(!e[a].type||e[a].type.toLowerCase()==="text/javascript"))f.push(e[a].parentNode?e[a].parentNode.removeChild(e[a]):e[a]);else{e[a].nodeType===1&&e.splice.apply(e,[a+1,0].concat(c.makeArray(e[a].getElementsByTagName("script"))));d.appendChild(e[a])}return e},cleanData:function(a){for(var b=0,d;(d=a[b])!=null;b++){c.event.remove(d);c.removeData(d)}}});var hb=/z-?index|font-?weight|opacity|zoom|line-?height/i,
|
||||||
|
Ja=/alpha\([^)]*\)/,Ka=/opacity=([^)]*)/,ga=/float/i,ha=/-([a-z])/ig,ib=/([A-Z])/g,jb=/^-?\d+(?:px)?$/i,kb=/^-?\d/,lb={position:"absolute",visibility:"hidden",display:"block"},mb=["Left","Right"],nb=["Top","Bottom"],ob=r.defaultView&&r.defaultView.getComputedStyle,La=c.support.cssFloat?"cssFloat":"styleFloat",ia=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===v)return c.curCSS(d,f);if(typeof e==="number"&&!hb.test(f))e+="px";c.style(d,f,e)})};
|
||||||
|
c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return v;if((b==="width"||b==="height")&&parseFloat(d)<0)d=v;var f=a.style||a,e=d!==v;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=Ja.test(a)?a.replace(Ja,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Ka.exec(f.filter)[1])/100+"":""}if(ga.test(b))b=La;b=b.replace(ha,ia);if(e)f[b]=d;return f[b]},css:function(a,
|
||||||
|
b,d,f){if(b==="width"||b==="height"){var e,i=b==="width"?mb:nb;function j(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(i,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,"border"+this+"Width",true))||0})}a.offsetWidth!==0?j():c.swap(a,lb,j);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&
|
||||||
|
a.currentStyle){f=Ka.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ga.test(b))b=La;if(!d&&e&&e[b])f=e[b];else if(ob){if(ga.test(b))b="float";b=b.replace(ib,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ha,ia);f=a.currentStyle[b]||a.currentStyle[d];if(!jb.test(f)&&kb.test(f)){b=e.left;var i=a.runtimeStyle.left;a.runtimeStyle.left=
|
||||||
|
a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=i}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var pb=
|
||||||
|
J(),qb=/<script(.|\s)*?\/script>/gi,rb=/select|textarea/i,sb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ja=/\?/,tb=/(\?|&)_=.*?(&|$)/,ub=/^(\w+:)?\/\/([^\/?#]+)/,vb=/%20/g;c.fn.extend({_load:c.fn.load,load:function(a,b,d){if(typeof a!=="string")return this._load(a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=
|
||||||
|
c.param(b,c.ajaxSettings.traditional);f="POST"}var i=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(j,n){if(n==="success"||n==="notmodified")i.html(e?c("<div />").append(j.responseText.replace(qb,"")).find(e):j.responseText);d&&i.each(d,[j.responseText,n,j])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&
|
||||||
|
(this.checked||rb.test(this.nodeName)||sb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,
|
||||||
|
b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:z.XMLHttpRequest&&(z.location.protocol!=="file:"||!z.ActiveXObject)?function(){return new z.XMLHttpRequest}:
|
||||||
|
function(){try{return new z.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&e.success.call(o,n,j,w);e.global&&f("ajaxSuccess",[w,e])}function d(){e.complete&&e.complete.call(o,w,j);e.global&&f("ajaxComplete",[w,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}
|
||||||
|
function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),i,j,n,o=a&&a.context||e,m=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(m==="GET")N.test(e.url)||(e.url+=(ja.test(e.url)?"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||
|
||||||
|
N.test(e.url))){i=e.jsonpCallback||"jsonp"+pb++;if(e.data)e.data=(e.data+"").replace(N,"="+i+"$1");e.url=e.url.replace(N,"="+i+"$1");e.dataType="script";z[i]=z[i]||function(q){n=q;b();d();z[i]=v;try{delete z[i]}catch(p){}A&&A.removeChild(B)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===false&&m==="GET"){var s=J(),x=e.url.replace(tb,"$1_="+s+"$2");e.url=x+(x===e.url?(ja.test(e.url)?"&":"?")+"_="+s:"")}if(e.data&&m==="GET")e.url+=(ja.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&
|
||||||
|
c.event.trigger("ajaxStart");s=(s=ub.exec(e.url))&&(s[1]&&s[1]!==location.protocol||s[2]!==location.host);if(e.dataType==="script"&&m==="GET"&&s){var A=r.getElementsByTagName("head")[0]||r.documentElement,B=r.createElement("script");B.src=e.url;if(e.scriptCharset)B.charset=e.scriptCharset;if(!i){var C=false;B.onload=B.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;b();d();B.onload=B.onreadystatechange=null;A&&B.parentNode&&
|
||||||
|
A.removeChild(B)}}}A.insertBefore(B,A.firstChild);return v}var E=false,w=e.xhr();if(w){e.username?w.open(m,e.url,e.async,e.username,e.password):w.open(m,e.url,e.async);try{if(e.data||a&&a.contentType)w.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[e.url]);c.etag[e.url]&&w.setRequestHeader("If-None-Match",c.etag[e.url])}s||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",
|
||||||
|
e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(fa){}if(e.beforeSend&&e.beforeSend.call(o,w,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");w.abort();return false}e.global&&f("ajaxSend",[w,e]);var g=w.onreadystatechange=function(q){if(!w||w.readyState===0||q==="abort"){E||d();E=true;if(w)w.onreadystatechange=c.noop}else if(!E&&w&&(w.readyState===4||q==="timeout")){E=true;w.onreadystatechange=c.noop;j=q==="timeout"?"timeout":!c.httpSuccess(w)?
|
||||||
|
"error":e.ifModified&&c.httpNotModified(w,e.url)?"notmodified":"success";var p;if(j==="success")try{n=c.httpData(w,e.dataType,e)}catch(u){j="parsererror";p=u}if(j==="success"||j==="notmodified")i||b();else c.handleError(e,w,j,p);d();q==="timeout"&&w.abort();if(e.async)w=null}};try{var h=w.abort;w.abort=function(){w&&h.call(w);g("abort")}}catch(k){}e.async&&e.timeout>0&&setTimeout(function(){w&&!E&&g("timeout")},e.timeout);try{w.send(m==="POST"||m==="PUT"||m==="DELETE"?e.data:null)}catch(l){c.handleError(e,
|
||||||
|
w,null,l);d()}e.async||g();return w}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=
|
||||||
|
f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(j,n){if(c.isArray(n))c.each(n,
|
||||||
|
function(o,m){b?f(j,m):d(j+"["+(typeof m==="object"||c.isArray(m)?o:"")+"]",m)});else!b&&n!=null&&typeof n==="object"?c.each(n,function(o,m){d(j+"["+o+"]",m)}):f(j,n)}function f(j,n){n=c.isFunction(n)?n():n;e[e.length]=encodeURIComponent(j)+"="+encodeURIComponent(n)}var e=[];if(b===v)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var i in a)d(i,a[i]);return e.join("&").replace(vb,"+")}});var ka={},wb=/toggle|show|hide/,xb=/^([+-]=)?([\d+-.]+)(.*)$/,
|
||||||
|
W,ta=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(ka[d])f=ka[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();
|
||||||
|
ka[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&
|
||||||
|
c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var i=c.extend({},e),j,n=this.nodeType===1&&c(this).is(":hidden"),
|
||||||
|
o=this;for(j in a){var m=j.replace(ha,ia);if(j!==m){a[m]=a[j];delete a[j];j=m}if(a[j]==="hide"&&n||a[j]==="show"&&!n)return i.complete.call(this);if((j==="height"||j==="width")&&this.style){i.display=c.css(this,"display");i.overflow=this.style.overflow}if(c.isArray(a[j])){(i.specialEasing=i.specialEasing||{})[j]=a[j][1];a[j]=a[j][0]}}if(i.overflow!=null)this.style.overflow="hidden";i.curAnim=c.extend({},a);c.each(a,function(s,x){var A=new c.fx(o,i,s);if(wb.test(x))A[x==="toggle"?n?"show":"hide":x](a);
|
||||||
|
else{var B=xb.exec(x),C=A.cur(true)||0;if(B){x=parseFloat(B[2]);var E=B[3]||"px";if(E!=="px"){o.style[s]=(x||1)+E;C=(x||1)/A.cur(true)*C;o.style[s]=C+E}if(B[1])x=(B[1]==="-="?-1:1)*x+C;A.custom(C,x,E)}else A.custom(C,x,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",
|
||||||
|
1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration==="number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,
|
||||||
|
b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==
|
||||||
|
null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(i){return e.step(i)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop===
|
||||||
|
"width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=
|
||||||
|
this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=
|
||||||
|
c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=
|
||||||
|
null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in r.documentElement?function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),
|
||||||
|
f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(s){c.offset.setOffset(this,a,s)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=
|
||||||
|
b,e=b.ownerDocument,i,j=e.documentElement,n=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var o=b.offsetTop,m=b.offsetLeft;(b=b.parentNode)&&b!==n&&b!==j;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;i=e?e.getComputedStyle(b,null):b.currentStyle;o-=b.scrollTop;m-=b.scrollLeft;if(b===d){o+=b.offsetTop;m+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){o+=parseFloat(i.borderTopWidth)||
|
||||||
|
0;m+=parseFloat(i.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&i.overflow!=="visible"){o+=parseFloat(i.borderTopWidth)||0;m+=parseFloat(i.borderLeftWidth)||0}f=i}if(f.position==="relative"||f.position==="static"){o+=n.offsetTop;m+=n.offsetLeft}if(c.offset.supportsFixedPosition&&f.position==="fixed"){o+=Math.max(j.scrollTop,n.scrollTop);m+=Math.max(j.scrollLeft,n.scrollLeft)}return{top:o,left:m}};c.offset={initialize:function(){var a=r.body,b=r.createElement("div"),
|
||||||
|
d,f,e,i=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);
|
||||||
|
d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i;a.removeChild(b);c.offset.initialize=c.noop},
|
||||||
|
bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),i=parseInt(c.curCSS(a,"top",true),10)||0,j=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,d,e);d={top:b.top-e.top+i,left:b.left-
|
||||||
|
e.left+j};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=
|
||||||
|
this.offsetParent||r.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],i;if(!e)return null;if(f!==v)return this.each(function(){if(i=ua(this))i.scrollTo(!a?f:c(i).scrollLeft(),a?f:c(i).scrollTop());else this[d]=f});else return(i=ua(e))?"pageXOffset"in i?i[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&i.document.documentElement[d]||i.document.body[d]:e[d]}});
|
||||||
|
c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(i){var j=c(this);j[d](f.call(this,i,j[d]()))});return"scrollTo"in e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||
|
||||||
|
e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===v?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});z.jQuery=z.$=c})(window);
|
5999
oxjs/build/js/jquery-1.4.js
vendored
Normal file
151
oxjs/build/js/jquery-1.4.min.js
vendored
Normal file
|
@ -0,0 +1,151 @@
|
||||||
|
/*!
|
||||||
|
* jQuery JavaScript Library v1.4
|
||||||
|
* http://jquery.com/
|
||||||
|
*
|
||||||
|
* Copyright 2010, John Resig
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://docs.jquery.com/License
|
||||||
|
*
|
||||||
|
* Includes Sizzle.js
|
||||||
|
* http://sizzlejs.com/
|
||||||
|
* Copyright 2010, The Dojo Foundation
|
||||||
|
* Released under the MIT, BSD, and GPL Licenses.
|
||||||
|
*
|
||||||
|
* Date: Wed Jan 13 15:23:05 2010 -0500
|
||||||
|
*/
|
||||||
|
(function(A,w){function oa(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(oa,1);return}c.ready()}}function La(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function $(a,b,d,f,e,i){var j=a.length;if(typeof b==="object"){for(var o in b)$(a,o,b[o],f,e,d);return a}if(d!==w){f=!i&&f&&c.isFunction(d);for(o=0;o<j;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,i);return a}return j?
|
||||||
|
e(a[0],b):null}function K(){return(new Date).getTime()}function aa(){return false}function ba(){return true}function pa(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function qa(a){var b=true,d=[],f=[],e=arguments,i,j,o,p,n,t=c.extend({},c.data(this,"events").live);for(p in t){j=t[p];if(j.live===a.type||j.altLive&&c.inArray(a.type,j.altLive)>-1){i=j.data;i.beforeFilter&&i.beforeFilter[a.type]&&!i.beforeFilter[a.type](a)||f.push(j.selector)}else delete t[p]}i=c(a.target).closest(f,a.currentTarget);
|
||||||
|
n=0;for(l=i.length;n<l;n++)for(p in t){j=t[p];o=i[n].elem;f=null;if(i[n].selector===j.selector){if(j.live==="mouseenter"||j.live==="mouseleave")f=c(a.relatedTarget).closest(j.selector)[0];if(!f||f!==o)d.push({elem:o,fn:j})}}n=0;for(l=d.length;n<l;n++){i=d[n];a.currentTarget=i.elem;a.data=i.fn.data;if(i.fn.apply(i.elem,e)===false){b=false;break}}return b}function ra(a,b){return["live",a,b.replace(/\./g,"`").replace(/ /g,"&")].join(".")}function sa(a){return!a||!a.parentNode||a.parentNode.nodeType===
|
||||||
|
11}function ta(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var i in f)for(var j in f[i])c.event.add(this,i,f[i][j],f[i][j].data)}}})}function ua(a,b,d){var f,e,i;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&a[0].indexOf("<option")<0){e=true;if(i=c.fragments[a[0]])if(i!==1)f=i}if(!f){b=b&&b[0]?b[0].ownerDocument||b[0]:s;f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=
|
||||||
|
i?f:1;return{fragment:f,cacheable:e}}function T(a){for(var b=0,d,f;(d=a[b])!=null;b++)if(!c.noData[d.nodeName.toLowerCase()]&&(f=d[H]))delete c.cache[f]}function L(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ma=A.jQuery,Na=A.$,s=A.document,U,Oa=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Pa=/^.[^:#\[\.,]*$/,Qa=/\S/,
|
||||||
|
Ra=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Sa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],M,ca=Object.prototype.toString,da=Object.prototype.hasOwnProperty,ea=Array.prototype.push,R=Array.prototype.slice,V=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(typeof a==="string")if((d=Oa.exec(a))&&(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Sa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];
|
||||||
|
c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=ua([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return U.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a)}else return!b||b.jquery?(b||U).find(a):c(b).find(a);else if(c.isFunction(a))return U.ready(a);if(a.selector!==w){this.selector=a.selector;
|
||||||
|
this.context=a.context}return c.isArray(a)?this.setArray(a):c.makeArray(a,this)},selector:"",jquery:"1.4",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){a=c(a||null);a.prevObject=this;a.context=this.context;if(b==="find")a.selector=this.selector+(this.selector?" ":"")+d;else if(b)a.selector=this.selector+"."+b+"("+d+")";return a},setArray:function(a){this.length=
|
||||||
|
0;ea.apply(this,a);return this},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||
|
||||||
|
c(null)},push:ea,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,i,j,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(i in e){j=a[i];o=e[i];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){j=j&&(c.isPlainObject(j)||c.isArray(j))?j:c.isArray(o)?[]:{};a[i]=c.extend(f,j,o)}else if(o!==w)a[i]=
|
||||||
|
o}return a};c.extend({noConflict:function(a){A.$=Na;if(a)A.jQuery=Ma;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",M,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",
|
||||||
|
M);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&oa()}}},isFunction:function(a){return ca.call(a)==="[object Function]"},isArray:function(a){return ca.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||ca.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!da.call(a,"constructor")&&!da.call(a.constructor.prototype,"isPrototypeOf"))return false;var b;for(b in a);return b===w||da.call(a,b)},
|
||||||
|
isEmptyObject:function(a){for(var b in a)return false;return true},noop:function(){},globalEval:function(a){if(a&&Qa.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,i=a.length,j=i===w||c.isFunction(a);
|
||||||
|
if(d)if(j)for(f in a){if(b.apply(a[f],d)===false)break}else for(;e<i;){if(b.apply(a[e++],d)===false)break}else if(j)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<i&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Ra,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ea.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=
|
||||||
|
0,f=b.length;d<f;d++)if(b[d]===a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,i=a.length;e<i;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,i=0,j=a.length;i<j;i++){e=b(a[i],i,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b===
|
||||||
|
"string"){d=a;a=d[b];b=w}else if(b&&!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){var b={browser:""};a=a.toLowerCase();if(/webkit/.test(a))b={browser:"webkit",version:/webkit[\/ ]([\w.]+)/};else if(/opera/.test(a))b={browser:"opera",version:/version/.test(a)?/version[\/ ]([\w.]+)/:/opera[\/ ]([\w.]+)/};else if(/msie/.test(a))b={browser:"msie",version:/msie ([\w.]+)/};else if(/mozilla/.test(a)&&
|
||||||
|
!/compatible/.test(a))b={browser:"mozilla",version:/rv:([\w.]+)/};b.version=(b.version&&b.version.exec(a)||[0,"0"])[1];return b},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=true;if(V)c.inArray=function(a,b){return V.call(b,a)};U=c(s);if(s.addEventListener)M=function(){s.removeEventListener("DOMContentLoaded",M,false);c.ready()};else if(s.attachEvent)M=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",
|
||||||
|
M);c.ready()}};if(V)c.inArray=function(a,b){return V.call(b,a)};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+K();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=d.getElementsByTagName("*"),i=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!i)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,
|
||||||
|
htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(i.getAttribute("style")),hrefNormalized:i.getAttribute("href")==="/a",opacity:/^0.55$/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(j){}a.insertBefore(b,
|
||||||
|
a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function o(){c.support.noCloneEvent=false;d.detachEvent("onclick",o)});d.cloneNode(true).fireEvent("onclick")}c(function(){var o=s.createElement("div");o.style.width=o.style.paddingLeft="1px";s.body.appendChild(o);c.boxModel=c.support.boxModel=o.offsetWidth===2;s.body.removeChild(o).style.display="none"});a=function(o){var p=s.createElement("div");o="on"+o;var n=o in
|
||||||
|
p;if(!n){p.setAttribute(o,"return;");n=typeof p[o]==="function"}return n};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=i=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var H="jQuery"+K(),Ta=0,ya={},Ua={};c.extend({cache:{},expando:H,noData:{embed:true,object:true,applet:true},data:function(a,
|
||||||
|
b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?ya:a;var f=a[H],e=c.cache;if(!b&&!f)return null;f||(f=++Ta);if(typeof b==="object"){a[H]=f;e=e[f]=c.extend(true,{},b)}else e=e[f]?e[f]:typeof d==="undefined"?Ua:(e[f]={});if(d!==w){a[H]=f;e[b]=d}return typeof b==="string"?e[b]:e}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?ya:a;var d=a[H],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{try{delete a[H]}catch(i){a.removeAttribute&&
|
||||||
|
a.removeAttribute(H)}delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,
|
||||||
|
a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,
|
||||||
|
a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var za=/[\n\t]/g,fa=/\s+/,Va=/\r/g,Wa=/href|src|style/,Xa=/(button|input)/i,Ya=/(button|input|object|select|textarea)/i,Za=/^(a|area)$/i,Aa=/radio|checkbox/;c.fn.extend({attr:function(a,
|
||||||
|
b){return $(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(p){var n=c(this);n.addClass(a.call(this,p,n.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(fa),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className)for(var i=" "+e.className+" ",j=0,o=b.length;j<o;j++){if(i.indexOf(" "+b[j]+" ")<0)e.className+=
|
||||||
|
" "+b[j]}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(p){var n=c(this);n.removeClass(a.call(this,p,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(fa),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var i=(" "+e.className+" ").replace(za," "),j=0,o=b.length;j<o;j++)i=i.replace(" "+b[j]+" "," ");e.className=i.substring(1,i.length-1)}else e.className=""}return this},toggleClass:function(a,
|
||||||
|
b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var i=c(this);i.toggleClass(a.call(this,e,i.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,i=0,j=c(this),o=b,p=a.split(fa);e=p[i++];){o=f?o:!j.hasClass(e);j[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=
|
||||||
|
" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(za," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var i=b?d:0;for(d=b?d+1:e.length;i<d;i++){var j=e[i];if(j.selected){a=c(j).val();if(b)return a;f.push(a)}}return f}if(Aa.test(b.type)&&
|
||||||
|
!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Va,"")}return w}var o=c.isFunction(a);return this.each(function(p){var n=c(this),t=a;if(this.nodeType===1){if(o)t=a.call(this,p,n.val());if(typeof t==="number")t+="";if(c.isArray(t)&&Aa.test(this.type))this.checked=c.inArray(n.val(),t)>=0;else if(c.nodeName(this,"select")){var z=c.makeArray(t);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),z)>=0});if(!z.length)this.selectedIndex=
|
||||||
|
-1}else this.value=t}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var i=Wa.test(b);if(b in a&&f&&!i){if(e){if(b==="type"&&Xa.test(a.nodeName)&&a.parentNode)throw"type property can't be changed";a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;
|
||||||
|
if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:Ya.test(a.nodeName)||Za.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&i?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var $a=function(a){return a.replace(/[^\w\s\.\|`]/g,function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===
|
||||||
|
3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;if(!d.guid)d.guid=c.guid++;if(f!==w){d=c.proxy(d);d.data=f}var e=c.data(a,"events")||c.data(a,"events",{}),i=c.data(a,"handle"),j;if(!i){j=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(j.elem,arguments):w};i=c.data(a,"handle",j)}if(i){i.elem=a;b=b.split(/\s+/);for(var o,p=0;o=b[p++];){var n=o.split(".");o=n.shift();d.type=n.slice(0).sort().join(".");var t=e[o],z=this.special[o]||{};if(!t){t=e[o]={};
|
||||||
|
if(!z.setup||z.setup.call(a,f,n,d)===false)if(a.addEventListener)a.addEventListener(o,i,false);else a.attachEvent&&a.attachEvent("on"+o,i)}if(z.add)if((n=z.add.call(a,d,f,n,t))&&c.isFunction(n)){n.guid=n.guid||d.guid;d=n}t[d.guid]=d;this.global[o]=true}a=null}}},global:{},remove:function(a,b,d){if(!(a.nodeType===3||a.nodeType===8)){var f=c.data(a,"events"),e,i,j;if(f){if(b===w||typeof b==="string"&&b.charAt(0)===".")for(i in f)this.remove(a,i+(b||""));else{if(b.type){d=b.handler;b=b.type}b=b.split(/\s+/);
|
||||||
|
for(var o=0;i=b[o++];){var p=i.split(".");i=p.shift();var n=!p.length,t=c.map(p.slice(0).sort(),$a);t=new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.)?")+"(\\.|$)");var z=this.special[i]||{};if(f[i]){if(d){j=f[i][d.guid];delete f[i][d.guid]}else for(var B in f[i])if(n||t.test(f[i][B].type))delete f[i][B];z.remove&&z.remove.call(a,p,j);for(e in f[i])break;if(!e){if(!z.teardown||z.teardown.call(a,p)===false)if(a.removeEventListener)a.removeEventListener(i,c.data(a,"handle"),false);else a.detachEvent&&a.detachEvent("on"+
|
||||||
|
i,c.data(a,"handle"));e=null;delete f[i]}}}}for(e in f)break;if(!e){if(B=c.data(a,"handle"))B.elem=null;c.removeData(a,"events");c.removeData(a,"handle")}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[H]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();this.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===
|
||||||
|
8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;var i=c.data(d,"handle");i&&i.apply(d,b);var j,o;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()])){j=d[e];o=d["on"+e]}}catch(p){}i=c.nodeName(d,"a")&&e==="click";if(!f&&j&&!a.isDefaultPrevented()&&!i){this.triggered=true;try{d[e]()}catch(n){}}else if(o&&d["on"+e].apply(d,b)===false)a.result=false;this.triggered=false;if(!a.isPropagationStopped())(d=d.parentNode||d.ownerDocument)&&c.event.trigger(a,b,d,true)},
|
||||||
|
handle:function(a){var b,d;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;d=a.type.split(".");a.type=d.shift();b=!d.length&&!a.exclusive;var f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)");d=(c.data(this,"events")||{})[a.type];for(var e in d){var i=d[e];if(b||f.test(i.type)){a.handler=i;a.data=i.data;i=i.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}return a.result},
|
||||||
|
props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[H])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||
|
||||||
|
s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&
|
||||||
|
a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a,b){c.extend(a,b||{});a.guid+=b.selector+b.live;c.event.add(this,b.live,qa,b)},remove:function(a){if(a.length){var b=0,d=new RegExp("(^|\\.)"+a[0]+"(\\.|$)");c.each(c.data(this,"events").live||{},function(){d.test(this.type)&&b++});b<1&&c.event.remove(this,a[0],qa)}},special:{}},beforeunload:{setup:function(a,
|
||||||
|
b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=K();this[H]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ba;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=
|
||||||
|
ba;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ba;this.stopPropagation()},isDefaultPrevented:aa,isPropagationStopped:aa,isImmediatePropagationStopped:aa};var Ba=function(a){for(var b=a.relatedTarget;b&&b!==this;)try{b=b.parentNode}catch(d){break}if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}},Ca=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",
|
||||||
|
mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ca:Ba,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ca:Ba)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(a,b,d){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="submit"||i==="image")&&c(e).closest("form").length)return pa("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit."+
|
||||||
|
d.guid,function(f){var e=f.target,i=e.type;if((i==="text"||i==="password")&&c(e).closest("form").length&&f.keyCode===13)return pa("submit",this,arguments)})}else return false},remove:function(a,b){c.event.remove(this,"click.specialSubmit"+(b?"."+b.guid:""));c.event.remove(this,"keypress.specialSubmit"+(b?"."+b.guid:""))}};if(!c.support.changeBubbles){var ga=/textarea|input|select/i;function Da(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>
|
||||||
|
-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d}function ha(a,b){var d=a.target,f,e;if(!(!ga.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Da(d);if(e!==f){if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",e);if(d.type!=="select"&&(f!=null||e)){a.type="change";return c.event.trigger(a,b,this)}}}}c.event.special.change={filters:{focusout:ha,click:function(a){var b=a.target,d=b.type;if(d===
|
||||||
|
"radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return ha.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return ha.call(this,a)},beforeactivate:function(a){a=a.target;a.nodeName.toLowerCase()==="input"&&a.type==="radio"&&c.data(a,"_change_data",Da(a))}},setup:function(a,b,d){for(var f in W)c.event.add(this,f+".specialChange."+d.guid,W[f]);return ga.test(this.nodeName)},
|
||||||
|
remove:function(a,b){for(var d in W)c.event.remove(this,d+".specialChange"+(b?"."+b.guid:""),W[d]);return ga.test(this.nodeName)}};var W=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,
|
||||||
|
f,e){if(typeof d==="object"){for(var i in d)this[b](i,f,d[i],e);return this}if(c.isFunction(f)){thisObject=e;e=f;f=w}var j=b==="one"?c.proxy(e,function(o){c(this).unbind(o,j);return e.apply(this,arguments)}):e;return d==="unload"&&b!=="one"?this.one(d,f,e,thisObject):this.each(function(){c.event.add(this,d,j,f)})}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault){for(var d in a)this.unbind(d,a[d]);return this}return this.each(function(){c.event.remove(this,a,b)})},trigger:function(a,
|
||||||
|
b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||
|
||||||
|
a)},live:function(a,b,d){if(c.isFunction(b)){d=b;b=w}c(this.context).bind(ra(a,this.selector),{data:b,selector:this.selector,live:a},d);return this},die:function(a,b){c(this.context).unbind(ra(a,this.selector),b?{guid:b.guid+this.selector+a}:null);return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d){return d?
|
||||||
|
this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",k,m=0;g[m];m++){k=g[m];if(k.nodeType===3||k.nodeType===4)h+=k.nodeValue;else if(k.nodeType!==8)h+=a(k.childNodes)}return h}function b(g,h,k,m,r,q){r=0;for(var v=m.length;r<v;r++){var u=m[r];if(u){u=u[g];for(var y=false;u;){if(u.sizcache===
|
||||||
|
k){y=m[u.sizset];break}if(u.nodeType===1&&!q){u.sizcache=k;u.sizset=r}if(u.nodeName.toLowerCase()===h){y=u;break}u=u[g]}m[r]=y}}}function d(g,h,k,m,r,q){r=0;for(var v=m.length;r<v;r++){var u=m[r];if(u){u=u[g];for(var y=false;u;){if(u.sizcache===k){y=m[u.sizset];break}if(u.nodeType===1){if(!q){u.sizcache=k;u.sizset=r}if(typeof h!=="string"){if(u===h){y=true;break}}else if(p.filter(h,[u]).length>0){y=u;break}}u=u[g]}m[r]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
|
||||||
|
e=0,i=Object.prototype.toString,j=false,o=true;[0,0].sort(function(){o=false;return 0});var p=function(g,h,k,m){k=k||[];var r=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return k;for(var q=[],v,u,y,S,I=true,N=x(h),J=g;(f.exec(""),v=f.exec(J))!==null;){J=v[3];q.push(v[1]);if(v[2]){S=v[3];break}}if(q.length>1&&t.exec(g))if(q.length===2&&n.relative[q[0]])u=ia(q[0]+q[1],h);else for(u=n.relative[q[0]]?[h]:p(q.shift(),h);q.length;){g=q.shift();if(n.relative[g])g+=q.shift();
|
||||||
|
u=ia(g,u)}else{if(!m&&q.length>1&&h.nodeType===9&&!N&&n.match.ID.test(q[0])&&!n.match.ID.test(q[q.length-1])){v=p.find(q.shift(),h,N);h=v.expr?p.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:q.pop(),set:B(m)}:p.find(q.pop(),q.length===1&&(q[0]==="~"||q[0]==="+")&&h.parentNode?h.parentNode:h,N);u=v.expr?p.filter(v.expr,v.set):v.set;if(q.length>0)y=B(u);else I=false;for(;q.length;){var E=q.pop();v=E;if(n.relative[E])v=q.pop();else E="";if(v==null)v=h;n.relative[E](y,v,N)}}else y=[]}y||(y=u);if(!y)throw"Syntax error, unrecognized expression: "+
|
||||||
|
(E||g);if(i.call(y)==="[object Array]")if(I)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&F(h,y[g])))k.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&k.push(u[g]);else k.push.apply(k,y);else B(y,k);if(S){p(S,r,k,m);p.uniqueSort(k)}return k};p.uniqueSort=function(g){if(D){j=o;g.sort(D);if(j)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};p.matches=function(g,h){return p(g,null,null,h)};p.find=function(g,h,k){var m,r;if(!g)return[];
|
||||||
|
for(var q=0,v=n.order.length;q<v;q++){var u=n.order[q];if(r=n.leftMatch[u].exec(g)){var y=r[1];r.splice(1,1);if(y.substr(y.length-1)!=="\\"){r[1]=(r[1]||"").replace(/\\/g,"");m=n.find[u](r,h,k);if(m!=null){g=g.replace(n.match[u],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};p.filter=function(g,h,k,m){for(var r=g,q=[],v=h,u,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var I in n.filter)if((u=n.leftMatch[I].exec(g))!=null&&u[2]){var N=n.filter[I],J,E;E=u[1];y=false;u.splice(1,1);if(E.substr(E.length-
|
||||||
|
1)!=="\\"){if(v===q)q=[];if(n.preFilter[I])if(u=n.preFilter[I](u,v,k,q,m,S)){if(u===true)continue}else y=J=true;if(u)for(var X=0;(E=v[X])!=null;X++)if(E){J=N(E,u,X,v);var Ea=m^!!J;if(k&&J!=null)if(Ea)y=true;else v[X]=false;else if(Ea){q.push(E);y=true}}if(J!==w){k||(v=q);g=g.replace(n.match[I],"");if(!y)return[];break}}}if(g===r)if(y==null)throw"Syntax error, unrecognized expression: "+g;else break;r=g}return v};var n=p.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
|
||||||
|
CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
|
||||||
|
relative:{"+":function(g,h){var k=typeof h==="string",m=k&&!/\W/.test(h);k=k&&!m;if(m)h=h.toLowerCase();m=0;for(var r=g.length,q;m<r;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=k||q&&q.nodeName.toLowerCase()===h?q||false:q===h}k&&p.filter(h,g,true)},">":function(g,h){var k=typeof h==="string";if(k&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,r=g.length;m<r;m++){var q=g[m];if(q){k=q.parentNode;g[m]=k.nodeName.toLowerCase()===h?k:false}}}else{m=0;for(r=g.length;m<r;m++)if(q=g[m])g[m]=
|
||||||
|
k?q.parentNode:q.parentNode===h;k&&p.filter(h,g,true)}},"":function(g,h,k){var m=e++,r=d;if(typeof h==="string"&&!/\W/.test(h)){var q=h=h.toLowerCase();r=b}r("parentNode",h,m,g,q,k)},"~":function(g,h,k){var m=e++,r=d;if(typeof h==="string"&&!/\W/.test(h)){var q=h=h.toLowerCase();r=b}r("previousSibling",h,m,g,q,k)}},find:{ID:function(g,h,k){if(typeof h.getElementById!=="undefined"&&!k)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var k=[];
|
||||||
|
h=h.getElementsByName(g[1]);for(var m=0,r=h.length;m<r;m++)h[m].getAttribute("name")===g[1]&&k.push(h[m]);return k.length===0?null:k}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,k,m,r,q){g=" "+g[1].replace(/\\/g,"")+" ";if(q)return g;q=0;for(var v;(v=h[q])!=null;q++)if(v)if(r^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))k||m.push(v);else if(k)h[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
|
||||||
|
CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,k,m,r,q){h=g[1].replace(/\\/g,"");if(!q&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,k,m,r){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=p(g[3],null,null,h);else{g=p.filter(g[3],h,k,true^r);k||m.push.apply(m,
|
||||||
|
g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,k){return!!p(k[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
|
||||||
|
text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
|
||||||
|
setFilters:{first:function(g,h){return h===0},last:function(g,h,k,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,k){return h<k[3]-0},gt:function(g,h,k){return h>k[3]-0},nth:function(g,h,k){return k[3]-0===h},eq:function(g,h,k){return k[3]-0===h}},filter:{PSEUDO:function(g,h,k,m){var r=h[1],q=n.filters[r];if(q)return q(g,k,h,m);else if(r==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(r==="not"){h=
|
||||||
|
h[3];k=0;for(m=h.length;k<m;k++)if(h[k]===g)return false;return true}else throw"Syntax error, unrecognized expression: "+r;},CHILD:function(g,h){var k=h[1],m=g;switch(k){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(k==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":k=h[2];var r=h[3];if(k===1&&r===0)return true;h=h[0];var q=g.parentNode;if(q&&(q.sizcache!==h||!g.nodeIndex)){var v=0;for(m=q.firstChild;m;m=
|
||||||
|
m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;q.sizcache=h}g=g.nodeIndex-r;return k===0?g===0:g%k===0&&g/k>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var k=h[1];g=n.attrHandle[k]?n.attrHandle[k](g):g[k]!=null?g[k]:g.getAttribute(k);k=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
|
||||||
|
"="?k===h:m==="*="?k.indexOf(h)>=0:m==="~="?(" "+k+" ").indexOf(h)>=0:!h?k&&g!==false:m==="!="?k!==h:m==="^="?k.indexOf(h)===0:m==="$="?k.substr(k.length-h.length)===h:m==="|="?k===h||k.substr(0,h.length+1)===h+"-":false},POS:function(g,h,k,m){var r=n.setFilters[h[2]];if(r)return r(g,k,h,m)}}},t=n.match.POS;for(var z in n.match){n.match[z]=new RegExp(n.match[z].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[z]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[z].source.replace(/\\(\d+)/g,function(g,
|
||||||
|
h){return"\\"+(h-0+1)}))}var B=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){B=function(g,h){h=h||[];if(i.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var k=0,m=g.length;k<m;k++)h.push(g[k]);else for(k=0;g[k];k++)h.push(g[k]);return h}}var D;if(s.documentElement.compareDocumentPosition)D=function(g,h){if(!g.compareDocumentPosition||
|
||||||
|
!h.compareDocumentPosition){if(g==h)j=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)j=true;return g};else if("sourceIndex"in s.documentElement)D=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)j=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)j=true;return g};else if(s.createRange)D=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)j=true;return g.ownerDocument?-1:1}var k=g.ownerDocument.createRange(),m=
|
||||||
|
h.ownerDocument.createRange();k.setStart(g,0);k.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=k.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)j=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var k=s.documentElement;k.insertBefore(g,k.firstChild);if(s.getElementById(h)){n.find.ID=function(m,r,q){if(typeof r.getElementById!=="undefined"&&!q)return(r=r.getElementById(m[1]))?r.id===m[1]||typeof r.getAttributeNode!=="undefined"&&
|
||||||
|
r.getAttributeNode("id").nodeValue===m[1]?[r]:w:[]};n.filter.ID=function(m,r){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===r}}k.removeChild(g);k=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,k){k=k.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;k[m];m++)k[m].nodeType===1&&h.push(k[m]);k=h}return k};g.innerHTML="<a href='#'></a>";
|
||||||
|
if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=p,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){p=function(m,r,q,v){r=r||s;if(!v&&r.nodeType===9&&!x(r))try{return B(r.querySelectorAll(m),q)}catch(u){}return g(m,r,q,v)};for(var k in g)p[k]=g[k];h=null}}();
|
||||||
|
(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,k,m){if(typeof k.getElementsByClassName!=="undefined"&&!m)return k.getElementsByClassName(h[1])};g=null}}})();var F=s.compareDocumentPosition?function(g,h){return g.compareDocumentPosition(h)&16}:function(g,
|
||||||
|
h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ia=function(g,h){var k=[],m="",r;for(h=h.nodeType?[h]:h;r=n.match.PSEUDO.exec(g);){m+=r[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;r=0;for(var q=h.length;r<q;r++)p(g,h[r],k);return p.filter(m,k)};c.find=p;c.expr=p.selectors;c.expr[":"]=c.expr.filters;c.unique=p.uniqueSort;c.getText=a;c.isXMLDoc=x;c.contains=F})();var ab=/Until$/,bb=/^(?:parents|prevUntil|prevAll)/,
|
||||||
|
cb=/,/;R=Array.prototype.slice;var Fa=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,i){return!!b.call(e,i,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Pa.test(b))return c.filter(b,f,!d);else b=c.filter(b,a)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
|
||||||
|
c.find(a,this[f],b);if(f>0)for(var i=d;i<b.length;i++)for(var j=0;j<d;j++)if(b[j]===b[i]){b.splice(i--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Fa(this,a,false),"not",a)},filter:function(a){return this.pushStack(Fa(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,i=
|
||||||
|
{},j;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){j=a[e];i[j]||(i[j]=c.expr.match.POS.test(j)?c(j,b||this.context):j)}for(;f&&f.ownerDocument&&f!==b;){for(j in i){e=i[j];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:j,elem:f});delete i[j]}}f=f.parentNode}}return d}var p=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,t){for(;t&&t.ownerDocument&&t!==b;){if(p?p.index(t)>-1:c(t).is(a))return t;t=t.parentNode}return null})},index:function(a){if(!a||typeof a===
|
||||||
|
"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(sa(a[0])||sa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
|
||||||
|
d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
|
||||||
|
a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);ab.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||cb.test(f))&&bb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||!c(a).is(d));){a.nodeType===
|
||||||
|
1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ga=/ jQuery\d+="(?:\d+|null)"/g,Y=/^\s+/,db=/(<([\w:]+)[^>]*?)\/>/g,eb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,Ha=/<([\w:]+)/,fb=/<tbody/i,gb=/<|&\w+;/,hb=function(a,b,d){return eb.test(d)?a:b+"></"+d+">"},G={option:[1,"<select multiple='multiple'>","</select>"],
|
||||||
|
legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};G.optgroup=G.option;G.tbody=G.tfoot=G.colgroup=G.caption=G.thead;G.th=G.td;if(!c.support.htmlSerialize)G._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=c(this);
|
||||||
|
return d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.getText(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
|
||||||
|
wrapInner:function(a){return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&
|
||||||
|
this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,
|
||||||
|
"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ga,"").replace(Y,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ta(this,b);ta(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===
|
||||||
|
1?this[0].innerHTML.replace(Ga,""):null;else if(typeof a==="string"&&!/<script/i.test(a)&&(c.support.leadingWhitespace||!Y.test(a))&&!G[(Ha.exec(a)||["",""])[1].toLowerCase()])try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){T(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}else c.isFunction(a)?this.each(function(e){var i=c(this),j=i.html();i.empty().append(function(){return a.call(this,e,j)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
|
||||||
|
this[0].parentNode){c.isFunction(a)||(a=c(a).detach());return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(t){return c.nodeName(t,"table")?t.getElementsByTagName("tbody")[0]||t.appendChild(t.ownerDocument.createElement("tbody")):t}var e,i,j=a[0],o=[];if(c.isFunction(j))return this.each(function(t){var z=
|
||||||
|
c(this);a[0]=j.call(this,t,b?z.html():w);return z.domManip(a,b,d)});if(this[0]){e=a[0]&&a[0].parentNode&&a[0].parentNode.nodeType===11?{fragment:a[0].parentNode}:ua(a,this,o);if(i=e.fragment.firstChild){b=b&&c.nodeName(i,"tr");for(var p=0,n=this.length;p<n;p++)d.call(b?f(this[p],i):this[p],e.cacheable||this.length>1||p>0?e.fragment.cloneNode(true):e.fragment)}o&&c.each(o,La)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},
|
||||||
|
function(a,b){c.fn[a]=function(d){var f=[];d=c(d);for(var e=0,i=d.length;e<i;e++){var j=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),j);f=f.concat(j)}return this.pushStack(f,a,d.selector)}});c.each({remove:function(a,b){if(!a||c.filter(a,[this]).length){if(!b&&this.nodeType===1){T(this.getElementsByTagName("*"));T([this])}this.parentNode&&this.parentNode.removeChild(this)}},empty:function(){for(this.nodeType===1&&T(this.getElementsByTagName("*"));this.firstChild;)this.removeChild(this.firstChild)}},
|
||||||
|
function(a,b){c.fn[a]=function(){return this.each(b,arguments)}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;var e=[];c.each(a,function(i,j){if(typeof j==="number")j+="";if(j){if(typeof j==="string"&&!gb.test(j))j=b.createTextNode(j);else if(typeof j==="string"){j=j.replace(db,hb);var o=(Ha.exec(j)||["",""])[1].toLowerCase(),p=G[o]||G._default,n=p[0];i=b.createElement("div");for(i.innerHTML=p[1]+j+p[2];n--;)i=i.lastChild;
|
||||||
|
if(!c.support.tbody){n=fb.test(j);o=o==="table"&&!n?i.firstChild&&i.firstChild.childNodes:p[1]==="<table>"&&!n?i.childNodes:[];for(p=o.length-1;p>=0;--p)c.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!c.support.leadingWhitespace&&Y.test(j)&&i.insertBefore(b.createTextNode(Y.exec(j)[0]),i.firstChild);j=c.makeArray(i.childNodes)}if(j.nodeType)e.push(j);else e=c.merge(e,j)}});if(d)for(a=0;e[a];a++)if(f&&c.nodeName(e[a],"script")&&(!e[a].type||e[a].type.toLowerCase()===
|
||||||
|
"text/javascript"))f.push(e[a].parentNode?e[a].parentNode.removeChild(e[a]):e[a]);else{e[a].nodeType===1&&e.splice.apply(e,[a+1,0].concat(c.makeArray(e[a].getElementsByTagName("script"))));d.appendChild(e[a])}return e}});var ib=/z-?index|font-?weight|opacity|zoom|line-?height/i,Ia=/alpha\([^)]*\)/,Ja=/opacity=([^)]*)/,ja=/float/i,ka=/-([a-z])/ig,jb=/([A-Z])/g,kb=/^-?\d+(?:px)?$/i,lb=/^-?\d/,mb={position:"absolute",visibility:"hidden",display:"block"},nb=["Left","Right"],ob=["Top","Bottom"],pb=s.defaultView&&
|
||||||
|
s.defaultView.getComputedStyle,Ka=c.support.cssFloat?"cssFloat":"styleFloat",la=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return $(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!ib.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""===
|
||||||
|
"NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=Ia.test(a)?a.replace(Ia,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Ja.exec(f.filter)[1])/100+"":""}if(ja.test(b))b=Ka;b=b.replace(ka,la);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,i=b==="width"?nb:ob;function j(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(i,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=
|
||||||
|
parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,"border"+this+"Width",true))||0})}a.offsetWidth!==0?j():c.swap(a,mb,j);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Ja.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ja.test(b))b=Ka;if(!d&&e&&e[b])f=e[b];else if(pb){if(ja.test(b))b="float";b=b.replace(jb,"-$1").toLowerCase();e=
|
||||||
|
a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ka,la);f=a.currentStyle[b]||a.currentStyle[d];if(!kb.test(f)&&lb.test(f)){b=e.left;var i=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=i}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=
|
||||||
|
f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var qb=K(),rb=/<script(.|\s)*?\/script>/gi,sb=/select|textarea/i,tb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,O=/=\?(&|$)/,ma=/\?/,ub=/(\?|&)_=.*?(&|$)/,vb=/^(\w+:)?\/\/([^\/?#]+)/,
|
||||||
|
wb=/%20/g;c.fn.extend({_load:c.fn.load,load:function(a,b,d){if(typeof a!=="string")return this._load(a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}c.ajax({url:a,type:f,dataType:"html",data:b,context:this,complete:function(i,j){if(j==="success"||j==="notmodified")this.html(e?c("<div />").append(i.responseText.replace(rb,
|
||||||
|
"")).find(e):i.responseText);d&&this.each(d,[i.responseText,j,i])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||sb.test(this.nodeName)||tb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});
|
||||||
|
c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},
|
||||||
|
ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",
|
||||||
|
text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&e.success.call(p,o,j,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(p,x,j);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(r,q){(e.context?c(e.context):c.event).trigger(r,q)}var e=c.extend(true,{},c.ajaxSettings,a),i,j,o,p=e.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,
|
||||||
|
e.traditional);if(e.dataType==="jsonp"){if(n==="GET")O.test(e.url)||(e.url+=(ma.test(e.url)?"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!O.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&O.test(e.data)||O.test(e.url))){i=e.jsonpCallback||"jsonp"+qb++;if(e.data)e.data=(e.data+"").replace(O,"="+i+"$1");e.url=e.url.replace(O,"="+i+"$1");e.dataType="script";A[i]=A[i]||function(r){o=r;b();d();A[i]=w;try{delete A[i]}catch(q){}B&&
|
||||||
|
B.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===false&&n==="GET"){var t=K(),z=e.url.replace(ub,"$1_="+t+"$2");e.url=z+(z===e.url?(ma.test(e.url)?"&":"?")+"_="+t:"")}if(e.data&&n==="GET")e.url+=(ma.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");t=(t=vb.exec(e.url))&&(t[1]&&t[1]!==location.protocol||t[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&t){var B=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");
|
||||||
|
C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!i){var D=false;C.onload=C.onreadystatechange=function(){if(!D&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){D=true;b();d();C.onload=C.onreadystatechange=null;B&&C.parentNode&&B.removeChild(C)}}}B.insertBefore(C,B.firstChild);return w}var F=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",
|
||||||
|
e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}t||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ia){}if(e.beforeSend&&e.beforeSend.call(p,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",
|
||||||
|
[x,e]);var g=x.onreadystatechange=function(r){if(!x||x.readyState===0){F||d();F=true;if(x)x.onreadystatechange=c.noop}else if(!F&&x&&(x.readyState===4||r==="timeout")){F=true;x.onreadystatechange=c.noop;j=r==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";if(j==="success")try{o=c.httpData(x,e.dataType,e)}catch(q){j="parsererror"}if(j==="success"||j==="notmodified")i||b();else c.handleError(e,x,j);d();r==="timeout"&&x.abort();if(e.async)x=
|
||||||
|
null}};try{var h=x.abort;x.abort=function(){if(x){h.call(x);if(x)x.readyState=0}g()}}catch(k){}e.async&&e.timeout>0&&setTimeout(function(){x&&!F&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||A,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol===
|
||||||
|
"file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;if(e&&a.documentElement.nodeName==="parsererror")throw"parsererror";if(d&&
|
||||||
|
d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&f.indexOf("json")>=0)if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))a=A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+a))();else throw"Invalid JSON: "+a;else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(e,i){i=
|
||||||
|
c.isFunction(i)?i():i;f[f.length]=encodeURIComponent(e)+"="+encodeURIComponent(i)}var f=[];if(b===w)b=c.ajaxSettings.traditional;c.isArray(a)||a.jquery?c.each(a,function(){d(this.name,this.value)}):c.each(a,function e(i,j){if(c.isArray(j))c.each(j,function(o,p){b?d(i,p):e(i+"["+(typeof p==="object"||c.isArray(p)?o:"")+"]",p)});else!b&&j!=null&&typeof j==="object"?c.each(j,function(o,p){e(i+"["+o+"]",p)}):d(i,j)});return f.join("&").replace(wb,"+")}});var na={},xb=/toggle|show|hide/,yb=/^([+-]=)?([\d+-.]+)(.*)$/,
|
||||||
|
Z,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a!=null)return this.animate(L("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(na[d])f=na[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();
|
||||||
|
na[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a!=null)return this.animate(L("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&
|
||||||
|
c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(L("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var i=c.extend({},e),j,o=this.nodeType===1&&c(this).is(":hidden"),
|
||||||
|
p=this;for(j in a){var n=j.replace(ka,la);if(j!==n){a[n]=a[j];delete a[j];j=n}if(a[j]==="hide"&&o||a[j]==="show"&&!o)return i.complete.call(this);if((j==="height"||j==="width")&&this.style){i.display=c.css(this,"display");i.overflow=this.style.overflow}if(c.isArray(a[j])){(i.specialEasing=i.specialEasing||{})[j]=a[j][1];a[j]=a[j][0]}}if(i.overflow!=null)this.style.overflow="hidden";i.curAnim=c.extend({},a);c.each(a,function(t,z){var B=new c.fx(p,i,t);if(xb.test(z))B[z==="toggle"?o?"show":"hide":z](a);
|
||||||
|
else{var C=yb.exec(z),D=B.cur(true)||0;if(C){z=parseFloat(C[2]);var F=C[3]||"px";if(F!=="px"){p.style[t]=(z||1)+F;D=(z||1)/B.cur(true)*D;p.style[t]=D+F}if(C[1])z=(C[1]==="-="?-1:1)*z+D;B.custom(D,z,F)}else B.custom(D,z,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:L("show",1),slideUp:L("hide",1),slideToggle:L("toggle",
|
||||||
|
1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration==="number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,
|
||||||
|
b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==
|
||||||
|
null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(i){return e.step(i)}this.startTime=K();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!Z)Z=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop===
|
||||||
|
"width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=K(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=
|
||||||
|
this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=
|
||||||
|
c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},stop:function(){clearInterval(Z);Z=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=
|
||||||
|
null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?function(a){var b=this[0];if(!b||!b.ownerDocument)return null;if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),
|
||||||
|
f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(!b||!b.ownerDocument)return null;if(a)return this.each(function(t){c.offset.setOffset(this,a,t)});if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=
|
||||||
|
b,e=b.ownerDocument,i,j=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var p=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==j;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;i=e?e.getComputedStyle(b,null):b.currentStyle;p-=b.scrollTop;n-=b.scrollLeft;if(b===d){p+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){p+=parseFloat(i.borderTopWidth)||
|
||||||
|
0;n+=parseFloat(i.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&i.overflow!=="visible"){p+=parseFloat(i.borderTopWidth)||0;n+=parseFloat(i.borderLeftWidth)||0}f=i}if(f.position==="relative"||f.position==="static"){p+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&f.position==="fixed"){p+=Math.max(j.scrollTop,o.scrollTop);n+=Math.max(j.scrollLeft,o.scrollLeft)}return{top:p,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),
|
||||||
|
d,f,e,i=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);
|
||||||
|
d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i;a.removeChild(b);c.offset.initialize=c.noop},
|
||||||
|
bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),i=parseInt(c.curCSS(a,"top",true),10)||0,j=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,d,e);d={top:b.top-e.top+i,left:b.left-
|
||||||
|
e.left+j};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=
|
||||||
|
this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],i;if(!e)return null;if(f!==w)return this.each(function(){if(i=wa(this))i.scrollTo(!a?f:c(i).scrollLeft(),a?f:c(i).scrollTop());else this[d]=f});else return(i=wa(e))?"pageXOffset"in i?i[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&i.document.documentElement[d]||i.document.body[d]:e[d]}});
|
||||||
|
c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;return"scrollTo"in e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+
|
||||||
|
b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);
|
479
oxjs/build/js/json2.js
Normal file
|
@ -0,0 +1,479 @@
|
||||||
|
/*
|
||||||
|
http://www.JSON.org/json2.js
|
||||||
|
2009-09-29
|
||||||
|
|
||||||
|
Public Domain.
|
||||||
|
|
||||||
|
NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
|
||||||
|
|
||||||
|
See http://www.JSON.org/js.html
|
||||||
|
|
||||||
|
This file creates a global JSON object containing two methods: stringify
|
||||||
|
and parse.
|
||||||
|
|
||||||
|
JSON.stringify(value, replacer, space)
|
||||||
|
value any JavaScript value, usually an object or array.
|
||||||
|
|
||||||
|
replacer an optional parameter that determines how object
|
||||||
|
values are stringified for objects. It can be a
|
||||||
|
function or an array of strings.
|
||||||
|
|
||||||
|
space an optional parameter that specifies the indentation
|
||||||
|
of nested structures. If it is omitted, the text will
|
||||||
|
be packed without extra whitespace. If it is a number,
|
||||||
|
it will specify the number of spaces to indent at each
|
||||||
|
level. If it is a string (such as '\t' or ' '),
|
||||||
|
it contains the characters used to indent at each level.
|
||||||
|
|
||||||
|
This method produces a JSON text from a JavaScript value.
|
||||||
|
|
||||||
|
When an object value is found, if the object contains a toJSON
|
||||||
|
method, its toJSON method will be called and the result will be
|
||||||
|
stringified. A toJSON method does not serialize: it returns the
|
||||||
|
value represented by the name/value pair that should be serialized,
|
||||||
|
or undefined if nothing should be serialized. The toJSON method
|
||||||
|
will be passed the key associated with the value, and this will be
|
||||||
|
bound to the value
|
||||||
|
|
||||||
|
For example, this would serialize Dates as ISO strings.
|
||||||
|
|
||||||
|
Date.prototype.toJSON = function (key) {
|
||||||
|
function f(n) {
|
||||||
|
// Format integers to have at least two digits.
|
||||||
|
return n < 10 ? '0' + n : n;
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.getUTCFullYear() + '-' +
|
||||||
|
f(this.getUTCMonth() + 1) + '-' +
|
||||||
|
f(this.getUTCDate()) + 'T' +
|
||||||
|
f(this.getUTCHours()) + ':' +
|
||||||
|
f(this.getUTCMinutes()) + ':' +
|
||||||
|
f(this.getUTCSeconds()) + 'Z';
|
||||||
|
};
|
||||||
|
|
||||||
|
You can provide an optional replacer method. It will be passed the
|
||||||
|
key and value of each member, with this bound to the containing
|
||||||
|
object. The value that is returned from your method will be
|
||||||
|
serialized. If your method returns undefined, then the member will
|
||||||
|
be excluded from the serialization.
|
||||||
|
|
||||||
|
If the replacer parameter is an array of strings, then it will be
|
||||||
|
used to select the members to be serialized. It filters the results
|
||||||
|
such that only members with keys listed in the replacer array are
|
||||||
|
stringified.
|
||||||
|
|
||||||
|
Values that do not have JSON representations, such as undefined or
|
||||||
|
functions, will not be serialized. Such values in objects will be
|
||||||
|
dropped; in arrays they will be replaced with null. You can use
|
||||||
|
a replacer function to replace those with JSON values.
|
||||||
|
JSON.stringify(undefined) returns undefined.
|
||||||
|
|
||||||
|
The optional space parameter produces a stringification of the
|
||||||
|
value that is filled with line breaks and indentation to make it
|
||||||
|
easier to read.
|
||||||
|
|
||||||
|
If the space parameter is a non-empty string, then that string will
|
||||||
|
be used for indentation. If the space parameter is a number, then
|
||||||
|
the indentation will be that many spaces.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
text = JSON.stringify(['e', {pluribus: 'unum'}]);
|
||||||
|
// text is '["e",{"pluribus":"unum"}]'
|
||||||
|
|
||||||
|
|
||||||
|
text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t');
|
||||||
|
// text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'
|
||||||
|
|
||||||
|
text = JSON.stringify([new Date()], function (key, value) {
|
||||||
|
return this[key] instanceof Date ?
|
||||||
|
'Date(' + this[key] + ')' : value;
|
||||||
|
});
|
||||||
|
// text is '["Date(---current time---)"]'
|
||||||
|
|
||||||
|
|
||||||
|
JSON.parse(text, reviver)
|
||||||
|
This method parses a JSON text to produce an object or array.
|
||||||
|
It can throw a SyntaxError exception.
|
||||||
|
|
||||||
|
The optional reviver parameter is a function that can filter and
|
||||||
|
transform the results. It receives each of the keys and values,
|
||||||
|
and its return value is used instead of the original value.
|
||||||
|
If it returns what it received, then the structure is not modified.
|
||||||
|
If it returns undefined then the member is deleted.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
// Parse the text. Values that look like ISO date strings will
|
||||||
|
// be converted to Date objects.
|
||||||
|
|
||||||
|
myData = JSON.parse(text, function (key, value) {
|
||||||
|
var a;
|
||||||
|
if (typeof value === 'string') {
|
||||||
|
a =
|
||||||
|
/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
|
||||||
|
if (a) {
|
||||||
|
return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
|
||||||
|
+a[5], +a[6]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
});
|
||||||
|
|
||||||
|
myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) {
|
||||||
|
var d;
|
||||||
|
if (typeof value === 'string' &&
|
||||||
|
value.slice(0, 5) === 'Date(' &&
|
||||||
|
value.slice(-1) === ')') {
|
||||||
|
d = new Date(value.slice(5, -1));
|
||||||
|
if (d) {
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
This is a reference implementation. You are free to copy, modify, or
|
||||||
|
redistribute.
|
||||||
|
|
||||||
|
This code should be minified before deployment.
|
||||||
|
See http://javascript.crockford.com/jsmin.html
|
||||||
|
|
||||||
|
USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
|
||||||
|
NOT CONTROL.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*jslint evil: true, strict: false */
|
||||||
|
|
||||||
|
/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
|
||||||
|
call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
|
||||||
|
getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
|
||||||
|
lastIndex, length, parse, prototype, push, replace, slice, stringify,
|
||||||
|
test, toJSON, toString, valueOf
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// Create a JSON object only if one does not already exist. We create the
|
||||||
|
// methods in a closure to avoid creating global variables.
|
||||||
|
|
||||||
|
if (!this.JSON) {
|
||||||
|
this.JSON = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
(function () {
|
||||||
|
|
||||||
|
function f(n) {
|
||||||
|
// Format integers to have at least two digits.
|
||||||
|
return n < 10 ? '0' + n : n;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof Date.prototype.toJSON !== 'function') {
|
||||||
|
|
||||||
|
Date.prototype.toJSON = function (key) {
|
||||||
|
|
||||||
|
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 (key) {
|
||||||
|
return this.valueOf();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
var 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 = { // table of character substitutions
|
||||||
|
'\b': '\\b',
|
||||||
|
'\t': '\\t',
|
||||||
|
'\n': '\\n',
|
||||||
|
'\f': '\\f',
|
||||||
|
'\r': '\\r',
|
||||||
|
'"' : '\\"',
|
||||||
|
'\\': '\\\\'
|
||||||
|
},
|
||||||
|
rep;
|
||||||
|
|
||||||
|
|
||||||
|
function quote(string) {
|
||||||
|
|
||||||
|
// If the string contains no control characters, no quote characters, and no
|
||||||
|
// backslash characters, then we can safely slap some quotes around it.
|
||||||
|
// Otherwise we must also replace the offending characters with safe escape
|
||||||
|
// sequences.
|
||||||
|
|
||||||
|
escapable.lastIndex = 0;
|
||||||
|
return escapable.test(string) ?
|
||||||
|
'"' + string.replace(escapable, function (a) {
|
||||||
|
var c = meta[a];
|
||||||
|
return typeof c === 'string' ? c :
|
||||||
|
'\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
|
||||||
|
}) + '"' :
|
||||||
|
'"' + string + '"';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function str(key, holder) {
|
||||||
|
|
||||||
|
// Produce a string from holder[key].
|
||||||
|
|
||||||
|
var i, // The loop counter.
|
||||||
|
k, // The member key.
|
||||||
|
v, // The member value.
|
||||||
|
length,
|
||||||
|
mind = gap,
|
||||||
|
partial,
|
||||||
|
value = holder[key];
|
||||||
|
|
||||||
|
// If the value has a toJSON method, call it to obtain a replacement value.
|
||||||
|
|
||||||
|
if (value && typeof value === 'object' &&
|
||||||
|
typeof value.toJSON === 'function') {
|
||||||
|
value = value.toJSON(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we were called with a replacer function, then call the replacer to
|
||||||
|
// obtain a replacement value.
|
||||||
|
|
||||||
|
if (typeof rep === 'function') {
|
||||||
|
value = rep.call(holder, key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// What happens next depends on the value's type.
|
||||||
|
|
||||||
|
switch (typeof value) {
|
||||||
|
case 'string':
|
||||||
|
return quote(value);
|
||||||
|
|
||||||
|
case 'number':
|
||||||
|
|
||||||
|
// JSON numbers must be finite. Encode non-finite numbers as null.
|
||||||
|
|
||||||
|
return isFinite(value) ? String(value) : 'null';
|
||||||
|
|
||||||
|
case 'boolean':
|
||||||
|
case 'null':
|
||||||
|
|
||||||
|
// If the value is a boolean or null, convert it to a string. Note:
|
||||||
|
// typeof null does not produce 'null'. The case is included here in
|
||||||
|
// the remote chance that this gets fixed someday.
|
||||||
|
|
||||||
|
return String(value);
|
||||||
|
|
||||||
|
// If the type is 'object', we might be dealing with an object or an array or
|
||||||
|
// null.
|
||||||
|
|
||||||
|
case 'object':
|
||||||
|
|
||||||
|
// Due to a specification blunder in ECMAScript, typeof null is 'object',
|
||||||
|
// so watch out for that case.
|
||||||
|
|
||||||
|
if (!value) {
|
||||||
|
return 'null';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make an array to hold the partial results of stringifying this object value.
|
||||||
|
|
||||||
|
gap += indent;
|
||||||
|
partial = [];
|
||||||
|
|
||||||
|
// Is the value an array?
|
||||||
|
|
||||||
|
if (Object.prototype.toString.apply(value) === '[object Array]') {
|
||||||
|
|
||||||
|
// The value is an array. Stringify every element. Use null as a placeholder
|
||||||
|
// for non-JSON values.
|
||||||
|
|
||||||
|
length = value.length;
|
||||||
|
for (i = 0; i < length; i += 1) {
|
||||||
|
partial[i] = str(i, value) || 'null';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Join all of the elements together, separated with commas, and wrap them in
|
||||||
|
// brackets.
|
||||||
|
|
||||||
|
v = partial.length === 0 ? '[]' :
|
||||||
|
gap ? '[\n' + gap +
|
||||||
|
partial.join(',\n' + gap) + '\n' +
|
||||||
|
mind + ']' :
|
||||||
|
'[' + partial.join(',') + ']';
|
||||||
|
gap = mind;
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the replacer is an array, use it to select the members to be stringified.
|
||||||
|
|
||||||
|
if (rep && typeof rep === 'object') {
|
||||||
|
length = rep.length;
|
||||||
|
for (i = 0; i < length; i += 1) {
|
||||||
|
k = rep[i];
|
||||||
|
if (typeof k === 'string') {
|
||||||
|
v = str(k, value);
|
||||||
|
if (v) {
|
||||||
|
partial.push(quote(k) + (gap ? ': ' : ':') + v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Otherwise, iterate through all of the keys in the object.
|
||||||
|
|
||||||
|
for (k in value) {
|
||||||
|
if (Object.hasOwnProperty.call(value, k)) {
|
||||||
|
v = str(k, value);
|
||||||
|
if (v) {
|
||||||
|
partial.push(quote(k) + (gap ? ': ' : ':') + v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Join all of the member texts together, separated with commas,
|
||||||
|
// and wrap them in braces.
|
||||||
|
|
||||||
|
v = partial.length === 0 ? '{}' :
|
||||||
|
gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' +
|
||||||
|
mind + '}' : '{' + partial.join(',') + '}';
|
||||||
|
gap = mind;
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the JSON object does not yet have a stringify method, give it one.
|
||||||
|
|
||||||
|
if (typeof JSON.stringify !== 'function') {
|
||||||
|
JSON.stringify = function (value, replacer, space) {
|
||||||
|
|
||||||
|
// The stringify method takes a value and an optional replacer, and an optional
|
||||||
|
// space parameter, and returns a JSON text. The replacer can be a function
|
||||||
|
// that can replace values, or an array of strings that will select the keys.
|
||||||
|
// A default replacer method can be provided. Use of the space parameter can
|
||||||
|
// produce text that is more easily readable.
|
||||||
|
|
||||||
|
var i;
|
||||||
|
gap = '';
|
||||||
|
indent = '';
|
||||||
|
|
||||||
|
// If the space parameter is a number, make an indent string containing that
|
||||||
|
// many spaces.
|
||||||
|
|
||||||
|
if (typeof space === 'number') {
|
||||||
|
for (i = 0; i < space; i += 1) {
|
||||||
|
indent += ' ';
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the space parameter is a string, it will be used as the indent string.
|
||||||
|
|
||||||
|
} else if (typeof space === 'string') {
|
||||||
|
indent = space;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If there is a replacer, it must be a function or an array.
|
||||||
|
// Otherwise, throw an error.
|
||||||
|
|
||||||
|
rep = replacer;
|
||||||
|
if (replacer && typeof replacer !== 'function' &&
|
||||||
|
(typeof replacer !== 'object' ||
|
||||||
|
typeof replacer.length !== 'number')) {
|
||||||
|
throw new Error('JSON.stringify');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make a fake root object containing our value under the key of ''.
|
||||||
|
// Return the result of stringifying the value.
|
||||||
|
|
||||||
|
return str('', {'': value});
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// If the JSON object does not yet have a parse method, give it one.
|
||||||
|
|
||||||
|
if (typeof JSON.parse !== 'function') {
|
||||||
|
JSON.parse = function (text, reviver) {
|
||||||
|
|
||||||
|
// The parse method takes a text and an optional reviver function, and returns
|
||||||
|
// a JavaScript value if the text is a valid JSON text.
|
||||||
|
|
||||||
|
var j;
|
||||||
|
|
||||||
|
function walk(holder, key) {
|
||||||
|
|
||||||
|
// The walk method is used to recursively walk the resulting structure so
|
||||||
|
// that modifications can be made.
|
||||||
|
|
||||||
|
var k, v, value = holder[key];
|
||||||
|
if (value && typeof value === 'object') {
|
||||||
|
for (k in value) {
|
||||||
|
if (Object.hasOwnProperty.call(value, k)) {
|
||||||
|
v = walk(value, k);
|
||||||
|
if (v !== undefined) {
|
||||||
|
value[k] = v;
|
||||||
|
} else {
|
||||||
|
delete value[k];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return reviver.call(holder, key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Parsing happens in four stages. In the first stage, we replace certain
|
||||||
|
// Unicode characters with escape sequences. JavaScript handles many characters
|
||||||
|
// incorrectly, either silently deleting them, or treating them as line endings.
|
||||||
|
|
||||||
|
cx.lastIndex = 0;
|
||||||
|
if (cx.test(text)) {
|
||||||
|
text = text.replace(cx, function (a) {
|
||||||
|
return '\\u' +
|
||||||
|
('0000' + a.charCodeAt(0).toString(16)).slice(-4);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// In the second stage, we run the text against regular expressions that look
|
||||||
|
// for non-JSON patterns. We are especially concerned with '()' and 'new'
|
||||||
|
// because they can cause invocation, and '=' because it can cause mutation.
|
||||||
|
// But just to be safe, we want to reject all unexpected forms.
|
||||||
|
|
||||||
|
// We split the second stage into 4 regexp operations in order to work around
|
||||||
|
// crippling inefficiencies in IE's and Safari's regexp engines. First we
|
||||||
|
// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we
|
||||||
|
// replace all simple value tokens with ']' characters. Third, we delete all
|
||||||
|
// open brackets that follow a colon or comma or that begin the text. Finally,
|
||||||
|
// we look to see that the remaining characters are only whitespace or ']' or
|
||||||
|
// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
|
||||||
|
|
||||||
|
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, ''))) {
|
||||||
|
|
||||||
|
// In the third stage we use the eval function to compile the text into a
|
||||||
|
// JavaScript structure. The '{' operator is subject to a syntactic ambiguity
|
||||||
|
// in JavaScript: it can begin a block or an object literal. We wrap the text
|
||||||
|
// in parens to eliminate the ambiguity.
|
||||||
|
|
||||||
|
j = eval('(' + text + ')');
|
||||||
|
|
||||||
|
// In the optional fourth stage, we recursively walk the new structure, passing
|
||||||
|
// each name/value pair to a reviver function for possible transformation.
|
||||||
|
|
||||||
|
return typeof reviver === 'function' ?
|
||||||
|
walk({'': j}, '') : j;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the text is not JSON parseable, then a SyntaxError is thrown.
|
||||||
|
|
||||||
|
throw new SyntaxError('JSON.parse');
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}());
|
6737
oxjs/build/js/ox.data.js
Normal file
110
oxjs/build/js/ox.geo.js
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
/*
|
||||||
|
################################################################################
|
||||||
|
ox.geo.js
|
||||||
|
|
||||||
|
requires
|
||||||
|
jquery.js
|
||||||
|
ox.js
|
||||||
|
################################################################################
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
|
||||||
|
var earthRadius = 6378137,
|
||||||
|
earthCircumference = 2 * Math.PI * earthRadius
|
||||||
|
latMax = Ox.deg(Math.atan(Ox.sinh(Math.PI))),
|
||||||
|
latMin = -latMax;
|
||||||
|
/*
|
||||||
|
map = {
|
||||||
|
width: window.innerWidth,
|
||||||
|
height: window.innerHeight,
|
||||||
|
margin: 16
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
Ox.getLatLng = (function() {
|
||||||
|
/*
|
||||||
|
returns {lat, lng} for a given (x, y)
|
||||||
|
*/
|
||||||
|
function getLatLng(xy) {
|
||||||
|
return (xy - 0.5) * 2 * Math.PI;
|
||||||
|
}
|
||||||
|
return function(x, y) {
|
||||||
|
return {
|
||||||
|
lat: -Ox.deg(Math.atan(Ox.sinh(getLatLng(y)))),
|
||||||
|
lng: Ox.deg(getLatLng(x))
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
|
||||||
|
Ox.getPlacemarks = (function() {
|
||||||
|
/*
|
||||||
|
Ox.getPlacemarks(name, callback)
|
||||||
|
Ox.getPlacemarks(lat, lng, callback)
|
||||||
|
*/
|
||||||
|
var cache = {};
|
||||||
|
return function() {
|
||||||
|
|
||||||
|
// $.getScript("http://maps.google.com/maps/api/js?sensor=false", function() {
|
||||||
|
// getPlacemarks(args);
|
||||||
|
// });
|
||||||
|
|
||||||
|
|
||||||
|
// var args = arguments;
|
||||||
|
var reverse = typeof arguments[0] == "number",
|
||||||
|
query = $.extend({
|
||||||
|
language: "en"
|
||||||
|
}, !reverse ? {
|
||||||
|
address: arguments[0]
|
||||||
|
} : {
|
||||||
|
latLng: new google.maps.LatLng(arguments[0], arguments[1])
|
||||||
|
}),
|
||||||
|
id = JSON.stringify(query),
|
||||||
|
callback = arguments[arguments.length - 1],
|
||||||
|
geocoder = new google.maps.Geocoder();
|
||||||
|
if (cache[id]) {
|
||||||
|
callback(cache[id]);
|
||||||
|
} else {
|
||||||
|
geocoder.geocode(query, function(results, status) {
|
||||||
|
var data = {
|
||||||
|
results: results,
|
||||||
|
status: status
|
||||||
|
};
|
||||||
|
cache[id] = data;
|
||||||
|
callback(data);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
|
||||||
|
Ox.getXY = (function() {
|
||||||
|
/*
|
||||||
|
returns {x, y} for a given (lat, lng), between 0 and 1
|
||||||
|
*/
|
||||||
|
function getXY(xy) {
|
||||||
|
return (xy / (2 * Math.PI) + 0.5);
|
||||||
|
}
|
||||||
|
return function(lat, lng) {
|
||||||
|
return {
|
||||||
|
x: getXY(Ox.rad(lng)),
|
||||||
|
y: getXY(Ox.asinh(Math.tan(Ox.rad(-lat))))
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
|
||||||
|
/*
|
||||||
|
Ox.getZ = function(placemark, map) {
|
||||||
|
// returns zoom level at which placemark is fully included
|
||||||
|
map.width -= 2 * map.margin;
|
||||||
|
map.height -= 2 * map.margin;
|
||||||
|
var northEast = getXY(placemark.northEast),
|
||||||
|
southWest = getXY(placemark.southWest),
|
||||||
|
width = (northEast.x - southWest.x),
|
||||||
|
height = (northEast.y - southWest.y),
|
||||||
|
return parseInt(Ox.log(width / height > map.width / map.height ?
|
||||||
|
map.width / width : map.height / height, 2));
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
})();
|
1537
oxjs/build/js/ox.js
Normal file
57
oxjs/build/js/ox.png.js
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
onmessage = function(e) {
|
||||||
|
if (e.data.message) {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function encode() {
|
||||||
|
str = Ox.encodeUTF8(str);
|
||||||
|
var c = Ox.canvas(img), len = str.length;
|
||||||
|
if (len > maxLength(img.width, img.height)) {
|
||||||
|
throw new RangeError("PNG codec can't encode " + len +
|
||||||
|
" bytes into " + (img.width * img.height) + " pixels");
|
||||||
|
}
|
||||||
|
len = Ox.pad(Ox.encodeBase256(len), 4, Ox.char(0));
|
||||||
|
Ox.each(Ox.map(len + str, function(byte) {
|
||||||
|
return Ox.map(new Array(8), function(v, i) {
|
||||||
|
return byte.charCodeAt(0) >> 7 - i & 1;
|
||||||
|
}).join("");
|
||||||
|
}).join(""), function(i, bit) {
|
||||||
|
var index, byte = c.data[index = parseInt(i * 4/3)];
|
||||||
|
c.data[index] = bit == xor(byte) ? byte :
|
||||||
|
byte & 254 | !(byte & 1);
|
||||||
|
});
|
||||||
|
c.context.putImageData(c.imageData, 0, 0);
|
||||||
|
postMessage(c.canvas.toDataURL());
|
||||||
|
}
|
||||||
|
|
||||||
|
function decode() {
|
||||||
|
var c = Ox.canvas(img), bits = "", str = "", i = 0; len = 4, flag = false;
|
||||||
|
do {
|
||||||
|
bits += xor(c.data[parseInt(i * 4/3)]);
|
||||||
|
if (++i % 8 == 0) {
|
||||||
|
str += Ox.char(parseInt(bits, 2));
|
||||||
|
bits = "";
|
||||||
|
len--;
|
||||||
|
if (len == 0 && !flag) {
|
||||||
|
if ((len = Ox.decodeBase256(str)) >
|
||||||
|
maxLength(img.width, img.height)) {
|
||||||
|
throwPNGError();
|
||||||
|
}
|
||||||
|
str = "";
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} while (len);
|
||||||
|
try {
|
||||||
|
return Ox.decodeUTF8(str);
|
||||||
|
} catch(e) {
|
||||||
|
throwPNGError();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function throwError() {
|
||||||
|
throw new RangeError("PNG codec can't decode image");
|
||||||
|
}
|
3476
oxjs/build/js/ox.ui.js
Normal file
BIN
oxjs/build/png/ox.ui.classic/buttonAdd.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.classic/buttonClear.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
oxjs/build/png/ox.ui.classic/buttonClose.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
oxjs/build/png/ox.ui.classic/buttonCollapse.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.classic/buttonExpand.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.classic/buttonNext.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.classic/buttonPause.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.classic/buttonPlay.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.classic/buttonPrevious.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.classic/buttonRemove.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.classic/buttonSelect.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.classic/loading.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
oxjs/build/png/ox.ui.classic/scrollbarVerticalDecrement.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.classic/scrollbarVerticalIncrement.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.future/buttonAdd.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.future/buttonClose.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.future/buttonPause.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.future/buttonPlay.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.future/buttonRemove.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.modern/buttonAdd.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.modern/buttonClear.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.modern/buttonClose.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.modern/buttonCollapse.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.modern/buttonExpand.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.modern/buttonNext.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.modern/buttonPause.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.modern/buttonPlay.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.modern/buttonPrevious.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.modern/buttonRemove.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.modern/buttonSelect.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.modern/scrollbarVerticalDecrement.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui.modern/scrollbarVerticalIncrement.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
oxjs/build/png/ox.ui/browserChrome128.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
oxjs/build/png/ox.ui/browserFirefox128.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
oxjs/build/png/ox.ui/browserInternetExplorer128.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
oxjs/build/png/ox.ui/browserOpera128.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
oxjs/build/png/ox.ui/browserSafari128.png
Normal file
After Width: | Height: | Size: 25 KiB |
132
player.js
Executable file
|
@ -0,0 +1,132 @@
|
||||||
|
function Player() {
|
||||||
|
this.supportsOverlay = false;
|
||||||
|
this.muted = false;
|
||||||
|
}
|
||||||
|
Player.prototype.init = function(elemID) {
|
||||||
|
//make overlay settings happy..., add a dummy element
|
||||||
|
this.player = document.getElementById(elemID);
|
||||||
|
}
|
||||||
|
Player.prototype.play = function() { }
|
||||||
|
Player.prototype.pause = function() { }
|
||||||
|
Player.prototype.get = function() { }
|
||||||
|
Player.prototype.listener = function() { }
|
||||||
|
Player.prototype.set = function(pos) { }
|
||||||
|
Player.prototype.mute = function(pos) { }
|
||||||
|
Player.prototype.volUp = function() { }
|
||||||
|
Player.prototype.volDown = function() { }
|
||||||
|
Player.prototype.seekFwd = function(ms) {
|
||||||
|
var currentMs = this.get();
|
||||||
|
var newMs = currentMs + ms;
|
||||||
|
this.set(newMs);
|
||||||
|
}
|
||||||
|
|
||||||
|
Player.prototype.seekBack = function(ms) {
|
||||||
|
var currentMs = this.get();
|
||||||
|
var newMs = currentMs - ms;
|
||||||
|
this.set(newMs);
|
||||||
|
}
|
||||||
|
|
||||||
|
Player.prototype.unmute = function(pos) { }
|
||||||
|
/* Player.prototype.url = function(pos) {
|
||||||
|
var timecode = pos2npt(pos);
|
||||||
|
var link = video.url;
|
||||||
|
if(pos > 0)
|
||||||
|
link += "?t=npt:" + timecode;
|
||||||
|
return link;
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
function VideoPlayer() {
|
||||||
|
this.supportsOverlay = true;
|
||||||
|
this.isPlaying = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
VideoPlayer.prototype = new Player();
|
||||||
|
VideoPlayer.prototype.init = function(elemID) {
|
||||||
|
this.player = document.getElementById(elemID);
|
||||||
|
this.width = $(this.player).attr('width');
|
||||||
|
this.height = $(this.player).attr('height');
|
||||||
|
}
|
||||||
|
|
||||||
|
VideoPlayer.prototype.volUp = function() {
|
||||||
|
var vol = this.player.volume;
|
||||||
|
if (vol <= 0.9) { var newVol = vol + 0.1 } else { return false; }
|
||||||
|
this.player.volume = newVol;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
VideoPlayer.prototype.volDown = function() {
|
||||||
|
var vol = this.player.volume;
|
||||||
|
if (vol >= 0.1) { var newVol = vol - 0.1 } else { return false; }
|
||||||
|
this.player.volume = newVol;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
VideoPlayer.prototype.set = function(pos) {
|
||||||
|
/* var url = this.url(pos);
|
||||||
|
var autoplay = 'true';
|
||||||
|
if(this.isPlaying)
|
||||||
|
varautoplay = 'true';
|
||||||
|
if(this.player) {
|
||||||
|
var element = $(this.player);
|
||||||
|
this.player.pause();
|
||||||
|
} else {
|
||||||
|
var element = $('#' + playerID);
|
||||||
|
}
|
||||||
|
this.player = document.createElement('video');
|
||||||
|
this.player.id = playerID;
|
||||||
|
this.player.width = this.width;
|
||||||
|
this.player.height = this.height;
|
||||||
|
this.player.setAttribute('src', url);
|
||||||
|
//this.player.setAttribute('autoplay', autoplay);
|
||||||
|
element.replaceWith(this.player); */
|
||||||
|
this.player.currentTime = pos / 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
VideoPlayer.prototype.get = function() {
|
||||||
|
try {
|
||||||
|
return parseInt(this.player.currentTime * 1000);
|
||||||
|
} catch(err) { }
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
VideoPlayer.prototype.play = function() {
|
||||||
|
this.isPlaying = true;
|
||||||
|
this.player.play();
|
||||||
|
}
|
||||||
|
|
||||||
|
VideoPlayer.prototype.pause = function() {
|
||||||
|
this.isPlaying = false;
|
||||||
|
this.player.pause();
|
||||||
|
}
|
||||||
|
|
||||||
|
VideoPlayer.prototype.mute = function(pos) {
|
||||||
|
this.player.muted = true;
|
||||||
|
this.muted = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
VideoPlayer.prototype.unmute = function(pos) {
|
||||||
|
this.player.muted = false;
|
||||||
|
this.muted = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
VideoPlayer.prototype.togglePause = function() {
|
||||||
|
if (Video.isPlaying == true) {
|
||||||
|
Video.pause();
|
||||||
|
} else {
|
||||||
|
Video.play();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
VideoPlayer.prototype.listener = function() {
|
||||||
|
var ms = Video.get();
|
||||||
|
var npt = ms2npt(ms);
|
||||||
|
$('#timeCode').html(npt);
|
||||||
|
var seekBarPos = parseInt((ms / (Video.duration * 1000)) * 320);
|
||||||
|
$('#seekPointer').css("left", seekBarPos + "px");
|
||||||
|
}
|
||||||
|
|
||||||
|
VideoPlayer.prototype.setDuration = function(duration) {
|
||||||
|
this.duration = duration;
|
||||||
|
}
|
230
staticfuncs.js
Executable file
|
@ -0,0 +1,230 @@
|
||||||
|
function npt2ms(npt) {
|
||||||
|
var ms = 0.0
|
||||||
|
npt = String(npt);
|
||||||
|
var p = npt.split(':')
|
||||||
|
for(i=0;i<p.length;i++)
|
||||||
|
ms = ms * 60 + parseFloat(p[i])
|
||||||
|
return ms * 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
function ms2npt(ms) {
|
||||||
|
var it, ss, mm, hh, npt;
|
||||||
|
var it = parseInt(ms / 1000)
|
||||||
|
ms = ms - it * 1000;
|
||||||
|
if (ms.toString().length > 3) {
|
||||||
|
ms = ms.toString().substring(0,3);
|
||||||
|
}
|
||||||
|
ss = it % 60;
|
||||||
|
mm = ((it - ss) / 60) % 60;
|
||||||
|
hh = ((it - (mm * 60) - ss) / 3600) % 60;
|
||||||
|
npt = hh+':'+strpad(mm.toString(), '0', 2, 'left')
|
||||||
|
npt += ':'+strpad(ss.toString(), '0', 2, 'left')
|
||||||
|
npt += '.'+strpad(ms.toString(), '0', 3, 'left')
|
||||||
|
return npt;
|
||||||
|
}
|
||||||
|
|
||||||
|
function ms2frames(ms, fmt) {
|
||||||
|
if (!fmt) var fmt = "PAL";
|
||||||
|
var npt = ms2npt(ms);
|
||||||
|
var dotpos = npt.lastIndexOf(".");
|
||||||
|
var mmStr = npt.substring(dotpos + 1, npt.length);
|
||||||
|
var mmInt = parseInt(mmStr);
|
||||||
|
if (fmt == 'PAL') {
|
||||||
|
var frames = parseInt((mmInt / 1000) * 24);
|
||||||
|
} else if (fmt == "NTSC") {
|
||||||
|
var frames = parseInt((mmInt / 1000) * 29.97);
|
||||||
|
}
|
||||||
|
var framesTc = '';
|
||||||
|
var joinToken = ":";
|
||||||
|
var framesTc = npt.substring(0, dotpos ) + joinToken + frames;
|
||||||
|
return framesTc;
|
||||||
|
}
|
||||||
|
|
||||||
|
function ms2time(ms) {
|
||||||
|
var npt = ms2npt(ms)
|
||||||
|
return npt.substr(npt.length-9, npt.length-6);
|
||||||
|
}
|
||||||
|
|
||||||
|
function framesToNpt(timeCode) {
|
||||||
|
var frames = timeCode.substring(9, 11);
|
||||||
|
var ms = parseInt(frames) / 25 * 1000;
|
||||||
|
var ms = String(ms);
|
||||||
|
var ms = strpad(ms, '0', 3, 'right');
|
||||||
|
var timeCodeNpt = timeCode.substring(0,8) + "." + ms;
|
||||||
|
return timeCodeNpt;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function strpad(str, pad, len, dir) {
|
||||||
|
while (str.length < len) {
|
||||||
|
if (dir == 'left')
|
||||||
|
str = pad + str;
|
||||||
|
else if (dir == 'right')
|
||||||
|
str = str + pad;
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
function isValidTimecode(tc) {
|
||||||
|
var tc = $.trim(tc);
|
||||||
|
var nptRegex = new RegExp("^[0-9][0-9]?\:[0-9][0-9]\:[0-9][0-9][\.|\,|\:][0-9]?[0-9]?[0-9]?$");
|
||||||
|
return nptRegex.test(tc);to
|
||||||
|
}
|
||||||
|
|
||||||
|
//where filters is a JSON object, for eg. {'Video Files': '*.dv;*.ogg;*.ogv;*.ogx;*.avi;*.mov;*.mp4;*.mpeg;*.mpg;*.vob'}
|
||||||
|
function selectFile(filters) {
|
||||||
|
// netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||||
|
const nsIFilePicker = Components.interfaces.nsIFilePicker;
|
||||||
|
var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
|
||||||
|
fp.init(window, "Choose a File", nsIFilePicker.modeOpen);
|
||||||
|
//fp.appendFilters(nsIFilePicker.filterAll | nsIFilePicker.filterText);
|
||||||
|
// fp.appendFilter("Ogg Video Files", "*.ogg;*.ogv;*.ogx;");
|
||||||
|
for (var f in filters) {
|
||||||
|
if (filters.hasOwnProperty(f)) {
|
||||||
|
fp.appendFilter(f, filters[f]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// fp.appendFilter("All Video Files", "*.dv;*.ogg;*.ogv;*.ogx;*.avi;*.mov;*.mp4;*.mpeg;*.mpg;*.vob");
|
||||||
|
fp.appendFilters(nsIFilePicker.filterAll);
|
||||||
|
var rv = fp.show();
|
||||||
|
if (rv == nsIFilePicker.returnOK || rv == nsIFilePicker.returnReplace) {
|
||||||
|
return fp;
|
||||||
|
/*
|
||||||
|
var file = fp.file;
|
||||||
|
var path = fp.file.path;
|
||||||
|
return path;
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function mozillaSaveFile(filePath,content)
|
||||||
|
{
|
||||||
|
if(window.Components) {
|
||||||
|
try {
|
||||||
|
// netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||||
|
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
|
||||||
|
file.initWithPath(filePath);
|
||||||
|
if(!file.exists())
|
||||||
|
file.create(0,0664);
|
||||||
|
var os = Components.classes["@mozilla.org/intl/converter-output-stream;1"].createInstance(Components.interfaces.nsIConverterOutputStream);
|
||||||
|
var out = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
|
||||||
|
out.init(file,0x20|0x02,00004,null);
|
||||||
|
os.init(out, "UTF-8", 0, 0x0000);
|
||||||
|
os.writeString(content);
|
||||||
|
//out.write(content,content.length);
|
||||||
|
os.close();
|
||||||
|
//out.flush();
|
||||||
|
out.close();
|
||||||
|
return true;
|
||||||
|
} catch(ex) {
|
||||||
|
alert(ex);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function mozillaSaveAs() {
|
||||||
|
const nsIFilePicker = Components.interfaces.nsIFilePicker;
|
||||||
|
var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker);
|
||||||
|
fp.init(window, "Save srt as...", Components.interfaces.nsIFilePicker.modeSave);
|
||||||
|
fp.appendFilters(Components.interfaces.nsIFilePicker.filterAll);
|
||||||
|
var output = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
|
||||||
|
var pth = typeof(srtFilePath) != 'undefined' ? srtFilePath : filePath + ".srt";
|
||||||
|
output.initWithPath(pth);
|
||||||
|
fp.defaultString = output.leafName;
|
||||||
|
var rv = fp.show();
|
||||||
|
if (rv == nsIFilePicker.returnOK || rv == nsIFilePicker.returnReplace) {
|
||||||
|
return fp.file.path;
|
||||||
|
/*
|
||||||
|
var file = fp.file;
|
||||||
|
srtFilePath = file.path;
|
||||||
|
saveSrt(srtFilePath);
|
||||||
|
return true;
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns null if it can't do it, false if there's an error, or a string of the content if successful
|
||||||
|
function mozillaLoadFile(filePath)
|
||||||
|
{
|
||||||
|
if(window.Components) {
|
||||||
|
try {
|
||||||
|
// netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||||
|
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
|
||||||
|
file.initWithPath(filePath);
|
||||||
|
if(!file.exists())
|
||||||
|
return null;
|
||||||
|
var inputStream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
|
||||||
|
inputStream.init(file,0x01,00004,null);
|
||||||
|
//var sInputStream = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream);
|
||||||
|
//sInputStream.init(inputStream);
|
||||||
|
var charset = "UTF-8";
|
||||||
|
const replacementChar = Components.interfaces.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER;
|
||||||
|
var cInputStream = Components.classes["@mozilla.org/intl/converter-input-stream;1"]
|
||||||
|
.createInstance(Components.interfaces.nsIConverterInputStream);
|
||||||
|
cInputStream.init(inputStream, charset, 1024, replacementChar);
|
||||||
|
var str = {};
|
||||||
|
var contents = '';
|
||||||
|
while (cInputStream.readString(4096, str) != 0) {
|
||||||
|
contents += str.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
//var contents = sInputStream.read(sInputStream.available());
|
||||||
|
cInputStream.close();
|
||||||
|
//sInputStream.close();
|
||||||
|
inputStream.close();
|
||||||
|
return contents;
|
||||||
|
} catch(ex) {
|
||||||
|
alert(ex);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function checkFileExists(filePath) {
|
||||||
|
if (mozillaLoadFile(filePath)) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// if(window.Components) {
|
||||||
|
// try {
|
||||||
|
// netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||||
|
// var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
|
||||||
|
// file.initWithPath(filePath);
|
||||||
|
// if (file.exists()) {
|
||||||
|
// return true;
|
||||||
|
// } else {
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// } catch(ex) {
|
||||||
|
// //alert("Error");
|
||||||
|
// return null;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
function getFileNameExt(filename) {
|
||||||
|
var dotPos = filename.lastIndexOf(".");
|
||||||
|
var ext = filename.substring(dotPos + 1, filename.length);
|
||||||
|
return ext;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getFileNameSansExt(filename) {
|
||||||
|
var dotPos = filename.lastIndexOf(".");
|
||||||
|
if (dotPos != '-1') {
|
||||||
|
var filenameSansExt = filename.substring(0,dotPos);
|
||||||
|
} else {
|
||||||
|
var filenameSansExt = filename;
|
||||||
|
}
|
||||||
|
return filenameSansExt;
|
||||||
|
}
|
||||||
|
|
158
styles.css
Executable file
|
@ -0,0 +1,158 @@
|
||||||
|
body {
|
||||||
|
background: #000;
|
||||||
|
color: #fff;
|
||||||
|
height: 100%;
|
||||||
|
font-family: "DejaVu Sans", Arial, Georgia, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#filepath {
|
||||||
|
font-size: 10px;
|
||||||
|
color: #393939;
|
||||||
|
font-style: italic;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#additionalFeatures {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapper {
|
||||||
|
margin-top: 30px;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#videoWrapper {
|
||||||
|
float: left;
|
||||||
|
width: 400px;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#selectFileDiv {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error_msg textarea {
|
||||||
|
height: 150px;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
font-family: "DejaVu Sans", Arial, Georgia, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#helpWrapper {
|
||||||
|
-moz-border-radius: 8px;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #000;
|
||||||
|
border: 2px solid #999;
|
||||||
|
background: #ccc;
|
||||||
|
padding: 4px;
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#video {
|
||||||
|
width: 400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#txtWrapper {
|
||||||
|
margin-left: 20px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#buttonsWrapper {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#eventMetadata {
|
||||||
|
display: none;
|
||||||
|
margin-left: 20px;
|
||||||
|
float: left;
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
input.eventMeta, textarea.eventMeta {
|
||||||
|
padding: 5px;
|
||||||
|
margin: 3px;
|
||||||
|
width: 250px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#seekTime {
|
||||||
|
width: 20px;
|
||||||
|
border: 1px solid #000;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dateYear {
|
||||||
|
width: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dateMonth {
|
||||||
|
width: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dateDay {
|
||||||
|
width: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#description {
|
||||||
|
width: 80%;
|
||||||
|
height: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button {
|
||||||
|
padding: 8px;
|
||||||
|
margin-left: 10px;
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 15px;
|
||||||
|
background: #ccc;
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
border: 2px solid #000;
|
||||||
|
color: #f33;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
#txt {
|
||||||
|
height: 600px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#seekPointer {
|
||||||
|
height: 12px;
|
||||||
|
width: 10px;
|
||||||
|
position: relative;
|
||||||
|
margin-top: 2px;
|
||||||
|
margin-bottom: 2px;
|
||||||
|
-moz-border-radius: 10px;
|
||||||
|
background: #f00;
|
||||||
|
}
|
||||||
|
|
||||||
|
#timeCode {
|
||||||
|
color: #550070;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#progressDiv {
|
||||||
|
background: #AD7FBB;
|
||||||
|
height: 15px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#progressBar {
|
||||||
|
height: 100%;
|
||||||
|
background: #550070;
|
||||||
|
width: 1%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filename {
|
||||||
|
font-style: italic;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.OxThemeModern textarea {
|
||||||
|
background: #666;
|
||||||
|
color: #ccc;
|
||||||
|
}
|
9
toolbar.css
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
/* Original CSS */
|
||||||
|
#speedtrans-toolbarbutton {
|
||||||
|
list-style-image: url("chrome://speedtrans/content/icon.png");
|
||||||
|
}
|
||||||
|
/* Added for Australis support */
|
||||||
|
#speedtrans-toolbarbutton[cui-areatype="menu-panel"],
|
||||||
|
toolbarpaletteitem[place="palette"] > #speedtrans-toolbarbutton {
|
||||||
|
list-style-image: url("chrome://speedtrans/content/icon.png");
|
||||||
|
}
|