All pastes #197960 Raw Edit

Mine

public javascript v1 · immutable
#197960 ·published 2006-10-11 17:12 UTC
rendered paste body
/*  Resize Textarea 0.2  Original coding by Raik Juergens  Contact: borstel33@web.deTEXTAREA.baseURI*/var resizeTA = {  readFile: function(){	var req = new XMLHttpRequest();    req.open('GET', 'chrome://resizeta/content/data.xml', false);    req.send(null);    // print the name of the root element or error message    var dom = req.responseXML;    //alert(dom.documentElement.nodeName == 'parsererror' ? 'error while parsing' : dom.documentElement.nodeName);  },  config: function(args) {	var settingsHandle = window.openDialog("chrome://resizeta/content/settings.xul", "Config", "chrome,resizable,modal,centerscreen",args);	settingsHandle.focus();  },  onLoad: function() {	var menu = document.getElementById('contentAreaContextMenu');	menu.addEventListener('popupshowing',this.showContext,false);	this.ProfileName();	this.readFile();	return;  },  ProfileName: function() {	var profileName = Components.classes['@mozilla.org/file/directory_service;1']		.getService(Components.interfaces.nsIProperties).get('ProfD', Components.interfaces.nsIFile)		.QueryInterface(Components.interfaces.nsILocalFile).path;	profileName = profileName.slice(profileName.lastIndexOf("\\")+1,profileName.length);	profileName = profileName.slice(profileName.indexOf('.')+1,profileName.length);    //document.getElementById("main-window").setAttribute("title", profileName);    document.getElementById('main-window').setAttribute('titlemodifier', profileName);	},  showContext: function(e) {    with(gContextMenu){    showItem("resizeta-start",(gContextMenu.onTextInput && gContextMenu.target.style.MozUserSelect!='none'));    //setItemAttr("resizeta-start","disabled",(gContextMenu.target.style.MozUserSelect=='none'));    showItem("resizeta-autowidth", gContextMenu.onTextInput);    showItem("resizeta-wrap", gContextMenu.onTextInput);    setItemAttr("resizeta-wrap", "checked", (gContextMenu.target.wrap == 'off'));    }  },  startRSZ: function(){    var TA = gContextMenu.target;    with(TA){    addEventListener('mousedown', this.startMOV, true);    addEventListener('keypress', this.stopRSZ, false);    addEventListener('dblclick', this.stopRSZ, false);    style.MozUserSelect='none';    setAttribute('resizeTAcursor',TA.style.cursor);    setAttribute('resizeTAbg',TA.style.backgroundColor);    setAttribute('resizeTAtxt',TA.style.color);    switch(nodeName){    	case 'TEXTAREA':            style.cursor = 'url(chrome://resizeta/skin/mouseup.gif), move';            break;	    case 'INPUT':            style.cursor = 'e-resize';            break;	}    style.color = 'graytext';    style.backgroundColor = '-moz-dialog';    focus();    }  },  stopRSZ: function(e){    with(e.target){    removeEventListener('mousedown', resizeTA.startMOV, true);    removeEventListener('keypress', resizeTA.stopRSZ, false);    removeEventListener('dblclick', resizeTA.stopRSZ, false);    //alert(baseURI);    style.cursor = this.getAttribute('resizeTAcursor');    style.color = this.getAttribute('resizeTAtxt');    style.backgroundColor = this.getAttribute('resizeTAbg');    style.MozUserSelect = '';    removeAttribute('resizeTAcursor', 1);    removeAttribute('resizeTAbg', 1);    removeAttribute('resizeTAtxt', 1);    }    e.preventDefault();    if(e.type == "keypress"  && e.which == 115) resizeTA.config();  },  startMOV: function(e){	if(e.which != 1)return;	switch(e.target.nodeName){	case 'TEXTAREA':		e.target.style.cursor = 'url(chrome://resizeta/skin/mousedown.gif), move';        e.target.ownerDocument.addEventListener('mousemove', resizeTA.resizeTA, false);        break;	case 'INPUT':        e.target.ownerDocument.addEventListener('mousemove', resizeTA.resizeIP, true);        break;	default:		return;	}	resizeTA.curTA = e.target;	resizeTA.TAw = e.pageX;	resizeTA.TAh = e.pageY;	if(!e.target.style.width){	var w = e.target.offsetWidth;	e.target.style.width = w + 'px';	e.target.style.width += (e.target.offsetWidth - w);		}	if(!e.target.style.height){	var h = e.target.offsetHeight;	e.target.style.height = h + 'px';	e.target.style.height += (e.target.offsetHeight - h);		}    //var kWindowMediator = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);    //var oBrowser = kWindowMediator.getMostRecentWindow("navigator:browser");    //oBrowser.addEventListener('mouseup', resizeTA.stopMOV, false);    content.addEventListener('mouseup', resizeTA.stopMOV, true);  },  stopMOV: function(e){	if(e.which != 1)return;	//Components.reportError("resizeTA: " + e.type + " " + e.target.nodeName);	switch(resizeTA.curTA.nodeName){	case 'TEXTAREA':		resizeTA.curTA.style.cursor = 'url(chrome://resizeta/skin/mouseup.gif), move';		e.target.ownerDocument.removeEventListener('mousemove', resizeTA.resizeTA, false);        break;	case 'INPUT':		e.target.ownerDocument.removeEventListener('mousemove', resizeTA.resizeIP, true);        break;	default:	}    //var kWindowMediator = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);    //var oBrowser = kWindowMediator.getMostRecentWindow("navigator:browser");    //oBrowser.removeEventListener('mouseup', resizeTA.stopMOV, false);    resizeTA.soundPlay("start.wav");    content.removeEventListener('mouseup', resizeTA.stopMOV, true);  },  resizeIP: function(e){    resizeTA.curTA.style.width = parseInt(resizeTA.curTA.style.width) + (e.pageX - resizeTA.TAw) + 'px';    resizeTA.TAw =  e.pageX;  },  resizeTA: function(e){    resizeTA.curTA.style.width = parseInt(resizeTA.curTA.style.width) +  (e.pageX - resizeTA.TAw) + 'px';    resizeTA.curTA.style.height = parseInt(resizeTA.curTA.style.height) +  (e.pageY - resizeTA.TAh) + 'px';    resizeTA.TAw =  e.pageX;    resizeTA.TAh =  e.pageY;  },  autoWidth: function(){    var TA = gContextMenu.target;    var w1 = content.scrollMaxX;     TA.style.width = content.innerWidth + 'px';    var w2 = content.scrollMaxX - parseInt(w1);     TA.style.width = (parseInt(TA.style.width) - parseInt(w2)) + 'px';  },  soundPlay: function(file){         var sample = Components.classes["@mozilla.org/sound;1"].createInstance();         sample = sample.QueryInterface(Components.interfaces.nsISound);         var ios = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);        var uri = ios.newURI("chrome://resizeta/skin/" + file, null, null);        sample.play(uri);  }};window.addEventListener("load", function(e) { resizeTA.onLoad(e); }, false);