var opacityObject = new Array();
var logoObject = new Array();
var activeOpacityObject = new Array();
var activeLogoObject = new Array();
var globalTime = 0;
var looptime = 20;
var doLoop = false;

var map = null;
var geocoder = null;
 
function initialize()
{
	if (GBrowserIsCompatible())
	{
		map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(37.4419, -122.1419), 13);
		map.setUIToDefault();
		geocoder = new GClientGeocoder();
		showAddress('Karlavägen 1, Stockholm, Sverige');
	}
}

function select_category(object)
{
	jQuery('#'+object.id).addClass('selected ');
	for(i=0; i<sections.length; i++)
	{
		id = sections[i]+'_category';
		if(id != object.id)
			jQuery('#'+id).removeClass('selected');
	}
}
 
function showAddress(address)
{
	if (geocoder)
	{
		geocoder.getLatLng(
		address,
		function(point)
		{
			if (!point)
			{
				alert(address + " not found");
			} else {
				map.setCenter(point, 13);
				var marker = new GMarker(point);
				map.addOverlay(marker);

				marker.openInfoWindowHtml('<p>Spectacular Studios<br/>Karlavägen 1<br/>114 24 Stockholm</p>', {maxWidth:100});
			}
		}
		);
	}
}

function showNames(id)
{
	document.getElementById('left-links').className='visible';
	element =  document.getElementById(id);

	for(i=0; i<sections.length; i++)
		document.getElementById(sections[i]).className='invisible';

	element.className='visible';
}

function mainLoop() {
	globalTime += looptime;
	var doOpacity = false;
	if(activeOpacityObject.length==0 && opacityObject.length>0) {
		doLoop = true;
		activeOpacityObject = opacityObject.shift();
		activeOpacityObject[4] = globalTime+activeOpacityObject[6];
	}
	else if(activeOpacityObject.length>0) {
		doLoop = true;
		if(activeOpacityObject[7]=='changeImage')
			changeImage(activeOpacityObject[8]);
		else
			doOpacity = true;
	}
	if(activeLogoObject.length==0 && logoObject.length>0) {
		doLoop = true;
		activeLogoObject = logoObject.shift();
		activeLogoObject[4] = globalTime+activeLogoObject[6];
	}
	else if(activeLogoObject.length>0) {
		doLoop = true;
		doOpacity = true;
	}
	if(opacity)
		opacity();
	if(doLoop)
		setTimeout('mainLoop()', looptime);
}

function isset(varname){
  return(typeof(window[varname])!='undefined');
}

function opacity() {
	if(activeOpacityObject.length>0) {
		if(globalTime > activeOpacityObject[4]) {
			if(activeOpacityObject[1] < activeOpacityObject[2]) {
				opacChange = Math.round((activeOpacityObject[2] - activeOpacityObject[1])/(activeOpacityObject[3]/looptime));
				activeOpacityObject[5] += opacChange;
				if(activeOpacityObject[5]>=activeOpacityObject[2]) {
					activeOpacityObject[5] = activeOpacityObject[2];
					changeOpac(activeOpacityObject[5], activeOpacityObject[0]);
					activeOpacityObject = new Array();
				}
				else {
					changeOpac(activeOpacityObject[5], activeOpacityObject[0]);
					activeOpacityObject[4] += looptime;
				}
			}
			else if(activeOpacityObject[1] > activeOpacityObject[2]) {
				opacChange = Math.round((activeOpacityObject[1] - activeOpacityObject[2])/(activeOpacityObject[3]/looptime));
				activeOpacityObject[5] -= opacChange;
				if(activeOpacityObject[5]<=activeOpacityObject[2]) {
					activeOpacityObject[5] = activeOpacityObject[2];
					changeOpac(activeOpacityObject[5], activeOpacityObject[0]);
					activeOpacityObject = new Array();
				}
				else {
					changeOpac(activeOpacityObject[5], activeOpacityObject[0]);
					activeOpacityObject[4] += looptime;
				}
			}
		}
	}
	if(activeLogoObject.length>0) {
		if(globalTime > activeLogoObject[4]) {
			if(activeLogoObject[1] < activeLogoObject[2]) {
				opacChange = Math.round((activeLogoObject[2] - activeLogoObject[1])/(activeLogoObject[3]/looptime));
				activeLogoObject[5] += opacChange;
				if(activeLogoObject[5]>activeLogoObject[2]) {
					activeLogoObject[5] = activeLogoObject[2];
					changeOpac(activeLogoObject[5], activeLogoObject[0]);
					activeLogoObject = new Array();
				}
				else {
					changeOpac(activeLogoObject[5], activeLogoObject[0]);
					activeLogoObject[4] += looptime;
				}
			}
			else if(activeLogoObject[1] > activeLogoObject[2]) {
				opacChange = Math.round((activeLogoObject[1] - activeLogoObject[2])/(activeLogoObject[3]/looptime));
				activeLogoObject[5] -= opacChange;
				if(activeLogoObject[5]<activeLogoObject[2]) {
					activeLogoObject[5] = activeLogoObject[2];
					changeOpac(activeLogoObject[5], activeLogoObject[0]);
					activeLogoObject = new Array();
				}
				else {
					changeOpac(activeLogoObject[5], activeLogoObject[0]);
					activeLogoObject[4] += looptime;
				}
			}
		}
	}
}

