$( function () {

	if ( ! $.browser.msie ) {
		$('#romance').corner('24px');
	}

	$('#romance-vendors h3').corner('tl tr 8px');
	$('#romance-vendors').corner('8px');

	window.$transport = { 'pct': 0 };

	window.$transport.logos = $('#vendor-logos');
	window.$transport.playerTitle = $('#romance-player h1');

	window.$transport.autoPlay = true;
	window.$transport.playAll = false;

	window.$transport.container = $('#player-transport');
	window.$transport.container.corner('bl br 8px');

	window.$transport.container.append('<div id="player-button"><a href="javascript: void(0);" class="button-play"></a></div>');
	window.$transport.button = $('#player-button a');
	
	window.$transport.container.append('<div id="player-progress"><div><div id="progress"></div><div id="streamed"></div><div id="playhead" class="draggable ui-widget-content"></div></div></div>');
	window.$transport.progress = $('#progress');
	window.$transport.streamed = $('#streamed');
	window.$transport.progressWrap = $('#player-progress');
	window.$transport.progressWrap.hide();
	window.$transport.progressWidth = parseInt(window.$transport.progressWrap.css('width'));
	window.$transport.playhead = $('#playhead');
	window.$transport.dragging = false;

	window.$transport.playhead.draggable({
		axis: 'x', 
		containment: '#streamed', 
		scroll: false,
		start: function() {
			window.$transport.dragging = true;
		},
		drag: function() {
			var pct = parseInt ( (  100 / window.$transport.progressWidth ) * parseInt(window.$transport.playhead.css('left')) );
			MediaPlayerSender ( 'setPlayheadPct', pct );
		},
		stop: function() {
			window.$transport.dragging = false;
			var pct = parseInt ( (  100 / window.$transport.progressWidth ) * parseInt(window.$transport.playhead.css('left')) );
			MediaPlayerSender ( 'setPlayheadPct', pct );
		}
	});


	window.$transport.container.append('<div class="player-time" id="player-duration"><span></span></div>');
	window.$transport.duration = $('#player-duration span');

	window.$transport.container.append('<div class="player-time" id="player-time"><span></span></div>');
	window.$transport.time = $('#player-time span');
	
	$('#player-progress').click( function ( e ){
		var x =  e.pageX - this.offsetLeft;
		var width = $(this).css('width').replace ( /[^0-9]/g, '' );
		var pct = Math.round( ( 100 / width ) * x );
		MediaPlayerSender ( 'setPlayheadPct', pct );
	});
	
	$('#romance-playlist ul li').each ( function (e) {
		var a = $(this).find('a').attr('rel').split('|');
		var y = -88 * a[0];
		$(this).css('background-position', '0 ' + y + 'px' );
	});

	$('#play-all').bind('click', function() {
		$(this).blur();
		window.$transport.playAll = true;				
		$('#romance-playlist ul li:first a').click();
	});

	$('#romance-playlist ul').bind('click', function( e ) {

		if ( e.target.tagName == 'UL' ) {
			return false;
		}

		if ( e.target.tagName == 'LI' ) {
			var target = $(e.target).child('a:first');
		} else if ( e.target.tagName != 'A' ) {
			var target = $(e.target).parent();
		} else {
			var target = $(e.target);
		}

		target.blur();

		$('.playing').removeClass ( 'playing' );
		target.addClass ( 'playing' );

		var title = target.find('span').html();
		$('#romance-vendors h3 span').html('Westcon Group - We\'re serious about ' + title + ' - Click to explore our best of breed ' + title + ' vendor portfolio' );

		var li = target.parent();
		var a = $(target).attr('rel').split('|');

		window.$transport.logos.css( "background-position", "0 " + ( a[0] * -192 ) + "px" );
		// if ( $.browser.msie ) {
		// 	window.$transport.logos.css( "background-position", "0 " + ( a[0] * -192 ) + "px" );
		// } else {
		// 	window.$transport.logos.animate( {"backgroundPosition":"(0 " + ( a[0] * -192 ) + "px)"}, {"duration":500} );
		// }
		playVideo ( target.attr('href'), title );
		return false;
	});

	window.$transport.button.bind('click', function( e ) {
		$(this).blur();
		if ( $(this).hasClass('button-play') ) {
			$('#romance-playlist ul li a:first').click();
		} else if ( $(this).hasClass('button-stop') ) {
			stopVideo();
		}

	});

	$.getJSON('/romance/links', function (data) {
		window.$links = data;

		if ( window.$transport.autoPlay) {
			$('#romance-playlist ul li:first a').click();
		}

	});

	$('#tell-friend').click( function () {
		$(this).blur();
		if ( $('#TellFriend').is(':visible') ) {
			$('#TellFriend').slideUp( "slow", function() { $('#TellFriend').remove(); } );
			return false;
		}
		TellFriend();
		return false;
	});


});

