322 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			322 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
|  | /*  Add events to objects | ||
|  | --------------------------------------- */ | ||
|  | 
 | ||
|  | var FTB_EventCache = []; | ||
|  | function FTB_AddEvents(obj, evTypes, fn) { | ||
|  | 	for (i=0; i<evTypes.length; i++) FTB_AddEvent(obj, evTypes[i], fn); | ||
|  | }; | ||
|  | function FTB_AddEvent(obj, evType, fn, useCapture) { | ||
|  | 	//if (useCapture==undefined) 
 | ||
|  | 	useCapture=true; | ||
|  | 	if (obj.addEventListener) { | ||
|  | 		obj.addEventListener(evType, fn, useCapture); | ||
|  | 	} else if (obj.attachEvent) { | ||
|  | 		obj.attachEvent('on'+evType, fn); | ||
|  | 	} | ||
|  | 	FTB_EventCache.push([obj, evType, fn, useCapture]); | ||
|  | }; | ||
|  | function FTB_RemoveEvent(obj, evType, fn, useCapture) { | ||
|  |     if (useCapture==undefined) useCapture=true; | ||
|  | 	if (obj.removeEventListener) { | ||
|  |       obj.removeEventListener(evType, fn, useCapture); | ||
|  |     } else if (obj.detachEvent) { | ||
|  |       obj.detachEvent('on' + evType, fn); | ||
|  |     } | ||
|  | }; | ||
|  | function FTB_Unload() { | ||
|  |     for (var i = 0; i < FTB_EventCache.length; i++) { | ||
|  |       FTB_RemoveEvent.apply(this, FTB_EventCache[i]); | ||
|  |       FTB_EventCache[i][0] = null; | ||
|  |     } | ||
|  |     FTB_EventCache = false;	 | ||
|  | }; | ||
|  | FTB_AddEvent(window,'unload',FTB_Unload, false); | ||
|  | 
 | ||
|  | /*  API for holding all FreeTextBox's | ||
|  | --------------------------------------- */ | ||
|  | var FTB_API = new Object(); | ||
|  | var FTB_Names = []; | ||
|  | 
 | ||
|  | /* Browser Detection 'FTB_Browser' | ||
|  | --------------------------------------- */ | ||
|  | function FTB_BrowserDetect() { | ||
|  | 	var d = window.document; | ||
|  | 	var a = navigator.appVersion.toLowerCase(); | ||
|  | 	var n = navigator.appName.toLowerCase(); | ||
|  | 	var u = navigator.userAgent.toLowerCase(); | ||
|  | 	var v = 0; | ||
|  | 	 | ||
|  | 	// has contentEditable properties
 | ||
|  | 	this.isRich = false; | ||
|  | 			 | ||
|  | 	// OS
 | ||
|  | 	this.isMac= (a.indexOf('mac') != -1); | ||
|  | 	this.isWin= ( ( (a.indexOf('win')!=-1) || (a.indexOf('nt')!=-1) ) && !this.isMac); | ||
|  | 	this.isLinux = (a.indexOf('linux')!=-1); | ||
|  | 	this.isiPhone = (a.indexOf('iphone')!=-1); | ||
|  | 
 | ||
|  | 	// Browser
 | ||
|  | 	this.isOpera = ( u.indexOf( 'opera' ) != -1 ); | ||
|  | 	this.isIE = (a.indexOf('msie') != -1 && !this.isOpera); | ||
|  | 	this.isKonq = ( u.indexOf( 'konqueror' ) != -1 ); | ||
|  | 	this.isSafari = ( u.indexOf( 'webkit' ) != -1 ); | ||
|  | 	this.isSafari2 = this.isSafari3 = false; | ||
|  | 	this.isGecko = ( u.indexOf( 'gecko' ) != -1 && !this.isSafari && !this.isKonq); | ||
|  | 
 | ||
|  | 	// richness
 | ||
|  | 	if (this.isIE && !this.isMac) { | ||
|  | 		v = a.substring(a.indexOf("msie") + 5, a.indexOf(";", a.indexOf("msie")) ); | ||
|  | 		 | ||
|  | 		if (parseFloat(v) > 5.5) this.isRich = true; | ||
|  | 		 | ||
|  | 	} else if (this.isGecko) { | ||
|  | 
 | ||
|  | 		v = u.substring(u.indexOf("gecko/") + 6 ); | ||
|  | 		v = v.substring(v, v.indexOf(" ")); | ||
|  | 		 | ||
|  | 		if (parseFloat(v) > 20030624) this.isRich = true; | ||
|  | 	 | ||
|  | 	} else if (this.isOpera) { | ||
|  | 		 | ||
|  | 		v = u.substring(u.indexOf('opera/') + 6); | ||
|  | 		 | ||
|  | 		if (parseFloat(v) >= 9.0) this.isRich = true; | ||
|  | 	 | ||
|  | 	} else if (this.isSafari) { | ||
|  | 		v = u.substring(u.indexOf("webkit/") + 7); | ||
|  | 		 | ||
|  | 		if (parseFloat(v) >= 312 && !this.isiPhone) this.isRich = true; | ||
|  | 		 | ||
|  | 		 | ||
|  | 		if (u.indexOf('version/3') != -1) { | ||
|  | 			this.isSafari3 = true; | ||
|  | 			this.isSafari2 = false; | ||
|  | 		} else { | ||
|  | 			this.isSafari2 = true; | ||
|  | 			this.isSafari3 = false;	 | ||
|  | 			 | ||
|  | 		} | ||
|  | 
 | ||
|  | 	} | ||
|  | 	 | ||
|  | 
 | ||
|  | }; | ||
|  | FTB_Browser = new FTB_BrowserDetect(); | ||
|  | 
 | ||
