| author | veltr |
| Mon, 23 Apr 2012 19:11:08 +0200 | |
| branch | new-model |
| changeset 875 | 43629caa77bc |
| parent 809 | 1997dae651c6 |
| child 882 | 61c384dda19e |
| permissions | -rw-r--r-- |
| 589 | 1 |
/* This piece of code is directly requested by the page the player is embedded |
2 |
on. It creates the iframe the player is embedded in and it reflects changes |
|
3 |
to the iframe url in the page url. |
|
4 |
*/ |
|
5 |
||
|
809
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
6 |
IriSP = {}; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
7 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
8 |
window.onhashchange = function() { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
9 |
var url = window.location.href; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
10 |
var frame = document.getElementById("metadataplayer_embed"); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
11 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
12 |
if ( url.split( "#" )[ 1 ] != null ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
13 |
hashvalue = url.split("#")[1]; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
14 |
frame.contentWindow.postMessage({type: "hashchange", value: hashvalue}, "*"); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
15 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
16 |
}; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
17 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
18 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
19 |
IriSP.handleMessages = function(e) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
20 |
var history = window.history; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
21 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
22 |
if ( !history.pushState ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
23 |
return false; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
24 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
25 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
26 |
if (e.data.type === "hashchange") { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
27 |
console.log(e.data.value); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
28 |
history.replaceState( {}, "", e.data.value); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
29 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
30 |
}; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
31 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
32 |
// http://stackoverflow.com/questions/799981/document-ready-equivalent-without-jquery |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
33 |
var ready = (function(){ |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
34 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
35 |
var readyList, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
36 |
DOMContentLoaded, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
37 |
class2type = {}; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
38 |
class2type["[object Boolean]"] = "boolean"; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
39 |
class2type["[object Number]"] = "number"; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
40 |
class2type["[object String]"] = "string"; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
41 |
class2type["[object Function]"] = "function"; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
42 |
class2type["[object Array]"] = "array"; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
43 |
class2type["[object Date]"] = "date"; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
44 |
class2type["[object RegExp]"] = "regexp"; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
45 |
class2type["[object Object]"] = "object"; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
46 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
47 |
var ReadyObj = { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
48 |
// Is the DOM ready to be used? Set to true once it occurs. |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
49 |
isReady: false, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
50 |
// A counter to track how many items to wait for before |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
51 |
// the ready event fires. See #6781 |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
52 |
readyWait: 1, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
53 |
// Hold (or release) the ready event |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
54 |
holdReady: function( hold ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
55 |
if ( hold ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
56 |
ReadyObj.readyWait++; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
57 |
} else { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
58 |
ReadyObj.ready( true ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
59 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
60 |
}, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
61 |
// Handle when the DOM is ready |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
62 |
ready: function( wait ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
63 |
// Either a released hold or an DOMready/load event and not yet ready |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
64 |
if ( (wait === true && !--ReadyObj.readyWait) || (wait !== true && !ReadyObj.isReady) ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
65 |
// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
66 |
if ( !document.body ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
67 |
return setTimeout( ReadyObj.ready, 1 ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
68 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
69 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
70 |
// Remember that the DOM is ready |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
71 |
ReadyObj.isReady = true; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
72 |
// If a normal DOM Ready event fired, decrement, and wait if need be |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
73 |
if ( wait !== true && --ReadyObj.readyWait > 0 ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
74 |
return; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
75 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
76 |
// If there are functions bound, to execute |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
77 |
readyList.resolveWith( document, [ ReadyObj ] ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
78 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
79 |
// Trigger any bound ready events |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
80 |
//if ( ReadyObj.fn.trigger ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
81 |
// ReadyObj( document ).trigger( "ready" ).unbind( "ready" ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
82 |
//} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
83 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
84 |
}, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
85 |
bindReady: function() { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
86 |
if ( readyList ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
87 |
return; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
88 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
89 |
readyList = ReadyObj._Deferred(); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
90 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
91 |
// Catch cases where $(document).ready() is called after the |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
92 |
// browser event has already occurred. |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
93 |
if ( document.readyState === "complete" ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
94 |
// Handle it asynchronously to allow scripts the opportunity to delay ready |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
95 |
return setTimeout( ReadyObj.ready, 1 ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
96 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
97 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
98 |
// Mozilla, Opera and webkit nightlies currently support this event |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
99 |
if ( document.addEventListener ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
100 |
// Use the handy event callback |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
101 |
document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
102 |
// A fallback to window.onload, that will always work |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
103 |
window.addEventListener( "load", ReadyObj.ready, false ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
104 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
105 |
// If IE event model is used |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
106 |
} else if ( document.attachEvent ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
107 |
// ensure firing before onload, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
108 |
// maybe late but safe also for iframes |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
109 |
document.attachEvent( "onreadystatechange", DOMContentLoaded ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
110 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
111 |
// A fallback to window.onload, that will always work |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
112 |
window.attachEvent( "onload", ReadyObj.ready ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
113 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
114 |
// If IE and not a frame |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
115 |
// continually check to see if the document is ready |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
116 |
var toplevel = false; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
117 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
118 |
try { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
119 |
toplevel = window.frameElement == null; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
120 |
} catch(e) {} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
121 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
122 |
if ( document.documentElement.doScroll && toplevel ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
123 |
doScrollCheck(); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
124 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
125 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
126 |
}, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
127 |
_Deferred: function() { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
128 |
var // callbacks list |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
129 |
callbacks = [], |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
130 |
// stored [ context , args ] |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
131 |
fired, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
132 |
// to avoid firing when already doing so |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
133 |
firing, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
134 |
// flag to know if the deferred has been cancelled |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
135 |
cancelled, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
136 |
// the deferred itself |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
137 |
deferred = { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
138 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
139 |
// done( f1, f2, ...) |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
140 |
done: function() { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
141 |
if ( !cancelled ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
142 |
var args = arguments, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
143 |
i, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
144 |
length, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
145 |
elem, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
146 |
type, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
147 |
_fired; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
148 |
if ( fired ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
149 |
_fired = fired; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
150 |
fired = 0; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
151 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
152 |
for ( i = 0, length = args.length; i < length; i++ ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
153 |
elem = args[ i ]; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
154 |
type = ReadyObj.type( elem ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
155 |
if ( type === "array" ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
156 |
deferred.done.apply( deferred, elem ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
157 |
} else if ( type === "function" ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
158 |
callbacks.push( elem ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
159 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
160 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
161 |
if ( _fired ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
162 |
deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
163 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
164 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
165 |
return this; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
166 |
}, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
167 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
168 |
// resolve with given context and args |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
169 |
resolveWith: function( context, args ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
170 |
if ( !cancelled && !fired && !firing ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
171 |
// make sure args are available (#8421) |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
172 |
args = args || []; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
173 |
firing = 1; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
174 |
try { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
175 |
while( callbacks[ 0 ] ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
176 |
callbacks.shift().apply( context, args );//shifts a callback, and applies it to document |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
177 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
178 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
179 |
finally { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
180 |
fired = [ context, args ]; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
181 |
firing = 0; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
182 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
183 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
184 |
return this; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
185 |
}, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
186 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
187 |
// resolve with this as context and given arguments |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
188 |
resolve: function() { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
189 |
deferred.resolveWith( this, arguments ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
190 |
return this; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
191 |
}, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
192 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
193 |
// Has this deferred been resolved? |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
194 |
isResolved: function() { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
195 |
return !!( firing || fired ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
196 |
}, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
197 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
198 |
// Cancel |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
199 |
cancel: function() { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
200 |
cancelled = 1; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
201 |
callbacks = []; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
202 |
return this; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
203 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
204 |
}; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
205 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
206 |
return deferred; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
207 |
}, |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
208 |
type: function( obj ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
209 |
return obj == null ? |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
210 |
String( obj ) : |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
211 |
class2type[ Object.prototype.toString.call(obj) ] || "object"; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
212 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
213 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
214 |
// The DOM ready check for Internet Explorer |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
215 |
function doScrollCheck() { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
216 |
if ( ReadyObj.isReady ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
217 |
return; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
218 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
219 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
220 |
try { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
221 |
// If IE is used, use the trick by Diego Perini |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
222 |
// http://javascript.nwbox.com/IEContentLoaded/ |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
223 |
document.documentElement.doScroll("left"); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
224 |
} catch(e) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
225 |
setTimeout( doScrollCheck, 1 ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
226 |
return; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
227 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
228 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
229 |
// and execute any waiting functions |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
230 |
ReadyObj.ready(); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
231 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
232 |
// Cleanup functions for the document ready method |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
233 |
if ( document.addEventListener ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
234 |
DOMContentLoaded = function() { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
235 |
document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
236 |
ReadyObj.ready(); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
237 |
}; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
238 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
239 |
} else if ( document.attachEvent ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
240 |
DOMContentLoaded = function() { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
241 |
// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
242 |
if ( document.readyState === "complete" ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
243 |
document.detachEvent( "onreadystatechange", DOMContentLoaded ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
244 |
ReadyObj.ready(); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
245 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
246 |
}; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
247 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
248 |
function ready( fn ) { |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
249 |
// Attach the listeners |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
250 |
ReadyObj.bindReady(); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
251 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
252 |
var type = ReadyObj.type( fn ); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
253 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
254 |
// Add the callback |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
255 |
readyList.done( fn );//readyList is result of _Deferred() |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
256 |
} |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
257 |
return ready; |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
258 |
})(); |
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
259 |
|
|
1997dae651c6
added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
589
diff
changeset
|
260 |
ready(function() { window.addEventListener('message', IriSP.handleMessages, false); }); |