Project

General

Profile

1 986 Ruebenwurz
/* Insert Script Plugin
2
 *
3
 *
4
 * Copyright (c) 2008 Kevin Martin (http://synarchydesign.com/insert)
5
 * Licensed under the GPL license:
6
 * http://www.gnu.org/licenses/gpl.html
7
 *
8
 */
9
jQuery.insert = function(file)
10
{
11
	var data	= [];
12
	var data2	= [];
13
14
	if (typeof file == 'object')
15
	{
16
		data = file;
17
		file = data.src !== undefined ? data.src : false;
18
		file = file === false && data.href !== undefined ? data.href : file;
19
		file = file === false ? file2 : false;
20
	}
21
22
	if (typeof file == 'string' && file.length)
23
	{
24
		var index	= file.lastIndexOf('.');
25
		var index2	= file.replace('\\', '/').lastIndexOf('/') + 1;
26
		var ext		= file.substring(index + 1, file.length);
27
	}
28
29
	switch(ext)
30
	{
31
		case 'js':
32
			data2 = {
33
				elm:	'script',
34
				type:	'text/javascript',
35
				src:	file
36
			};
37
		break;
38
39
		case 'css':
40
			data2 = {
41
				elm:	'link',
42
				rel:	'stylesheet',
43
				type:	'text/css',
44
				href:	file
45
			};
46
		break;
47
48
		default:
49
			data2 = {elm: 'link'};
50
		break;
51
	}
52
53
	data2.id = 'script-' + (typeof file == 'string' && file.length ?
54
		file.substring(index2, index) : Math.round(Math.rand() * 100));
55
56
	for (var i in data)
57
	{
58
		data2[i] = data[i];
59
	}
60
61
	data	= data2;
62
	var tag	= document.createElement(data.elm);
63
64
	delete data.elm;
65
66
	for (i in data)
67
	{
68
		tag.setAttribute(i, data[i]);
69
	}
70
71
	jQuery('head').append(tag);
72
73
	return jQuery('#' + data.id);
74
};