function setFlashSize(width, height) {
var ce = $('callEngine');
ce.style.width = width;
ce.style.height = height;
try {
var cemb = $('callEmbed');
cemb.style.width = width;
cemb.style.height = height;
} catch (e) {}
}
function showVideoWindow() {
setFlashSize('320px', '240px');
}
function hideVideoWindow() {
if (!CallWindow.videoEnabled) {
setFlashSize('1px', '1px');
}
}
function callFailed() {
CallWindow.hide(false);
BlazeDS.calling = false;
}
var CallWindow = {
cameraEnabled: false,
videoEnabled: false,
microphoneEnabled: true,
recipient: "",
initCall: function(callTo, showCancelButton) {
var cw;
CallWindow.cameraEnabled = false;
CallWindow.videoEnabled = false;
CallWindow.microphoneEnabled = true;
CallWindow.recipient = callTo;
if($('callWindow')) {
$('cancelCall_button').setStyle({position: 'absolute', top: '268px', left: '120px', display: showCancelButton?'block':'none'});
hideVideoWindow();
CallWindow.toggleMicrophone(true);
Windows.getWindow('callWindow').setTitle(callTo);
Windows.getWindow('callWindow').toFront();
Windows.getWindow('callWindow').showCenter();
return;
}
cw = new Window({
id: 'callWindow',
className: "dialog",
width: 330, height: 268, resizable: false,
title: callTo,
draggable: true, closable: false, maximizable: false, minimizable: false, detachable: false,
minWidth: 330, minHeight:268, recenterAuto: false,
showEffectOptions: {duration: 0}, hideEffectOptions: {duration: 0}
});
cw.setConstraint(true, {left: 0, right: 0, top: 0, bottom: 0});
//$(callWindow.getId() + '_close').onclick=CallWindow.hide;
cw.getContent().innerHTML =
'<div class="videoBlock" style="text-align:center; vertical-align: top; position: absolute; top: -10px; left: 7px; width: 320px; height: 240px; background-image: url(themes/dark/calling.gif); background-repeat: no-repeat; background-position: 50%;" id="callWindow_video">'+
'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+
'id="callEngine" width="1" height="1"'+
'codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">'+
'<param name="movie" value="callEngine.swf" />'+
'<param name="quality" value="high" />'+
'<param name="bgcolor" value="#1f2022" />'+
'<param name="wmode" value="opaque" />'+
'<param name="allowScriptAccess" value="sameDomain" />'+
'<embed id="callEmbed" src="callEngine.swf" quality="high" bgcolor="#1f2022"'+
'width="1" height="1" name="callEngine" wmode="opaque" align="middle"'+
'play="true" loop="false" quality="high" allowScriptAccess="sameDomain"'+
'type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer">'+
'</embed>'+
'</object>'+
'</div>'+
'<div id="callWindow_buttons">'+
'<img src="themes/'+theme+'/window/hang.gif" class="toolbarButton" onclick="CallWindow.hide(true);" alt="Close connection" title="Close connection"/>' +
'<img src="themes/'+theme+'/window/cam-off.gif" id="callWindow_cam" class="toolbarButton" onclick="CallWindow.toggleVideo(!CallWindow.cameraEnabled);" alt="Camera" title="Camera"/>' +
'<img src="themes/'+theme+'/window/mic-on.gif" id="callWindow_mic" class="toolbarButton" onclick="CallWindow.toggleMicrophone(!CallWindow.microphoneEnabled);" alt="Microphone" title="Microphone"/>' +
'</div>'+
'<div id="cancelCall_button">'+
ButtonCtl.create('cancel', 'CallWindow.hide(true);') +
'</div>';
$('callWindow_buttons').setStyle({position: 'absolute', top: '270px', left: '120px', display: 'none'});
$('cancelCall_button').setStyle({position: 'absolute', top: '268px', left: '120px', display: showCancelButton?'block':'none'});
//    $('cancelCall_button').setStyle({position: 'absolute', top: '268px', left: '120px', display: 'none'});
//	  Windows.addObserver({ onBeforeShow: CallWindow.handleBeforeShow });
cw.showCenter();
},
hide: function(notify) {
CallWindow.getCallEngine().stopCall();
CallWindow.showControls(false);
if (CallWindow.cameraEnabled) {
CallWindow.toggleVideo(false);
}
//	  Windows.getWindow('callWindow').hide();
var e = Windows.getWindow('callWindow').element;
e.setStyle({top: '-1000px'});
e.setStyle({left: '-1000px'});
Windows.getWindow('callWindow').visible = false;
if (notify) {
BlazeDS.hang(CallWindow.recipient);
}
},
toggleVideo: function(enableCamera) {
if (enableCamera) {
showVideoWindow();
CallWindow.getCallEngine().startVideo();
BlazeDS.startVideo(CallWindow.recipient);
$('callWindow_cam').src='themes/'+theme+'/window/cam-on.gif';
} else {
CallWindow.getCallEngine().stopVideo();
BlazeDS.stopVideo(CallWindow.recipient);
if (!CallWindow.videoEnabled) {
hideVideoWindow();
}
$('callWindow_cam').src='themes/'+theme+'/window/cam-off.gif';
}
CallWindow.cameraEnabled = enableCamera;
},
toggleMicrophone: function(enable) {
CallWindow.getCallEngine().muteMicrophone(!enable);
CallWindow.microphoneEnabled = enable;
if (enable) {
$('callWindow_mic').src='themes/'+theme+'/window/mic-on.gif';
} else {
$('callWindow_mic').src='themes/'+theme+'/window/mic-off.gif';
}
},
getCallEngine: function() {
if (navigator.appName.indexOf ("Microsoft") !=-1) {
return window['callEngine'];
} else {
return document['callEngine'];
}
},
showFlashSecurity: function() {
showVideoWindow();
//		CallWindow.getCallEngine().showFlashSecurity();
},
showControls: function(show) {
$('cancelCall_button').setStyle({display: 'none'});
if (show) $('callWindow_buttons').setStyle({display: 'block'});
else $('callWindow_buttons').setStyle({display: 'none'});
}
};
