// some variables to save
var currentPosition = 0;
var currentVolume;
var currentItem;
var videoLarge = false;
var largeSize = 140;
var playing = false;

var autoplay_next = true;

var currentMovie = 0;
var link_root = "http://www.atlanticcity.tv/";
var cgi_root = "http://www.atlanticcity.tv/cgi-bin";

var map_box = null;

Position.GetWindowSize = function(w) {
	var width, height;
        w = w ? w : window;
        this.width = w.innerWidth || (w.document.documentElement.clientWidth || w.document.body.clientWidth);
        this.height = w.innerHeight || (w.document.documentElement.clientHeight || w.document.body.clientHeight);
        
        return this;
}

function toggle_large()
{
	var map_box = new box('fr', $('flvplayer'));
	document.body.appendChild(map_box.DOM());
	map_box.center();

	sendEvent('playpause');
	$('flvplayer').style.display = 'none';	
}

function toggleVideoSize()
{
	if(videoLarge)
	{
		//make smaller
		$('player').style.left = '0px';
		$('player').style.top = '0px';
		$('flvplayer').style.width = '480px';
		$('flvplayer').style.height = '270px';
		videoLarge = false;
	}
	else
	{
		// make bigger
		var dim = Position.GetWindowSize();
		var newLeft = (dim.width - ($('player').getWidth() * (largeSize / 100))) / 2;
		var newTop = (dim.height - ($('player').getHeight() * (largeSize / 100))) / 2;
		
		var OldPosition = Position.cumulativeOffset($('player'));
		var deltaLeft = newLeft - OldPosition[0];
		var deltaTop = newTop - OldPosition[1];

		if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version < 7)
			$('flvplayer').style.position = 'absolute';

		new Effect.Move($('player'), {x: deltaLeft, y: deltaTop, mode: 'relative', duration: 0.5});
		new Effect.Scale($('flvplayer'), largeSize, {duration: 0.5});

		videoLarge = true;
	}
}

function show_map()
{
	if (GBrowserIsCompatible() && arVideos[currentMovie][5] != '' && arVideos[currentMovie][6] != '')
	{
		$('map').style.display = '';
		if(!map_box)
		{
			map_box = new box('map_box', $('map'));
		       	document.body.appendChild(map_box.DOM());	
	        	map_box.center();
		}
		else
		{
			map_box._dN.style.display = '';
		}

		var map = new GMap2($('map'));
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());

		map.setCenter(new GLatLng(arVideos[currentMovie][5],arVideos[currentMovie][6]), 13);
		var point = new GLatLng(arVideos[currentMovie][5],arVideos[currentMovie][6]);
		map.addOverlay(new GMarker(point));

        	sendEvent('playpause');
	        $('flvplayer').style.visibility = 'hidden';
	}
}

function playMovie(arMovies, which)
{
	loadFile(
	{
		file:'http://www.atlanticcity.tv/video/' + 
			arMovies[which][0] + '/' +
			arMovies[which][1] + '.flv',
		title: arMovies[which][2],
		link: link_root + '/index.html?video_id=' + arMovies[which][1],
		id: arMovies[which][1],
		image: arMovies[which][4]
	});

	sendEvent('playpause');

	$('current_title').innerHTML = arMovies[which][2];
	$('current_description').innerHTML = arMovies[which][3];
	$('video_viewed').innerHTML = arMovies[which][7];

	showRating(arMovies[which][8]);
	if(arMovies[which][5] && arMovies[which][6])
		$('map_button').style.visibility = 'visible';
	else
		$('map_button').style.visibility = 'hidden';

	if(arMovies[which][9])
		$('info_button').onclick = 'document.location = "' + arMovies[which][9] + '";';
	else
		$('info_button').style.visibility = 'hidden';
	currentMovie = which;
	changeNextPrevious();

	new Ajax.Request(cgi_root + "/video_ajax/video_view.pl?video_id=" + arMovies[which][1],{method: 'get'});
}

