function createSilverlight()
{
	Silverlight.createObjectEx({
		source: 'Scene.xaml',
		parentElement: document.getElementById('SilverlightPlugInHost'),
		id: 'SilverlightPlugIn',
		properties: {
			width: '800',
			height: '800',
			background:'black',
            isWindowless: 'false',
			version: '1.0'
		},
		events: {
			onLoad: onPageLoad
		},		
		context: null 
	});
}

var _control;
var _token1, _token2;
var _progressUI, _progressBar;
var _ptf = null;

function onPageLoad(control, context, root)
{
    _control = control;
    _progressUI = _control.content.findName('ProgressUI');
    _progressBar = _control.content.findName('ProgressBar');
    
    // Begin asynchronous download of image assets
    var downloader = _control.createObject('downloader');
    _token1 = downloader.addEventListener('downloadProgressChanged', downloadProgressChanged);
    _token2 = downloader.addEventListener('completed', downloadCompleted);
    downloader.open('GET', 'eMagazineHindi/eMagazineHindi.zip');
    downloader.send();
}

function downloadProgressChanged(sender, args)
{
    var progress = sender.downloadProgress; // 0.0 to 1.0

    if (progress < 1.0)
        _progressUI.visibility = 'Visible';
        
    _progressBar.width = 600 * progress;
}

