");
innerContainer=document.getElementById(container_id+'_overlay_box');
// outerContainer=document.getElementById(container_id+'_overlay_frame');
// outerContainer.innerHTML=outerContainer.innerHTML+"
";
// innerContainer=document.getElementById(container_id+'_overlay_box');
doAjax("prepare_upload_picture",valueString,false,innerContainer,"https://ssl.dicendum.com/central_services"+testPlug+"/dicendumAPI.php",function(){ return openlayer(container_id+'_overlay_frame',container_id+'_overlay_box');},null);
break;
case "do_pic_upload":
picupload(container_id,document.getElementById('copyright')!=null? document.getElementById('copyright').value:null);
break;
case "do_delete_picture":
jsondata = null;
doAjax("do_delete_picture",valueString,false,thisContainer,"https://ssl.dicendum.com/central_services"+testPlug+"/dicendumAPI.php",function(){ return updatePicture(jsondata,container_id);},document.getElementById("dummy"));
break;
case "do_pic_upload_save":
frameContainer=document.getElementById('pic_layer_frame');
valueString = getAllValues(frameContainer);
frr = document.getElementById('scroller');
fr = document.getElementById(container_id+'_frame');
elemRect = frr.getBoundingClientRect();
parRect = fr.getBoundingClientRect();
if(picXParent==parRect.left && picYParent==parRect.top) {
valueString +="&ypos="+(picYpos-elemRect.top);
valueString +="&xpos="+(picXpos-elemRect.left);
jsondata = null;
doAjax("do_pic_upload_save",valueString,false,frameContainer,"https://ssl.dicendum.com/central_services"+testPlug+"/dicendumAPI.php",function(){ return updatePicture(jsondata,container_id);},document.getElementById("dummy"));
} else {
valueString = "&"+container_id+"_class="+document.getElementById(container_id+'_class').value;
valueString +="&pic_id="+jsondata["picture"];
valueString +="&component_id="+container_id;
innerContainer = document.getElementById(container_id+'_overlay_box');
doAjax("do_adjust_pic_upload",valueString,false,innerContainer,"https://ssl.dicendum.com/central_services"+testPlug+"/dicendumAPI.php",function(){ return activateSlider(container_id);},null);
}
break;
case "do_file_upload_save":
frameContainer=document.getElementById('file_layer_frame');
valueString = getAllValues(frameContainer);
valueString +="&component_id="+container_id;
jsondata = null;
doAjax("do_file_upload_save",valueString,false,frameContainer,"https://ssl.dicendum.com/central_services"+testPlug+"/dicendumAPI.php",function(){ return setFileUploadResult(jsondata);},document.getElementById("dummy"));
break;
}
return false;
}
function updatePicture(obj,container_id) {
var img = document.getElementById(container_id+"_pic");
if(obj["url"]) {
img.src = obj["url"];
document.getElementById(container_id+"_new_picture").value=obj["url"];
document.getElementById(container_id+"_upload_link").style.display="none";
document.getElementById(container_id+"_del_link").style.display="block";
closelayer(container_id+'_overlay_frame',container_id+'_overlay_box');
}
else if(obj["del"]) {
img.src = obj["placeholder"];
document.getElementById(container_id+"_upload_link").style.display="block";
document.getElementById(container_id+"_del_link").style.display="none";
}
}
function picupload(container_id,copyrightholder){
var form = document.getElementById('file-form');
var fileSelect = document.getElementById('file-select');
var replacementObject = document.getElementById('uploadbox');
var replacementObjectOld = replacementObject.innerHTML;
var files = fileSelect.files;
var formData = new FormData();
var session_class = document.getElementById('session_class').value;
// Loop through each of the selected files.
for (var i = 0; i < files.length; i++) {
var file = files[i];
// Check the file type.
if (!file.type.match('image.*')) {
continue;
}
// Add the file to the request.
formData.append('photos[]', file, file.name);
}
if(files.length==0) {
var error_pic_upload = document.getElementById('error_pic_upload');
error_pic_upload.style.display='block';
error_pic_upload.innerHTML="Bitte Bild auswählen";
} else {
var container = document.getElementById(container_id);
if(replacementObject!=null) {
replacementObject.innerHTML="";
replacementObject.innerHTML="
";
} else {
container.innerHTML="";
container.innerHTML="
";
}
formData.append(container_id+'_class', document.getElementById(container_id+'_class').value);
formData.append('session_class', session_class);
formData.append('action', 'do_pic_upload');
formData.append('component_id', container_id);
formData.append('copyright', copyrightholder);
var xhr = $.ajax({
type: 'POST',
url: "https://ssl.dicendum.com/central_services"+testPlug+"/dicendumAPI.php",
crossDomain: true,
data: formData,
processData: false,
contentType: false,
tryCount : 0,
retryLimit : 3})
.done(function() {//alert(xhr.responseText);
if(xhr.responseText.trim().substr(0,1)=="{") {
jsondata = JSON.parse(xhr.responseText);
if(jsondata["error_pic_upload"]) {
replacementObject.innerHTML = replacementObjectOld;
var error_pic_upload = document.getElementById('error_pic_upload');
error_pic_upload.style.display='block';
error_pic_upload.innerHTML=jsondata["error_pic_upload"];
} else {
valueString = "&"+container_id+"_class="+document.getElementById(container_id+'_class').value;
valueString +="&pic_id="+jsondata["picture"];
valueString +="©right="+jsondata["copyright"];
valueString +="&component_id="+container_id;
valueString +="&session_class="+ session_class;
innerContainer = document.getElementById(container_id+'_overlay_box');
postValues = get2postValues(valueString);
doAjaxPost("do_adjust_pic_upload",postValues,false,innerContainer,"https://ssl.dicendum.com/central_services"+testPlug+"/dicendumAPI.php",function(){ return activateSlider(container_id);},replacementObject);
}
}
})
.fail(function(xhr, textStatus, errorThrown ) {
if (textStatus == 'timeout') {
this.tryCount++;
if (this.tryCount <= this.retryLimit) {
//try again
$.ajax(this);
return;
}
return;
}
if (xhr.status == 500) {
//handle error
alert("es ist ein Fehler beim Übermitteln der Daten aufgetreten");
} else {
//handle error
alert("es ist ein Fehler beim Übermitteln der Daten aufgetreten");
}
})
}
}
function fileupload(container_id,file_type){
var form = document.getElementById('file-form');
var fileSelect = document.getElementById('file-select');
var replacementObject = document.getElementById('uploadbox');
var replacementObjectOld = replacementObject.innerHTML;
var files = fileSelect.files;
var formData = new FormData();
var session_class = document.getElementById('session_class').value;
// Loop through each of the selected files.
for (var i = 0; i < files.length; i++) {
var file = files[i];
// Check the file type.
if (!file.type.match(file_type)) {
continue;
}
// Add the file to the request.
formData.append('files[]', file, file.name);
}
if(files.length==0) {
var error_file_upload = document.getElementById('error_file_upload');
error_file_upload.style.display='block';
error_file_upload.innerHTML="Bitte Datei auswählen";
} else if(!file.type.match(file_type)) {
var error_file_upload = document.getElementById('error_file_upload');
error_file_upload.style.display='block';
error_file_upload.innerHTML="Unzulässiger Dateityp";
} else if(file.size>8192000) {
var error_file_upload = document.getElementById('error_file_upload');
error_file_upload.style.display='block';
error_file_upload.innerHTML="Datei ist zu groß (max. 8 MB)";
} else {
formData.append(container_id+'_class', document.getElementById(container_id+'_class').value);
formData.append('session_class', session_class);
formData.append('action', 'do_file_upload');
formData.append('component_id', container_id);
// Set up the request.
var xrq = new XMLHttpRequest();
// Open the connection.
if(testPlug)
xrq.open('POST', './dicendumAPI.php',true);
else
xrq.open('POST', 'https://ssl.dicendum.com/central_services/dicendumAPI.php',true);
xrq.onload = function () {
if (xrq.status === 200) {
//document.write(xrq.responseText);
//alert(xrq.responseText);
if(xrq.responseText.substr(0,1)=="{") {
jsondata = JSON.parse(xrq.responseText);
if(jsondata["error_file_upload"]) {
replacementObject.innerHTML = replacementObjectOld;
var error_file_upload = document.getElementById('error_file_upload');
error_file_upload.style.display='block';
error_file_upload.innerHTML=jsondata["error_file_upload"];
} else {
valueString = "&"+container_id+"_class="+document.getElementById(container_id+'_class').value;
valueString +="&file_id="+jsondata["file"];
valueString +="&component_id="+container_id;
valueString +="&session_class="+ session_class;
innerContainer = document.getElementById('file_layer_frame');
postValues = get2postValues(valueString);
// if(testPlug)
doAjaxPost("do_file_upload_2",postValues,false,innerContainer,"./dicendumAPI.php",null,replacementObject);
/* else
doAjaxPost("do_file_upload_2",postValues,false,innerContainer,"https://ssl.dicendum.com/central_services/dicendumAPI.php",null,replacementObject);*/
}
}
} else {
replacementObject.innerHTML = replacementObjectOld;
var error_file_upload = document.getElementById('error_file_upload');
error_file_upload.style.display='block';
error_file_upload.innerHTML="Es ist ein Fehler aufgetreten";
}
}
replacementObject.innerHTML="
";
xrq.send(formData);
}
}
function setFileUploadResult(obj){
allE = getObjectWithClass("error");
allE.forEach(function(entry) {
entry.style.display="none";
});
if(obj["ok"]==null) {
for (key in obj) {
document.getElementById(key).style.display="block";
document.getElementById(key).innerHTML=obj[key];
}
} else {
closelayer('Layer','layerBox','layerbox');
var fnparams = [obj["reloadListObjectID"], obj["reloadListCommand"]];
// find object
var fn = window[obj["reloadListFunction"]];
// is object a function?
if (typeof fn === "function") {
fn.apply(null, fnparams);
}
}
}
var waitingOngoingYN=false;
function doAjaxPost(LayerAction,postValues,ContainerName,ContainerObject,urldomain, callFunctionWhenFinished,replacementObject) {
if(!ContainerObject) var container = document.getElementById(ContainerName); else container=ContainerObject;
if(replacementObject!=null) {
replacementObject.innerHTML="";
replacementObject.innerHTML="
";
} else {
container.innerHTML="";
container.innerHTML="
";
}
var thisTime = Date.now()
var xhr = $.ajax({
type: 'POST',
url: urldomain+"?action="+LayerAction+"&d="+thisTime,
crossDomain: true,
data: postValues,
tryCount : 0,
retryLimit : 3})
.done(function() {//alert(xhr.responseText);
console.log ("*****doAjax "+xhr.responseText);
if (typeof waitForFinish !== 'undefined') waitForFinish=false;
if(xhr.responseText.trim().substr(0,1)=="{") {
jsondata = JSON.parse(xhr.responseText);
if(callFunctionWhenFinished!=null) callFunctionWhenFinished();
} else {
//if(xhr.responseText!="")
container.innerHTML=xhr.responseText;
if(document.getElementById("doreload") || xhr.responseText.includes("\"doreload\"")) {
internalReload=true;
window.location.href=window.location.origin;
} else if(callFunctionWhenFinished!=null) {
callFunctionWhenFinished();
}
}
})
.fail(function(xhr, textStatus, errorThrown ) {
if (textStatus == 'timeout') {
this.tryCount++;
if (this.tryCount <= this.retryLimit) {
//try again
$.ajax(this);
return;
} else {
if (typeof waitForFinish !== 'undefined') waitForFinish=false;
}
return;
}
if (xhr.status == 500) {
//handle error
alert("es ist ein Fehler beim Übermitteln der Daten aufgetreten");
if (typeof waitForFinish !== 'undefined') waitForFinish=false;
} else {
//handle error
alert("es ist ein Fehler beim Übermitteln der Daten aufgetreten");
if (typeof waitForFinish !== 'undefined') waitForFinish=false;
}
})
}
var myScroll;var picXpos; var picYpos;var picXParent; var picYParent;
function activateSlider(component_id) {
setTimeout(function(){
fr = document.getElementById(component_id+'_frame');
$(fr).width("140px");
frr = document.getElementById('scroller');
myScroll = new IScroll(fr, { scrollX:true,freeScroll:true,bounce: false});
document.addEventListener('mousedown', function (e) {myScroll._start(e); }, false);
elemRect = frr.getBoundingClientRect();
parRect = fr.getBoundingClientRect();
picXpos = elemRect.left;
picYpos = elemRect.top;
picXParent = parRect.left;
picYParent = parRect.top;
},500);
}
function modifyFont(x){
var pixMax=110;
var pixMin=90;
pix = pix+x;
if(pix > pixMax) pix = pixMax;
if(pix < pixMin) pix = pixMin;
pixstr=Math.round(pix)+'%';
changeCSSRule(0,pixstr);
return false;
}
function getPropertyOfCSSRule(classPos,element) {
var strCSS = 'cssRules';
if(document.all) {
strCSS = 'rules';
}
return document.styleSheets[0][strCSS][classPos].style[element];
}
function changeCSSRule(classPos,value) {
var strCSS = 'rules';
if (document.styleSheets[0].cssRules) {
strCSS = 'cssRules';
}
document.styleSheets[0][strCSS][classPos].style.fontSize = value;
}
function doAjax(LayerAction,getValues,ContainerName,ContainerObject,urldomain, callFunctionWhenFinished,replacementObject) {
console.log ("*****ajax request:"+urldomain+"?action="+LayerAction+getValues);
if(!ContainerObject) var container = document.getElementById(ContainerName); else container=ContainerObject;
if(replacementObject!=null) {
replacementObject.innerHTML="";
replacementObject.innerHTML="
";
} else {
container.innerHTML="";
container.innerHTML="
";
}
var thisTime = Date.now()
var xhr = $.ajax({
type: 'GET',
url: urldomain+"?action="+LayerAction+getValues+"&d="+thisTime,
crossDomain: true,
tryCount : 0,
retryLimit : 3})
.done(function() {//alert(xhr.responseText);
console.log ("*****doAjax "+xhr.responseText);
if (typeof waitForFinish !== 'undefined') waitForFinish=false;
if(xhr.responseText.trim().substr(0,1)=="{") {
jsondata = JSON.parse(xhr.responseText);
callFunctionWhenFinished();
} else {
container.innerHTML=xhr.responseText;
//console.log ("*****doAjax "+container.innerHTML);
if(document.getElementById("doreload") || xhr.responseText.includes("\"doreload\"")) {
internalReload=true;
window.location.href=window.location.origin;
} else if(callFunctionWhenFinished!=null) {
callFunctionWhenFinished();
}
}
})
.fail(function(xhr, textStatus, errorThrown ) {
console.log ("*****ajax error 500 "+errorThrown);
if (textStatus == 'timeout') {
this.tryCount++;
if (this.tryCount <= this.retryLimit) {
//try again
$.ajax(this);
return;
} else {
if (typeof waitForFinish !== 'undefined') waitForFinish=false;
}
return;
}
if (xhr.status == 500) {
//handle error
console.log ("*****ajax error 500 "+errorThrown);
alert("es ist ein Fehler beim Übermitteln der Daten aufgetreten");
if (typeof waitForFinish !== 'undefined') waitForFinish=false;
} else {
//handle error
console.log ("*****ajax error "+xhr.status);
alert("es ist ein Fehler beim Übermitteln der Daten aufgetreten");
if (typeof waitForFinish !== 'undefined') waitForFinish=false;
}
});
}
function doUpdateDropdown(source,target,call,api){
doUpdateDropdown(source,target,call,api,doAfterFinish,null)
}
function doUpdateDropdown(source,target,call,api,doAfterFinish){
sourceList = document.getElementById(source);
valueString="&session_class="+document.getElementById("session_class").value;
valueString +="&selectedItem="+maskText(sourceList.options[sourceList.selectedIndex].value);
jsondata=null;
doAjax(call,valueString,false,source,api,function(){ return updateDropdown(target, jsondata,doAfterFinish)},document.getElementById("xy"));
}
/**
*
* @access public
* @return void
**/
function getAllValues(thisContainer){
var valueString="";
var hasclass=false;
var allradio=[];
var t = thisContainer.getElementsByTagName("input");
for(var i = 0; i < t.length; i++) {
if (t[i].nodeType == 1 ) {
if (t[i].type == 'checkbox') {
if(t[i].checked == true)
valueString +="&"+t[i].name+"=true";
} else if (t[i].type == 'radio') {
if(allradio[t[i].name]==null) {
selVal=document.querySelector('input[name='+t[i].name+']:checked')? document.querySelector('input[name='+t[i].name+']:checked').value : null;
valueString +="&"+t[i].name+"="+selVal;
allradio[t[i].name]=1;
}
} else {
valueString +="&"+t[i].name+"="+maskText(t[i].value.trim());
if(t[i].name.match("^session_class")) hasclass=true;
}
}
}
if(hasclass==false) {
valueString +="&session_class="+maskText(document.getElementById('session_class').value);
}
var t2 = thisContainer.getElementsByTagName("select");
for(i = 0; i < t2.length; i++) {
if(t2[i].options[t2[i].selectedIndex]) {
valueString +="&"+t2[i].name+"="+maskText(t2[i].options[t2[i].selectedIndex].value);
}
}
var t3 = thisContainer.getElementsByTagName("textarea");
for(i = 0; i < t3.length; i++) {
if(t3[i].name) {
valueString +="&"+t3[i].name+"="+maskTextForEditor(t3[i].value.trim());
}
}
//alert(valueString);
return valueString;
}
function get2postValues(valueString) {
var units = valueString.split("&");
var data = {};
for(x=0;x
");
messageText=messageText.replace(/[ ]/g,"%20");
messageText=messageText.replace(/[#]/g,"%23");
messageText=messageText.replace(/[+]/g,"%2B");
return messageText;
}
function maskTextForEditor(messageText){
messageText=safeText(messageText);
messageText=messageText.replace(/[&]/g,"@@@");
messageText=messageText.replace(/[=]/g,"|~|");
messageText=messageText.replace(/[ ]/g,"%20");
messageText=messageText.replace(/[#]/g,"%23");
messageText=messageText.replace(/[+]/g,"%2B");
return messageText;
}
function deMaskText(messageText){
messageText=messageText.replace(/@@@/g,"&");
messageText=messageText.replace(/[|]~[|]/g,"=");
messageText=messageText.replace(/
/g,"\n");
messageText=messageText.replace(/[%]20/g," ");
messageText=messageText.replace(/[%]23/g,"#");
messageText=messageText.replace(/[%]2B/g,"+");
messageText=htmlDecode(messageText);
return messageText;
}
function safeText(txt) {
var ENTITIES = {34: "quot", 60: "lt", 62: "gt", 38: "amp", 160: "nbsp", 161: "iexcl", 162: "cent", 163: "pound", 164: "curren", 165: "yen", 166: "brvbar", 167: "sect", 168: "uml", 169: "copy", 170: "ordf", 171: "laquo", 172: "not", 173: "shy", 174: "reg", 175: "macr", 176: "deg", 177: "plusmn", 178: "sup2", 179: "sup3", 180: "acute", 181: "micro", 182: "para", 183: "middot", 184: "cedil", 185: "sup1", 186: "ordm", 187: "raquo", 188: "frac14", 189: "frac12", 190: "frac34", 191: "iquest", 192: "Agrave", 193: "Aacute", 194: "Acirc", 195: "Atilde", 196: "Auml", 197: "Aring", 198: "AElig", 199: "Ccedil", 200: "Egrave", 201: "Eacute", 202: "Ecirc", 203: "Euml", 204: "Igrave", 205: "Iacute", 206: "Icirc", 207: "Iuml", 208: "ETH", 209: "Ntilde", 210: "Ograve", 211: "Oacute", 212: "Ocirc", 213: "Otilde", 214: "Ouml", 215: "times", 216: "Oslash", 217: "Ugrave", 218: "Uacute", 219: "Ucirc", 220: "Uuml", 221: "Yacute", 222: "THORN", 223: "szlig", 224: "agrave", 225: "aacute", 226: "acirc", 227: "atilde", 228: "auml", 229: "aring", 230: "aelig", 231: "ccedil", 232: "egrave", 233: "eacute", 234: "ecirc", 235: "euml", 236: "igrave", 237: "iacute", 238: "icirc", 239: "iuml", 240: "eth", 241: "ntilde", 242: "ograve", 243: "oacute", 244: "ocirc", 245: "otilde", 246: "ouml", 247: "divide", 248: "oslash", 249: "ugrave", 250: "uacute", 251: "ucirc", 252: "uuml", 253: "yacute", 254: "thorn", 255: "yuml", 34: "quot", 60: "lt", 62: "gt", 38: "amp"};
if(!txt) return '';
txt = txt.replace(/&/g,"&");
var new_text = '';
for(var i = 0; i < txt.length; i++) {
var c = txt.charCodeAt(i);
if(typeof ENTITIES[c] != 'undefined') {
new_text += '&' + ENTITIES[c] + ';';
} else if(c < 128) {
new_text += String.fromCharCode(c);
}else {
new_text += '' + c +';';
}
}
return new_text.replace(//g,">");
}
function htmlDecode(input){
var e = document.createElement('div');
e.innerHTML = input;
// handle case of empty input
return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
}
function mobilecheck() {
var check = false;
(function(a){if(/(android|ipad|playbook|silk|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true})(navigator.userAgent||navigator.vendor||window.opera);
return check;
}
function getObjectWithClass(className)
{
var matchingItems = [];
var allElements = document.getElementsByTagName("*");
for(var i=0; i < allElements.length; i++)
{
if(allElements [i].className == className)
{
matchingItems.push(allElements[i]);
}
}
return matchingItems;
}
function openlayer(layer_name,layer_box_name) {
openlayer(layer_name,layer_box_name,null);
}
function openlayer(layer_name,layer_box_name,callFunctionWhenFinished) {
var layer = document.getElementById(layer_name);
$(layer).height($(document).height());
var layerbox = document.getElementById(layer_box_name);
var layerClassname=layer.className;
layerClassname = layerClassname.toString().replace(/fade[^°]*?( |$)/g,'');
var layerBoxClassname=layerbox.className;
layerBoxClassname = layerBoxClassname.toString().replace(/fade[^°]*?( |$)/g,'');
var onTransitionEndFn = function() {
layer.className=layerClassname;
layer.style.display="block";
layerbox.className=layerBoxClassname;
layerbox.style.display="block";
layerbox.removeEventListener( transEndEventName, onTransitionEndFn );
$("#layerBox:has('.isLongList')").addClass("longlist");
if (callFunctionWhenFinished != null) {
setTimeout(function() {
callFunctionWhenFinished();
},100);
}
if(layer.innerHTML.includes("tooltip")) {
$( function() {
$( document ).tooltip();
});
}
}
transEndEventName = transEndEventNames[Modernizr.prefixed( 'Animation' )];
layer.style.display="block";
layer.className=layerClassname+" fadeInGrey";
layerbox.addEventListener( transEndEventName, onTransitionEndFn,false);
layerbox.style.display="block";
layerbox.className=layerBoxClassname+" fadeInWhite";
return false;
}
function closelayer(layer_name,layer_box_name,taget_className) {
closelayer(layer_name,layer_box_name,taget_className,null);
}
function closelayer(layer_name,layer_box_name,taget_className,callFunctionWhenFinished) {
if(typeof waitForFinish==='undefined') {
} else waitForFinish=false;
var layer = document.getElementById(layer_name);
var layerbox = document.getElementById(layer_box_name);
var layerClassname=layer.className;
layerClassname = layerClassname.toString().replace(/fade[^°]*?( |$)/g,'');
var layerBoxClassname=layerbox.className;
layerBoxClassname = layerBoxClassname.toString().replace(/fade[^°]*?( |$)/g,'');
var onTransitionEndFn = function() {
layer.className=layerClassname;
layer.style.display="none";
layerbox.className=taget_className? taget_className : layerBoxClassname;
layerbox.style.display="none";
layerbox.removeEventListener( transEndEventName, onTransitionEndFn );
layerbox.innerHTML='';
$(layerbox).removeClass("longlist");
if (callFunctionWhenFinished != null) {
setTimeout(function() {
callFunctionWhenFinished();
},100);
}
}
transEndEventName = transEndEventNames[Modernizr.prefixed( 'Animation' )];
layer.style.display="block";
layer.className=layerClassname+" fadeOutGrey";
layerbox.addEventListener( transEndEventName, onTransitionEndFn,false);
layerbox.style.display="block";
layerbox.className=layerBoxClassname+" fadeOutWhite";
return false;
}
function getCheckedRadio(radio_group) {
for (var i = 0; i < radio_group.length; i++) {
var button = radio_group[i];
if (button.checked) {
return button;
}
}
return undefined;
}
function clearList(listName){
list = document.getElementById(listName);
var valueString = getAllValues(list);
valueString+="&reload=true";
allDiv = list.querySelectorAll("DIV");
for(i = 0; i < allDiv.length; i++) {
if(allDiv[i].id!=listName)
allDiv[i].innerHTML="";
};
return list;
}
function checkDate(input){
var output = "";
if(input.length>0) {
var parts = input.split(".");
var today = new Date();
var day = today.getDate();
var month = today.getMonth()+1;
var year = today.getFullYear();
if(parts.length>=1) day=parseInt(parts[0].substring(0, 2))<=31 ? parseInt(parts[0].substring(0, 2)) : day;
if(parts.length>=2) month=parseInt(parts[1].substring(0, 2))<=12 ? parseInt(parts[1].substring(0, 2)) : month;
if(parts.length>=3 && (parts[2].length==2 || parts[2].length==4) ) year=parseInt(parts[2].substring(0, 4))<=2099 ? parseInt(parts[2].substring(0, 4)) : year;
dayString = day<10 ? "0"+day : day;
monthString = month<10 ? "0"+month : month;
yearString = year<99 ? "20"+year : year;
output=dayString+"."+monthString+"."+yearString;
}
return output;
}
function checkTime(input){
var output = "";
if(input.length>0) {
var parts = input.split(/[:.]/);
var hour = 0;
var minute = 0;
if(parts.length>=1) hour=parseInt(parts[0].substring(0, 2))<=23 ? parseInt(parts[0].substring(0, 2)) : hour;
if(parts.length>=2) minute=parseInt(parts[1].substring(0, 2))<=59 ? parseInt(parts[1].substring(0, 2)) : minute;
hourString = hour<10 ? "0"+hour : hour;
minuteString = minute<10 ? "0"+minute : minute;
output=hourString+"."+minuteString;
}
return output;
}
function setSelectedValue(selectObj, valueToSet) {
for (var i = 0; i < selectObj.options.length; i++) {
if (selectObj.options[i].value== valueToSet) {
selectObj.options[i].selected = true;
return true;
}
}
return false;
}
function selectDeselect(component, valueToSet) {
thisContainer=document.getElementById(component);
var t = thisContainer.getElementsByTagName("input");
for(i = 0; i < t.length; i++) {
if (t[i].nodeType == 1 ) {
if (t[i].type == 'checkbox') {
t[i].checked=valueToSet;
}
}
}
return false;
}
function updateDropdown(targetSelect, optionArray) {
updateDropdown(targetSelect, optionArray,null);
}
function updateDropdown(targetSelect, optionArray,doAfterFinish) {
$('#'+targetSelect).empty();
$.each(optionArray, function( index, value ) {
$('#'+targetSelect).append(
$("").val(index).text(value)
);
});
$('#'+targetSelect).trigger("chosen:updated");
if(doAfterFinish!=null) doAfterFinish();
}
/**
*
* @access public
* @return void
**/
function printIframe(name){
window.frames[name].focus();
window.frames[name].print();
return false;
}
/** S P I N N E R
* Copyright (c) 2011-2014 Felix Gnass
* Licensed under the MIT license
*/
(function (root, factory) {
/* CommonJS */
if (typeof exports == 'object') module.exports = factory()
/* AMD module */
else if (typeof define == 'function' && define.amd) define(factory)
/* Browser global */
else root.Spinner = factory()
}
(this, function () {
"use strict";
var prefixes = ['webkit', 'Moz', 'ms', 'O'] /* Vendor prefixes */
, animations = {} /* Animation rules keyed by their name */
, useCssAnimations /* Whether to use CSS animations or setTimeout */
, sheet /* A stylesheet to hold the @keyframe or VML rules. */
/**
* Utility function to create elements. If no tag name is given,
* a DIV is created. Optionally properties can be passed.
*/
function createEl(tag, prop) {
var el = document.createElement(tag || 'div')
, n
for (n in prop) el[n] = prop[n]
return el
}
/**
* Appends children and returns the parent.
*/
function ins(parent /* child1, child2, ...*/) {
for (var i = 1, n = arguments.length; i < n; i++)
parent.appendChild(arguments[i])
return parent
}
/**
* Creates an opacity keyframe animation rule and returns its name.
* Since most mobile Webkits have timing issues with animation-delay,
* we create separate rules for each line/segment.
*/
function addAnimation(alpha, trail, i, lines) {
var name = ['opacity', trail, ~~(alpha * 100), i, lines].join('-')
, start = 0.01 + i / lines * 100
, z = Math.max(1 - (1 - alpha) / trail * (100 - start), alpha)
, prefix = useCssAnimations.substring(0, useCssAnimations.indexOf('Animation')).toLowerCase()
, pre = prefix && '-' + prefix + '-' || ''
if (!animations[name]) {
sheet.insertRule(
'@' + pre + 'keyframes ' + name + '{' +
'0%{opacity:' + z + '}' +
start + '%{opacity:' + alpha + '}' +
(start + 0.01) + '%{opacity:1}' +
(start + trail) % 100 + '%{opacity:' + alpha + '}' +
'100%{opacity:' + z + '}' +
'}', sheet.cssRules.length)
animations[name] = 1
}
return name
}
/**
* Tries various vendor prefixes and returns the first supported property.
*/
function vendor(el, prop) {
var s = el.style
, pp
, i
prop = prop.charAt(0).toUpperCase() + prop.slice(1)
for (i = 0; i < prefixes.length; i++) {
pp = prefixes[i] + prop
if (s[pp] !== undefined) return pp
}
if (s[prop] !== undefined) return prop
}
/**
* Sets multiple style properties at once.
*/
function css(el, prop) {
for (var n in prop)
el.style[vendor(el, n) || n] = prop[n]
return el
}
/**
* Fills in default values.
*/
function merge(obj) {
for (var i = 1; i < arguments.length; i++) {
var def = arguments[i]
for (var n in def)
if (obj[n] === undefined) obj[n] = def[n]
}
return obj
}
/**
* Returns the line color from the given string or array.
*/
function getColor(color, idx) {
return typeof color == 'string' ? color : color[idx % color.length]
}
// Built-in defaults
var defaults = {
lines: 12, // The number of lines to draw
length: 7, // The length of each line
width: 5, // The line thickness
radius: 10, // The radius of the inner circle
scale: 1.0, // Scales overall size of the spinner
rotate: 0, // Rotation offset
corners: 1, // Roundness (0..1)
color: '#000', // #rgb or #rrggbb
direction: 1, // 1: clockwise, -1: counterclockwise
speed: 1, // Rounds per second
trail: 100, // Afterglow percentage
opacity: 1 / 4, // Opacity of the lines
fps: 20, // Frames per second when using setTimeout()
zIndex: 2e9, // Use a high z-index by default
className: 'spinner', // CSS class to assign to the element
top: '50%', // center vertically
left: '50%', // center horizontally
position: 'absolute' // element position
}
/** The constructor */
function Spinner(o) {
this.opts = merge(o || {}, Spinner.defaults, defaults)
}
// Global defaults that override the built-ins:
Spinner.defaults = {}
merge(Spinner.prototype, {
/**
* Adds the spinner to the given target element. If this instance is already
* spinning, it is automatically removed from its previous target b calling
* stop() internally.
*/
spin: function (target) {
this.stop()
var self = this
, o = self.opts
, el = self.el = css(createEl(0, { className: o.className }), { position: o.position, width: 0, zIndex: o.zIndex })
css(el, {
left: o.left,
top: o.top
})
if (target) {
target.insertBefore(el, target.firstChild || null)
}
el.setAttribute('role', 'progressbar')
self.lines(el, self.opts)
if (!useCssAnimations) {
// No CSS animation support, use setTimeout() instead
var i = 0
, start = (o.lines - 1) * (1 - o.direction) / 2
, alpha
, fps = o.fps
, f = fps / o.speed
, ostep = (1 - o.opacity) / (f * o.trail / 100)
, astep = f / o.lines
; (function anim() {
i++;
for (var j = 0; j < o.lines; j++) {
alpha = Math.max(1 - (i + (o.lines - j) * astep) % f * ostep, o.opacity)
self.opacity(el, j * o.direction + start, alpha, o)
}
self.timeout = self.el && setTimeout(anim, ~~(1000 / fps))
})()
}
return self
},
/**
* Stops and removes the Spinner.
*/
stop: function () {
var el = this.el
if (el) {
clearTimeout(this.timeout)
if (el.parentNode) el.parentNode.removeChild(el)
this.el = undefined
}
return this
},
/**
* Internal method that draws the individual lines. Will be overwritten
* in VML fallback mode below.
*/
lines: function (el, o) {
var i = 0
, start = (o.lines - 1) * (1 - o.direction) / 2
, seg
function fill(color, shadow) {
return css(createEl(), {
position: 'absolute',
width: o.scale * (o.length + o.width) + 'px',
height: o.scale * o.width + 'px',
background: color,
boxShadow: shadow,
transformOrigin: 'left',
transform: 'rotate(' + ~~(360 / o.lines * i + o.rotate) + 'deg) translate(' + o.scale * o.radius + 'px' + ',0)',
borderRadius: (o.corners * o.scale * o.width >> 1) + 'px'
})
}
for (; i < o.lines; i++) {
seg = css(createEl(), {
position: 'absolute',
top: 1 + ~(o.scale * o.width / 2) + 'px',
transform: o.hwaccel ? 'translate3d(0,0,0)' : '',
opacity: o.opacity,
animation: useCssAnimations && addAnimation(o.opacity, o.trail, start + i * o.direction, o.lines) + ' ' + 1 / o.speed + 's linear infinite'
})
if (o.shadow) ins(seg, css(fill('#000', '0 0 4px ' + '#000'), { top: 2 + 'px' }))
ins(el, ins(seg, fill(getColor(o.color, i), '0 0 1px rgba(0,0,0,.1)')))
}
return el
},
/**
* Internal method that adjusts the opacity of a single line.
* Will be overwritten in VML fallback mode below.
*/
opacity: function (el, i, val) {
if (i < el.childNodes.length) el.childNodes[i].style.opacity = val
}
})
function initVML() {
/* Utility function to create a VML tag */
function vml(tag, attr) {
return createEl('<' + tag + ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">', attr)
}
// No CSS transforms but VML support, add a CSS rule for VML elements:
sheet.addRule('.spin-vml', 'behavior:url(#default#VML)')
Spinner.prototype.lines = function (el, o) {
var r = o.scale * (o.length + o.width)
, s = o.scale * 2 * r
function grp() {
return css(
vml('group', {
coordsize: s + ' ' + s,
coordorigin: -r + ' ' + -r
}),
{ width: s, height: s }
)
}
var margin = -(o.width + o.length) * o.scale * 2 + 'px'
, g = css(grp(), { position: 'absolute', top: margin, left: margin })
, i
function seg(i, dx, filter) {
ins(g,
ins(css(grp(), { rotation: 360 / o.lines * i + 'deg', left: ~~dx }),
ins(css(vml('roundrect', { arcsize: o.corners }), {
width: r,
height: o.scale * o.width,
left: o.scale * o.radius,
top: -o.scale * o.width >> 1,
filter: filter
}),
vml('fill', { color: getColor(o.color, i), opacity: o.opacity }),
vml('stroke', { opacity: 0 }) // transparent stroke to fix color bleeding upon opacity change
)
)
)
}
if (o.shadow)
for (i = 1; i <= o.lines; i++)
seg(i, -2, 'progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)')
for (i = 1; i <= o.lines; i++) seg(i)
return ins(el, g)
}
Spinner.prototype.opacity = function (el, i, val, o) {
var c = el.firstChild
o = o.shadow && o.lines || 0
if (c && i + o < c.childNodes.length) {
c = c.childNodes[i + o]; c = c && c.firstChild; c = c && c.firstChild
if (c) c.opacity = val
}
}
}
if (typeof document !== 'undefined') {
sheet = (function () {
var el = createEl('style', { type: 'text/css' })
ins(document.getElementsByTagName('head')[0], el)
return el.sheet || el.styleSheet
}())
var probe = css(createEl('group'), { behavior: 'url(#default#VML)' })
if (!vendor(probe, 'transform') && probe.adj) initVML()
else useCssAnimations = vendor(probe, 'animation')
}
return Spinner
}));
function setWaitForFinish(buttonElement) {
if(waitForFinish==false) {
waitForFinish=true;
var opts = {
lines: 13, // The number of lines to draw
length: 7, // The length of each line
width: 5, // The line thickness
radius: 10, // The radius of the inner circle
corners: 1, // Corner roundness (0..1)
rotate: 0, // The rotation offset
direction: 1, // 1: clockwise, -1: counterclockwise
color: '#aaa', // #rgb or #rrggbb or array of colors
speed: 1, // Rounds per second
trail: 60, // Afterglow percentage
shadow: false, // Whether to render a shadow
hwaccel: false, // Whether to use hardware acceleration
className: 'spinner', // The CSS class to assign to the spinner
zIndex: 2e9, // The z-index (defaults to 2000000000)
top: $(buttonElement).top, // Top position relative to parent
left: $(buttonElement).left // Left position relative to parent
};
var spinner = new Spinner(opts).spin();
$(buttonElement).attr("waitforfinish",'');
$(buttonElement).css("background-color","transparent");
$(buttonElement).css("position","relative");
$(buttonElement).append(spinner.el);
}
}
function unsetWaitForFinish() {
waitForFinish=false;
$("[waitforfinish]").css("background-color","");
$("[waitforfinish]").removeAttr("waitforfinish");
$(".spinner").remove();
}
function b64EncodeUnicodeGeneral(str) {
return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {
return String.fromCharCode('0x' + p1);
}));
}
function b64DecodeUnicodeGeneral(str) {
return decodeURIComponent(Array.prototype.map.call(atob(str), function(c) {
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)
}).join(''))
}