function changeRating(rating)
{
	for(var i = 0;i < 5;i++)
	{
		if(rating > i + 0.5)
			$('star_' + (i+1)).src = '/images/star_' + (i+1) + '_on.gif';
		else
			$('star_' + (i+1)).src = '/images/star_' + (i+1) + '_off.gif';
	}
}

function showRating(rating)
{
	$('avg_rating').innerHTML = '';

	for(var i = 0;i < 5;i++)
	{
		var imgEl = document.createElement('img');

		if(rating > i + 0.5)
			imgEl.src = '/images/star_' + (i+1) + '_on.gif';
		else
			imgEl.src = '/images/star_' + (i+1) + '_off.gif';

		imgEl.id = 'star_' + (i+1);
		$('avg_rating').appendChild(imgEl);		

		Event.observe(imgEl, 'mouseover', function (event) 
			{ changeRating(Event.element(event).id.split('_')[1]);});

		Event.observe($('star_' + (i+1)), 'click', function (e) 
		{       	
			new Ajax.Request(cgi_root + "/video_ajax/add_rating.pl?video_id=" + 
				arVideos[currentMovie][1] +
				"&rating=" + e.target.id.split('_')[1]
			,{method: 'get'});
		});
	}
}

function previousVideo()
{
	if(currentMovie > 0)
		playMovie(arVideos, currentMovie - 1);
}

function nextVideo()
{
	if(arVideos[currentMovie+1])
		playMovie(arVideos, currentMovie + 1);
}

function changeNextPrevious()
{
	if(currentMovie > 0)
	{
		$('previous_video').innerHTML = arVideos[currentMovie - 1][2];
		$('previous_image').src = arVideos[currentMovie - 1][4];
		$('previous_image').alt = arVideos[currentMovie - 1][2];
		$('previous_image').style.visibility = 'visible';
	}
	else
	{
		//image and text here indicating the beginning of the list.
		$('previous_video').innerHTML = '';
		$('previous_image').src = '';
		$('previous_image').alt = '';
		$('previous_image').style.visibility = 'hidden';
	}

	if(arVideos[currentMovie+1] != null)
	{
		$('next_video').innerHTML = arVideos[currentMovie+1][2];
		$('next_image').src = arVideos[currentMovie+1][4];
		$('next_image').alt = arVideos[currentMovie+1][2];
		$('next_image').style.visibility = 'visible';
	}
	else	
	{
		// image and text here indicating end of the list.
		$('next_video').innerHTML = '';
		$('next_image').src = '';
		$('next_image').alt = '';
		$('next_image').style.visibility = 'hidden';
	}
}

// these functions are caught by the JavascriptView object of the player.
function sendEvent(typ,prm) { thisMovie("flvplayer").sendEvent(typ,prm); };

function getUpdate(typ,pr1,pr2,pid) 
{
	if(typ == "time") 
	{ 
		currentPosition = pr1; 

		if(pr1 != 0) playing = true;
		if(pr2 == 0 && playing)
		{
			playing = false;
			if(autoplay_next)
				nextVideo();
		}
	}
	else if(typ == "volume") 
	{ 
		currentVolume = pr1; 
	}
	else if(typ == "item") 
	{ 
		currentItem = pr1; 
		setTimeout("getItemData(currentItem)",100); 
	}
};
// These functions are caught by the feeder object of the player.
function loadFile(obj) 
{ 
	thisMovie("flvplayer").loadFile(obj); 
};

function addItem(obj,idx) { thisMovie("flvplayer").addItem(obj,idx); }
function removeItem(idx) { thisMovie("flvplayer").removeItem(idx); }

function getItemData(idx) 
{
	var obj = thisMovie("flvplayer").itemData(idx);
};
// This is a javascript handler for the player and is always needed.
function thisMovie(movieName) 
{
	if(navigator.appName.indexOf("Microsoft") != -1) 
	{
		return window[movieName];
	} 
	else 
	{
		return document[movieName];
	}
};

