var	filesToLoad		= new Array();
var	currentFile		= 0;
function loadFiles()
{
	if (typeof filesToLoad[currentFile] == 'string')
	{
		$.getScript(SCORE_URL + 'Includes/Javascripts/' + filesToLoad[currentFile], loadFiles);
		currentFile++;
	}
	else
	{
		execute();
	}
}

$(document).ready(loadFiles);

function execute()
{
	$('a[rel="external"]').click(externalLink);
	$('form').has('input[name=rel]').submit(externalForm);

	$('.javascript').each(loadElementJavascript);

	if ($('div#trailer div#player').length)
		$.getScript(SCORE_URL + 'Includes/Javascripts/SWFObject.js', startTrailer);

	if ($('form#support').length)
		startSupport();

	if ($('#reload').length)
		setTimeout(reload, 5000);


	/* Opvangen oude onsite betalingen */
	if ($('#paymentContainer, #paymentPhoneContainer').length)
		$.getScript(SCORE_URL + 'Includes/Javascripts/JQuery.Plugin.NyroModal.js', paymentInit);
}

function externalForm(e)
{
	$(this).attr('target', '_blank');
}
function externalLink()
{
    window.open($(this).attr('href'));
    return false;
}

function loadElementJavascript()
{
	var	file			= $(this).attr('id').substr(0, 1).toUpperCase() + $(this).attr('id').substr(1);
	$.getScript(SCORE_URL + 'Includes/Javascripts/JQuery.Functions.' + file + '.js', loadElementJavascriptLoaded);
}
function loadElementJavascriptLoaded()
{
	var	functionName		= this.url.substr(SCORE_URL.length+38);
		functionName		= functionName.split('.js');
		functionName		= functionName[0];
		functionName		= functionName.substr(0, 1).toLowerCase() + functionName.substr(1);
	eval(functionName + 'Execute();');
}

/*	Trailers	*/
function startTrailer()
{
	if ($('#player').attr('title') == '')
		return false;

	var so	= new SWFObject(SCORE_URL + '/Includes/Flash/Player.swf', 'mpl', $('#player').css('width'), $('#player').css('height'), '9');
		so.addParam('allowscriptaccess',	'always');
		so.addParam('allowfullscreen',		'true');
		so.addParam('flashvars',			'file=' + $('#player').attr('title') + '&volume=100&controlbar=over&autostart=false');
		if ($('#player').attr('title').split('.').length == 1)
			so.addParam('flashvars',		'file=' + $('#player').attr('title') + '_HIGH.mp4&streamer=rtmpt://streams.vodpartner.nl:80/PPM/&tags=' + userId + '&volume=100&controlbar=over&autostart=false');
		so.write('player');
		setTimeout(startPlayerPlay, 500);

	if ($('#player').attr('title').split('.').length == 1)
		paymentPhoneCheckInterval	= setInterval(dialedCheck, 1000);
	$(window).unload(playerUnload);
}
function startPlayerPlay()
{
	if (typeof mpl != 'object')
		setTimeout(startPlayerPlay, 500);
	if (typeof mpl == 'object')
		mpl.sendEvent('PLAY');
}
function playerUnload()
{
	mpl.sendEvent('STOP');
}

/* Dialed check */
function dialedCheck()
{
	$.get(SCORE_URL + 'check.xml' + promo, dialedCheckCallback, 'xml');
}
function dialedCheckCallback(data)
{
	var	status				= $(data).find('status').text();
	var	location			= document.location + '';
	if (status != 'OPEN')
		document.location	= document.location + (location.split('?').length > 1 ? '&' : '?') + 'disconnected';
}

/* Support */
function startSupport()
{
	$('form#support input[name=javascript]').val('Yes');
	if ($.browser.msie)
		$('form#support input[name=browser]').val('Microsoft Internet Explorer ' + $.browser.version);
	if ($.browser.mozilla)
		$('form#support input[name=browser]').val('Mozilla Firefox ' + $.browser.version);
	if ($.browser.opera)
		$('form#support input[name=browser]').val('Opera ' + $.browser.version);
	if ($.browser.safari)
		$('form#support input[name=browser]').val('Safari ' + $.browser.version);
}

