/* 2003-06-17 CommonTown JS util functions */ /* Add your utility functions here. */ /* Please put a short comment with your big name for posterity */ function ctpopup(name,url,w,h,param) { // popup window at the centre of screen if (typeof w =="undefined") w=400; if (typeof h =="undefined") h=250; if (typeof param =="undefined") { param=",status=no,menubar=no,resizable=yes,scrollbars=yes"; } if (param.indexOf('left')==-1) { var left = ( screen.width - w ) / 2 ; param+=",left="+left; } if (param.indexOf('top')==-1) { var top = ( screen.height - h ) / 2; param+=",top="+top; } param += ",width="+w+",height="+h; win= window.open(url,name,param); if (win) win.focus(); win.opener=self; return win; } function ctformselectval(elm) { // get form select value cnt=elm.options.length; for(var i=0; i< cnt; i++) { if (elm.options[i].selected) return elm.options[i].value; } return false; } function ctfilldiv(which,url,msg) { targetDiv=document.getElementById(which); if (targetDiv){ if (msg) targetDiv.innerHTML=msg; else targetDiv.innerHTML='


Downloading, please wait..
'; } fobj=document.getElementById('_dlframe'); fobj.targetObj=targetDiv; aobj=document.getElementById('_dlgrabber'); aobj.href=url; aobj.target='_dlframe'; aobj.click(); } function ctload_dlframe(c) { var rwin=c.contentWindow; // result if (rwin && rwin.document.body) { var html=rwin.document.body.innerHTML; if (html) c.targetObj.innerHTML=html; } } // 2004-08-23 joel: menu function ct_show_menu(mname,nudge) { var omenu=document.getElementById(mname); if (omenu) { if (nudge) { if (!omenu.style.origleft) omenu.style.origleft=omenu.style.pixelLeft; omenu.style.pixelLeft=omenu.style.origleft+nudge; } omenu.style.display='block'; } // else alert('ct_show_menu error: menu '+mname+' not found'); } function ct_hide_menu(mname) { var omenu=document.getElementById(mname); if (omenu) omenu.style.display='none'; // else alert('ct_hide_menu error: menu '+mname+' not found'); } // 2004-08-23 joel: dialog box function ct_dialog(title,url,w,h) { if (!w) w=400; if (!h) h=300; param=new Array(); param[0]=window; param[1]=title; param[2]=url; // retval=window.showModalDialog(url,param,'dialogwidth:'+w+'px;dialogheight:'+h+'px;status:no;scroll:yes;help:no;resizable:yes'); retval = window.open(url,title,'width='+w+',height='+h+',status:no,scroll:yes,location:no,resizable:yes'); // 2003-07-13 joel: refresh entire browser if (retval) { if (retval=='view_refresh' && window.parent) { window.parent.leftFrame.document.location.reload(); window.parent.mainFrame.document.location.reload(); } else if (retval=='full_refresh' && window.parent) { window.parent.document.location.reload(); } else if (retval=='confirm') { window.document.location=url+'&confirm=1'; } else document.location.reload(); } } // 2004-09-19 joel: dialog using window.open function ct_open(name,url,w,h,param) { // popup window at the centre of screen if (typeof w =="undefined") w=400; if (typeof h =="undefined") h=250; var left = ( screen.width - w ) / 2 ; var top = ( screen.height - h ) / 2; if (typeof param =="undefined") { param=",status=no,menubar=no,resizable=yes,scrollbars=yes"; } param += ",width="+w+",height="+h+",top="+top+",left="+left; //alert(url); //alert(name); //alert(param); win= window.open(url,name,param); if (win) { win.focus(); if (!win.opener) win.opener=window; // 2006-02-25 joel: keep dialog on top window.dialog_window=win; setTimeout('_waitdialog()',1000); } // 2007-01-08 joel: cannot use this, it will reload caller with [object] // return win; } function _waitdialog() { if (!window.dialog_window.closed) { // 2006-09-18 joel: does not work now, need to bring to top, not focus // IMPORTANT: cannot use window.focus() which messes up the focus of the active input fields //window.dialog_window.focus(); //window.dialog_window.setActive(); setTimeout('_waitdialog()',1000); } else { // window.document.location.reload(); } } // 2005-11-28 joel: close myself and refresh opener function ct_close(reload_opener) { if (typeof reload_opener =="undefined") reload_opener=true; if (reload_opener && window.opener) window.opener.location.reload(); window.close(); } // 2004-09-19 joel: refresh routine callable by the window opened with ct_open // win: should be window.opener usually function ct_refresh(win,reftype) { if (reftype=='view_refresh' && win.parent) { win.parent.leftFrame.document.location.reload(); win.parent.mainFrame.document.location.reload(); } else if (reftype=='full_refresh' && window.parent) { win.parent.document.location.reload(); } else if (reftype=='refresh') { win.document.location.reload(); } } // 2004-10-21: ec convert query str to array function ct_querystr2arr (str) { str = str ? str : location.search; var query = str.charAt(0) == '?' ? str.substring(1) : str; var args = new Object(); if (query) { var fields = query.split('&'); for (var f = 0; f < fields.length; f++) { var field = fields[f].split('='); if(field[0]&&field[1]&&field[0].match(/^[a-zA-Z]/)&&!field[0].match(/[^0-9a-zA-Z_]/)){ args[unescape(field[0].replace(/\+/g,' '))] = unescape(field[1].replace(/\+/g, ' ')); } } } return args; } // 2006-04-28 joel: debug object function ct_dump(what,html) { if (html) { buf=''; for(i in what) buf+='"; buf+='
'+i+''+what[i]+"
'; } else { buf=''; for(i in what) buf+=''+i+': '+what[i]+'\n'; } return buf; } // 2006-12-29 joel: pop window and run url for inserting into vedit box function ct_inserter_open(oname,popup_url,w,h,param) { window.returnValue=''; obj=document.getElementById((document.all?'viz_':'')+oname); if (obj.int_id) clearInterval(obj.int_id); obj.int_id=setInterval("_check_inserted('"+oname+"')",500); //setTimeout("_check_inserted('"+oname+"')",500); if (typeof w =="undefined") w=400; if (typeof h =="undefined") h=480; ct_open('insert',popup_url,w,h,param); } function _check_inserted(oname) { txt=window.returnValue; if (txt!='') { if (txt=='___empty___') return; if (document.all) { obj=document.getElementById('viz_'+oname); obj.focus(); sRange = obj.document.selection.createRange(); if (sRange.length) { return alert("Unable to insert HTML. Try highlighting content instead of selecting it."); } var oldHandler = window.onerror; window.onerror = function() { alert("Unable to insert HTML for current selection."); return true; } ; sRange.pasteHTML(txt); window.onerror = oldHandler; sRange.collapse(false); sRange.select(); } else { // FF obj=document.getElementById(oname); rte=document.getElementById(oname).contentWindow; rte.document.execCommand('InsertHTML', false, txt); rte.focus(); } if (obj.int_id) clearInterval(obj.int_id); return; } // else // setTimeout("_check_inserted('"+oname+"')",500); } function ct_inserter_close(instext) { window.returnValue=instext; window.opener.returnValue=instext; if (!instext) instext='___empty___'; // for FF if (!document.all) window.opener.returnValue=instext; ct_close(false); // window.close(); } // 2007-01-18 joel: fit object into window function ct_fit_object(oname,dy,dx) { if (!dy) dy=90; if (!dx) dx=20; if (document.all) { //width=window.frameElement.width; //height=window.frameElement.height; width=document.body.clientWidth; height=document.body.clientHeight; ve=document.getElementById(oname); ve.style.overflowX='auto'; } else { width=window.innerWidth; height=window.innerHeight; ve=document.getElementById(oname); } if (dx!='keep') ve.style.width=width-dx; if (dy!='keep') ve.style.height=height-dy; } function ct_urlencode(msg) { if (typeof(msg) == 'undefined' || !msg || msg == '') return; if (window.encodeURIComponent) msg= encodeURIComponent(msg); else if (window.escape) msg = escape(msg); return msg; } function ct_urldecode(msg) { if (typeof(msg) == 'undefined' || !msg || msg == '') return; if (window.decodeURIComponent) msg= decodeURIComponent(msg); else if (window.escape) msg = unescape(msg); return msg; } // 2008-08-24: expand/collapse // 2010-04-28 joel: make icon independent function ct_toggle_expand(oname,cicon) { if (typeof cicon =="undefined") cicon='arrows.html'; obj=document.getElementById(oname); icon=document.getElementById(oname+'_icon'); dispmode=(obj.tagName=='DIV')?'block':'inline'; if (obj.style.display=='none') icon.oldsrc=icon.src; obj.style.display=(obj.style.display=='none'?dispmode:'none'); if (cicon.indexOf('../../../index.html')<0) cicon='/pix/b/'+cicon; icon.src=(obj.style.display=='none'?icon.oldsrc:cicon); } function ct_cp2clipboard (txt) { // ec 2008-08-03 ff-support if(window.clipboardData) { window.clipboardData.clearData(); window.clipboardData.setData("Text", txt); } else if(navigator.userAgent.indexOf("Opera") != -1) { window.location = txt; } else if (window.netscape) { try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); } catch (e) { alert("You need to set 'signed.applets.codebase_principal_support=true'.\nYou can change it from within the browser by calling the 'about:config' page."); return false; } var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance (Components.interfaces.nsIClipboard); if (!clip) return; var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance (Components.interfaces.nsITransferable); if (!trans) return; trans.addDataFlavor('text/unicode'); var str = new Object(); var len = new Object(); var str = Components.classes["@mozilla.org/supports-string;1"].createInstance (Components.interfaces.nsISupportsString); var copytext = txt; str.data = copytext; trans.setTransferData("text/unicode",str,copytext.length*2); var clipid = Components.interfaces.nsIClipboard; if (!clip) return false; clip.setData(trans,null,clipid.kGlobalClipboard); } return true; }