//------------------------------------------------------------------------------
function loadPlayer(fil,video_id,return_page,user_id) {

  var curr=window.location;
// alert (curr);
  var FO = {
    movie:"flash/flvplayer.swf",
    id:"flvplayer",
    name:"flvplayer",
    width:"100%",
    height:"100%",
    majorversion:"8",
    build:"0",
    bgcolor:"#FFFFFF",
    allowfullscreen:"true",
    flashvars:
      "file="+fil+
      "&enablejs=true"+
      "&javascriptid=flvplayer"+
      "&showdigits=true"+
      "&autostart=true"+
      "&lightcolor=0x557722"+
      "&backcolor=0x000000"+
      "&frontcolor=0xCCCCCC"+
      "&usefullscreen=false"+
      "&fsbuttonlink=javascript:toggleVideoSize()"+
      "&overstretch=fill"+
      "&displayheight=9999"+
      "&quality=high"
  };
  UFO.create(FO, "player");

/*
  var comments_url = '/cgi-bin/video_ajax/show_comments.pl';
  var comments_params='video_id='+video_id;
  var comments_ajax = new Ajax.Updater(
    {success: 'comments'},
    comments_url, {method: 'get', parameters: comments_params}
  );

  var video_info_url = '/cgi-bin/video_ajax/video_info.pl';
  var video_info_params='video_id='+video_id;
  var video_info_ajax = new Ajax.Updater(
    {success: 'videoinfo'},
    video_info_url, {method: 'get', parameters: video_info_params}
  );

  var video_view_url = '/cgi-bin/video_ajax/video_view.pl';
  var video_view_params='video_id='+video_id;
  var video_ajax = new Ajax.Request(
    video_view_url, {method: 'get', parameters: video_view_params}
  );
*/
};
//------------------------------------------------------------------------------
function add_rating(rating,video_id){
  var url = '/cgi-bin/video_ajax/add_rating.pl';
  var params='video_id='+video_id+'&rating='+rating;
  var ajax = new Ajax.Updater(
    {success: 'current_ratings'},
    url, {method: 'get', parameters: params}
  );
  Element.toggle('rate_menu');
} //end add_rating
//------------------------------------------------------------------------------
function overstar(num){
  var rating_words=new Array("Poor","Below Average","Average","Above Average","Excellent!");
  for (var x = 1; x <= num; x++){
    var starid='star'+x;
    var star=$(starid);
    star.src='/images/star_'+x+'_on.gif';
//   msg = msg + x + "\n";
  } //end for
  Element.update('rating_word',rating_words[num-1]);
} //end overstar
//------------------------------------------------------------------------------
function offstar(){
  for (var x = 1; x <= 5; x++){
    var starid='star'+x;
    var star=$(starid);
    star.src='/images/star_'+x+'_off.gif';
//   msg = msg + x + "\n";
  } //end for
  Element.update('rating_word','');
} //end overstar
//------------------------------------------------------------------------------
function user_signup(){
  var params=Form.serialize('new_user_form');
  var url = '/cgi-bin/video_ajax/new_user.pl';
  var ajax = new Ajax.Updater(
    {success: 'user_signup_response'},
    url, {method: 'get', parameters: params}
  );
} //end user_signup
//------------------------------------------------------------------------------
function login(){
  var params=Form.serialize('login_form');
  var url = '/cgi-bin/video_ajax/user_signin.pl';
  var ajax = new Ajax.Updater(
    {success: 'login_response'},
    url, {method: 'get', parameters: params}
  );
} //end login
//------------------------------------------------------------------------------
function logout(){
  var url = '/cgi-bin/video_ajax/user_signout.pl';
  var params='';
  var ajax = new Ajax.Updater(
    {success: 'login_response'},
    url, {method: 'get', parameters: params, onComplete: function() {window.location='/temp.index.html' }
    }
  );
} //end logout
//------------------------------------------------------------------------------
function post_comment(){
  var params=Form.serialize('new_comment');
  var url = '/cgi-bin/video_ajax/add_comment.pl';
  var ajax = new Ajax.Updater(
    {success: 'new_comment_response'},
    url, {method: 'get', parameters: params}
  );
} //end post_comment
//------------------------------------------------------------------------------