function downloadCompleted(sender, args)
{
    // Hide progress UI
    _progressUI.visibility = 'Collapsed';

    // Assign downloaded bits to images
    _control.content.findName('FrontCover').setSource(sender, 'FrontCover.jpg');
    _control.content.findName('Eternal00').setSource(sender, 'Eternal00.jpg');
    _control.content.findName('Eternal01').setSource(sender, 'Eternal01.jpg');
    _control.content.findName('Eternal02').setSource(sender, 'Eternal02.jpg');
    _control.content.findName('Eternal03').setSource(sender, 'Eternal03.jpg');
    _control.content.findName('Eternal04').setSource(sender, 'Eternal04.jpg');
    _control.content.findName('Eternal05').setSource(sender, 'Eternal05.jpg');
    _control.content.findName('Eternal06').setSource(sender, 'Eternal06.jpg');
    _control.content.findName('Eternal07').setSource(sender, 'Eternal07.jpg');
    _control.content.findName('Eternal08').setSource(sender, 'Eternal08.jpg');
    _control.content.findName('Eternal09').setSource(sender, 'Eternal09.jpg');
    _control.content.findName('Eternal10').setSource(sender, 'Eternal10.jpg');
    _control.content.findName('Eternal11').setSource(sender, 'Eternal11.jpg');
    _control.content.findName('Eternal12').setSource(sender, 'Eternal12.jpg');
    _control.content.findName('Eternal13').setSource(sender, 'Eternal13.jpg');
    _control.content.findName('Eternal14').setSource(sender, 'Eternal14.jpg');
    _control.content.findName('Eternal15').setSource(sender, 'Eternal15.jpg');
    _control.content.findName('Eternal16').setSource(sender, 'Eternal16.jpg');
    _control.content.findName('Eternal17').setSource(sender, 'Eternal17.jpg');
    _control.content.findName('Eternal18').setSource(sender, 'Eternal18.jpg');
    _control.content.findName('Eternal19').setSource(sender, 'Eternal19.jpg');
    _control.content.findName('Eternal20').setSource(sender, 'Eternal20.jpg');
    _control.content.findName('Eternal21').setSource(sender, 'Eternal21.jpg');
    _control.content.findName('Eternal22').setSource(sender, 'Eternal22.jpg');
    _control.content.findName('Eternal23').setSource(sender, 'Eternal23.jpg');
    _control.content.findName('Eternal24').setSource(sender, 'Eternal24.jpg');
    _control.content.findName('Eternal25').setSource(sender, 'Eternal25.jpg');
    _control.content.findName('Eternal26').setSource(sender, 'Eternal26.jpg');
    _control.content.findName('Eternal27').setSource(sender, 'Eternal27.jpg');
    _control.content.findName('Eternal28').setSource(sender, 'Eternal28.jpg');
    _control.content.findName('Eternal29').setSource(sender, 'Eternal29.jpg');
    _control.content.findName('Eternal30').setSource(sender, 'Eternal30.jpg');
    _control.content.findName('Eternal31').setSource(sender, 'Eternal31.jpg');
    _control.content.findName('Eternal32').setSource(sender, 'Eternal32.jpg');
    _control.content.findName('Eternal33').setSource(sender, 'Eternal33.jpg');
    _control.content.findName('Eternal34').setSource(sender, 'Eternal34.jpg');
    _control.content.findName('Eternal35').setSource(sender, 'Eternal35.jpg');
    _control.content.findName('Eternal36').setSource(sender, 'Eternal36.jpg');
    _control.content.findName('Eternal37').setSource(sender, 'Eternal37.jpg');
    _control.content.findName('Eternal38').setSource(sender, 'Eternal38.jpg');
    _control.content.findName('Eternal39').setSource(sender, 'Eternal39.jpg');
    _control.content.findName('Eternal40').setSource(sender, 'Eternal40.jpg');
    _control.content.findName('Eternal41').setSource(sender, 'Eternal41.jpg');
    _control.content.findName('Eternal42').setSource(sender, 'Eternal42.jpg');
    _control.content.findName('Eternal43').setSource(sender, 'Eternal43.jpg');
    _control.content.findName('Eternal44').setSource(sender, 'Eternal44.jpg');
    _control.content.findName('Eternal45').setSource(sender, 'Eternal45.jpg');
    _control.content.findName('Eternal46').setSource(sender, 'Eternal46.jpg');
    _control.content.findName('Eternal47').setSource(sender, 'Eternal47.jpg');
    _control.content.findName('Eternal48').setSource(sender, 'Eternal48.jpg');
    _control.content.findName('Eternal49').setSource(sender, 'Eternal49.jpg');
    _control.content.findName('Eternal50').setSource(sender, 'Eternal50.jpg');
    _control.content.findName('Eternal51').setSource(sender, 'Eternal51.jpg');
    _control.content.findName('Eternal52').setSource(sender, 'Eternal52.jpg');
    _control.content.findName('Eternal53').setSource(sender, 'Eternal53.jpg');
    _control.content.findName('Eternal54').setSource(sender, 'Eternal54.jpg');
    _control.content.findName('Eternal55').setSource(sender, 'Eternal55.jpg');
    _control.content.findName('Eternal56').setSource(sender, 'Eternal56.jpg');
    _control.content.findName('Eternal57').setSource(sender, 'Eternal57.jpg');
    _control.content.findName('Eternal58').setSource(sender, 'Eternal58.jpg');
    _control.content.findName('Eternal59').setSource(sender, 'Eternal59.jpg');
    _control.content.findName('Eternal60').setSource(sender, 'Eternal60.jpg');
    _control.content.findName('Eternal61').setSource(sender, 'Eternal61.jpg');
    _control.content.findName('Eternal62').setSource(sender, 'Eternal62.jpg');
    _control.content.findName('Eternal63').setSource(sender, 'Eternal63.jpg');
    _control.content.findName('Eternal64').setSource(sender, 'Eternal64.jpg');
    _control.content.findName('Eternal65').setSource(sender, 'Eternal65.jpg');
    _control.content.findName('Eternal66').setSource(sender, 'Eternal66.jpg');
    _control.content.findName('Eternal67').setSource(sender, 'Eternal67.jpg');
    _control.content.findName('Eternal68').setSource(sender, 'Eternal68.jpg');
    _control.content.findName('Eternal69').setSource(sender, 'Eternal69.jpg');
    _control.content.findName('Eternal70').setSource(sender, 'Eternal70.jpg');
    _control.content.findName('Eternal71').setSource(sender, 'Eternal71.jpg');
    _control.content.findName('Eternal72').setSource(sender, 'Eternal72.jpg');
    _control.content.findName('Eternal73').setSource(sender, 'Eternal73.jpg');
    _control.content.findName('Eternal74').setSource(sender, 'Eternal74.jpg');
    _control.content.findName('Eternal75').setSource(sender, 'Eternal75.jpg');
    _control.content.findName('Eternal76').setSource(sender, 'Eternal76.jpg');
    _control.content.findName('Eternal77').setSource(sender, 'Eternal77.jpg');
    _control.content.findName('Eternal78').setSource(sender, 'Eternal78.jpg');
    _control.content.findName('Eternal79').setSource(sender, 'Eternal79.jpg');
    _control.content.findName('Eternal80').setSource(sender, 'Eternal80.jpg');
    _control.content.findName('Eternal81').setSource(sender, 'Eternal81.jpg');
    _control.content.findName('Eternal82').setSource(sender, 'Eternal82.jpg');
    _control.content.findName('Eternal83').setSource(sender, 'Eternal83.jpg');
    _control.content.findName('BackCover').setSource(sender, 'BackCover.jpg');

    // Deregister downloader event handlers
    sender.removeEventListener('downloadProgressChanged', _token1);
    sender.removeEventListener('completed', _token2);

    // Instantiate the page-turn framework
    _ptf = new PageTurnFramework(_control, _control.content.findName('PageTurnCanvas'));

    // Add "pages" to the framework
    _ptf.addPage(_control.content.findName('EvenPage0'), _control.content.findName('OddPage0'));
    _ptf.addPage(_control.content.findName('EvenPage1'), _control.content.findName('OddPage1'));
    _ptf.addPage(_control.content.findName('EvenPage2'), _control.content.findName('OddPage2'));
    _ptf.addPage(_control.content.findName('EvenPage3'), _control.content.findName('OddPage3'));
    _ptf.addPage(_control.content.findName('EvenPage4'), _control.content.findName('OddPage4'));
    _ptf.addPage(_control.content.findName('EvenPage5'), _control.content.findName('OddPage5'));
    _ptf.addPage(_control.content.findName('EvenPage6'), _control.content.findName('OddPage6'));
    _ptf.addPage(_control.content.findName('EvenPage7'), _control.content.findName('OddPage7'));
    _ptf.addPage(_control.content.findName('EvenPage8'), _control.content.findName('OddPage8'));
    _ptf.addPage(_control.content.findName('EvenPage9'), _control.content.findName('OddPage9'));
    _ptf.addPage(_control.content.findName('EvenPage10'), _control.content.findName('OddPage10'));
    _ptf.addPage(_control.content.findName('EvenPage11'), _control.content.findName('OddPage11'));
    _ptf.addPage(_control.content.findName('EvenPage12'), _control.content.findName('OddPage12'));
    _ptf.addPage(_control.content.findName('EvenPage13'), _control.content.findName('OddPage13'));
    _ptf.addPage(_control.content.findName('EvenPage14'), _control.content.findName('OddPage14'));
    _ptf.addPage(_control.content.findName('EvenPage15'), _control.content.findName('OddPage15'));
    _ptf.addPage(_control.content.findName('EvenPage16'), _control.content.findName('OddPage16'));
    _ptf.addPage(_control.content.findName('EvenPage17'), _control.content.findName('OddPage17'));
    _ptf.addPage(_control.content.findName('EvenPage18'), _control.content.findName('OddPage18'));
    _ptf.addPage(_control.content.findName('EvenPage19'), _control.content.findName('OddPage19'));
    _ptf.addPage(_control.content.findName('EvenPage20'), _control.content.findName('OddPage20'));
    _ptf.addPage(_control.content.findName('EvenPage21'), _control.content.findName('OddPage21'));
    _ptf.addPage(_control.content.findName('EvenPage22'), _control.content.findName('OddPage22'));
    _ptf.addPage(_control.content.findName('EvenPage23'), _control.content.findName('OddPage23'));
    _ptf.addPage(_control.content.findName('EvenPage24'), _control.content.findName('OddPage24'));
    _ptf.addPage(_control.content.findName('EvenPage25'), _control.content.findName('OddPage25'));
    _ptf.addPage(_control.content.findName('EvenPage26'), _control.content.findName('OddPage26'));
    _ptf.addPage(_control.content.findName('EvenPage27'), _control.content.findName('OddPage27'));
    _ptf.addPage(_control.content.findName('EvenPage28'), _control.content.findName('OddPage28'));
    _ptf.addPage(_control.content.findName('EvenPage29'), _control.content.findName('OddPage29'));
    _ptf.addPage(_control.content.findName('EvenPage30'), _control.content.findName('OddPage30'));
    _ptf.addPage(_control.content.findName('EvenPage31'), _control.content.findName('OddPage31'));
    _ptf.addPage(_control.content.findName('EvenPage32'), _control.content.findName('OddPage32'));
    _ptf.addPage(_control.content.findName('EvenPage33'), _control.content.findName('OddPage33'));
    _ptf.addPage(_control.content.findName('EvenPage34'), _control.content.findName('OddPage34'));
    _ptf.addPage(_control.content.findName('EvenPage35'), _control.content.findName('OddPage35'));
    _ptf.addPage(_control.content.findName('EvenPage36'), _control.content.findName('OddPage36'));
    _ptf.addPage(_control.content.findName('EvenPage37'), _control.content.findName('OddPage37'));
    _ptf.addPage(_control.content.findName('EvenPage38'), _control.content.findName('OddPage38'));
    _ptf.addPage(_control.content.findName('EvenPage39'), _control.content.findName('OddPage39'));
    _ptf.addPage(_control.content.findName('EvenPage40'), _control.content.findName('OddPage40'));
    _ptf.addPage(_control.content.findName('EvenPage41'), _control.content.findName('OddPage41'));
    _ptf.addPage(_control.content.findName('EvenPage42'), _control.content.findName('OddPage42'));
    _ptf.addPage(_control.content.findName('EvenPage43'), _control.content.findName('OddPage43'));

    // Initialize the framework
    _ptf.initializeFramework();
}

function dispose()
{
    // Call framework's dispose method for proper cleanup
    if (_ptf != null)
        _ptf.dispose();
}




