All pastes #193630 Raw Edit

Something

public javascript v1 · immutable
·published 2006-10-07 01:38 UTC
rendered paste body
<? header('Content-Type: text/javascript'); ?>var IE = (navigator.appName == "Microsoft Internet Explorer");var scrollObj = null;var scrollObjInfo = null;var NOSCROLL = -1;var scrollId = NOSCROLL;var scrollDelta = 0;var scrollDelay = 20;var scrollMin = 1;var scrollMax = 5;var parabollicFactor = 2;var topBarPercent = 0.33;var botBarPercent = 0.67;var idEvent;//scrollerfunction scroll_handle(e){	var y, topbar, botbar, shouldScroll = true;		e = e || event;	y = e.clientY - scrollObjInfo.y; //e.layerY || e.offsetY;	//y -= scrollObj.scrollTop;		status = y;	topbar = scrollObj.clientHeight * topBarPercent;	botbar = scrollObj.clientHeight * botBarPercent;		if (y > 0 && y < topbar && scrollObj.scrollTop > 0)		scrollDelta = -Math.floor(Math.pow((topbar - y) / topbar, parabollicFactor) * (scrollMax - scrollMin)) - scrollMin;	else if (y > botbar && y < scrollObj.clientHeight && scrollObj.scrollTop < scrollObj.scrollHeight)		scrollDelta = Math.floor(Math.pow((y - botbar) / topbar, parabollicFactor) * (scrollMax - scrollMin)) + scrollMin;	else {		scroll_stop();		shouldScroll = false;	}		if (shouldScroll && scrollId == NOSCROLL)		scrollId = setInterval(scroll_int, scrollDelay);}function scroll_stop(){	clearInterval(scrollId);	scrollId = NOSCROLL;}function scroll_int(){	var scrollTop = scrollObj.scrollTop + scrollDelta;		scrollTop = Math.min(scrollObj.scrollHeight, scrollTop);	scrollTop = Math.max(0, scrollTop);	scrollObj.scrollTop = scrollTop;		if ( scrollTop == 0 || scrollTop == scrollObj.scrollHeight )		scroll_stop();}function getNodeInfo(node){	var xPos = 0, yPos = 0, width = 0, height = 0, srcNode = node;	while ( (IE) ? node : (typeof node.tagName != "undefined") )	{		if (node.tagName != "TR")		{			xPos += node.offsetLeft;			yPos += node.offsetTop;		}		node = (IE) ? node.parentElement: node.parentNode;	}	if (typeof srcNode.offsetWidth != "undefined")	{		width = srcNode.offsetWidth;		height = srcNode.offsetHeight;	} else if (typeof srcNode.width != "undefined") {		width = srcNode.width;		height = srcNode.height;	}	return(		{ x : xPos , y : yPos , w : width , h : height }	);}// event handlingfunction CalendarEvent(id_event, id_title, event_text, start_time, end_time){	//id, title, desc, start_time, duration)	this.idEvent = id_event;	this.title = id_title;	this.cEvent = event_text;	this.startTime = start_time;	this.endTime = end_time;	this.generateHTML = event_HTML;	this.node = null;}function event_HTML(idx){	//alert("po");	//alert(this.event_list.length);	//poo();	var parent = document.getElementById("events_list");	var d_row = document.createElement("DIV");	var p_text = document.createElement("P");		if ( idx % 2 == 0 )	{		d_row.setAttribute("row_count", "1");		d_row.className = "event row_1";	} else {		d_row.setAttribute("row_count", "2");		d_row.className = "event row_2";	}		d_row.setAttribute("id", "event_"+ this.idEvent);	d_row.setAttribute("title", this.title);	d_row.onmouseover = over_event;	d_row.onmouseout = off_event;	//d_row.onclick = click_event(this.idEvent);		p_text.appendChild( document.createTextNode(idx + 1 +".  "+ this.title) );	p_text.setAttribute("title", this.title);	d_row.appendChild( p_text );		parent.appendChild( d_row );		this.node = document.getElementById("event_"+ this.idEvent);}function over_event(){	// mouse rolls over div.event		var id = this.getAttribute("id").replace("event_", "");		this.className = "event_hover";}function off_event(){	// mouse rolls off div.event		var id = this.getAttribute("id").replace("event_", "");	this.className = "event row_"+ this.getAttribute("row_count");}function click_event(eid){	var id = eid;	//var i, len = calendar[eid].event_list.length;	//alert(eid);		for (i = 0; i < len; i++)	{		if ( this.event_list[i].idEvent == id )		{			//alert(this.event_list[i].cEvent);			break;		}	}}function stack_event(id_event, id_title, event_text){	var i, len = event_tmp.length;		event_tmp.push( new EventClass(id_event, id_title, event_text, len) );	event_tmp[len].generateHTML();	scrollMax = (event_tmp.length > 30) ? 12 : 6;}// ceev's suggested classfunction CalendarDay(d){	this.date = new Date(d);	this.ldate = d;	this.event_list = [];	this.addEvent = CalendarEvent_AddEvent;	this.removeEvent = CalendarEvent_RemoveEvent;	this.createEvent = CalendarEvent_CreateEvent;	}function CalendarEvent_AddEvent(id, title, desc, start_time, duration){	this.event_list.push( new CalendarEvent(id, title, desc, start_time, duration,"0") );}function CalendarEvent_RemoveEvent(id){	var tmp = [], i, len = this.event_list.length;		for (i = 0; i < len; i++)		if (this.event_list[i].id != id)			tmp.push( this.event_list[i] );		this.event_list = tmp;}function CalendarEvent_CreateEvent(id){	// ajax stuff here to insert event into db and then	// call the addEvent method to add it to the events array}