/* Reload page */
function reload()
{
	var	url			= location.href;
			url			+= (url.split('?').length > 1 ? '&' : '?') + 'reload';
	location.href	= url;
}





/* Opvangen oude onsite betalingen */
function paymentCountryCallback(responseText)
{
	$('#paymentContainer form#cc').nyroModal({
		closeButton:	'',
		endFillContent	: function()
						{
							$('#player').hide(500);
						},
		endRemove		: function()
						{
							$('#player').show(500);
							clearInterval(paymentIdealIntervalCheck);
							return true;
						},
		wrap			: {
			form		: '<div id="paymentCc"></div>'
		}
	});
	$('#paymentContainer form#cc select').change(function() {$(this).parent().parent().submit();})
	$('#paymentContainer form#directEBanking').nyroModal({
		closeButton:	'',
		endFillContent	: function()
						{
							$('div#player').hide(500);
						},
		endRemove		: function()
						{
							$('div#player').show(500);
							clearInterval(paymentIdealIntervalCheck);
							return true;
						},
		wrap			: {
			form		: '<div id="paymentIdeal"></div>'
		}
	});
	$('#paymentContainer form#ideal').nyroModal({
		closeButton:	'',
		endFillContent	: function()
						{
							$('#paymentContainer form#ideal select').val('');
							$('div#player').hide(500);
						},
		endRemove		: function()
						{
							$('div#player').show(500);
							clearInterval(paymentIdealIntervalCheck);
							return true;
						},
		wrap			: {
			form		: '<div id="paymentIdeal"></div>'
		}
	});
	$('#paymentContainer form#ideal select').change(function() {$(this).parent().parent().submit();})
	$('#paymentContainer form#phone').nyroModal({
		closeButton:	'',
		endFillContent	: function()
						{
							$('#player').hide(500);
						},
		endRemove		: function()
						{
							$('#player').show(500);
							return true;
						},
		wrap			: {
			form		: '<div id="paymentPhone"></div>'
		}
	});
	if ($('#paymentContainer form#phone input[name=code]').val() != '')
		$('#paymentContainer form#phone').submit()
}
function paymentInit()
{
	paymentCountryCallback();
}

var	paymentCcId;
var	paymentCcIntervalCheck;
var	paymentCcMovie;
var	paymentDirectEBankingId;
var	paymentDirectEBankingIntervalCheck;
var	paymentDirectEBankingMovie;
var	paymentIdealId;
var	paymentIdealIntervalCheck;
var	paymentIdealMovie;

function paymentContinue()
{
	this.location		= SCORE_URL + 'mijnfilms.html' + promo;
}

function paymentCcCancel()
{
	$('div#progress').fadeOut(300, function ()
	{
		$('div#cancel').fadeIn();
	});
	clearInterval(paymentCcIntervalCheck);
}
function paymentCcCheck()
{
	$.get(SCORE_URL + 'betalen/' + paymentCcMovie + '/cc/check.xml', {transactionId: 	paymentCcId}, paymentCcCheckCallback);
}
function paymentCcCheckCallback(xml)
{
	var	status	= $(xml).find('status').text();
	switch(status)
	{
		case 'ERROR':
			paymentCcCancel();
			break;
		case 'OK':
			paymentCcFinish();
			break;
			break;
	}
}
function paymentCcFinish()
{
	$('div#progress').fadeOut(300, function ()
	{
		$('div#finish').fadeIn();
		setTimeout(paymentContinue, 5000);
	});
	clearInterval(paymentCcIntervalCheck);
}
function paymentCcStart(movie, transactionUrl, transactionId)
{
	paymentCcId				= transactionId;
	paymentCcMovie			= movie;

	window.open(transactionUrl, 'paymentCc', 'width=800px,height=400px,location=1,status=0,menubar=0directories=0,toolbar=0,resizable=0,scrollbars=0');

	paymentCcIntervalCheck	= setInterval(paymentCcCheck, 5000);
}

