? tla-no-js.patch
Index: colorpicker2.js
===================================================================
RCS file: colorpicker2.js
diff -N colorpicker2.js
--- colorpicker2.js	8 Feb 2007 20:01:10 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,542 +0,0 @@
-// ===================================================================
-// Author: Matt Kruse <matt@mattkruse.com>
-// 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.
-// ===================================================================
-
-/* 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;}
-/* SOURCE FILE: PopupWindow.js */
-
-/* 
-PopupWindow.js
-Author: Matt Kruse
-Last modified: 02/16/04
-
-DESCRIPTION: This object allows you to easily and quickly popup a window
-in a certain place. The window can either be a DIV or a separate browser
-window.
-
-COMPATABILITY: Works with Netscape 4.x, 6.x, IE 5.x on Windows. Some small
-positioning errors - usually with Window positioning - occur on the 
-Macintosh platform. Due to bugs in Netscape 4.x, populating the popup 
-window with <STYLE> tags may cause errors.
-
-USAGE:
-// Create an object for a WINDOW popup
-var win = new PopupWindow(); 
-
-// Create an object for a DIV window using the DIV named 'mydiv'
-var win = new PopupWindow('mydiv'); 
-
-// Set the window to automatically hide itself when the user clicks 
-// anywhere else on the page except the popup
-win.autoHide(); 
-
-// Show the window relative to the anchor name passed in
-win.showPopup(anchorname);
-
-// Hide the popup
-win.hidePopup();
-
-// Set the size of the popup window (only applies to WINDOW popups
-win.setSize(width,height);
-
-// Populate the contents of the popup window that will be shown. If you 
-// change the contents while it is displayed, you will need to refresh()
-win.populate(string);
-
-// set the URL of the window, rather than populating its contents
-// manually
-win.setUrl("http://www.site.com/");
-
-// Refresh the contents of the popup
-win.refresh();
-
-// Specify how many pixels to the right of the anchor the popup will appear
-win.offsetX = 50;
-
-// Specify how many pixels below the anchor the popup will appear
-win.offsetY = 100;
-
-NOTES:
-1) Requires the functions in AnchorPosition.js
-
-2) Your anchor tag MUST contain both NAME and ID attributes which are the 
-   same. For example:
-   <A NAME="test" ID="test"> </A>
-
-3) There must be at least a space between <A> </A> for IE5.5 to see the 
-   anchor tag correctly. Do not do <A></A> with no space.
-
-4) When a PopupWindow object is created, a handler for 'onmouseup' is
-   attached to any event handler you may have already defined. Do NOT define
-   an event handler for 'onmouseup' after you define a PopupWindow object or
-   the autoHide() will not work correctly.
-*/ 
-
-// Set the position of the popup window based on the anchor
-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;
-	}
-// Set width/height of DIV/popup window
-function PopupWindow_setSize(width,height) {
-	this.width = width;
-	this.height = height;
-	}
-// Fill the window with contents
-function PopupWindow_populate(contents) {
-	this.contents = contents;
-	this.populated = false;
-	}
-// Set the URL to go to
-function PopupWindow_setUrl(url) {
-	this.url = url;
-	}
-// Set the window popup properties
-function PopupWindow_setWindowProperties(props) {
-	this.windowProperties = props;
-	}
-// Refresh the displayed contents of the popup
-function PopupWindow_refresh() {
-	if (this.divName != null) {
-		// refresh the DIV object
-		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();
-			}
-		}
-	}
-// Position and show the popup, relative to an anchor object
-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) {
-		// Show the DIV object
-		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 + 'px';
-			document.all[this.divName].style.top = this.y + 'px';
-			document.all[this.divName].style.visibility = "visible";
-			}
-		else if (this.use_layers) {
-			document.layers[this.divName].left = this.x + 'px';
-			document.layers[this.divName].top = this.y + 'px';
-			document.layers[this.divName].visibility = "visible";
-			}
-		}
-	else {
-		if (this.popupWindow == null || this.popupWindow.closed) {
-			// If the popup window will go off-screen, move it so it doesn't
-			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();
-		}
-	}
-// Hide the popup
-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;
-			}
-		}
-	}
-// Pass an event and return whether or not it was the popup DIV that was clicked
-function PopupWindow_isClicked(e) {
-	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) { // Need to hard-code this to trap IE for error-handling
-			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;
-			while (t.parentNode != null) {
-				if (t.id==this.divName) {
-					return true;
-					}
-				t = t.parentNode;
-				}
-			return false;
-			}
-		return false;
-		}
-	return false;
-	}
-
-// Check an onMouseDown event to see if we should hide
-function PopupWindow_hideIfNotClicked(e) {
-	if (this.autoHideEnabled && !this.isClicked(e)) {
-		this.hidePopup();
-		}
-	}
-// Call this to make the DIV disable automatically when mouse is clicked outside it
-function PopupWindow_autoHide() {
-	this.autoHideEnabled = true;
-	}
-// This global function checks all PopupWindow objects onmouseup to see if they should be hidden
-function PopupWindow_hidePopupWindows(e) {
-	for (var i=0; i<popupWindowObjects.length; i++) {
-		if (popupWindowObjects[i] != null) {
-			var p = popupWindowObjects[i];
-			p.hideIfNotClicked(e);
-			}
-		}
-	}
-// Run this immediately to attach the event listener
-function PopupWindow_attachListener() {
-	if (document.layers) {
-		document.captureEvents(Event.MOUSEUP);
-		}
-	window.popupWindowOldEventListener = document.onmouseup;
-	if (window.popupWindowOldEventListener != null) {
-		document.onmouseup = new Function("window.popupWindowOldEventListener(); PopupWindow_hidePopupWindows();");
-		}
-	else {
-		document.onmouseup = PopupWindow_hidePopupWindows;
-		}
-	}
-// CONSTRUCTOR for the PopupWindow object
-// Pass it a DIV name to use a DHTML popup, otherwise will default to window popup
-function PopupWindow() {
-	if (!window.popupWindowIndex) { window.popupWindowIndex = 0; }
-	if (!window.popupWindowObjects) { window.popupWindowObjects = new Array(); }
-	if (!window.listenerAttached) {
-		window.listenerAttached = true;
-		PopupWindow_attachListener();
-		}
-	this.index = popupWindowIndex++;
-	popupWindowObjects[this.index] = this;
-	this.divName = null;
-	this.popupWindow = null;
-	this.width=0;
-	this.height=0;
-	this.populated = false;
-	this.visible = false;
-	this.autoHideEnabled = false;
-	
-	this.contents = "";
-	this.url="";
-	this.windowProperties="toolbar=no,location=no,status=no,menubar=no,scrollbars=auto,resizable,alwaysRaised,dependent,titlebar=no";
-	if (arguments.length>0) {
-		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;
-	// Method mappings
-	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;
-	}
-/* SOURCE FILE: ColorPicker2.js */
-
-/* 
-Last modified: 02/24/2003
-
-DESCRIPTION: This widget is used to select a color, in hexadecimal #RRGGBB 
-form. It uses a color "swatch" to display the standard 216-color web-safe 
-palette. The user can then click on a color to select it.
-
-COMPATABILITY: See notes in AnchorPosition.js and PopupWindow.js.
-Only the latest DHTML-capable browsers will show the color and hex values
-at the bottom as your mouse goes over them.
-
-USAGE:
-// Create a new ColorPicker object using DHTML popup
-var cp = new ColorPicker();
-
-// Create a new ColorPicker object using Window Popup
-var cp = new ColorPicker('window');
-
-// Add a link in your page to trigger the popup. For example:
-<A HREF="#" onClick="cp.show('pick');return false;" NAME="pick" ID="pick">Pick</A>
-
-// Or use the built-in "select" function to do the dirty work for you:
-<A HREF="#" onClick="cp.select(document.forms[0].color,'pick');return false;" NAME="pick" ID="pick">Pick</A>
-
-// If using DHTML popup, write out the required DIV tag near the bottom
-// of your page.
-<SCRIPT LANGUAGE="JavaScript">cp.writeDiv()</SCRIPT>
-
-// Write the 'pickColor' function that will be called when the user clicks
-// a color and do something with the value. This is only required if you
-// want to do something other than simply populate a form field, which is 
-// what the 'select' function will give you.
-function pickColor(color) {
-	field.value = color;
-	}
-
-NOTES:
-1) Requires the functions in AnchorPosition.js and PopupWindow.js
-
-2) Your anchor tag MUST contain both NAME and ID attributes which are the 
-   same. For example:
-   <A NAME="test" ID="test"> </A>
-
-3) There must be at least a space between <A> </A> for IE5.5 to see the 
-   anchor tag correctly. Do not do <A></A> with no space.
-
-4) When a ColorPicker object is created, a handler for 'onmouseup' is
-   attached to any event handler you may have already defined. Do NOT define
-   an event handler for 'onmouseup' after you define a ColorPicker object or
-   the color picker will not hide itself correctly.
-*/ 
-ColorPicker_targetInput = null;
-function ColorPicker_writeDiv() {
-	document.writeln("<DIV ID=\"colorPickerDiv\" STYLE=\"position:absolute;visibility:hidden;\"> </DIV>");
-	}
-
-function ColorPicker_show(anchorname) {
-	this.showPopup(anchorname);
-	}
-
-function ColorPicker_pickColor(color,obj) {
-	obj.hidePopup();
-	pickColor(color);
-	}
-
-// A Default "pickColor" function to accept the color passed back from popup.
-// User can over-ride this with their own function.
-function pickColor(color) {
-	if (ColorPicker_targetInput==null) {
-		alert("Target Input is null, which means you either didn't use the 'select' function or you have no defined your own 'pickColor' function to handle the picked color!");
-		return;
-		}
-	ColorPicker_targetInput.value = color;
-		if (ColorPicker_targetInput.id == 'edit-textlinkads_link_color') {
-			update_link_color(color);
-		}
-		else if (ColorPicker_targetInput.id == 'edit-textlinkads_bg_color') {
-			update_bg_color(color);
-		}
-		else if (ColorPicker_targetInput.id == 'edit-textlinkads_border_color') {
-			update_border_color(color);
-		}
-	}
-
-// This function is the easiest way to popup the window, select a color, and
-// have the value populate a form field, which is what most people want to do.
-function ColorPicker_select(inputobj,linkname) {
-	if (inputobj.type!="text" && inputobj.type!="hidden" && inputobj.type!="textarea") { 
-		alert("colorpicker.select: Input object passed is not a valid form input object"); 
-		window.ColorPicker_targetInput=null;
-		return;
-		}
-	window.ColorPicker_targetInput = inputobj;
-	this.show(linkname);
-	}
-	
-// This function runs when you move your mouse over a color block, if you have a newer browser
-function ColorPicker_highlightColor(c) {
-	var thedoc = (arguments.length>1)?arguments[1]:window.document;
-	var d = thedoc.getElementById("colorPickerSelectedColor");
-	d.style.backgroundColor = c;
-	d = thedoc.getElementById("colorPickerSelectedColorValue");
-	d.innerHTML = c;
-	}
-
-function ColorPicker() {
-	var windowMode = false;
-	// Create a new PopupWindow object
-	if (arguments.length==0) {
-		var divname = "colorPickerDiv";
-		}
-	else if (arguments[0] == "window") {
-		var divname = '';
-		windowMode = true;
-		}
-	else {
-		var divname = arguments[0];
-		}
-	
-	if (divname != "") {
-		var cp = new PopupWindow(divname);
-		}
-	else {
-		var cp = new PopupWindow();
-		cp.setSize(225,250);
-		}
-
-	// Object variables
-	cp.currentValue = "#FFFFFF";
-	
-	// Method Mappings
-	cp.writeDiv = ColorPicker_writeDiv;
-	cp.highlightColor = ColorPicker_highlightColor;
-	cp.show = ColorPicker_show;
-	cp.select = ColorPicker_select;
-
-	// Code to populate color picker window
-	var colors = new Array("#000000","#000033","#000066","#000099","#0000CC","#0000FF","#330000","#330033","#330066","#330099","#3300CC",
-							"#3300FF","#660000","#660033","#660066","#660099","#6600CC","#6600FF","#990000","#990033","#990066","#990099",
-							"#9900CC","#9900FF","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#FF0000","#FF0033","#FF0066",
-							"#FF0099","#FF00CC","#FF00FF","#003300","#003333","#003366","#003399","#0033CC","#0033FF","#333300","#333333",
-							"#333366","#333399","#3333CC","#3333FF","#663300","#663333","#663366","#663399","#6633CC","#6633FF","#993300",
-							"#993333","#993366","#993399","#9933CC","#9933FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF",
-							"#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#006600","#006633","#006666","#006699","#0066CC",
-							"#0066FF","#336600","#336633","#336666","#336699","#3366CC","#3366FF","#666600","#666633","#666666","#666699",
-							"#6666CC","#6666FF","#996600","#996633","#996666","#996699","#9966CC","#9966FF","#CC6600","#CC6633","#CC6666",
-							"#CC6699","#CC66CC","#CC66FF","#FF6600","#FF6633","#FF6666","#FF6699","#FF66CC","#FF66FF","#009900","#009933",
-							"#009966","#009999","#0099CC","#0099FF","#339900","#339933","#339966","#339999","#3399CC","#3399FF","#669900",
-							"#669933","#669966","#669999","#6699CC","#6699FF","#999900","#999933","#999966","#999999","#9999CC","#9999FF",
-							"#CC9900","#CC9933","#CC9966","#CC9999","#CC99CC","#CC99FF","#FF9900","#FF9933","#FF9966","#FF9999","#FF99CC",
-							"#FF99FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#33CC00","#33CC33","#33CC66","#33CC99",
-							"#33CCCC","#33CCFF","#66CC00","#66CC33","#66CC66","#66CC99","#66CCCC","#66CCFF","#99CC00","#99CC33","#99CC66",
-							"#99CC99","#99CCCC","#99CCFF","#CCCC00","#CCCC33","#CCCC66","#CCCC99","#CCCCCC","#CCCCFF","#FFCC00","#FFCC33",
-							"#FFCC66","#FFCC99","#FFCCCC","#FFCCFF","#00FF00","#00FF33","#00FF66","#00FF99","#00FFCC","#00FFFF","#33FF00",
-							"#33FF33","#33FF66","#33FF99","#33FFCC","#33FFFF","#66FF00","#66FF33","#66FF66","#66FF99","#66FFCC","#66FFFF",
-							"#99FF00","#99FF33","#99FF66","#99FF99","#99FFCC","#99FFFF","#CCFF00","#CCFF33","#CCFF66","#CCFF99","#CCFFCC",
-							"#CCFFFF","#FFFF00","#FFFF33","#FFFF66","#FFFF99","#FFFFCC","#FFFFFF");
-	var total = colors.length;
-	var width = 18;
-	var cp_contents = "";
-	var windowRef = (windowMode)?"window.opener.":"";
-	if (windowMode) {
-		cp_contents += "<HTML><HEAD><TITLE>Select Color</TITLE></HEAD>";
-		cp_contents += "<BODY MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0><CENTER>";
-		}
-	cp_contents += "<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=0>";
-	var use_highlight = (document.getElementById || document.all)?true:false;
-	for (var i=0; i<total; i++) {
-		if ((i % width) == 0) { cp_contents += "<TR>"; }
-		if (use_highlight) { var mo = 'onMouseOver="'+windowRef+'ColorPicker_highlightColor(\''+colors[i]+'\',window.document)"'; }
-		else { mo = ""; }
-		cp_contents += '<TD BGCOLOR="'+colors[i]+'"><FONT SIZE="-3"><A HREF="#" onClick="'+windowRef+'ColorPicker_pickColor(\''+colors[i]+'\','+windowRef+'window.popupWindowObjects['+cp.index+']);return false;" '+mo+' STYLE="text-decoration:none;">&nbsp;&nbsp;&nbsp;</A></FONT></TD>';
-		if ( ((i+1)>=total) || (((i+1) % width) == 0)) { 
-			cp_contents += "</TR>";
-			}
-		}
-	// If the browser supports dynamically changing TD cells, add the fancy stuff
-	if (document.getElementById) {
-		var width1 = Math.floor(width/2);
-		var width2 = width = width1;
-		cp_contents += "<TR><TD COLSPAN='"+width1+"' BGCOLOR='#ffffff' ID='colorPickerSelectedColor'>&nbsp;</TD><TD COLSPAN='"+width2+"' ALIGN='CENTER' ID='colorPickerSelectedColorValue'>#FFFFFF</TD></TR>";
-		}
-	cp_contents += "</TABLE>";
-	if (windowMode) {
-		cp_contents += "</CENTER></BODY></HTML>";
-		}
-	// end populate code
-
-	// Write the contents to the popup object
-	cp.populate(cp_contents+"\n");
-	// Move the table down a bit so you can see it
-	cp.offsetY = 25;
-	cp.autoHide();
-	return cp;
-	}
Index: textlinkads.js
===================================================================
RCS file: textlinkads.js
diff -N textlinkads.js
--- textlinkads.js	8 Feb 2007 20:01:10 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,121 +0,0 @@
-function update_preview(command, element) {
-  switch (command) {
-    case 'total' :
-      table_total_ads = element.options[element.selectedIndex].value;
-      redraw_table();
-      break;
-    case 'rows' :
-      table_rows = element.options[element.selectedIndex].value;
-      redraw_table();
-      break;
-    case 'font' :
-      update_font_size(element.options[element.selectedIndex].value);
-      break;
-    case 'link_color' :
-      update_link_color(element.value);
-      break;
-  }
-}
-
-function update_link_color(value) {
-  if (typeof(value) == 'undefined') {
-    value = document.getElementById('edit-textlinkads_link_color').value;
-  }
-  var spans = document.getElementsByTagName('span');
-  for (var i = 0, arr_length = spans.length; i < arr_length; ++i) {
-    if (spans[i].className == 'textlinkads-example-link') {
-      spans[i].style.color = value;
-    }
-  }
-  link_color = value;
-}
-
-function update_bg_color(value) {
-  if (typeof(value) == 'undefined') {
-    value = document.getElementById('edit-textlinkads_bg_color').value;
-  }
-  if (!document.getElementById('edit-textlinkads_no_bg').checked) {
-    no_bg = 0;
-    document.getElementById('textlinkads_preview_table').style.backgroundColor = value;
-  }
-  else {
-  	no_bg = 1;
-    document.getElementById('textlinkads_preview_table').style.backgroundColor = 'transparent';
-  }
-  bg_color = value;
-}
-function update_border_color(value) {
-  if (typeof(value) == 'undefined') {
-    value = document.getElementById('edit-textlinkads_border_color').value;
-  }
-  border_color = value;
-  if (!document.getElementById('edit-textlinkads_no_border').checked) {
-    no_border = 0;
-    document.getElementById('textlinkads_preview_table').style.border = '1px solid ' + value;
-    // FireFox bug fix ... weird
-    redraw_table();
-  }
-  else {
-    no_border = 1;
-    document.getElementById('textlinkads_preview_table').style.border = 'none';
-  }
-}
-
-function update_font_size(size) {
-  if (typeof(size) == 'undefined') {
-    size = document.getElementById('edit-textlinkads_font').options[document.getElementById('edit-textlinkads_font').selectedIndex].value;
-  }
-  var spans = document.getElementsByTagName('span');
-  for (var i = 0, arr_length = spans.length; i < arr_length; ++i) {
-    if (spans[i].className == 'textlinkads-example-link') {
-      spans[i].style.fontSize = size + 'px';
-    }
-  }
-  font_size = size;
-}
-
-function redraw_table() {
-  //alert('total: ' + table_total_ads + ' rows ' + table_rows);
-  var table = '<table id="textlinkads_preview_table" style="border: ' + (no_border == 1 ? 'none' : '1px solid' + border_color) + '; border-spacing: 0px; background-color: '+ (no_bg == 1  ? 'transparent' : bg_color) +';" cellpadding="5" cellspacing="0"><tbody>';
-  var k;
-  var columns = Math.ceil(table_total_ads / table_rows)
-  for (var i = 0; i < table_total_ads;) {
-    table += "<tr>";
-    for (k = 0; k < columns; k++) {
-      if (i < table_total_ads) {
-        table += "<td><span class='textlinkads-example-link' style='cursor: pointer;text-decoration: underline;font-size:"+ font_size +"px; color:"+ link_color +";'>" + example_link + "</span></td>";
-      } else {
-        table += "<td> </td>";
-      }
-      i++;
-    }
-    table += "</tr>";
-  }
-  table += '</tbody></table>';
-  
-  document.getElementById('preview').innerHTML = table;
-}
-
-function addLoadEvent(func) {
-  var oldOnload = window.onload;
-  if (typeof window.onload != 'function') {
-    window.onload = func;
-  }
-  else {
-    window.onload = function() {
-      oldOnload();
-      func();
-    }
-  }
-}
-
-function init() {
-  redraw_table();
-  update_bg_color();
-  update_border_color();
-  document.getElementById('edit-textlinkads_total').onchange = function() {update_preview('total', this)};
-  document.getElementById('edit-textlinkads_font').onchange =  function() {update_preview('font', this)};
-  document.getElementById('edit-textlinkads_rows').onchange =  function() {update_preview('rows', this)};
-}
-
-addLoadEvent(init);
\ No newline at end of file
Index: textlinkads.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/textlinkads/textlinkads.module,v
retrieving revision 1.5.2.1
diff -u -r1.5.2.1 textlinkads.module
--- textlinkads.module	3 Oct 2007 17:07:21 -0000	1.5.2.1
+++ textlinkads.module	18 Nov 2007 21:11:19 -0000
@@ -1,13 +1,13 @@
 <?php
 
-/**  
+/**
  *  Support multiple inventory keys per site
  *  1.  Multiple blocks? (with a key per block) - let drupal block visibility system manage visibility?
- *      
+ *
  *  2. Database changes - store inventory key?
  *  3. Cron changes
  *  4. Settings changes
- *     Inventory key(s), path mach pattern? 
+ *     Inventory key(s), path mach pattern?
  *     Module will provide block per key
  */
 
@@ -98,6 +98,7 @@
       for ($i = 0; $i < $nblocks; $i++) {
         $blocks[$i]['info'] = t('TLA Block for key= !key', array('!key'=>$keys[$i]));
       }
+
       return $blocks;
     case 'view':
       $block['subject'] = t(variable_get('textlinkads_ad_block_title', t('Advertisements')));
@@ -129,7 +130,6 @@
     '#description' => t('Enter a heading for the Ad block. It is alright to leave it blank.'),
   );
 
