SCxml.prototype.initIframe=function (data)
{
if(this.datamodel) return;
with(this._iframe_=document.createElement("iframe")){
className="scxml_script_frame"
style.display="none"
}
document.body.appendChild(this._iframe_)
this.datamodel=this._iframe_.contentWindow
with(this.datamodel.document)
{
open()
write('\n')
}
this.datamodel._sc=this
// shadow all predefined variables
this.datamodel._jsscxml_predefined_={}
for(var i in this.datamodel) if(this.datamodel.hasOwnProperty(i))
this.datamodel._jsscxml_predefined_[i]=undefined
with(this){
datamodel.__defineGetter__("_sessionid", function(){return sid})
datamodel.__defineSetter__("_sessionid", function(){return sid})
datamodel.__defineGetter__("_event", function(){return lastEvent})
datamodel.__defineSetter__("_event", function(){return lastEvent})
datamodel.__defineGetter__("_name", function(){return name})
datamodel.__defineSetter__("_name", function(){return name})
}
this.datamodel.__defineGetter__("_ioprocessors", function(){
return SCxml.EventProcessors })
this.datamodel.__defineSetter__("_ioprocessors", function(){
return SCxml.EventProcessors })
this.datamodel._x={
voices: ("speechSynthesis" in window) && speechSynthesis.getVoices()
}
if(data) for(i in data) if(data.hasOwnProperty(i))
{
if(this.datamodel.hasOwnProperty(i))
this.datamodel._jsscxml_predefined_[i]=data[i]
else this.datamodel[i]=data[i]
}
this.datamodel.document.write('\n')
delete this.datamodel._jsscxml_predefined_.setTimeout
delete this.datamodel._jsscxml_predefined_.setInterval
delete this.datamodel._jsscxml_predefined_.clearTimeout
delete this.datamodel._jsscxml_predefined_.clearInterval
}
SCxml.prototype.wrapScript=function (script, element)
{
this.datamodel._element=element
this.datamodel.document.write('')
}