Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
10582 lgm 1
/* Event Functions */
2
 
3
// Add an event to the obj given
4
// event_name refers to the event trigger, without the "on", like click or mouseover
5
// func_name refers to the function callback when event is triggered
6
function addEvent(obj,event_name,func_name){
7
	if (obj.attachEvent){
8
		obj.attachEvent("on"+event_name, func_name);
9
	}else if(obj.addEventListener){
10
		obj.addEventListener(event_name,func_name,true);
11
	}else{
12
		obj["on"+event_name] = func_name;
13
	}
14
}
15
 
16
// Removes an event from the object
17
function removeEvent(obj,event_name,func_name){
18
	if (obj.detachEvent){
19
		obj.detachEvent("on"+event_name,func_name);
20
	}else if(obj.removeEventListener){
21
		obj.removeEventListener(event_name,func_name,true);
22
	}else{
23
		obj["on"+event_name] = null;
24
	}
25
}
26
 
27
// Stop an event from bubbling up the event DOM
28
function stopEvent(evt){
29
	evt || window.event;
30
	if (evt.stopPropagation){
31
		evt.stopPropagation();
32
		evt.preventDefault();
33
	}else if(typeof evt.cancelBubble != "undefined"){
34
		evt.cancelBubble = true;
35
		evt.returnValue = false;
36
	}
37
	return false;
38
}
39
 
40
// Get the obj that starts the event
41
function getElement(evt){
42
	if (window.event){
43
		return window.event.srcElement;
44
	}else{
45
		return evt.currentTarget;
46
	}
47
}
48
// Get the obj that triggers off the event
49
function getTargetElement(evt){
50
	if (window.event){
51
		return window.event.srcElement;
52
	}else{
53
		return evt.target;
54
	}
55
}
56
// For IE only, stops the obj from being selected
57
function stopSelect(obj){
58
	if (typeof obj.onselectstart != 'undefined'){
59
		addEvent(obj,"selectstart",function(){ return false;});
60
	}
61
}
62
 
63
/*    Caret Functions     */
64
 
65
// Get the end position of the caret in the object. Note that the obj needs to be in focus first
66
function getCaretEnd(obj){
67
	if(typeof obj.selectionEnd != "undefined"){
68
		return obj.selectionEnd;
69
	}else if(document.selection&&document.selection.createRange){
70
		var M=document.selection.createRange();
71
		try{
72
			var Lp = M.duplicate();
73
			Lp.moveToElementText(obj);
74
		}catch(e){
75
			var Lp=obj.createTextRange();
76
		}
77
		Lp.setEndPoint("EndToEnd",M);
78
		var rb=Lp.text.length;
79
		if(rb>obj.value.length){
80
			return -1;
81
		}
82
		return rb;
83
	}
84
}
85
// Get the start position of the caret in the object
86
function getCaretStart(obj){
87
	if(typeof obj.selectionStart != "undefined"){
88
		return obj.selectionStart;
89
	}else if(document.selection&&document.selection.createRange){
90
		var M=document.selection.createRange();
91
		try{
92
			var Lp = M.duplicate();
93
			Lp.moveToElementText(obj);
94
		}catch(e){
95
			var Lp=obj.createTextRange();
96
		}
97
		Lp.setEndPoint("EndToStart",M);
98
		var rb=Lp.text.length;
99
		if(rb>obj.value.length){
100
			return -1;
101
		}
102
		return rb;
103
	}
104
}
105
// sets the caret position to l in the object
106
function setCaret(obj,l){
107
	obj.focus();
108
	if (obj.setSelectionRange){
109
		obj.setSelectionRange(l,l);
110
	}else if(obj.createTextRange){
111
		m = obj.createTextRange();		
112
		m.moveStart('character',l);
113
		m.collapse();
114
		m.select();
115
	}
116
}
117
// sets the caret selection from s to e in the object
118
function setSelection(obj,s,e){
119
	obj.focus();
120
	if (obj.setSelectionRange){
121
		obj.setSelectionRange(s,e);
122
	}else if(obj.createTextRange){
123
		m = obj.createTextRange();		
124
		m.moveStart('character',s);
125
		m.moveEnd('character',e);
126
		m.select();
127
	}
128
}
129
 
130
/*    Escape function   */
131
String.prototype.addslashes = function(){
132
	return this.replace(/(["\\\.\|\[\]\^\*\+\?\$\(\)])/g, '\\$1');
133
}
134
String.prototype.trim = function () {
135
    return this.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1");
136
};
137
/* --- Escape --- */
138
 
139
/* Offset position from top of the screen */
140
function curTop(obj){
141
	toreturn = 0;
142
	while(obj){
143
		toreturn += obj.offsetTop;
144
		obj = obj.offsetParent;
145
	}
146
	return toreturn;
147
}
148
function curLeft(obj){
149
	toreturn = 0;
150
	while(obj){
151
		toreturn += obj.offsetLeft;
152
		obj = obj.offsetParent;
153
	}
154
	return toreturn;
155
}
156
/* ------ End of Offset function ------- */
157
 
158
/* Types Function */
159
 
160
// is a given input a number?
161
function isNumber(a) {
162
    return typeof a == 'number' && isFinite(a);
163
}
164
 
165
/* Object Functions */
166
 
167
function replaceHTML(obj,text){
168
	while(el = obj.childNodes[0]){
169
		obj.removeChild(el);
170
	};
171
	obj.appendChild(document.createTextNode(text));
172
}