//
// Translate the contents of a form into a JSON object
//
function formToQueryString( form ) {
	var obj = {};
	
	var inputs = form.getElements( 'input' );
	var selects = form.getElements( 'select' );
	var textareas = form.getElements( 'textarea' );
	
	var els = [];
	els[ els.length ] = inputs;
	els[ els.length ] = selects;
	els[ els.length ] = textareas;
	
	for( var i = 0; i < els.length; i++ ) {
		for( var j = 0; j < els[ i ].length; j++ ) {
			var name = els[ i ][ j ].getProperty( 'name' );
			var value = false;
			if( els[ i ][ j ].getProperty( 'type' ) == 'checkbox' ) {
				if( els[ i ][ j ].getProperty( 'checked' ) == true ) {
					value = els[ i ][ j ].getProperty( 'value' );
				}
			} else {
				value = els[ i ][ j ].getProperty( 'value' );
			}
			if( ( value !== false )
			 && name ) {
			 	obj[ name ] = value;
			}
		}
	}
	
	var s = '';
	
	$each( obj, function( value, name ) {
		s += name + '=' + value + '&';
	} );
	
	return s;
}

//
// YouTube chromeless player controls
//
function ytPlay() {
	if( $( 'vmytplayer' ) != undefined ) {
    	$( 'vmytplayer' ).playVideo();
  	}
}

function jwPlay() {
	if( $( 'jwplayer' ) != undefined ) {
    	$( 'jwplayer' ).sendEvent( "PLAY", "true" );
  	}
}

function ytPause() {
  	if( $( 'vmytplayer' ) != undefined ) {
    	var curState = $( 'vmytplayer' ).getPlayerState();
    	if( curState == 1 ) { 		 // Playing
	    	$( 'vmytplayer' ).pauseVideo();
    	} else if( curState == 2 ) { // Paused
	    	$( 'vmytplayer' ).playVideo();
    	}
  	}
}

function jwPause() {
  	if( $( 'jwplayer' ) != undefined ) {
    	var curState = $( 'jwplayer' ).getConfig().state;
    	if( curState == 'PLAYING' ) { 		 // Playing
	    	$( 'jwplayer' ).sendEvent( "PLAY", "false" );
    	} else if( curState == 'PAUSED' ) { // Paused
	    	$( 'jwplayer' ).sendEvent( "PLAY", "true" );;
    	}
  	}
}

function ytStop() {
  	if( $( 'vmytplayer' ) != undefined ) {
    	$( 'vmytplayer' ).stopVideo();
  	}
}

function jwStop() {
  	if( $( 'jwplayer' ) != undefined ) {
    	$( 'jwplayer' ).sendEvent( "STOP", "true" );
  	}
}

function ytSetVideo( vidID ) {
  	if( $( 'vmytplayer' ) != undefined ) {
		$( 'vmytplayer' ).cueVideoById( vidID, 0 );
  	}
}

function jwSetVideo( vidURL ) {
  	if( $( 'jwplayer' ) != undefined ) {
		$( 'jwplayer' ).sendEvent( "LOAD", vidURL );
		$( 'jwplayer' ).sendEvent( "PLAY", "true" );		
  	}
}

function updateytPlayerInfo() {
	
	var secElapsed = $( 'vmytplayer' ).getCurrentTime();
	
	if( secElapsed < 0 ) {
		secElapsed = 0;
	}
	
	var minNow = Math.abs( Math.floor( secElapsed / 60 ) );
	var secNow = Math.abs( Math.floor( secElapsed - minNow * 60 ) );
	
	$( 'curTime' ).innerHTML = ( minNow < 10 ? '0' + minNow : minNow ) + ':' + ( secNow < 10 ? '0' + secNow : secNow );

	var secTotal = $( 'vmytplayer' ).getDuration();
	
	if( secTotal < 0 ) {
		secTotal = 0;
	}
	
	var minTot = Math.abs( Math.floor( secTotal / 60 ) );
	var secTot = Math.abs( Math.floor( secTotal - minTot * 60 ) );
	
	$( 'totTime' ).innerHTML = ( minTot < 10 ? '0' + minTot : minTot ) + ':' + ( secTot < 10 ? '0' + secTot : secTot );

	$( 'timeTrack' ).setStyle( 'left', Math.abs( Math.floor( 30 + ( 320 * secElapsed / secTotal ) ) ) );

}