function playVideo ( url, title ) {

	var slug = title.toLowerCase();

	window.$transport.playerTitle.html( title );

	window.$transport.progressWrap.show();
	$('#player-screen').html('<div id="player-screen-swf"></div>');

	swfobject.embedSWF(
		"/flash/AjaxPlayer.swf", 
		"player-screen-swf", 
		"724", 
		"405", 
		"9.0.0", 
		false, 
		{ mediaURL: '/video/' + slug + '.flv' }
	);

	window.$transport.button.removeClass('button-play');
	window.$transport.button.addClass('button-stop');

	$('.player-time').show();

	var links = window.$links[slug];

	if ( undefined != links ) {
		var s = '<ul>';
		for ( var i in links ) {
			s += '<li><a href="' + links[i].link + '" target="_new" onClick="javascript:pageTracker._trackPageview (\'/outgoing/' + links[i].link.substring(7) + '\'); return true;"><span>' + links[i].title + '</span></a></li>';
		}
		s += '</ul>';
		window.$transport.logos.html(s);
	} else {
		window.$transport.logos.html('');
	}
}

function stopVideo () {

	$('#player-screen').html('');
	window.$transport.progressWrap.hide();
	window.$transport.progressWrap.hide();
	$('.player-time').hide();

	window.$transport.button.removeClass('button-stop');
	window.$transport.button.addClass('button-play');

	window.$transport.time.html( '' );
	window.$transport.duration.html( '' );

}

function MediaPlayerReceiver ( message, val )
{

	if ( message == 'mediaDuration' ) {
		window.$transport.dur = val;
		window.$transport.pct = 100 / val;

		val = parseInt(val);
		var min = Math.floor ( val / 60, 0 );
		var sec = Math.round ( val  % 60, 0 );
		if ( sec < 10 ) {
			sec = '0' + sec;
		}
		window.$transport.duration.html( min + ':' + sec );
	}

	if ( message == 'headPosition' ) {
		val = parseInt(val);
		var pct = window.$transport.pct * val;
		window.$transport.progress.css( 'width', pct + '%' );

		if ( !window.$transport.dragging ) {
			window.$transport.playhead.css( 'left', parseInt ( ( window.$transport.progressWidth / 100 )  * pct ) - 8 + 'px' );
		}

		var min = Math.floor ( val / 60, 0 );
		var sec = Math.round ( val  % 60, 0 );
		if ( sec < 10 ) {
			sec = '0' + sec;
		}

		window.$transport.time.html( min + ':' + sec );

	}

	if ( message == 'percentLoaded' ) {
		val = parseInt(val);
		if ( val < 0 ) {
			val = 0;
		}
		window.$transport.streamed.css( 'width', val + '%' );
	}

	if ( message == 'complete' ) {

		stopVideo();

		if ( window.$transport.playAll ) {			
			var nextVideo = $('#romance-playlist .playing').parent().next().find('a');
			if ( nextVideo.length > 0 ) {
				nextVideo.click();
			}
		}

	}
}

function MediaPlayerSender(msg, val) {
	if (document.getElementById("player-screen-swf")) { 
		document.getElementById("player-screen-swf").MediaPlayerControl(msg, val);
	}
}

function fbs_click() {
	u=location.href;
	t=document.title;
	window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');
	return false;
}



function TellFriend() {
	
 	var s = '';
	if ( $('#TellFriend').length == 0 ) {
		s = '<div id="TellFriend">Tell Goes Here</div>';
		$('#romance-media').after( s );
		$('#TellFriend').slideDown("slow");
	}

	s = '';
	s += '<h3><span>Send to a Friend<span></h3>';

	s += '<div id="TellFriendForm">';
	s += '<form action="post">';

	s += '<p> ';
	s += '<label for="TellFriendName">Your Name</label>';
	s += '<input type="text" id="TellFriendName" name="TellFriendName" value="" />';
	s += '<div class="clear"></div>';
	s += '</p> ';

	// 	s += '<p> ';
	// 	s += '<label for="TellFriendEmail">Your Email Address</label>';
	// 	s += '<input type="text" id="TellFriendEmail" name="TellFriendEmail" value="" />';
	// 	s += '<div class="clear"></div>';
	// 	s += '</p> ';

	s += '<p> ';
	s += '<label for="TellFriendFriend_name">Friends Name</label>';
	s += '<input type="text" id="TellFriendFriend_name" name="TellFriendFriend_name" value="" />';
	s += '<div class="clear"></div>';
	s += '</p> ';

	s += '<p> ';
	s += '<label for="TellFriendFriend_email">Friends Email Address</label>';
	s += '<input type="text" id="TellFriendFriend_email" name="TellFriendFriend_email" value="" />';
	s += '<div class="clear"></div>';
	s += '</p> ';

	s += '<p> ';
	s += '<label for="TellFriendMessage">Message</label>';
	s += '<textarea id="TellFriendMessage" name="TellFriendMessage">Hi - I thought you\'d want to check out this cool video on Reseller Romance...</textarea>';
	s += '<div class="clear"></div>';
	s += '</p> ';

	s += '<p> ';
	s += '<label></label>';
	s += '<input type="button" id="TellFriendSubmit" value="Send" />';
	s += '<div class="clear"></div>';
	s += '</p> ';

	s += '<p> ';
	s += '<label></label>';
	s += '<input type="button" id="TellFriendCancel" value="Cancel" />';
	s += '<div class="clear"></div>';
	s += '</p>';

	s += '</form>';

	s += '</div>';

    s += '<div id="TellFriendProcessing">' + "\n";
    s += '<span>Sending your message...</span>' + "\n";
    s += '</div>' + "\n";

 	$('#TellFriend').html(s);
 	$('#TellFriendSubmit').click( function() { TellFriendProcess(); });
 	$('#TellFriendCancel').click( function() { 
		$('#TellFriend').slideUp( "slow", function() { $('#TellFriend').remove(); } );
		return false;
	});

}


