1//alert(window.onload); 2//projectwise.js 3 4 5 6//============================================================= 7// ajax functie om voor submit te checken of je ingelogd bent 8// wordt aangeroepen in PreSubmit_LoginCheck 9//============================================================= 10function ajax_CheckIngelogd() { 11 12 //alert("ajax_CheckIngelogd"); 13 $("#CheckIngelogd_fld").hide(); 14 $("#CheckIngelogd_fld").html(""); 15 16 return $.ajax({ 17 url: js_setrooturl + "/modules/common/ajax_checkingelogd.asp", 18 data: {GetType: "CheckIngelogd", Var1: js_balogin }, 19 type: "GET", 20 datatype: "html" 21 }); 22 23} 24 25 26//============================================================= 27// function PreSubmit_LoginCheck(sFormId, thisEl) 28// deze aanroepen in OK button ipv de form submit 29// als alles ok is dan wordt de form submit aangeroepen (en die roept dan weer de standaard validatie aan) 30// als alles niet ok is dan geen form submit! 31// in plaats daarvan div tonen met waarschuwing en link naar loginscherm in nieuw venster 32// je kunt dan daar opnieuw inloggen en daarna alsnog je formulier opslaan 33// hier wordt automatisch ook de ok knop tijdelijk gedisabled om dubbelklikken te voorkomen, hiervoor is de thisEl 34//============================================================= 35function PreSubmit_LoginCheck(sFormId, thisEl) { 36 37 var thisElId = thisEl.id; 38 39 //alert("this:" + $('#' + thisElId).prop("id")); 40 $('#' + thisElId).prop("disabled", true); 41 42 ajax_CheckIngelogd() 43 .done(function(result) { 44 // code depending on result 45 if (result == "OK") { 46 //alert('je bent ingelogd, dus je mag nu verder met de normale validatie'); 47 $('#' + sFormId).submit(); 48 //je wilt een delay voordat je de knop weer enabled zodat er geen dubbelklik kan plaatsvinden 49 //je wilt de knop wel weer enablen, want vanuit de form validatie kan iets terugkomen waardoor je wel nog een keer moet submitten 50 //$('#' + thisElId).prop("disabled", false); 51 var timeoutID = setTimeout(function() {$('#' + thisElId).prop('disabled', false);}, 1000); 52 53 } else { 54 //alert('je bent NIET ingelogd, dus niet verder'); 55 $("#CheckIngelogd_fld").html(result); 56 $("#CheckIngelogd_fld").show(); 57 $("html, body").scrollTop(0); 58 //GEEN SUBMIT! 59 $('#' + thisElId).prop("disabled", false); 60 61 62 } 63 }) 64 .fail(function() { 65 // error occurred 66 alert('error'); 67 //return (false); 68 }); 69 70} 71 72 73//============================================================= 74//function that hides an element 75function hidefield(elid){ 76 var trgField; 77 if (document.getElementById(elid)) { 78 trgField = document.getElementById(elid); 79 trgField.style.display = "none"; 80 } 81} 82//function that shows an element 83function showfield(elid){ 84 var trgField; 85 if (document.getElementById(elid)) { 86 trgField = document.getElementById(elid); 87 trgField.style.display = ""; //nb: door hier lege string te gebruiken wordt de default gebruikt, is bij verschillende browsers anders 88 } 89} 90 91// function that toggles display mode of an element 92function togglefield(elid){ 93 var trgField; 94 if (document.getElementById(elid)) { 95 trgField = document.getElementById(elid); 96 if (trgField.style.display != 'none') { 97 hidefield(elid); 98 } else if (trgField.style.display == 'none') { 99 showfield(elid); 100 } 101 } 102} 103 104 105function InUitKlappen(butname, divname, blnUit) { 106 //blnUit = true => uitklappen 107 //blnUit = false => inklappen 108 //butname = id of button div die getoond wordt als ingeklapt 109 //divname = id of content div die getoond wordt als uitgeklapt 110 //alert("InUitKlappen"); 111 NoSaveWarningCheck = false; 112 if (blnUit == false) { 113 showfield(butname); 114 hidefield(divname); 115 } else if (blnUit == true) { 116 showfield(divname); 117 hidefield(butname); 118 } 119 //na 250 milliseconden NoSaveWarningCheck weer op true zetten 120 setTimeout(function() { NoSaveWarningCheck = true;}, 250); 121} 122 123//function to set focus to a form 124function FormSelect() { 125 for (i=0; i<document.all.length; i++){ 126 obj = document.all[i]; 127 if (!obj || !obj.offsetParent) continue; 128 //alert(obj.type) 129 if (obj.className.toUpperCase() == 'FOCUSINPUTFIELD' ) { 130 obj.focus(); 131 return; 132 } 133 } 134} 135 136// functie om option element aan selectlist toe te voegen 137function addMenuitem(listobj, value, caption, selected) { 138 var cboOptions = eval(listobj); 139 140 cboOptions.options[cboOptions.options.length] = new Option(caption, value); 141 if (selected) { 142 cboOptions.options[cboOptions.options.length-1].selected=true; 143 } 144} 145 146function ConfirmDelete(varprompt, varurl, reloadoncancel){ 147//deze functie opent een weet u het zeker venster voordat een deletelink uitgevoerd wordt. 148 if (confirm(varprompt)) { 149 //alert(varurl); 150 document.location = varurl; 151 } else { 152 if (reloadoncancel) { 153 window.location.reload(); 154 } 155 } 156} 157 158function RedirectTo(url) { 159 document.location.href = url; 160} 161 162function openWindow(url){ 163 winEdit = window.open(url,"","width=500,height=500,resizable=yes,locationbar=0,toolbar=0,statusbar=0"); 164 } 165 166function RefPopup_SetCurUser(veldnaam, curUserId, curUserName) { 167 168 $('#' + veldnaam).val(curUserId); 169 $('#divnaam' + veldnaam).html(curUserName); 170 171} 172 173function Left(str, n){ 174 if (n <= 0) 175 return ""; 176 else if (n > String(str).length) 177 return str; 178 else
179 return String(str).substring(0,n); 180} 181function Right(str, n){ 182 if (n <= 0) 183 return ""; 184 else if (n > String(str).length) 185 return str; 186 else { 187 var iLen = String(str).length; 188 return String(str).substring(iLen, iLen - n); 189 } 190} 191 192// Onderstaande functies worden gebruikt om mogelijk te maken dat mensen blijven doortypen in een pull-down 193// menu. 194// Gevonden op: http://www.oreillynet.com/pub/a/javascript/2003/09/03/dannygoodman.html 195// Klein beetje aangepast om goed de alt-toets en pijltjestoetsen te negeren 196// Gebruik: 197// either as an attribute of the <select> tag: 198// <select name="state" id="state" onkeydown="typeAhead()">or as a property of the element assigned by script: 199// document.getElementById("state").onkeydown = typeAhead; 200 201 202// global storage object for type-ahead info, including reset() method 203var typeAheadInfo = {last:0, 204 accumString:"", 205 delay:4000, 206 timeout:null, 207 reset:function() {this.last=0; this.accumString=""} 208 }; 209 210// function invoked by select element's onkeydown event handler 211function typeAhead() { 212 //alert (window.event.keyCode); 213 // limit processing to IE event model supporter; don't trap Ctrl+keys en tab 214 //if (window.event && (window.event.keyCode >= 65) && (window.event.keyCode <= 90)) { 215 //changed to allow entering a space (keycode 32) 216 //changed to allow entering numbers (keycode 48 - 57) 217 if (window.event && (((window.event.keyCode >= 65) && (window.event.keyCode <= 90))|| (window.event.keyCode == 32) || (window.event.keyCode >= 48 && window.event.keyCode <= 57))) { 218 // timer for current event 219 var now = new Date();
220 // process for an empty accumString or an event within [delay] ms of last 221 if (typeAheadInfo.accumString == "" || now - typeAheadInfo.last < typeAheadInfo.delay) { 222 // make shortcut event object reference 223 var evt = window.event; 224var event = document.createEvent("HTMLEvents"); 225 event.initEvent('change', true, true); 226 // get reference to the select element 227 var selectElem = evt.srcElement; 228 // get typed character ASCII value 229 var charCode = evt.keyCode; 230 // get the actual character, converted to uppercase 231 var newChar = String.fromCharCode(charCode).toUpperCase(); 232 // append new character to accumString storage 233 typeAheadInfo.accumString += newChar; 234 // grab all select element option objects as an array 235 var selectOptions = selectElem.options; 236 // prepare local variables for use inside loop 237 var txt, nearest; 238 // look through all options for a match starting with accumString 239 for (var i = 0; i < selectOptions.length; i++) { 240 // convert each item's text to uppercase to facilitate comparison 241 // (use value property if you want match to be for hidden option value) 242 txt = selectOptions[i].text.toUpperCase(); 243//doe een trimString om voorloopspaties eruit te halen 244 //txt = trimString(txt); 245 // record nearest lowest index, if applicable 246 nearest = (typeAheadInfo.accumString > 247 txt.substr(0, typeAheadInfo.accumString.length)) ? i : nearest; 248 // process if accumString is at start of option text 249 if (txt.indexOf(typeAheadInfo.accumString) == 0) { 250 // stop any previous timeout timer 251 clearTimeout(typeAheadInfo.timeout); 252 // store current event's time in object 253 typeAheadInfo.last = now; 254 // reset typeAhead properties in [delay] ms unless cleared beforehand 255 typeAheadInfo.timeout = setTimeout("typeAheadInfo.reset()", typeAheadInfo.delay); 256 // visibly select the matching item 257 selectElem.selectedIndex = i; 258 //fire onchange event van select 259 selectElem.dispatchEvent(event); 260 // prevent default event actions and propagation 261 evt.cancelBubble = true; 262 evt.returnValue = false; 263 // exit function 264 return false; 265 } 266 } 267 // if a next lowest match exists, select it 268 if (nearest != null) { 269 selectElem.selectedIndex = nearest; 270 //fire onchange event van select 271 272 selectElem.dispatchEvent(event); 273 } 274 } else { 275 // not a desired event, so clear timeout 276 clearTimeout(typeAheadInfo.timeout); 277 } 278 // reset global object 279 typeAheadInfo.reset(); 280 } 281 return true; 282} 283 284 285 286/* OlDefaultFolders Constants*/ 287var olFolderDeletedItems = 3; 288var olFolderOutbox = 4; 289var olFolderSentMail = 5; 290var olFolderInbox = 6; 291var olFolderCalendar = 9; 292var olFolderContacts = 10; 293var olFolderJournal = 11; 294var olFolderNotes = 12; 295var olFolderTasks = 13; 296 297function Outlook_MakeMail(ontvanger, onderwerp, emailtext, attachment) { 298 299// Get the version of browser 300 var version = parseInt(navigator.appVersion); 301 var browser = navigator.appName; 302 303 // ================================================================ 304 // Block of code for Outlook 98/2000 running on PC 305 // ================================================================ 306 if ((browser == 'Microsoft Internet Explorer')) { 307 try { 308 var outlookApp = new ActiveXObject("Outlook.Application"); 309 var nameSpace = outlookApp.getNameSpace("MAPI"); 310 var mailFolder = nameSpace.getDefaultFolder(olFolderSentMail); 311 var mailItem = mailFolder.Items.add('IPM.Note.FormA'); 312 attachment = attachment.replace('file:////', "/"); 313 attachment = attachment.replace(/\//g,"\\\\"); 314 315 with (mailItem) { 316 Subject= onderwerp ; 317 To = ontvanger ; 318 if (attachment != '') { 319 Attachments.Add (attachment); 320 } 321 HTMLBody = emailtext ; 322 Display (0); 323 //Send(); 324 } 325 mailItem=null; 326 mailFolder=null; 327 nameSpace=null; 328 outlookApp=null; 329 } catch (er) { 330 alert(er.message); 331 alert('De outlook mail functie werkt niet. Dit kan meerdere oorzaken hebben:\n\nU gebruikt Outlook Express i.p.v. Outlook.\n\nEr staat een modaal venster open in Outlook.Sluit dit venster en probeer het nogmaals.\n\nDe beveiligingsinstellingen in Internet Explorer voor ActiveX controls staan op "disabled".'); 332 } 333 } else 334 { 335 alert('Deze functie werkt alleen in Internet Explorer'); 336 } 337} 338 339function Outlook_MakeMail_MultipleAttachments(ontvanger, onderwerp, emailtext, sAttachments, file) { 340// functie om een outlook mail te maken met meerdere attachments gekoppeld 341// Get the version of browser 342 343 var version = parseInt(navigator.appVersion); 344 var browser = navigator.appName; 345 346 var attachment; 347 var i; 348 i = 0; 349 350 // ================================================================ 351 // Block of code for Outlook 98/2000 running on PC 352 // ================================================================ 353 if ((browser == 'Microsoft Internet Explorer')) { 354 try {
355 var outlookApp = new ActiveXObject("Outlook.Application"); 356 var nameSpace = outlookApp.getNameSpace("MAPI"); 357 var mailFolder = nameSpace.getDefaultFolder(olFolderSentMail); 358 var mailItem = mailFolder.Items.add('IPM.Note.FormA'); 359 360 with (mailItem) { 361 Subject= onderwerp ; 362 To = ontvanger ; 363 if (sAttachments != '') { 364 for(i==0;i<sAttachments.split(';;').length;i++) { 365 attachment = sAttachments.split(';;')[i]; 366 attachment = attachment.replace('file:////', "/"); 367 attachment = attachment.replace(/\//g,"\\\\"); 368 Attachments.Add (attachment); 369 } 370 } 371 HTMLBody = emailtext ; 372 Display (0); 373 //Send(); 374 } 375 if(file.length!=0) { 376 mailItem.SaveAs(file, 3); 377 } 378 mailItem=null; 379 mailFolder=null; 380 nameSpace=null; 381 outlookApp=null; 382 } catch (er) { 383 alert(er.message); 384 alert('De outlook mail functie werkt niet. Dit kan meerdere oorzaken hebben:\n\nU gebruikt Outlook Express i.p.v. Outlook.\n\nEr staat een modaal venster open in Outlook.Sluit dit venster en probeer het nogmaals.\n\nDe beveiligingsinstellingen in Internet Explorer voor ActiveX controls staan op "disabled".'); 385 } 386 } else 387 { 388 alert('Deze functie werkt alleen in Internet Explorer'); 389 } 390 391 392} 393
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.