|  | /* OOP Timeout Manager 'FTB_Timeout' | ||
|  | --------------------------------------- */ | ||
|  | function FTB_TimeoutManager() { | ||
|  | 	this.pendingCalls = {};		 | ||
|  | }; | ||
|  | FTB_TimeoutManager.prototype.addMethod = function(name,obj,method,delay,arg1,arg2) { | ||
|  | 	this.clearMethod(name); | ||
|  | 	this.pendingCalls[name] = new FTB_TimeoutCall(obj,method,arg1,arg2); | ||
|  | 	this.pendingCalls[name].timeout =  | ||
|  | 		setTimeout('FTB_Timeout.executeMethod("' + name + '");',delay); | ||
|  | }; | ||
|  | FTB_TimeoutManager.prototype.executeMethod = function(name) { | ||
|  | 	call = this.pendingCalls[name]; | ||
|  | 	if (call != null) { | ||
|  | 		call.obj[call.method](call.arg1,call.arg2); | ||
|  | 		this.clearMethod(name); | ||
|  | 	} | ||
|  | }; | ||
|  | FTB_TimeoutManager.prototype.clearMethod = function(name) { | ||
|  | 	if (this.pendingCalls[name])  | ||
|  | 		delete this.pendingCalls[name]; | ||
|  | }; | ||
|  | //* Object to hold timeout reference
 | ||
|  | function FTB_TimeoutCall(obj,method,arg1,arg2) { | ||
|  | 	this.obj = obj; | ||
|  | 	this.method = method; | ||
|  | 	this.arg1 = arg1; | ||
|  | 	this.arg2 = arg2; | ||
|  | 	this.timeout = null; | ||
|  | }; | ||
|  | FTB_Timeout = new FTB_TimeoutManager(); | ||
|  | 
 | ||
|  | /* Constants  | ||
|  | ----------------------------------------- */ | ||
|  | FTB_MODE_HTML = 0; | ||
|  | FTB_MODE_DESIGN = 1; | ||
|  | FTB_MODE_PREVIEW = 2; | ||
|  | //
 | ||
|  | FTB_PASTE_DEFAULT = 0; | ||
|  | FTB_PASTE_DISABLED = 1; | ||
|  | FTB_PASTE_TEXT = 2; | ||
|  | //
 | ||
|  | FTB_TAB_DISABLED = 0; | ||
|  | FTB_TAB_NEXTCONTROL = 1; | ||
|  | FTB_TAB_INSERTSPACES = 2; | ||
|  | //
 | ||
|  | FTB_BUTTON_ON = 0; | ||
|  | FTB_BUTTON_OFF = 1; | ||
|  | //
 | ||
|  | FTB_BREAK_P = 0; | ||
|  | FTB_BREAK_BR = 1; | ||
|  | //
 | ||
|  | FTB_KEY_TAB = 9; | ||
|  | FTB_KEY_ENTER = 13; | ||
|  | FTB_KEY_QUOTE = 222; | ||
|  | FTB_KEY_V = 86; | ||
|  | FTB_KEY_P = 86; | ||
|  | FTB_KEY_B = 66; | ||
|  | FTB_KEY_I = 73; | ||
|  | FTB_KEY_U = 85; | ||
|  | FTB_KEY_Z = 90; | ||
|  | FTB_KEY_Y = 89; | ||
|  | //
 | ||
