website/Website/wwwroot/js/javascript.js

145 lines
No EOL
3.7 KiB
JavaScript

function Navigate(url) {
window.location = url;
}
function CreateCookie(name, value, days) {
var expires;
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toGMTString();
}
else {
expires = "";
}
document.cookie = name + "=" + value + expires + "; path=/";
}
function round(value, decimals) {
return Number(Math.round(value + 'e' + decimals) + 'e-' + decimals);
}
function isNumber(value){
return isFinite(String(value));
}
String.prototype.upperCaseFirst = function() {
var lower = this.toLowerCase();
return lower.charAt(0).toUpperCase() + lower.slice(1);
};
function twoDigitZeroPad(input){
input=input.toString();
return [!input[1] && '0' || "", input].join('');
}
Date.prototype.oldToString = Date.prototype.toString;
Date.prototype.toString = function(format) {
if (!format)
return this.oldToString();
var me=this;
return format.replace(/./g, function(match) {
switch(match){
case 'd': return twoDigitZeroPad(me.getDate());
case 'm': return twoDigitZeroPad(me.getMonth()+1);
case 'y': return me.getFullYear();
case "H": return twoDigitZeroPad(me.getHours());
case "i": return twoDigitZeroPad(me.getMinutes());
case "s": return twoDigitZeroPad(me.getSeconds());
default: return match;
}
});
};
Number.prototype.oldToString=Number.prototype.toString;
Number.prototype.toString=function(input, shouldRound){
if (!shouldRound)
return this.oldToString(input);
return round(this, input);
};
$(function() {
var panels = $("nav > dl > .sub-pages");
var goIndicators = $("nav > dl > dt .go");
var expandIndicators = $("nav > dl > dt .expand");
panels.hide();
expandIndicators.show();
$("nav > dl > dt").click(function(e) {
var next = $(this).next();
if (!next.hasClass("sub-pages")) {
Navigate($(this).children("a").attr("href"));
return;
}
panels.slideUp();
goIndicators.hide();
expandIndicators.show();
if (next.is(":visible")) {
return;
}
next.slideDown();
$(this).children(".go").show();
$(this).children(".expand").hide();
});
$("nav dd").click(function(e) {
Navigate($(this).children("a").attr("href"));
});
$("nav a").click(function(e) {
$(this).parent().click();
return false;
});
$("#body").css("padding-bottom", window.innerHeight - $("#buttons-right").offset().top);
$("form[ajaxForm]").submit(function(e) {
e.preventDefault();
form = $(this);
$.ajax({
url: form.attr("action"),
method: form.attr("method"),
data: form.serialize(),
success: function(data) {
var successFunction = form.attr("onsuccess");
if (successFunction !== undefined && window[successFunction] !== undefined)
window[successFunction](data);
},
error: function() {
var errorFunction = form.attr("onerror");
if (errorFunction !== undefined && window[errorFunction] !== undefined)
window[errorFunction]();
},
});
var postFunction = form.attr("onpost");
if (postFunction !== undefined && window[postFunction] !== undefined)
window[postFunction]();
});
$("td").each(function() {
var elem = $(this);
if (/^[+-]?\d+(\.\d+)?$/.test(elem.text())) {
elem.addClass("number");
}
});
});
$(document).delegate('.allowTabInput', 'keydown', function(e) {
var keyCode = e.keyCode || e.which;
console.log(e);
if (keyCode == 9) {
e.preventDefault();
var start = $(this).get(0).selectionStart;
var end = $(this).get(0).selectionEnd;
// set textarea value to: text before caret + tab + text after caret
$(this).val($(this).val().substring(0, start)
+ "\t"
+ $(this).val().substring(end));
// put caret at right position again
$(this).get(0).selectionStart =
$(this).get(0).selectionEnd = start + 1;
}
});