String.prototype.replaceAll = function(str1, str2, ignore){ return this.replace(new RegExp(str1.replace(/([\/\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g,"\\$&"),(ignore?"gi":"g")),(typeof(str2)=="string")?str2.replace(/\$/g,"$$$$"):str2); } function sel(val){ return (document.getElementById(val)); } function absoluteOffset_cornerTopLeft(object){ container = object.parentNode ? object.parentNode : null; var top = 0; var left = 0; while( object != null ){ top += object.offsetTop; left += object.offsetLeft; //object = object.offsetParent; if(object.parentNode && document.body!=object.parentNode){ object = object.parentNode; }else{ object = null; } } var containerTop = 0; var containerLeft = 0; if(container){ while( container != null && container.offsetTop && container.offsetLeft){ containerTop += parseInt(container.offsetTop); containerLeft += parseInt(container.offsetLeft); //container = container.offsetParent; if(container.parentNode && document.body!=container.parentNode){ container = container.parentNode; }else{ container = null; } } } return {"left":left+containerLeft, "top":top+containerTop}; } /* function absoluteOffset_center(object){ container = object.parentNode; var top = object.offsetHeight/2; var left = object.offsetWidth/2; while( object != null ){ top += object.offsetTop; left += object.offsetLeft; //object = object.offsetParent; if(object.parentNode && document.body!=object.parentNode){ object = object.parentNode; }else{ object = null; } } var containerTop = 0; var containerLeft = 0; if(container){ while( container != null && container.offsetTop && container.offsetLeft){ containerTop += parseInt(container.offsetTop); containerLeft += parseInt(container.offsetLeft); //container = container.offsetParent; if(container.parentNode && document.body!=container.parentNode){ container = container.parentNode; }else{ container = null; } } } return {"left":left-containerLeft, "top":top-containerTop}; } */ function isArray(val){//check if var is array if(Object.prototype.toString.call(val)==='[object Array]') { return true; }else{ return false; } } function isObject(val){ if(typeof val==='object'){ return true; }else{ return false; } } function isString(){ if(typeof val==='string'){ return true; }else{ return false; } } function getExtension(val){ return val.split('.').pop(); } function getMousePosition(event){ mouse = new Object; mouse = { x:event ? event.clientX : window.event.clientX, // window.event.clientX - for older browsers y:event ? event.clientY : window.event.clientY // window.event.clientX - for older browsers } mouse.x = mouse.x ? mouse.x : 0; mouse.y = mouse.y ? mouse.y : 0; return mouse; } function getUrlVars(url){ var vars = [], hash; url = url ? url : window.location.href; var hashes = url.slice(url.indexOf('?') + 1).split('&'); //var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++){ hash = hashes[i].split('='); //vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; } function if_viewmodePortret(){ if(window.innerWidth > window.innerHeight){ return false; }else{ return true; } } function if_viewmodeLandscape(){ if(window.innerWidth > window.innerHeight){ return true; }else{ return false; } } /*CHECK IF DEVICE HAS TOUCH===================================================*/ var _3dioJS_deviceHasTouch = false; window.addEventListener('touchstart', function setHasTouch(){ _3dioJS_deviceHasTouch = true; window.removeEventListener('touchstart', setHasTouch); }, false); //-//END CHECK IF DEVICE HAS TOUCH--------------------------------------------// /*CHECK IF DEVICE HAS GYROSCOPE===============================================*/ var _3dioJS_deviceHasGyro = false; window.addEventListener("deviceorientation", function checkGyro(event){ if(event.alpha){ _3dioJS_deviceHasGyro = true; window.removeEventListener('deviceorientation', checkGyro); } }, false); //--//END GYROSCOPE CHECK-----------------------------------------------------// var headHTML = document.getElementsByTagName('head')[0].innerHTML; headHTML += ''; document.getElementsByTagName('head')[0].innerHTML = headHTML; var _3dioJS = new Object; _3dioJS = { textFile_writeText:function(pathToTextFile, textToWrite){ var formData = new FormData();//new form data to send files formData.append('pathToTextFile', pathToTextFile); formData.append('textToWrite', textToWrite); var xmlhttp; xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ _3dioJS.tempAlert(xmlhttp.responseText, 2000); } } xmlhttp.open("POST",('_3dioJS/ajax/textFile_writeText.php'), true); xmlhttp.send(formData); }, textDb_addRow:function(textDb_filePath, newRowObject){ var formData = new FormData();//new form data to send files formData.append('textDb_filePath', textDb_filePath);//attach file to form data formData.append('newRow_jsonCode', JSON.stringify(newRowObject));//attach file to form data var xmlhttp; xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ alert(xmlhttp.responseText); } } xmlhttp.open("POST",('_3dioJS/ajax/textDb_addRow.php'), true); xmlhttp.send(formData); }, textDb_deleteRow:function(textDb_filePath, textDb_rowNumber){ var formData = new FormData();//new form data to send files formData.append('textDb_filePath', textDb_filePath); formData.append('textDb_rowNumber', textDb_rowNumber); var xmlhttp; xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ //alert(xmlhttp.responseText); } } xmlhttp.open("POST",('_3dioJS/ajax/textDb_deleteRow.php'), true); xmlhttp.send(formData); }, textDb_updateRow:function(textDb_filePath, rowNumber, newRowValuesObject){ }, textDb_updateValue:function(textDb_filePath, rowNumber, collName, newValue){ var formData = new FormData();//new form data to send files formData.append('textDb_filePath', textDb_filePath);//attach file to form data formData.append('rowNumber', rowNumber);//attach file to form data formData.append('collName', collName);//attach file to form data formData.append('newValue', newValue);//attach file to form data var xmlhttp; xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ //alert(xmlhttp.responseText); _3dioJS.tempAlert(xmlhttp.responseText, 2000); } } xmlhttp.open("POST",('_3dioJS/ajax/textDb_updateValue.php'), true); xmlhttp.send(formData); }, textDb_moveRowUp:function(textFilePath, rowNumber){ var formData = new FormData();//new form data to send files formData.append('textFilePath', textFilePath);//attach file to form data formData.append('rowNumber', rowNumber);//attach file to form data var xmlhttp; xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ alert(xmlhttp.responseText); } } xmlhttp.open("POST",('_3dioJS/ajax/textDb_moveRowUp.php'), true); xmlhttp.send(formData); }, textDb_moveRowDown:function(textFilePath, rowNumber){ var formData = new FormData();//new form data to send files formData.append('textFilePath', textFilePath);//attach file to form data formData.append('rowNumber', rowNumber);//attach file to form data var xmlhttp; xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ alert(xmlhttp.responseText); } } xmlhttp.open("POST",('_3dioJS/ajax/textDb_moveRowDown.php'), true); xmlhttp.send(formData); }, inputsToJson:function(inputFields){ if(isArray(inputFields)){//if multiple inpu fields given //alert('array_given'); newObject = new Object(); inputFields.forEach(function(field){ newObject[field] = sel(field).value; }) return JSON.stringify(newObject); }else if(isObject(inputFields)){ newObject = new Object(); for(var field in inputFields){ newObject[field] = sel(inputFields[field]).value; } return JSON.stringify(newObject); }else if(isString(inputFields)){//if just one input field given newObject = new Object(); newObject[inputFields] = sel(inputFields).value; return(JSON.stringify(newObject)); } }, image_upload:function(imageInputField, imageMaxWidth, imageMaxHeight, imageUploadPath, textDbFilePath, textDbImageCollumn, extraDbValuesToAddJson){ var formData = new FormData();//new form data to send files if(!sel(imageInputField).files[0]){ alert('Selectati o imagine!'); return; } if(getExtension(sel(imageInputField).value).toLowerCase()!="jpg" && getExtension(sel(imageInputField).value).toLowerCase()!="jpeg"){ alert('Incarcati numai imagini de tip jpg'); return } formData.append('imgFile', sel(imageInputField).files[0]);//attach file to form data formData.append('imgSaveLocation', imageUploadPath); formData.append('imgMaxWidth', imageMaxWidth); formData.append('imgMaxHeight', imageMaxHeight); var xmlhttp; xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ //alert(xmlhttp.responseText); if(textDbFilePath && textDbImageCollumn){ if(extraDbValuesToAddJson){ //alert(); addToDbObject = JSON.parse(extraDbValuesToAddJson); addToDbObject[textDbImageCollumn] = JSON.parse(xmlhttp.responseText).imagePath; console.log(addToDbObject); }else{ addToDbObject = new Object; addToDbObject[textDbImageCollumn] = JSON.parse(xmlhttp.responseText).imagePath; console.log(addToDbObject); } _3dioJS.textDb_addRow(textDbFilePath,addToDbObject); } } } xmlhttp.open("POST",('_3dioJS/ajax/imageUpload.php'), true); xmlhttp.send(formData); }, image_delete:function(imagePath, textDb_filePath, textDb_rowNumber){ var formData = new FormData();//new form data to send files formData.append('imagePath', imagePath);//attach file to form data var xmlhttp; xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ //alert(xmlhttp.responseText); if(textDb_filePath && textDb_rowNumber){ if(textDb_filePath && textDb_rowNumber){ _3dioJS.textDb_deleteRow(textDb_filePath, textDb_rowNumber); } } } } xmlhttp.open("POST",('_3dioJS/ajax/imageDelete.php'), true); xmlhttp.send(formData); }, htmlToText:function(htmlText){ returnText = htmlText.replaceAll("