function paymentDirectEBankingCancel()
{
	$('div#progress').fadeOut(300, function ()
	{
		$('div#cancel').fadeIn();
	});
	clearInterval(paymentDirectEBankingIntervalCheck);
}
function paymentDirectEBankingCheck()
{
	$.get(SCORE_URL + 'betalen/' + paymentDirectEBankingMovie + '/ideal/check.xml', {transactionId: 	paymentDirectEBankingId}, paymentDirectEBankingCheckCallback);
}
function paymentDirectEBankingCheckCallback(xml)
{
	var	status	= $(xml).find('status').text();
	switch(status)
	{
		case 'ERROR':
			paymentDirectEBankingCancel();
			break;
		case 'OK':
			paymentDirectEBankingFinish();
			break;
			break;
	}
}
function paymentDirectEBankingFinish()
{
	$('div#progress').fadeOut(300, function ()
	{
		$('div#finish').fadeIn();
		setTimeout(paymentContinue, 5000);
	});
	clearInterval(paymentDirectEBankingIntervalCheck);
}
function paymentDirectEBankingStart(movie, transactionUrl, transactionId, height, width)
{
	paymentDirectEBankingId				= transactionId;
	paymentDirectEBankingMovie			= movie;

	window.open(transactionUrl, 'paymentDirectEBanking', 'width='  + width + 'px,height='  + height + 'px,location=1,status=0,menubar=0directories=0,toolbar=0,resizable=0,scrollbars=1');

	paymentDirectEBankingIntervalCheck	= setInterval(paymentDirectEBankingCheck, 5000);
}

function paymentIdealCancel()
{
	$('div#progress').fadeOut(300, function ()
	{
		$('div#cancel').fadeIn();
	});
	clearInterval(paymentIdealIntervalCheck);
}
function paymentIdealCheck()
{
	$.get(SCORE_URL + 'betalen/' + paymentIdealMovie + '/ideal/check.xml', {transactionId: 	paymentIdealId}, paymentIdealCheckCallback);
}
function paymentIdealCheckCallback(xml)
{
	var	status	= $(xml).find('status').text();
	switch(status)
	{
		case 'ERROR':
			paymentIdealCancel();
			break;
		case 'OK':
			paymentIdealFinish();
			break;
			break;
	}
}
function paymentIdealFinish()
{
	$('div#progress').fadeOut(300, function ()
	{
		$('div#finish').fadeIn();
		setTimeout(paymentContinue, 5000);
	});
	clearInterval(paymentIdealIntervalCheck);
}
function paymentIdealStart(movie, transactionUrl, transactionId, height, width)
{
	paymentIdealId				= transactionId;
	paymentIdealMovie			= movie;

	window.open(transactionUrl, 'paymentIdeal', 'width='  + width + 'px,height='  + height + 'px,location=1,status=0,menubar=0directories=0,toolbar=0,resizable=0,scrollbars=1');

	paymentIdealIntervalCheck	= setInterval(paymentIdealCheck, 5000);
}

var	paymentPhoneBarWidthPPC;
var	paymentPhoneId;
var	paymentPhoneIntervalCheck;
var	paymentPhoneIntervalUpdate;
var	paymentPhoneMovie;
var	paymentPhonePrice;
var	paymentPhonePriceLeft;
var	paymentPhoneRate;
var	paymentPhoneRateTPC;
var	paymentPhoneTimeCalled;
var	paymentPhoneTimeRequested;