-  drupal_set_html_head(textlinkads_get_js());
   $total_options = drupal_map_assoc(array(4, 6, 8, 10));
   $row_options = drupal_map_assoc(array(1, 2, 3, 4, 8, 10));
   $font_options = drupal_map_assoc(array(6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18));
@@ -161,13 +161,11 @@
     '#size' => 8,
     '#maxlength' => 7,
     '#default_value' => variable_get('textlinkads_border_color', '#000000'),
-    '#suffix' => '<a href="#" onclick="cp2.select(document.getElementById(\'edit-textlinkads_border_color\'),\'border_color_picker\');return false;" id="border_color_picker" name="border_color_picker">Pick Color</a>',
     );
   $form['textlinkads_themer']['textlinkads_colors']['textlinkads_no_border'] = array(
     '#type' => 'checkbox',
     '#title' => t('No Border'),
     '#default_value' => variable_get('textlinkads_no_border', 0),
-    '#attributes' => array('onclick' => 'update_border_color()')
     );
   $form['textlinkads_themer']['textlinkads_colors']['textlinkads_bg_color'] = array(
     '#type' => 'textfield',
@@ -175,13 +173,11 @@
     '#size' => 8,
     '#maxlength' => 7,
     '#default_value' =>  variable_get('textlinkads_bg_color', '#ffffff'),
-    '#suffix' => '<a href="#" onclick="cp2.select(document.getElementById(\'edit-textlinkads_bg_color\'),\'bg_color_picker\');return false;" id="bg_color_picker" name="bg_color_picker">Pick Color</a>',
     );
   $form['textlinkads_themer']['textlinkads_colors']['textlinkads_no_bg'] = array(
     '#type' => 'checkbox',
     '#title' => t('Transparent Background'),
     '#default_value' => variable_get('textlinkads_no_bg', 0),
-    '#attributes' => array('onclick' => 'update_bg_color()')
     );
   $form['textlinkads_themer']['textlinkads_colors']['textlinkads_link_color'] = array(
     '#type' => 'textfield',
@@ -189,12 +185,21 @@
     '#size' => 8,
     '#maxlength' => 7,
     '#default_value' =>  variable_get('textlinkads_link_color', '#0000ff'),
-    '#suffix' => '<a href="#" onclick="cp2.select(document.getElementById(\'edit-textlinkads_link_color\'),\'link_color_picker\');return false;" id="link_color_picker" name="link_color_picker">Pick Color</a>',
     );
 