function updatejwPlayerInfo( obj ) {
	
	var secElapsed = obj.position;
	
	if( secElapsed < 0 ) {
		secElapsed = 0;
	}
	
	var minNow = Math.abs( Math.floor( secElapsed / 60 ) );
	var secNow = Math.abs( Math.floor( secElapsed - minNow * 60 ) );
	
	$( 'curTime' ).innerHTML = ( minNow < 10 ? '0' + minNow : minNow ) + ':' + ( secNow < 10 ? '0' + secNow : secNow );

	var secTotal = obj.duration;
	
	if( secTotal < 0 ) {
		secTotal = 0;
	}
	
	var minTot = Math.abs( Math.floor( secTotal / 60 ) );
	var secTot = Math.abs( Math.floor( secTotal - minTot * 60 ) );
	
	$( 'totTime' ).innerHTML = ( minTot < 10 ? '0' + minTot : minTot ) + ':' + ( secTot < 10 ? '0' + secTot : secTot );

	$( 'timeTrack' ).setStyle( 'left', Math.abs( Math.floor( 30 + ( 320 * secElapsed / secTotal ) ) ) );

}

function onYouTubePlayerReady( playerId ) {
	ytSetVideo( 'WsF-8B_Xhjc' );

	setInterval( updateytPlayerInfo, 250 );
}

function playerReady( obj ) {
	jwSetVideo( 'youtube.com/watch?v=WsF-8B_Xhjc' );

	$( 'jwplayer' ).addModelListener( "TIME", "updatejwPlayerInfo" );
}

//
// Fade away the DIV containing the form errors
//
function fadeErrors() {
	
	if( $( 'formerrors' ) != undefined ) {

		// Set slide and styles effects
	    var fxOut = new Fx.Morph( $( 'formerrors' ), { duration: 750, wait: false } );
	
	   	fxOut.start( {
			'opacity': 0.0
		} );
	
	}

};

window.addEvent( 'domready', function() {
	var linkimg = $$( '.vidpreview' );

	var fxImg = new Array();

	// Set blob menu effects for each of the .vidpreview
	for( var k = 0, l = linkimg.length; k < l; k++ ) {

		// Create FX for each menu item
		fxImg[ k ] = new Fx.Morph( linkimg[ k ], { duration: 100, transition: 'quad:in:out', wait: false } );

		// Mouse ENTER listener
		linkimg[ k ].addEvent( 'mouseenter', function( e ) {

			var i = linkimg.indexOf( this );
			
			fxImg[ i ].start( {
    			'opacity' : 0.85
	      	} );
			
		} );
		
		// Mouse LEAVE listener
		linkimg[ k ].addEvent( 'mouseleave', function( e ) {

			var i = linkimg.indexOf( this );
			
			fxImg[ i ].start( {
    			'opacity' : 1.0
        	} );

		} );
	}
	
	
	var carousel = $( 'videostrip' );
	var animation = new Fx.Tween( carousel, { duration: 750 } );

	$( 'goeast' ).addEvent( 'click', function() {
			var now = parseInt( carousel.getStyle( 'left' ) );
			if( now > - 1034 ) {
				animation.start( 'left', now - 517 );
			}
		} );

	$( 'gowest' ).addEvent( 'click', function() {
			var now = parseInt( carousel.getStyle( 'left' ) );
			if( now < 0 ) {
				animation.start( 'left', now + 517 );
			}
		} );

} );

window.addEvent( 'load', function() {

	// if we have the button with that name...
    if( $( 'invia_richiesta' ) != undefined ) {
    	$( 'invia_richiesta' ).value = "invia richiesta";

    	if( $( 'formerrors' ) != undefined ) {
    
    	    var fxInErr = new Fx.Morph( $( 'formerrors' ), { duration: 750,
    	    												 transition: Fx.Transitions.Quad.easeInOut,
    	    												 wait: false } ).set( { opacity: 0.85 } );
    	
    	}
    
    }

} );