|  | FTB_CODE_OPENCURLY = '“'; | ||
|  | FTB_CODE_CLOSECURLY = '”'; | ||
|  | //
 | ||
|  | FTB_BUTTON_STYLEDBACKGROUNDS = 0; | ||
|  | FTB_BUTTON_IMAGEBACKGROUNDS = 1; | ||
|  | 
 | ||
|  | 
 | ||
|  | /* Misc Methods | ||
|  | ------------------------------------------ */ | ||
|  | function FTB_SetListValue(list, value, checkText) { | ||
|  | 	checkText = checkText || false; | ||
|  | 	value = String(value).toLowerCase(); | ||
|  | 
 | ||
|  | 	for (var i=0; i<list.options.length; i++) { | ||
|  | 		if (list.options[i].value.toLowerCase() == value || (checkText && list.options[i].text.toLowerCase() == value)) { | ||
|  | 			list.selectedIndex = i; | ||
|  | 			return; | ||
|  | 		} | ||
|  | 	} | ||
|  | }; | ||
|  | function FTB_ParseUnit(styleString) { | ||
|  | 	var unit = new Object(); | ||
|  | 	unit.value = 0; | ||
|  | 	unit.unitType = ''; | ||
|  | 	for(var i=0; i<styleString.length; i++) { | ||
|  | 		if (isNaN(styleString.charAt(i))) | ||
|  | 			unit.unitType += styleString.charAt(i); | ||
|  | 		else  | ||
|  | 			unit.value = parseInt(unit.value.toString() + styleString.charAt(i)); | ||
|  | 	} | ||
|  | 	return unit; | ||
|  | }; | ||
|  | function FTB_DecToHex(dec) { | ||
|  | 	return parseInt(dec).toString(16);  | ||
|  | }; | ||
|  | function FTB_RgbToHex(r,g,b) { | ||
|  | 	return "#" + FTB_IntToHex(r) + FTB_IntToHex(g) + FTB_IntToHex(b); | ||
|  | }; | ||
|  | function FTB_IntToHexColor( intColor ) { | ||
|  | 	if (!intColor) return null; | ||
|  | 	intColor = intColor.toString(16).toUpperCase(); | ||
|  | 	while (intColor.length < 6) intColor = "0" + intColor; | ||
|  | 	return "#" + intColor.substring(4,6) + intColor.substring(2,4) + intColor.substring(0,2); | ||
|  | }; | ||
|  | function FTB_RgbStringToHex(rgbString){  | ||
|  | 	var r, g, b; | ||
|  | 	rgbString = rgbString.toString().toLowerCase();	 | ||
|  | 	if(rgbString.indexOf("rgb(") == -1 || rgbString.indexOf(")") == -1) return rgbString; | ||
|  | 	 | ||
|  | 	rgbString = rgbString.substring(rgbString.indexOf("(")+1, rgbString.indexOf(")")-1); | ||
|  | 	rgb = rgbString.split(','); | ||
|  | 	r = rgb[0]; | ||
|  | 	g = rgb[1]; | ||
|  | 	if (rgb.length == 2) b = rbg[2]; else b = 0;	 | ||
|  | 	return FTB_RgbToHex(r,g,b); | ||
|  | }; | ||
|  | function FTB_IntToHex(dec){  | ||
|  | 	var result = (parseInt(dec).toString(16));  | ||
|  | 	if(result.length ==1)  | ||
|  | 	result= ("0" +result);  | ||
|  | 	return result.toUpperCase();  | ||
|  | }; | ||
|  | function FTB_GetQueryStringValues(url) {	 | ||
|  | 	url = new String(url); | ||
|  | 	 | ||
|  | 	var queryStringValues=new Object(); | ||
|  | 	var querystring=url.substring(url.indexOf('?')+1, url.length); | ||
|  | 	var querystringSplit = querystring.split('&'); | ||
|  | 	 | ||
|  | 	for (i=0; i < querystringSplit.length; i++){ | ||
|  | 		var pair=querystringSplit[i].split('='); | ||
|  | 		var name=pair[0]; | ||
|  | 		var value=pair[1]; | ||
|  | 		queryStringValues[ name ]=value; | ||
|  | 	} | ||
|  | 	return queryStringValues; | ||
|  | }; | ||
|  | /* Static Popup HTML | ||
|  | ---------------------------------------- */ | ||
|  | var FTB_LinkPopUpHtml = ""; | ||
|  | var FTB_PopUpStyle = "\ | ||
|  | html, body { \ | ||
|  | 	background-color: #ECE9D8; \ | ||
|  | 	color: #000000; \ | ||
|  | 	font: 11px Tahoma,Verdana,sans-serif; \ | ||
|  | 	padding: 0px; \ | ||
|  | } \ | ||
|  | body { margin: 5px; } \ | ||
|  | form { margin: 0px; padding: 0px;} \ | ||
|  | table { \ | ||
|  |   font: 11px Tahoma,Verdana,sans-serif; \ | ||
|  | } \ | ||
|  | form p { \ | ||
|  |   margin-top: 5px; \ | ||
|  |   margin-bottom: 5px; \ | ||
|  | } \ | ||
|  | h3 { margin: 0; margin-top: 4px;  margin-bottom: 5px; font-size: 12px; border-bottom: 2px solid #90A8F0; color: #90A8F0;} \ | ||
|  | .fl { width: 9em; float: left; padding: 2px 5px; text-align: right; } \ | ||
|  | .fr { width: 7em; float: left; padding: 2px 5px; text-align: right; } \ | ||
|  | fieldset { padding: 0px 10px 5px 5px; } \ | ||
|  | button { width: 75px; } \ | ||
|  | select, input, button { font: 11px Tahoma,Verdana,sans-serif; } \ | ||
|  | .space { padding: 2px; } \ | ||
|  | .title { background: #ddf; color: #000; font-weight: bold; font-size: 120%; padding: 3px 10px; margin-bottom: 10px; \ | ||
|  | border-bottom: 1px solid black; letter-spacing: 2px; \ | ||
|  | } \ | ||
|  | .f_title { text-align:right; }\ | ||
|  | .footer { border-top:2px solid #90A8F0; padding-top: 3px; margin-top: 4px; text-align:right; }\ | ||
|  | "; | ||
|  | 
 | ||
|  | var FTB_PopUpHeader = new String("<html><body> \ | ||
|  | <head>\ | ||
|  | <title>POPUP_TITLE</title>\ | ||
|  | <style type='text/css'>\ | ||
|  | html, body { \ | ||
|  | 	background-color: #ECE9D8; \ | ||
|  | 	color: #000000; \ | ||
|  | 	font: 11px Tahoma,Verdana,sans-serif; \ | ||
|  | 	padding: 0px; \ | ||
|  | } \ | ||
|  | body { margin: 5px; } \ | ||
|  | form { margin: 0px; padding: 0px;} \ | ||
|  | table { \ | ||
|  |   font: 11px Tahoma,Verdana,sans-serif; \ | ||
|  | } \ | ||
|  | form p { \ | ||
|  |   margin-top: 5px; \ | ||
|  |   margin-bottom: 5px; \ | ||
|  | } \ | ||
|  | h3 { margin: 0; margin-top: 4px;  margin-bottom: 5px; font-size: 12px; border-bottom: 2px solid #90A8F0; color: #90A8F0;} \ | ||
|  | .fl { width: 9em; float: left; padding: 2px 5px; text-align: right; } \ | ||
|  | .fr { width: 7em; float: left; padding: 2px 5px; text-align: right; } \ | ||
|  | fieldset { padding: 0px 10px 5px 5px; } \ | ||
|  | button { width: 75px; } \ | ||
|  | select, input, button { font: 11px Tahoma,Verdana,sans-serif; } \ | ||
|  | .space { padding: 2px; } \ | ||
|  | .title { background: #ddf; color: #000; font-weight: bold; font-size: 120%; padding: 3px 10px; margin-bottom: 10px; \ | ||
|  | border-bottom: 1px solid black; letter-spacing: 2px; \ | ||
|  | } \ | ||
|  | .f_title { text-align:right; }\ | ||
|  | .footer { border-top:2px solid #90A8F0; padding-top: 3px; margin-top: 4px; text-align:right; }\</style>\ | ||
|  | <script type='text/javascript'>\ | ||
|  | POPUP_SCRIPT\ | ||
|  | </script>\ | ||
|  | </head>\ | ||
|  | <body>\ | ||
|  | <form action=''> \ | ||
|  | <h3>POPUP_TITLE</h3> \ | ||
|  | POPUP_HTML \ | ||
|  | </form> \ | ||
|  | </body> \ | ||
|  | </html>"); | ||
|  | 
 | ||
|  | if (typeof(Sys) != "undefined") { if (typeof(Sys.Application) != "undefined") { Sys.Application.notifyScriptLoaded(); }} |