-  $form['textlinkads_themer']['textlinkads_preview'] = array('#type' => 'fieldset', '#title' => t('Example'));
+  $form['textlinkads_themer']['textlinkads_preview'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Preview'),
+    '#collapsible' => true,
+    '#collapsed' => false,
+  );
   $form['textlinkads_themer']['textlinkads_preview']['preview_div'] = array('#value' => '<div id="preview"></div><script type="text/javascript">cp2.writeDiv();</script>');
-
+  $block = (object) textlinkads_block('view');
+  $block->module = 'tlasettings';
+  $block->delta = 0;
+  $form['textlinkads_themer']['textlinkads_preview']['block'] = array(
+    '#value' => theme('block', $block),
+  );
   return system_settings_form($form);
 }
 
@@ -333,7 +338,7 @@
 
   if (!empty($stats_data['WEBSITE']['ACTIVELINKS']['ACTIVELINK'])) {
     $rows = array();
-    $output .= t('<h3>Currently Active Links:</h3>');
+    $output .= '<h3>'. t('Currently Active Links:'). '</h3>';
     if (!$stats_data['WEBSITE']['ACTIVELINKS']['ACTIVELINK']['URL'] && is_array($stats_data['WEBSITE']['ACTIVELINKS']['ACTIVELINK'])) {
       foreach ($stats_data['WEBSITE']['ACTIVELINKS']['ACTIVELINK'] as $activelink) {
         $rows[] = array("<a href=\"$activelink[URL]\">$activelink[TEXT]</a>", "<b>({$activelink[CURRENT_MONTHS_EARNINGS]})</b>");
@@ -403,12 +408,12 @@
       if (!is_array($links)) {
         /* When no ads for site, $data looks like this:
              <?xml version="1.0" ?> <Links> </Links>
-           And $links = ' ' 
-           Subsequent code assumes we have an array - when no ads available, 
-           $links is a string containing only spaces.  So, let's force 
+           And $links = ' '
+           Subsequent code assumes we have an array - when no ads available,
+           $links is a string containing only spaces.  So, let's force
            $links to be an array so the code will work.
         */
-        $links = array(); 
+        $links = array();
       }
     }
     foreach ($links as $key => $values) {
@@ -516,15 +521,15 @@
    }
 
    function correctentries($dataarray){
-     if (is_array($dataarray)){
-       $keys =  array_keys($dataarray);
-       if (count($keys)== 1 && is_int($keys[0])){
+     if (is_array($dataarray)) {
+       $keys = array_keys($dataarray);
+       if (count($keys)== 1 && is_int($keys[0])) {
          $tmp = $dataarray[0];
          unset($dataarray[0]);
          $dataarray = $tmp;
        }
        $keys2 = array_keys($dataarray);
-       foreach($keys2 as $key){
+       foreach ($keys2 as $key) {
          $tmp2 = $dataarray[$key];
          unset($dataarray[$key]);
          $dataarray[$key] = $this->correctentries($tmp2);
@@ -534,36 +539,3 @@
      return $dataarray;
    }
 }
-
-
-function textlinkads_get_js() {
-  $path = TEXTLINKADS_MODULE_PATH;
-  $default_font_size = variable_get('textlinkads_font', 12);
-  $default_rows = variable_get('textlinkads_rows', 4);
-  $default_total_number = variable_get('textlinkads_total', 4);
-  $default_link_color = variable_get('textlinkads_link_color', '#0000ff');
-  $default_bg_color = variable_get('textlinkads_bg_color', '#0000ff');
-  $default_border_color = variable_get('textlinkads_border_color', '#0000ff');
-  $default_no_border = variable_get('textlinkads_no_border', 0);
-  $default_no_bg = variable_get('textlinkads_no_bg', 0);
-  $js =<<<__END__
-<script type="text/javascript" src="$path/colorpicker2.js"></script>
-<script type="text/javascript">//<![CDATA[
-var cp2 = new ColorPicker();
-var table_total_ads = $default_total_number;
-var table_rows = $default_rows;
-var font_size = $default_font_size;
-var link_color = '$default_link_color';
-var bg_color = '$default_bg_color';
-var border_color = '$default_border_color';
-var no_border = $default_no_border;
-var no_bg = $default_no_bg;
-var example_link = 'Example Link';
-var link_color_txt = 'link_color';
-//]]>
-</script>
-<script type="text/javascript" src="$path/textlinkads.js"></script>
-
-__END__;
-  return $js;
-}