function TellFriendProcess() {


	if ( ! TellFriendValidate() ) {
		return false;
	}

	var request = {
		rpc: 'tell_friend',
		email: $('#TellFriendEmail').val(),
		name: $('#TellFriendName').val(),
		friend_email: $('#TellFriendFriend_email').val(),
		friend_name: $('#TellFriendFriend_name').val(),
		message: $('#TellFriendMessage').val(),
		node_id: $('#TellFriendNode_id').val()
	};

    $('#TellFriendForm').fadeOut( function() {
		$('#TellFriendProcessing').fadeIn( function () {
			$.post( '/romance', request, function ( response ) {
				$('#TellFriendProcessing').fadeOut( function () {
					$('#TellFriend').slideUp( "slow", function() { $('#TellFriend').remove(); } );
				});
			});
		});
		return false;
	} );

}


function TellFriendValidate () {

    var valid = true;

    if ( ! $('#TellFriendFriend_name').val() ) {
        $('#TellFriendFriend_name').addClass( 'invalid' );
        $('#TellFriendFriend_name').focus();
        valid = false;
    } else {
        $('#TellFriendFriend_name').removeClass( 'invalid' );
    }

    if ( ! $('#TellFriendFriend_email').val() || ! validateEmail ( $('#TellFriendFriend_email').val() ) ) {
        $('#TellFriendFriend_email').addClass( 'invalid' );
        $('#TellFriendFriend_email').focus();
        valid = false;
    } else {
        $('#TellFriendFriend_email').removeClass( 'invalid' );
    }

	//     if ( ! $('#TellFriendEmail').val() || ! validateEmail ( $('#TellFriendEmail').val() ) ) {
	//         $('#TellFriendEmail').addClass( 'invalid' );
	//         $('#TellFriendEmail').focus();
	//         valid = false;
	//     } else {
	//         $('#TellFriendEmail').removeClass( 'invalid' );
	//     }

	if ( ! $('#TellFriendName').val() ) {
        $('#TellFriendName').addClass( 'invalid' );
        $('#TellFriendName').focus();
        valid = false;
    } else {
        $('#TellFriendName').removeClass( 'invalid' );
    }

    return valid;

}


function validateEmail(str) {

    var at="@";
    var dot=".";
    var lat=str.indexOf(at);
    var lstr=str.length;
    var ldot=str.indexOf(dot);
    if (str.indexOf(at)==-1) {
        return false;
    }

    if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr) {
        return false;
    }

    if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr) {
        return false;
    }

    if (str.indexOf(at,(lat+1))!=-1) {
        return false;
    }

    if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot) {
        return false;
    }

    if (str.indexOf(dot,(lat+2))==-1) {
        return false;
    }

    if (str.indexOf(" ") != -1) {
        return false;
    }

    return true;
}







/**
 * @author Alexander Farkas
 * v. 1.02
 */
(function($) {
	$.extend($.fx.step,{
	    backgroundPosition: function(fx) {
            if (fx.state === 0 && typeof fx.end == 'string') {
                var start = $.curCSS(fx.elem,'backgroundPosition');
                start = toArray(start);
                fx.start = [start[0],start[2]];
                var end = toArray(fx.end);
                fx.end = [end[0],end[2]];
                fx.unit = [end[1],end[3]];
			}
            var nowPosX = [];
            nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit[0];
            nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit[1];
            fx.elem.style.backgroundPosition = nowPosX[0]+' '+nowPosX[1];

			function toArray(strg){
				strg = strg.replace(/left|top/g,'0px');
				strg = strg.replace(/right|bottom/g,'100%');
				strg = strg.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");
				var res = strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);
				return [parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]];
			}
        }
	});
})(jQuery);