function paymentPhoneCancel()
{
//	$.log('Phone payment cancelled.');
	clearInterval(paymentPhoneIntervalCheck);
	clearInterval(paymentPhoneIntervalUpdate);

	$('div#bar').fadeOut(300, function ()
	{
		$('div#buttonCancel').fadeIn();
	});
	$('div#paymentPhoneContainer div#content span#progress').fadeOut(300, function ()
	{
		$('div#paymentPhoneContainer div#content span#cancel').fadeIn();
	});
}
function paymentPhoneCheck()
{
//	$.log('Phone payment status check started.');
	$.get(SCORE_URL + 'betalen/' + paymentPhoneMovie + '/telefoon/check.xml', {transactionId: 	paymentPhoneId}, paymentPhoneCheckCallback);
}
function paymentPhoneCheckCallback(xml)
{
//	$.log(xml);
	var	status	= $(xml).find('status').text();
//	$.log('Phone payment status: ' + status);
//	$.log('Phone payment status: ' + (typeof status));
	switch(status)
	{
		case 'ERROR':
			paymentPhoneCancel();
			break;
		case 'OK':
			paymentPhoneFinish();
			break;
		case 'OPEN':
			paymentPhonePriceLeft	= $(xml).find('left').text();
//			$.log('Phone payment price left xml: ' + $(xml).find('left').text());
//			$.log('Phone payment price left: ' + paymentPhonePriceLeft);
			if (paymentPhonePriceLeft <= 0)
				paymentPhoneFinishWait();
			break;
	}
//	$.log('Phone payment status check finished.');
}
function paymentPhoneFinish()
{
//	$.log('Phone payment finished.');
	clearInterval(paymentPhoneIntervalCheck);

	$.get(SCORE_URL + 'betalen/' + paymentPhoneMovie + '/telefoon/check.xml', {transactionId: 	paymentPhoneId}, paymentPhoneFinishCallback);
}
function paymentPhoneFinishCallback(xml)
{
//	$.log(xml);
	var	status	= $(xml).find('status').text();
	if (status == 'OPEN')
	{
		setTimeout(paymentPhoneFinish, 5000);
//		$.log('Phone payment finished but still open.');
	}
	else
	{
		$('div#buttonFinish').fadeIn();
		if (!debug)
			setTimeout(paymentContinue, 5000);
		$('div#paymentPhoneContainer div#content span').fadeOut(500, function()
		{
			$('div#paymentPhoneContainer div#content span#finish').fadeIn();
		});
//		$.log('Phone payment absolutely finished.');
	}
}
function paymentPhoneWait()
{
//	$.log('Phone payment wait');
	clearInterval(paymentPhoneIntervalUpdate);
	$('div#bar').fadeOut(300);
	$('div#paymentPhoneContainer div#content span').fadeOut(500, function()
	{
		$('div#paymentPhoneContainer div#content span#wait').fadeIn();
	});
}
function paymentPhoneRetry()
{
	$('div#paymentPhoneContainer form').nyroModal({
		closeButton:	'',
		endFillContent	: function()
						{
							$('#player').hide(500);
						},
		endRemove		: function()
						{
							$('#player').show(500);
							return true;
						},
		wrap			: {
			form		: '<div id="paymentPhone"></div>'
		}
	});
}
function paymentPhoneStart(movie, transactionId, price, rate, timeCalled, timeRequested)
{
//	$.log('Phone payment started.');
	paymentPhoneId				= transactionId;
	paymentPhoneMovie			= movie;
	paymentPhonePrice			= price;
	paymentPhonePriceLeft		= price;
	paymentPhoneRate			= rate;
	paymentPhoneTimeCalled		= timeCalled;
	paymentPhoneTimeRequested	= timeRequested;

	paymentPhoneRateTPC			= (60/paymentPhoneRate)+0.2;
	paymentPhonePriceLeft		= Math.ceil(paymentPhonePrice-(paymentPhoneTimeCalled/paymentPhoneRateTPC));

	paymentPhoneBarWidthPPC		= $('div#bar').width()/paymentPhonePrice;

	paymentPhoneIntervalCheck	= setInterval(paymentPhoneCheck, 10000);
	paymentPhoneIntervalUpdate	= setInterval(paymentPhoneUpdate, (paymentPhoneRateTPC*1000));

	$('div#paymentPhoneContainer div#content span').fadeOut(500, function()
	{
		$('div#paymentPhoneContainer div#content span#progress').fadeIn();
//		$.log('Progressbar displaid.');
	});
}
function paymentPhoneUpdate()
{
	paymentPhonePriceLeft--;
//	$.log('Phone payment price left: ' + paymentPhonePriceLeft);
	$('div#price span#price span').html((paymentPhonePriceLeft/100).toFixed(2).replace('.', ','));

	$('div#bar div').animate({
		width		: (paymentPhonePrice-paymentPhonePriceLeft)*paymentPhoneBarWidthPPC
	}, (paymentPhoneRateTPC*1000));

	if (paymentPhonePriceLeft <= 0)
		paymentPhoneWait();
}