// =================================================================== // Author: Matt Kruse // WWW: http://www.mattkruse.com/ // // NOTICE: You may use this code for any purpose, commercial or // private, without any further permission from the author. You may // remove this notice from your final code if you wish, however it is // appreciated by the author if at least my web site address is kept. // // You may *NOT* re-distribute this code in any way except through its // use. That means, you can include it in your product, or your web // site, or any other form where the code is actually being used. You // may not put the plain javascript up on your site for download or // include it in your javascript libraries for download. // If you wish to share this code with others, please just point them // to the URL instead. // Please DO NOT link directly to my .js files from your site. Copy // the files to your server and use them there. Thank you. // =================================================================== var popDivName = "CalendarPopUpWindow"; var persistclose=0 //set to 0 or 1. 1 means once the bar is manually closed, it will remain closed for browser session var startY = 5; //set y offset of bar in pixels var verticalpos="fromtop"; //enter "fromtop" or "frombottom" function ListingPopUpClose() { WriteInnerHTML(popDivName, ''); document.getElementById(popDivName).className = "HidePopup"; document.getElementById(popDivName).style.width = '0px'; document.getElementById(popDivName).style.height = '0px'; } function WriteInnerHTML(p_DivID, p_htmlstr) { if (document.getElementById) { document.getElementById(p_DivID).innerHTML= p_htmlstr; } else { with (document.layers[p_DivID].document) { open(); write(p_htmlstr); close(); } } } function ShowEvent(EventDivName, EventDate) { var PHeight=500; var PWidth=500; var PopUpTitle = EventDate; var HTMLCode=''; var ty_ie=0; var winW = 640; var winH = 480; if (parseInt(navigator.appVersion)>3) { if (navigator.appName=="Netscape") { winW = window.innerWidth-16; winH = window.innerHeight-16; } if (navigator.appName.indexOf("Microsoft")!=-1) { winW = document.body.offsetWidth-16; winH = document.body.offsetHeight-16; } } startX=(winW/2)-(PWidth/2); startY=(winH/2)-(PHeight/2); if (ty_ie == 1) startY=startY-100; if (PWidth != 0) { HTMLCode += '
'; HTMLCode += '
' + PopUpTitle + '
'; HTMLCode += '
Close Window
'; HTMLCode += '
'; HTMLCode += '
'; } HTMLCode += '
' + document.getElementById(EventDivName).innerHTML + '
'; var Obj = document.getElementById(popDivName); document.getElementById(popDivName).className = "ShowPopup"; document.getElementById(popDivName).style.width = PWidth+ 'px'; document.getElementById(popDivName).style.height = PHeight+ 'px'; WriteInnerHTML(popDivName, HTMLCode); LType=''; LID=''; staticbar(startX, startY, EventDivName); } function CheckIsIE() { if (navigator.appName.toUpperCase() == 'MICROSOFT INTERNET EXPLORER') { return true; } else { return false; } } function WriteInnerHTML(p_DivID,p_htmlstr) { //if (p_DivID != "" && p_htmlstr != "") { if (document.getElementById) { document.getElementById(p_DivID).innerHTML= p_htmlstr; } else { with (document.layers[p_DivID].document) { open(); write(p_htmlstr); close(); } } //} } function PrintThisPage(TDivName) { var a = window.open('','','width=300,height=300'); a.document.open("text/html"); a.document.write(document.getElementById(TDivName).innerHTML); a.document.close(); a.print(); } function closebar(){ if (persistclose) document.cookie="remainclosed=1" document.getElementById(popDivName).style.visibility="hidden" } function staticbar(startX, startY, EventDivName){ barheight=document.getElementById(EventDivName).offsetHeight var ns = (navigator.appName.indexOf("Netscape") != -1) || window.opera; var d = document; function ml(id){ var el=d.getElementById(id); if (!persistclose || persistclose && get_cookie("remainclosed")=="") el.style.visibility="visible" if(d.layers)el.style=el; el.sP=function(x,y){this.style.left=x+"px";this.style.top=y+"px";}; el.x = startX; if (verticalpos=="fromtop") el.y = startY; else{ el.y = ns ? pageYOffset + innerHeight : iecompattest().scrollTop + iecompattest().clientHeight; el.y -= startY; } return el; } window.stayTopLeft=function(){ if (verticalpos=="fromtop"){ var pY = ns ? pageYOffset : iecompattest().scrollTop; ftlObj.y += (pY + startY - ftlObj.y)/8; } else{ var pY = ns ? pageYOffset + innerHeight - barheight: iecompattest().scrollTop + iecompattest().clientHeight - barheight; ftlObj.y += (pY - startY - ftlObj.y)/8; } ftlObj.sP(ftlObj.x, ftlObj.y); setTimeout("stayTopLeft()", 10); } ftlObj = ml(popDivName); stayTopLeft(); } /* SOURCE FILE: AnchorPosition.js */ function getAnchorPosition(anchorname){ var useWindow=false; var coordinates=new Object(); var x=0,y=0; var use_gebi=false, use_css=false, use_layers=false; if(document.getElementById){ use_gebi=true; } else if(document.all){ use_css=true; } else if(document.layers){ use_layers=true; } if(use_gebi && document.all){ x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]); y=AnchorPosition_getPageOffsetTop(document.all[anchorname]); } else if(use_gebi){ var o=document.getElementById(anchorname); x=AnchorPosition_getPageOffsetLeft(o); y=AnchorPosition_getPageOffsetTop(o); } else if(use_css){ x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]); y=AnchorPosition_getPageOffsetTop(document.all[anchorname]); } else if(use_layers){ var found=0; for(var i=0; i < document.anchors.length; i++){ if(document.anchors[i].name==anchorname){ found=1; break; } } if(found==0){ coordinates.x=0; coordinates.y=0; return coordinates; } x=document.anchors[i].x; y=document.anchors[i].y; } else{ coordinates.x=0; coordinates.y=0; return coordinates; } coordinates.x=x; coordinates.y=y; return coordinates; } function getAnchorWindowPosition(anchorname){ var coordinates=getAnchorPosition(anchorname); var x=0; var y=0; if(document.getElementById){ if(isNaN(window.screenX)){ x=coordinates.x-document.body.scrollLeft+window.screenLeft; y=coordinates.y-document.body.scrollTop+window.screenTop; } else{ x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset; y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset; } } else if(document.all){ x=coordinates.x-document.body.scrollLeft+window.screenLeft; y=coordinates.y-document.body.scrollTop+window.screenTop; } else if(document.layers){ x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset; y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset; } coordinates.x=x; coordinates.y=y; return coordinates; } function AnchorPosition_getPageOffsetLeft(el){ var ol=el.offsetLeft; while((el=el.offsetParent) != null){ ol += el.offsetLeft; } return ol; } function AnchorPosition_getWindowOffsetLeft(el){ return AnchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft; } function AnchorPosition_getPageOffsetTop(el){ var ot=el.offsetTop; while((el=el.offsetParent) != null){ ot += el.offsetTop; } return ot; } function AnchorPosition_getWindowOffsetTop(el){ return AnchorPosition_getPageOffsetTop(el)-document.body.scrollTop; } function LZ(x){ return(x<0||x>9?"":"0")+x } /* SOURCE FILE: PopupWindow.js */ function PopupWindow_getXYPosition(anchorname){ /* var coordinates; if(this.type == "WINDOW") { coordinates = getAnchorWindowPosition(anchorname); } else { coordinates = getAnchorPosition(anchorname); } this.x = coordinates.x; this.y = coordinates.y; */ this.x = (screen.availWidth/2-100); this.y = (screen.availHeight/2-100); } function PopupWindow_setSize(width,height){this.width = width;this.height = height;} function PopupWindow_populate(contents){this.contents = contents;this.populated = false;} function PopupWindow_setUrl(url){this.url = url;} function PopupWindow_setWindowProperties(props){this.windowProperties = props;} function PopupWindow_refresh(){if(this.divName != null){if(this.use_gebi){document.getElementById(this.divName).innerHTML = this.contents;}else if(this.use_css){document.all[this.divName].innerHTML = this.contents;}else if(this.use_layers){var d = document.layers[this.divName];d.document.open();d.document.writeln(this.contents);d.document.close();}}else{if(this.popupWindow != null && !this.popupWindow.closed){if(this.url!=""){this.popupWindow.location.href=this.url;}else{this.popupWindow.document.open();this.popupWindow.document.writeln(this.contents);this.popupWindow.document.close();}this.popupWindow.focus();}}} function PopupWindow_showPopup(anchorname){this.getXYPosition(anchorname);this.x += this.offsetX;this.y += this.offsetY;if(!this.populated &&(this.contents != "")){this.populated = true;this.refresh();}if(this.divName != null){if(this.use_gebi){document.getElementById(this.divName).style.left = this.x + "px";document.getElementById(this.divName).style.top = this.y + "px";document.getElementById(this.divName).style.visibility = "visible";}else if(this.use_css){document.all[this.divName].style.left = this.x;document.all[this.divName].style.top = this.y;document.all[this.divName].style.visibility = "visible";}else if(this.use_layers){document.layers[this.divName].left = this.x;document.layers[this.divName].top = this.y;document.layers[this.divName].visibility = "visible";}}else{if(this.popupWindow == null || this.popupWindow.closed){if(this.x<0){this.x=0;}if(this.y<0){this.y=0;}if(screen && screen.availHeight){if((this.y + this.height) > screen.availHeight){this.y = screen.availHeight - this.height;}}if(screen && screen.availWidth){if((this.x + this.width) > screen.availWidth){this.x = screen.availWidth - this.width;}}var avoidAboutBlank = window.opera ||( document.layers && !navigator.mimeTypes['*']) || navigator.vendor == 'KDE' ||( document.childNodes && !document.all && !navigator.taintEnabled);this.popupWindow = window.open(avoidAboutBlank?"":"about:blank","window_"+anchorname,this.windowProperties+",width="+this.width+",height="+this.height+",screenX="+this.x+",left="+this.x+",screenY="+this.y+",top="+this.y+"");}this.refresh();}} function PopupWindow_hidePopup(){if(this.divName != null){if(this.use_gebi){document.getElementById(this.divName).style.visibility = "hidden";}else if(this.use_css){document.all[this.divName].style.visibility = "hidden";}else if(this.use_layers){document.layers[this.divName].visibility = "hidden";}}else{if(this.popupWindow && !this.popupWindow.closed){this.popupWindow.close();this.popupWindow = null;}}} function PopupWindow_isClicked(e) { //alert("t:"+this.divName); if(this.divName != null) { if(this.use_layers) { var clickX = e.pageX; var clickY = e.pageY; var t = document.layers[this.divName]; if((clickX > t.left) &&(clickX < t.left+t.clip.width) &&(clickY > t.top) &&(clickY < t.top+t.clip.height)) { return true; } else { return false; } } else if(document.all) { var t = window.event.srcElement; while(t.parentElement != null) { if(t.id==this.divName) { return true; } t = t.parentElement; } return false; } else if(this.use_gebi && e) { var t = e.originalTarget; //alert("t:"+t); while(t.parentNode != null) { if(t.id==this.divName) { return true; } t = t.parentNode; } return false; } return false; } return false; } function PopupWindow_hideIfNotClicked(e){if(this.autoHideEnabled && !this.isClicked(e)){this.hidePopup();}} function PopupWindow_autoHide(){this.autoHideEnabled = true;} function PopupWindow_hidePopupWindows(e){for(var i=0;i0) { this.type="DIV"; this.divName = arguments[0]; } else { this.type="WINDOW"; } this.use_gebi = false; this.use_css = false; this.use_layers = false; if(document.getElementById){ this.use_gebi = true; }else if(document.all){ this.use_css = true; }else if(document.layers){ this.use_layers = true; }else{ this.type = "WINDOW"; } this.offsetX = 0; this.offsetY = 0; this.getXYPosition = PopupWindow_getXYPosition; this.populate = PopupWindow_populate; this.setUrl = PopupWindow_setUrl; this.setWindowProperties = PopupWindow_setWindowProperties; this.refresh = PopupWindow_refresh; this.showPopup = PopupWindow_showPopup; this.hidePopup = PopupWindow_hidePopup; this.setSize = PopupWindow_setSize; this.isClicked = PopupWindow_isClicked; this.autoHide = PopupWindow_autoHide; this.hideIfNotClicked = PopupWindow_hideIfNotClicked; } // window.open('/test.php','','width=200,height=200,left='+(screen.availWidth/2-100)+',top='+(screen.availHeight/2-100)+''); /* SOURCE FILE: CalendarPopup.js */ function CalendarPopup() { var c; if(arguments.length>0) { //alert(arguments[0]); c = new PopupWindow(arguments[0]); } else { c = new PopupWindow(); c.setSize(350,350); } //c.offsetX = 0; //c.offsetY = 0; c.left = (screen.availWidth/2-100); c.top = (screen.availHeight/2-100); c.autoHide(); c.select = OpenEvent; return c; } function OpenEvent(linkname, NewDate) { html = ''; html += '
'; html += '
'; html += '
'; html += document.getElementById(linkname).innerHTML; html += '
'; this.populate(html); this.showPopup("Date_" + NewDate); //alert(content); } function CP_showCalendar(anchorname){if(arguments.length>1){if(arguments[1]==null||arguments[1]==""){this.currentDate=new Date();}else{this.currentDate=new Date(parseDate(arguments[1]));}}this.populate(this.getCalendar());this.showPopup(anchorname);} function CP_select(inputobj, linkname, format){var selectedDate=(arguments.length>3)?arguments[3]:null;if(!window.getDateFromFormat){alert("calendar.select: To use this method you must also include 'date.js' for date formatting");return;}if(this.displayType!="date"&&this.displayType!="week-end"){alert("calendar.select: This function can only be used with displayType 'date' or 'week-end'");return;}if(inputobj.type!="text" && inputobj.type!="hidden" && inputobj.type!="textarea"){alert("calendar.select: Input object passed is not a valid form input object");window.CP_targetInput=null;return;}if(inputobj.disabled){return;}window.CP_targetInput = inputobj;window.CP_calendarObject = this;this.currentDate=null;var time=0;if(selectedDate!=null){time = getDateFromFormat(selectedDate,format)}else if(inputobj.value!=""){time = getDateFromFormat(inputobj.value,format);}if(selectedDate!=null || inputobj.value!=""){if(time==0){this.currentDate=null;}else{this.currentDate=new Date(time);}}window.CP_dateFormat = format;this.showCalendar(linkname);}