author | ymh <ymh.work@gmail.com> |
Wed, 04 Dec 2019 11:40:06 +0100 | |
changeset 0 | 505fe5249d9c |
permissions | -rw-r--r-- |
0
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
1 |
/** |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
2 |
* Ajax upload |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
3 |
* Project page - http://valums.com/ajax-upload/ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
4 |
* Copyright (c) 2008 Andris Valums, http://valums.com |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
5 |
* Licensed under the MIT license (http://valums.com/mit-license/) |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
6 |
* Version 3.6 (26.06.2009) |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
7 |
*/ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
8 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
9 |
/** |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
10 |
* Changes from the previous version: |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
11 |
* 1. Fixed minor bug where click outside the button |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
12 |
* would open the file browse window |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
13 |
* |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
14 |
* For the full changelog please visit: |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
15 |
* http://valums.com/ajax-upload-changelog/ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
16 |
*/ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
17 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
18 |
(function(){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
19 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
20 |
var d = document, w = window; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
21 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
22 |
/** |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
23 |
* Get element by id |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
24 |
*/ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
25 |
function get(element){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
26 |
if (typeof element == "string") |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
27 |
element = d.getElementById(element); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
28 |
return element; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
29 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
30 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
31 |
/** |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
32 |
* Attaches event to a dom element |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
33 |
*/ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
34 |
function addEvent(el, type, fn){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
35 |
if (w.addEventListener){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
36 |
el.addEventListener(type, fn, false); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
37 |
} else if (w.attachEvent){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
38 |
var f = function(){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
39 |
fn.call(el, w.event); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
40 |
}; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
41 |
el.attachEvent('on' + type, f) |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
42 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
43 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
44 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
45 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
46 |
/** |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
47 |
* Creates and returns element from html chunk |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
48 |
*/ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
49 |
var toElement = function(){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
50 |
var div = d.createElement('div'); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
51 |
return function(html){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
52 |
div.innerHTML = html; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
53 |
var el = div.childNodes[0]; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
54 |
div.removeChild(el); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
55 |
return el; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
56 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
57 |
}(); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
58 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
59 |
function hasClass(ele,cls){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
60 |
return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)')); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
61 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
62 |
function addClass(ele,cls) { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
63 |
if (!hasClass(ele,cls)) ele.className += " "+cls; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
64 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
65 |
function removeClass(ele,cls) { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
66 |
var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)'); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
67 |
ele.className=ele.className.replace(reg,' '); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
68 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
69 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
70 |
// getOffset function copied from jQuery lib (http://jquery.com/) |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
71 |
if (document.documentElement["getBoundingClientRect"]){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
72 |
// Get Offset using getBoundingClientRect |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
73 |
// http://ejohn.org/blog/getboundingclientrect-is-awesome/ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
74 |
var getOffset = function(el){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
75 |
var box = el.getBoundingClientRect(), |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
76 |
doc = el.ownerDocument, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
77 |
body = doc.body, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
78 |
docElem = doc.documentElement, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
79 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
80 |
// for ie |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
81 |
clientTop = docElem.clientTop || body.clientTop || 0, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
82 |
clientLeft = docElem.clientLeft || body.clientLeft || 0, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
83 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
84 |
// In Internet Explorer 7 getBoundingClientRect property is treated as physical, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
85 |
// while others are logical. Make all logical, like in IE8. |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
86 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
87 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
88 |
zoom = 1; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
89 |
if (body.getBoundingClientRect) { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
90 |
var bound = body.getBoundingClientRect(); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
91 |
zoom = (bound.right - bound.left)/body.clientWidth; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
92 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
93 |
if (zoom > 1){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
94 |
clientTop = 0; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
95 |
clientLeft = 0; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
96 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
97 |
var top = box.top/zoom + (window.pageYOffset || docElem && docElem.scrollTop/zoom || body.scrollTop/zoom) - clientTop, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
98 |
left = box.left/zoom + (window.pageXOffset|| docElem && docElem.scrollLeft/zoom || body.scrollLeft/zoom) - clientLeft; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
99 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
100 |
return { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
101 |
top: top, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
102 |
left: left |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
103 |
}; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
104 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
105 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
106 |
} else { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
107 |
// Get offset adding all offsets |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
108 |
var getOffset = function(el){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
109 |
if (w.jQuery){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
110 |
return jQuery(el).offset(); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
111 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
112 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
113 |
var top = 0, left = 0; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
114 |
do { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
115 |
top += el.offsetTop || 0; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
116 |
left += el.offsetLeft || 0; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
117 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
118 |
while (el = el.offsetParent); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
119 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
120 |
return { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
121 |
left: left, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
122 |
top: top |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
123 |
}; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
124 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
125 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
126 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
127 |
function getBox(el){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
128 |
var left, right, top, bottom; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
129 |
var offset = getOffset(el); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
130 |
left = offset.left; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
131 |
top = offset.top; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
132 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
133 |
right = left + el.offsetWidth; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
134 |
bottom = top + el.offsetHeight; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
135 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
136 |
return { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
137 |
left: left, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
138 |
right: right, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
139 |
top: top, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
140 |
bottom: bottom |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
141 |
}; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
142 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
143 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
144 |
/** |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
145 |
* Crossbrowser mouse coordinates |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
146 |
*/ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
147 |
function getMouseCoords(e){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
148 |
// pageX/Y is not supported in IE |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
149 |
// http://www.quirksmode.org/dom/w3c_cssom.html |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
150 |
if (!e.pageX && e.clientX){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
151 |
// In Internet Explorer 7 some properties (mouse coordinates) are treated as physical, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
152 |
// while others are logical (offset). |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
153 |
var zoom = 1; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
154 |
var body = document.body; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
155 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
156 |
if (body.getBoundingClientRect) { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
157 |
var bound = body.getBoundingClientRect(); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
158 |
zoom = (bound.right - bound.left)/body.clientWidth; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
159 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
160 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
161 |
return { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
162 |
x: e.clientX / zoom + d.body.scrollLeft + d.documentElement.scrollLeft, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
163 |
y: e.clientY / zoom + d.body.scrollTop + d.documentElement.scrollTop |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
164 |
}; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
165 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
166 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
167 |
return { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
168 |
x: e.pageX, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
169 |
y: e.pageY |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
170 |
}; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
171 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
172 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
173 |
/** |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
174 |
* Function generates unique id |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
175 |
*/ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
176 |
var getUID = function(){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
177 |
var id = 0; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
178 |
return function(){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
179 |
return 'ValumsAjaxUpload' + id++; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
180 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
181 |
}(); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
182 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
183 |
function fileFromPath(file){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
184 |
return file.replace(/.*(\/|\\)/, ""); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
185 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
186 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
187 |
function getExt(file){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
188 |
return (/[.]/.exec(file)) ? /[^.]+$/.exec(file.toLowerCase()) : ''; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
189 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
190 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
191 |
// Please use AjaxUpload , Ajax_upload will be removed in the next version |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
192 |
Ajax_upload = AjaxUpload = function(button, options){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
193 |
if (button.jquery){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
194 |
// jquery object was passed |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
195 |
button = button[0]; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
196 |
} else if (typeof button == "string" && /^#.*/.test(button)){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
197 |
button = button.slice(1); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
198 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
199 |
button = get(button); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
200 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
201 |
this._input = null; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
202 |
this._button = button; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
203 |
this._disabled = false; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
204 |
this._submitting = false; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
205 |
// Variable changes to true if the button was clicked |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
206 |
// 3 seconds ago (requred to fix Safari on Mac error) |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
207 |
this._justClicked = false; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
208 |
this._parentDialog = d.body; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
209 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
210 |
if (window.jQuery && jQuery.ui && jQuery.ui.dialog){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
211 |
var parentDialog = jQuery(this._button).parents('.ui-dialog'); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
212 |
if (parentDialog.length){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
213 |
this._parentDialog = parentDialog[0]; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
214 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
215 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
216 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
217 |
this._settings = { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
218 |
// Location of the server-side upload script |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
219 |
action: 'upload.php', |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
220 |
// File upload name |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
221 |
name: 'userfile', |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
222 |
// Additional data to send |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
223 |
data: {}, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
224 |
// Submit file as soon as it's selected |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
225 |
autoSubmit: true, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
226 |
// The type of data that you're expecting back from the server. |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
227 |
// Html and xml are detected automatically. |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
228 |
// Only useful when you are using json data as a response. |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
229 |
// Set to "json" in that case. |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
230 |
responseType: false, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
231 |
// When user selects a file, useful with autoSubmit disabled |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
232 |
onChange: function(file, extension){}, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
233 |
// Callback to fire before file is uploaded |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
234 |
// You can return false to cancel upload |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
235 |
onSubmit: function(file, extension){}, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
236 |
// Fired when file upload is completed |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
237 |
// WARNING! DO NOT USE "FALSE" STRING AS A RESPONSE! |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
238 |
onComplete: function(file, response) {} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
239 |
}; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
240 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
241 |
// Merge the users options with our defaults |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
242 |
for (var i in options) { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
243 |
this._settings[i] = options[i]; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
244 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
245 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
246 |
this._createInput(); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
247 |
this._rerouteClicks(); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
248 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
249 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
250 |
// assigning methods to our class |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
251 |
AjaxUpload.prototype = { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
252 |
setData : function(data){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
253 |
this._settings.data = data; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
254 |
}, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
255 |
disable : function(){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
256 |
this._disabled = true; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
257 |
}, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
258 |
enable : function(){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
259 |
this._disabled = false; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
260 |
}, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
261 |
// removes ajaxupload |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
262 |
destroy : function(){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
263 |
if(this._input){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
264 |
if(this._input.parentNode){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
265 |
this._input.parentNode.removeChild(this._input); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
266 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
267 |
this._input = null; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
268 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
269 |
}, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
270 |
/** |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
271 |
* Creates invisible file input above the button |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
272 |
*/ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
273 |
_createInput : function(){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
274 |
var self = this; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
275 |
var input = d.createElement("input"); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
276 |
input.setAttribute('type', 'file'); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
277 |
input.setAttribute('name', this._settings.name); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
278 |
var styles = { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
279 |
'position' : 'absolute' |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
280 |
,'margin': '-5px 0 0 -175px' |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
281 |
,'padding': 0 |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
282 |
,'width': '220px' |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
283 |
,'height': '30px' |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
284 |
,'fontSize': '14px' |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
285 |
,'opacity': 0 |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
286 |
,'cursor': 'pointer' |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
287 |
,'display' : 'none' |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
288 |
,'zIndex' : 2147483583 //Max zIndex supported by Opera 9.0-9.2x |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
289 |
// Strange, I expected 2147483647 |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
290 |
}; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
291 |
for (var i in styles){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
292 |
input.style[i] = styles[i]; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
293 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
294 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
295 |
// Make sure that element opacity exists |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
296 |
// (IE uses filter instead) |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
297 |
if ( ! (input.style.opacity === "0")){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
298 |
input.style.filter = "alpha(opacity=0)"; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
299 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
300 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
301 |
this._parentDialog.appendChild(input); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
302 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
303 |
addEvent(input, 'change', function(){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
304 |
// get filename from input |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
305 |
var file = fileFromPath(this.value); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
306 |
if(self._settings.onChange.call(self, file, getExt(file)) == false ){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
307 |
return; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
308 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
309 |
// Submit form when value is changed |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
310 |
if (self._settings.autoSubmit){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
311 |
self.submit(); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
312 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
313 |
}); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
314 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
315 |
// Fixing problem with Safari |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
316 |
// The problem is that if you leave input before the file select dialog opens |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
317 |
// it does not upload the file. |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
318 |
// As dialog opens slowly (it is a sheet dialog which takes some time to open) |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
319 |
// there is some time while you can leave the button. |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
320 |
// So we should not change display to none immediately |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
321 |
addEvent(input, 'click', function(){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
322 |
self.justClicked = true; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
323 |
setTimeout(function(){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
324 |
// we will wait 3 seconds for dialog to open |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
325 |
self.justClicked = false; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
326 |
}, 2500); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
327 |
}); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
328 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
329 |
this._input = input; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
330 |
}, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
331 |
_rerouteClicks : function (){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
332 |
var self = this; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
333 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
334 |
// IE displays 'access denied' error when using this method |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
335 |
// other browsers just ignore click() |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
336 |
// addEvent(this._button, 'click', function(e){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
337 |
// self._input.click(); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
338 |
// }); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
339 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
340 |
var box, dialogOffset = {top:0, left:0}, over = false; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
341 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
342 |
addEvent(self._button, 'mouseover', function(e){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
343 |
if (!self._input || over) return; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
344 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
345 |
over = true; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
346 |
box = getBox(self._button); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
347 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
348 |
if (self._parentDialog != d.body){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
349 |
dialogOffset = getOffset(self._parentDialog); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
350 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
351 |
}); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
352 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
353 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
354 |
// We can't use mouseout on the button, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
355 |
// because invisible input is over it |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
356 |
addEvent(document, 'mousemove', function(e){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
357 |
var input = self._input; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
358 |
if (!input || !over) return; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
359 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
360 |
if (self._disabled){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
361 |
removeClass(self._button, 'hover'); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
362 |
input.style.display = 'none'; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
363 |
return; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
364 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
365 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
366 |
var c = getMouseCoords(e); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
367 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
368 |
if ((c.x >= box.left) && (c.x <= box.right) && |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
369 |
(c.y >= box.top) && (c.y <= box.bottom)){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
370 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
371 |
input.style.top = c.y - dialogOffset.top + 'px'; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
372 |
input.style.left = c.x - dialogOffset.left + 'px'; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
373 |
input.style.display = 'block'; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
374 |
addClass(self._button, 'hover'); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
375 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
376 |
} else { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
377 |
// mouse left the button |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
378 |
over = false; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
379 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
380 |
var check = setInterval(function(){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
381 |
// if input was just clicked do not hide it |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
382 |
// to prevent safari bug |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
383 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
384 |
if (self.justClicked){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
385 |
return; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
386 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
387 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
388 |
if ( !over ){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
389 |
input.style.display = 'none'; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
390 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
391 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
392 |
clearInterval(check); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
393 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
394 |
}, 25); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
395 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
396 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
397 |
removeClass(self._button, 'hover'); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
398 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
399 |
}); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
400 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
401 |
}, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
402 |
/** |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
403 |
* Creates iframe with unique name |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
404 |
*/ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
405 |
_createIframe : function(){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
406 |
// unique name |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
407 |
// We cannot use getTime, because it sometimes return |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
408 |
// same value in safari :( |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
409 |
var id = getUID(); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
410 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
411 |
// Remove ie6 "This page contains both secure and nonsecure items" prompt |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
412 |
// http://tinyurl.com/77w9wh |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
413 |
var iframe = toElement('<iframe src="javascript:false;" name="' + id + '" />'); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
414 |
iframe.id = id; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
415 |
iframe.style.display = 'none'; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
416 |
d.body.appendChild(iframe); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
417 |
return iframe; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
418 |
}, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
419 |
/** |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
420 |
* Upload file without refreshing the page |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
421 |
*/ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
422 |
submit : function(){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
423 |
var self = this, settings = this._settings; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
424 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
425 |
if (this._input.value === ''){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
426 |
// there is no file |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
427 |
return; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
428 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
429 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
430 |
// get filename from input |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
431 |
var file = fileFromPath(this._input.value); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
432 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
433 |
// execute user event |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
434 |
if (! (settings.onSubmit.call(this, file, getExt(file)) == false)) { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
435 |
// Create new iframe for this submission |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
436 |
var iframe = this._createIframe(); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
437 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
438 |
// Do not submit if user function returns false |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
439 |
var form = this._createForm(iframe); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
440 |
form.appendChild(this._input); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
441 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
442 |
form.submit(); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
443 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
444 |
d.body.removeChild(form); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
445 |
form = null; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
446 |
this._input = null; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
447 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
448 |
// create new input |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
449 |
this._createInput(); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
450 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
451 |
var toDeleteFlag = false; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
452 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
453 |
addEvent(iframe, 'load', function(e){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
454 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
455 |
if (// For Safari |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
456 |
iframe.src == "javascript:'%3Chtml%3E%3C/html%3E';" || |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
457 |
// For FF, IE |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
458 |
iframe.src == "javascript:'<html></html>';"){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
459 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
460 |
// First time around, do not delete. |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
461 |
if( toDeleteFlag ){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
462 |
// Fix busy state in FF3 |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
463 |
setTimeout( function() { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
464 |
d.body.removeChild(iframe); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
465 |
}, 0); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
466 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
467 |
return; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
468 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
469 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
470 |
var doc = iframe.contentDocument ? iframe.contentDocument : frames[iframe.id].document; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
471 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
472 |
// fixing Opera 9.26 |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
473 |
if (doc.readyState && doc.readyState != 'complete'){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
474 |
// Opera fires load event multiple times |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
475 |
// Even when the DOM is not ready yet |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
476 |
// this fix should not affect other browsers |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
477 |
return; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
478 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
479 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
480 |
// fixing Opera 9.64 |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
481 |
if (doc.body && doc.body.innerHTML == "false"){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
482 |
// In Opera 9.64 event was fired second time |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
483 |
// when body.innerHTML changed from false |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
484 |
// to server response approx. after 1 sec |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
485 |
return; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
486 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
487 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
488 |
var response; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
489 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
490 |
if (doc.XMLDocument){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
491 |
// response is a xml document IE property |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
492 |
response = doc.XMLDocument; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
493 |
} else if (doc.body){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
494 |
// response is html document or plain text |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
495 |
response = doc.body.innerHTML; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
496 |
if (settings.responseType && settings.responseType.toLowerCase() == 'json'){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
497 |
// If the document was sent as 'application/javascript' or |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
498 |
// 'text/javascript', then the browser wraps the text in a <pre> |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
499 |
// tag and performs html encoding on the contents. In this case, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
500 |
// we need to pull the original text content from the text node's |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
501 |
// nodeValue property to retrieve the unmangled content. |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
502 |
// Note that IE6 only understands text/html |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
503 |
if (doc.body.firstChild && doc.body.firstChild.nodeName.toUpperCase() == 'PRE'){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
504 |
response = doc.body.firstChild.firstChild.nodeValue; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
505 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
506 |
if (response) { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
507 |
response = window["eval"]("(" + response + ")"); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
508 |
} else { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
509 |
response = {}; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
510 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
511 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
512 |
} else { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
513 |
// response is a xml document |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
514 |
var response = doc; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
515 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
516 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
517 |
settings.onComplete.call(self, file, response); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
518 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
519 |
// Reload blank page, so that reloading main page |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
520 |
// does not re-submit the post. Also, remember to |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
521 |
// delete the frame |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
522 |
toDeleteFlag = true; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
523 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
524 |
// Fix IE mixed content issue |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
525 |
iframe.src = "javascript:'<html></html>';"; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
526 |
}); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
527 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
528 |
} else { |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
529 |
// clear input to allow user to select same file |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
530 |
// Doesn't work in IE6 |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
531 |
// this._input.value = ''; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
532 |
d.body.removeChild(this._input); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
533 |
this._input = null; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
534 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
535 |
// create new input |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
536 |
this._createInput(); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
537 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
538 |
}, |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
539 |
/** |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
540 |
* Creates form, that will be submitted to iframe |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
541 |
*/ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
542 |
_createForm : function(iframe){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
543 |
var settings = this._settings; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
544 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
545 |
// method, enctype must be specified here |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
546 |
// because changing this attr on the fly is not allowed in IE 6/7 |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
547 |
var form = toElement('<form method="post" enctype="multipart/form-data"></form>'); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
548 |
form.style.display = 'none'; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
549 |
form.action = settings.action; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
550 |
form.target = iframe.name; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
551 |
d.body.appendChild(form); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
552 |
|
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
553 |
// Create hidden input element for each data key |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
554 |
for (var prop in settings.data){ |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
555 |
var el = d.createElement("input"); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
556 |
el.type = 'hidden'; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
557 |
el.name = prop; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
558 |
el.value = settings.data[prop]; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
559 |
form.appendChild(el); |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
560 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
561 |
return form; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
562 |
} |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
563 |
}; |
505fe5249d9c
add foundations for pharmakon (bedrock + deploy)
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
564 |
})(); |