///
///
/*
declare interface DateConstructor {
toGMTString(d: Date): string;
}*/
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function (elt, from) {
var len = this.length;
var fromint = Number(arguments[1]) || 0;
fromint = (fromint < 0) ? Math.ceil(fromint) : Math.floor(fromint);
if (fromint < 0) {
fromint += len;
}
for (; fromint < len; fromint++) {
if (fromint in this && this[fromint] === elt) {
return fromint;
}
}
return -1;
};
}
if (!String.isNullOrEmpty) {
String.isNullOrEmpty = function (s) {
return !s || !s.length;
};
}
function checkAll(clientID) {
var e = document.getElementById(clientID + 'all');
for (var i = 0; i < document.forms[0].elements.length; i++) {
var element = (document.forms[0].elements[i]);
if (element.type && element.type === 'checkbox') {
if (element.name.indexOf(clientID + '_Check_') === 0) {
element.checked = e.checked;
}
}
}
}
function submitWithValidate(id, action, clientID) {
try {
prepareForm();
}
catch (ex) {
}
var e = getElementByIdOrName('noValidate');
//???? var value = parseFloat((getElementByIdOrName('noValidate')).value);
e.value = "false";
if (action) {
e = getElementByIdOrName('action' + clientID);
if (e) {
e.value = action;
}
}
submitFormWithAnker(0, '#anker' + id);
}
function submitWithoutValidate(id, action, clientID, formname, virtualform, ajaxUpdatePanelId) {
if (!clientID) {
clientID = id;
}
try {
prepareForm();
}
catch (ex) {
}
var e = getElementByIdOrName('noValidate');
e.value = "true";
if (action) {
e = getElementByIdOrName('action' + clientID);
if (e) {
e.value = action;
}
}
e = getElementByIdOrName('virtualForm');
if (e) {
e.value = virtualform;
}
if (!formname) {
formname = 0;
}
if (!ajaxUpdatePanelId) {
submitFormWithAnker(formname, '#anker' + id);
}
else {
if (typeof window['ajaxCall' + ajaxUpdatePanelId] === 'function') {
$('#' + ajaxUpdatePanelId).append('');
window['ajaxCall' + ajaxUpdatePanelId]();
}
else {
console.log('Die Funktion \'ajaxCall' + ajaxUpdatePanelId + '\' konnte nicht gefunden werden');
}
}
}
function SubmitHtmlSourceTo(printurl, utf8encode, target) {
if (String.isNullOrEmpty(target)) {
target = "_blank";
}
var htmlSource = "" + document.documentElement.innerHTML + "";
if (utf8encode) {
htmlSource = EncodeBase64(EncodeUTF(htmlSource));
}
else {
htmlSource = EncodeBase64(htmlSource);
}
if (!document.getElementById('printform')) {
var formtag = document.createElement('form');
document.body.appendChild(formtag);
formtag.setAttribute('id', 'printform');
if (!String.isNullOrEmpty(target)) {
formtag.setAttribute('target', target);
}
formtag.action = printurl;
formtag.method = "post";
var inputtag = document.createElement('input');
inputtag.setAttribute('type', 'hidden');
formtag.appendChild(inputtag);
inputtag.setAttribute('id', 'printhtml');
inputtag.setAttribute('name', 'printhtml');
inputtag.setAttribute('value', htmlSource);
}
else {
document.getElementById('printform').getAttributeNode('action').nodeValue = printurl;
document.getElementById('printhtml').value = htmlSource;
}
document.getElementById('printform').submit();
}
function EncodeUTF(string) {
string = string.replace(/\r\n/g, "\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
}
else if ((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
}
function DecodeUTF(utftext) {
var string = "";
var i = 0;
var c = 0, c2 = 0;
while (i < utftext.length) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
}
else if ((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i + 1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
}
else {
c2 = utftext.charCodeAt(i + 1);
var c3 = utftext.charCodeAt(i + 2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
function EncodeBase64(str) {
var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
var encoded = [];
var c = 0;
while (c < str.length) {
var b0 = str.charCodeAt(c++);
var b1 = str.charCodeAt(c++);
var b2 = str.charCodeAt(c++);
var buf = (b0 << 16) + ((b1 || 0) << 8) + (b2 || 0);
var i0 = (buf & (63 << 18)) >> 18;
var i1 = (buf & (63 << 12)) >> 12;
var i2 = isNaN(b1) ? 64 : (buf & (63 << 6)) >> 6;
var i3 = isNaN(b2) ? 64 : (buf & 63);
encoded[encoded.length] = chars.charAt(i0);
encoded[encoded.length] = chars.charAt(i1);
encoded[encoded.length] = chars.charAt(i2);
encoded[encoded.length] = chars.charAt(i3);
}
return encoded.join('');
}
function DecodeBase64(s) {
var e = {}; //e ist ein assoziatives Array aus e[string] = number
//var e : any = {};
var i, k, v = [], r = '', w = String.fromCharCode;
var n = [[65, 91], [97, 123], [48, 58], [43, 44], [47, 48]];
for (var z in n) {
for (i = n[z][0]; i < n[z][1]; i++) {
v.push(w(i));
}
}
for (i = 0; i < 64; i++) {
e[v[i]] = i;
}
for (i = 0; i < s.length; i += 72) {
var b = 0, c, x, l = 0, o = s.substring(i, i + 72);
for (x = 0; x < o.length; x++) {
c = e[o.charAt(x)];
b = (b << 6) + c;
l += 6;
while (l >= 8) {
r += w((b >>> (l -= 8)) % 256);
}
}
}
return r;
}
/*** Liste ***/
function setCommand(target, idfield, action) {
jQuery('[id$="actionField"]').val(action);
jQuery('[id$="idField"]').val(idfield);
jQuery('[id$="targetField"]').val(target);
}
/*** DATEPICKER ***/
/* Standardwerte setzen */
function initDatepickers() {
jQuery.datepicker.regional['de'] = {
clearText: 'löschen', clearStatus: 'aktuelles Datum löschen',
closeText: '', closeStatus: 'ohne Änderungen schließen',
prevText: '<Zurück', prevStatus: 'letzten Monat zeigen',
nextText: 'Vor>', nextStatus: 'nächsten Monat zeigen',
currentText: '', currentStatus: '',
monthNames: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni',
'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
monthNamesShort: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun',
'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
monthStatus: 'anderen Monat anzeigen', yearStatus: 'anderes Jahr anzeigen',
weekHeader: 'Wo', weekStatus: 'Woche des Monats',
dayNames: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
dayNamesShort: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
dayStatus: 'Setze DD als ersten Wochentag', dateStatus: 'Wähle D, M d',
dateFormat: 'dd.mm.yy', firstDay: 1,
initStatus: 'bitte Datum auswählen', isRTL: false
};
jQuery.datepicker.setDefaults(jQuery.datepicker.regional['de']);
}
/*** CHECKBOXEN ***/
function getSplitPos(e) {
var bgpos = jQuery(e).parent("label").css("background-position");
// weil IE "background-position" nicht kennt
if (!bgpos) {
bgpos = jQuery(e).parent("label").css("background-position-x") + " " + jQuery(e).parent("label").css("background-position-y");
}
return bgpos.split(" ");
}
/*
* Wandelt input type="checkbox" in eine grafische Checkbox um
* @param e jQuery Abfrage oder Checkboxobjekt
* @param onclickjs JavaScript das bei onclick ausgeführt wird
*/
function MakeImageCheckbox(e, onclickjs) {
jQuery(e).addClass("hidecheckbox");
var bgsplitpos = getSplitPos(e);
if (jQuery(e).attr("type") === "checkbox") {
jQuery(e).parent("label").addClass("jqcheckbox");
if (jQuery(e).attr("disabled")) {
jQuery(e).parent("label").addClass("disabled");
}
jQuery(e).parent("label").on('click', function () {
var bgsplitpos = getSplitPos(e);
if (jQuery(e).attr("disabled")) {
return false;
}
if (jQuery(e).attr("checked")) {
jQuery(e).attr('checked', '');
// weil IE6 MultiKlassenSelector nicht unterstützt
if (jQuery(e).parent("label").hasClass("hidelabel")) {
jQuery(e).parent("label").css("background-position", bgsplitpos[0] + " 0");
}
}
else {
jQuery(e).attr('checked', 'checked');
// weil IE6 MultiKlassenSelector nicht unterstützt
if (jQuery(e).parent("label").hasClass("hidelabel")) {
jQuery(e).parent("label").css("background-position", bgsplitpos[0] + " -200px");
}
}
jQuery(e).parent("label").toggleClass("checked");
if (!!onclickjs) {
eval(onclickjs);
}
return false;
});
}
if (jQuery(e).attr("checked")) {
if (jQuery(e).attr("disabled")) {
jQuery(e).parent("label").addClass("disabledchecked");
jQuery(e).parent("label").css("background-position", bgsplitpos[0] + " -500px");
}
else {
jQuery(e).parent("label").addClass("checked");
jQuery(e).parent("label").css("background-position", bgsplitpos[0] + " -200px");
}
}
}
function updateQueryString(key, value, url) {
if (!url)
url = window.location.href;
var re = new RegExp("([?&])" + key + "=.*?(&|#|$)(.*)", "gi"), hash = [];
if (re.test(url)) {
if (typeof value !== 'undefined' && value !== null)
return url.replace(re, '$1' + key + "=" + value + '$2$3');
else {
hash = url.split('#');
url = hash[0].replace(re, '$1$3').replace(/(&|\?)$/, '');
if (typeof hash[1] !== 'undefined' && hash[1] !== null)
url += '#' + hash[1];
return url;
}
}
else {
if (typeof value !== 'undefined' && value !== null) {
var separator = url.indexOf('?') !== -1 ? '&' : '?';
hash = url.split('#');
url = hash[0] + separator + key + '=' + value;
if (typeof hash[1] !== 'undefined' && hash[1] !== null)
url += '#' + hash[1];
return url;
}
else
return url;
}
}
function removeFromQuerystring(url, name) {
var inttemp;
var inttemp2;
var strtemp;
var strreturn;
if (url.indexOf("?") > -1) {
//ssc
//Bugfix: Suche nach Wörten mit "spa" z.B. sparkassenbrief führen zu Problemen
//20877 | Fehler bei der Suche nach Runschreiben
inttemp = url.indexOf(name + "=", url.indexOf("?"));
inttemp2 = url.indexOf("&", inttemp);
if (inttemp2 !== -1) {
strtemp = url.slice(inttemp + name.length, inttemp2);
}
else {
strtemp = url.slice(inttemp + name.length);
}
url = url.replace(name + strtemp, "");
url = url.replace("?&", "?");
url = url.replace("&&", "&");
}
return url;
}
function submitFormWithAnker(form, anker) {
var theForm = document.forms[form];
var theFormAction = theForm.action;
if (theFormAction.indexOf("#") > 0) {
theFormAction = theFormAction.substring(0, theFormAction.indexOf("#"));
}
while (anker && anker.indexOf("#") == 0) {
anker = anker.substring(1, anker.length);
}
theFormAction = theFormAction + "#" + anker;
theFormAction = removeFromQuerystring(theFormAction, "autoforwardid");
theForm.action = theFormAction;
theForm.submit();
}
function getElementByIdOrName(id) {
var e = document.getElementById(id);
if (!e) {
e = document.getElementsByName(id)[0];
}
return e;
}
function navigateToV2(page, anker, ClientID, form, ajaxUrl, currentId, target, addQuery) {
if (addQuery == undefined) {
addQuery = true;
}
var e;
var size;
var column;
var direction;
var url;
if (!currentId) {
currentId = "-1";
}
e = getElementByIdOrName("page" + ClientID);
e.value = page;
e = getElementByIdOrName("noValidate");
e.value = "true";
if (!ajaxUrl) {
submitFormWithAnker(form, anker);
}
else {
e = getElementByIdOrName("size" + ClientID);
size = e.value;
e = getElementByIdOrName("column" + ClientID);
column = e.value;
e = getElementByIdOrName("direction" + ClientID);
direction = e.value;
url = getAjaxUrlV2(ajaxUrl, addQuery) + "page" + ClientID + "=" + page + "&size" + ClientID + "=" + size + "&direction" + ClientID + "=" + direction + "&column" + ClientID + "=" + column + "¶m0=" + currentId + "&rnd=" + Math.random();
ajaxV2(url, ClientID, onPageModified, MessageOnError, callbackV2, true, target);
}
}
function getAjaxUrlV2(ajaxUrl, addQuery) {
if (addQuery == undefined) {
addQuery = true;
}
if (ajaxUrl.indexOf("?") >= 0) {
ajaxUrl = ajaxUrl + "&";
}
else {
ajaxUrl = ajaxUrl + "?";
}
if (addQuery) {
var pos = document.location.href.indexOf("?");
if (pos >= 0) {
var posHash = document.location.href.indexOf('#');
if (posHash < 0) {
posHash = document.location.href.length;
}
var queryWithoutAnchor = document.location.href.substring((pos + 1), posHash);
ajaxUrl = ajaxUrl + queryWithoutAnchor + '&';
}
}
return ajaxUrl;
}
function setSizeV2(size, anker, ClientID, form, ajaxUrl, currentId) {
var e; //wie any ... geht enger mit HTMLInputElement, getElementByIdOrName() nur mit HTMLElement möglich (?), später -> cast HTMLInputElement
var oldSize;
var oldPage;
var column;
var direction;
var url;
if (!currentId) {
currentId = "-1";
}
e = getElementByIdOrName("size" + ClientID);
oldSize = e.value; //Cast string to number,
e.value = size; //valueAsNumber oder value + string-cast
e = getElementByIdOrName("page" + ClientID);
oldPage = e.value;
var page = Math.round(((oldPage - 1) * oldSize) / size) + 1;
e.value = page;
e = getElementByIdOrName("noValidate");
e.value = "true";
if (!ajaxUrl) {
submitFormWithAnker(form, anker);
}
else {
e = getElementByIdOrName("column" + ClientID);
column = e.value;
e = getElementByIdOrName("direction" + ClientID);
direction = e.value;
url = getAjaxUrlV2(ajaxUrl) + "page" + ClientID + "=" + page + "&size" + ClientID + "=" + size + "&direction" + ClientID + "=" + direction + "&column" + ClientID + "=" + column + "¶m0=" + currentId + "&rnd=" + Math.random();
ajaxV2(url, ClientID, onPageModified, MessageOnError, callbackV2, true);
}
}
function setSortV2(column, direction, anker, ClientID, form, ajaxUrl, currentId) {
var e; //wie any ... geht enger mit HTMLInputElement
var size;
var page;
var unchanged;
var url;
if (!currentId) {
currentId = -1;
}
e = getElementByIdOrName("size" + ClientID);
size = e.value;
e = getElementByIdOrName("page" + ClientID);
page = e.value;
e = getElementByIdOrName("column" + ClientID);
unchanged = false;
if (e.value === column) {
unchanged = true;
}
e.value = column;
e = getElementByIdOrName("direction" + ClientID);
if (direction !== 'toggle') {
e.value = direction;
}
else {
if (unchanged) {
if (e.value === 'desc') {
e.value = 'asc';
direction = 'asc';
}
else {
e.value = 'desc';
direction = 'desc';
}
}
else {
e.value = 'asc';
direction = 'asc';
}
}
e = getElementByIdOrName("noValidate");
e.value = "true";
if (!ajaxUrl) {
submitFormWithAnker(form, anker);
}
else {
url = getAjaxUrlV2(ajaxUrl) + "page" + ClientID + "=" + page + "&size" + ClientID + "=" + size + "&direction" + ClientID + "=" + direction + "&column" + ClientID + "=" + column + "¶m0=" + currentId + "&rnd=" + Math.random();
ajaxV2(url, ClientID, onPageModified, MessageOnError, callbackV2, true);
}
}
function navigateBackV2(ClientID, form, ajaxUrl, currentId) {
if (!currentId) {
currentId = "-1";
}
navigateToV2(document.getElementsByName('page' + ClientID)[0].value, "", ClientID, form, ajaxUrl, currentId);
}
function getNaviUrlV2(size, ClientID, form, ajaxUrl) {
var page;
var column;
var direction;
var url;
var e = getElementByIdOrName("size" + ClientID); //wie any ... geht enger mit HTMLInputElement
e.value = size;
e = getElementByIdOrName("page" + ClientID);
page = e.value;
e = getElementByIdOrName("column" + ClientID);
column = e.value;
e = getElementByIdOrName("direction" + ClientID);
direction = e.value;
url = getAjaxUrlV2(ajaxUrl) + "page" + ClientID + "=" + page + "&size" + ClientID + "=" + size + "&direction" + ClientID + "=" + direction + "&column" + ClientID + "=" + column + "&rnd=" + Math.random();
return url;
}
function ajaxV2(url, ClientID, onPageModified, MessageOnError, callback, async, target) {
var http_request;
http_request = getXmlObject();
http_request.onreadystatechange = function () {
try {
if (http_request.readyState === 4) {
if (http_request.status === 200) {
callback(http_request, ClientID, "myCallback" + ClientID + "()", target);
if (onPageModified) {
try {
eval(onPageModified);
}
catch (e) { }
}
}
else {
eval(MessageOnError);
}
}
return true;
}
catch (e) {
eval(MessageOnError);
}
};
http_request.open("GET", url, async);
http_request.send(null);
}
function getXmlObject() {
var http_request;
if (window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
return http_request;
}
function callbackV2(request, ClientID, myCallback, target) {
var html = request.responseText;
var dummyend = "";
var dummystart = "
";
if (html.indexOf(dummystart) === -1) {
dummystart = "
";
}
var start = html.indexOf(dummystart) + dummystart.length;
var end = html.indexOf(dummyend);
html = html.substring(start, end);
var temp = html.replace(/