function changeOpac(opacity, id) {
	try{
	    object = document.getElementById(id).style;
	
	    object.opacity = (opacity / 100);
	    object.MozOpacity = (opacity / 100);
	    object.KhtmlOpacity = (opacity / 100);
	    object.filter = "alpha(opacity=" + opacity + ")";
	}catch(e){}
}

function addObject(type, id, start, end, millisec, timeout, additional) {
	object = new Array();
	object[0] = id;
	object[1] = start;
	object[2] = end;
	object[3] = millisec;
	object[4] = 0;
	object[5] = start;
	object[6] = timeout;
	object[7] = type;
	object[8] = additional;
	if(type=='logo') {
		logoObject.push(object);
	}
	else
		opacityObject.push(object);
	if(!doLoop) {
		doLoop = true;
		setTimeout('mainLoop()', looptime);
	}
}

function startPlayer(movie, artist, description, title, id)
{
	var url = '{$server}/' + '{$selected_artist_type}/' + artist + '/motion/?id=' + id;
	setSociable(url);
	setTitleAndDescription(title, description);
	var main = document.getElementById('main-image');
	if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i)))
	{
		var videojsplayer =  '<video id="example_video_1" width="480" height="385" controls="controls" preload="auto">';
		videojsplayer += '<source src="/artist_images/'+ artist + '/videos/' + movie +'" type='+"'"+'video/mp4; codecs="avc1.42E01E, mp4a.40.2"'+"'"+' />';
		videojsplayer += '</video>';
		main.innerHTML = videojsplayer;
	}
	else
	{
		var flowplayer = '<a href="/artist_images/'+ artist + '/videos/' + movie +'" style="display:block;width:480px;height:385px" id="player"></a>';
		main.innerHTML = flowplayer;
		var player = $f("player", "/flowplayer/flowplayer-3.2.7.swf", {
	    clip: {
	        autoPlay: false,
	        autoBuffering: true
	    },
	    onLoad: function() {
	        this.setVolume(20);
	    }
		});
	}
}
function setTitleAndDescription(title, description)
{
	var title_desc = document.getElementById('description');
	var desc = '<h2 class="bodoni">' + title + '</h2>'
	desc += '<p style="font-size:13px;">' + description + '</p>';
	title_desc.innerHTML = desc;
}
function setSociable(url)
{
	document.getElementById('digg').href = 'http://digg.com/submit?phase=2&url=' + url;
	document.getElementById('sphinn').href = 'http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=' + url;
	document.getElementById('delicious').href = 'http://delicious.com/post?url=' + url;
	document.getElementById('facebook').href = 'http://www.facebook.com/share.php?u=' + url;
	document.getElementById('mixx').href = 'http://www.mixx.com/submit?page_url=' + url;
	document.getElementById('google').href = 'http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=' + url;
	document.getElementById('twitter').href = 'http://twitter.com/home?status=' + url;
}
function selectThumb(object)
{
	jQuery('#'+object.id).addClass('selected-thumb ');
	for(i=0; i<thumb_array.length; i++)
	{
		id = thumb_array[i];
		if(id != object.id)
			jQuery('#'+id).removeClass('selected-thumb');
	}
}
function runLightBox(id)
{
	jQuery('#overlay').remove();
	jQuery('#lightbox').remove();
	Lightbox.prototype.initialize();
	setTimeout('doRunLightBox("'+id+'")', 500);
}
function doRunLightBox(id)
{
	Lightbox.prototype.start(document.getElementById(id));
}
