//globals-------------------------------------------------------
var curTab = 'tab1'
var vsOn   = false;
var hsOn   = false;
var ww = 0;
var hh = 0;
var curClip   = null;
var curFormat = 'video';

//load series description---------------------------------------
function loadSeriesDescription(sid){
  var offset = $('#pagingCtr').offset();
  overlay = $("<div id=\"fullDescriptionPane\"><p class=\"pleaseWait\">Please Wait. Loading...</p></div>");
  overlay.css({'left':parseInt(offset.left), 'top':offset.top, 'opacity':0.75});
  $('body:first').append(overlay);
  $.get('index.php?action=loadseriesdescription&sid=' + sid, 
    function(data, status){
      $('#fullDescriptionPane').html(data).animate({'opacity':1.0}, 750);
    }
  );                                  
}

function closeFullDescriptionPane(){
  $('#fullDescriptionPane').animate({'opacity':0}, 500,
    function(){
      $('#fullDescriptionPane').remove();
    }
  );
}   

//renderFlowPlayer--------------------------------------------------------------
function renderPlayer(){
	flowplayer("playerBox", 
		{
			src: "http://static.thestreamingfactory.com.edgesuite.net/assets/fp_3_2_7/flowplayer.commercial-3.2.7.swf",
			wmode: 'transparent',
			bgcolor: '#000000',
			width: '400', 
			height: '300'
		},
		{
			key: '#@e1008fa8f8606843584',
			plugins:{
				rtmp:{
					url: 'http://static.thestreamingfactory.com.edgesuite.net/assets/fp_3_2_7/flowplayer.rtmp-3.2.3.swf',
					netConnectionUrl: 'rtmp://cp132510.live.edgefcs.net/ondemand/'
				},
				audio:{ 
					url: 'http://static.thestreamingfactory.com.edgesuite.net/assets/fp_3_2_7/flowplayer.audio-3.2.2.swf' 
				}, 				
				controls: {
					autoHide: 'always',
					bottom: '8',
					padding: '1%',
					width: '98%'
				}
			},
			canvas: { 
				backgroundColor:'#000000',
				backgroundGradient: 'none' 
			}			
		}
	);
}

function renderLive(){
	flowplayer("playerBox",		
		{
			src: "http://static.thestreamingfactory.com.edgesuite.net/assets/fp_3_2_7/flowplayer.commercial-3.2.7.swf",
			wmode: 'transparent',
			bgcolor: '#000000',
			width: '400', 
			height: '300'
		},
		{
			key: '#@e1008fa8f8606843584',
			logo: null,
			plugins:{
				rtmp:{
					url: 'http://static.thestreamingfactory.com.edgesuite.net/assets/fp_3_2_7/flowplayer.rtmp-3.2.3.swf',
					netConnectionUrl: 'rtmp://cp132510.live.edgefcs.net/live'							
				},
				
				controls: {
					autoHide: 'always',
					bottom: '8',
					padding: '1%',
					width: '98%'
				}
			},
			
			clip:{
				provider: 'rtmp',
			    autoplay: true,
			    live: true,
			    url: 'cfci_live@60855'
			},
			
			canvas: { 
				backgroundColor:'#000000',
				backgroundGradient: 'none' 
			}			
		}
	);
}

//play stream---------------------------------------------------
function playStream(uid, live){
    $('#playerBox').html('');	
    if ( live ){
    	$('#mediaSelect').css('display', 'none');
    	$('#playerBox').css('display', 'none');
		$('#playerBox').fadeIn(250,
			function(){
				renderLive();
			}
		);
    }else{
    	renderPlayer();
		$.getJSON('index.php?action=streaminfo&uid='+uid,
			function(res){
				curClip = res;
				if ( $('#playerBox').css('display') == 'block' ){
					$('#playerBox').fadeOut(500,
						function(){
							$('#mediaSelect').fadeIn(500);
						}
					);								
				}else{
					if ( $('#mediaSelect').css('display') == 'none' ){
						$('#mediaSelect').fadeIn(500); 
					}
				}
			}
		);
    }                                    		
}

//startCDS----------------------------------------------------------------------
function startClip(){
	if ( curFormat == 'audio' ){
		//alert(curClip.audio.url);		
		$f("playerBox").play(curClip.audio);
	}else if ( curFormat == 'video' ){
		//alert(curClip.video.url);
		$f("playerBox").play(curClip.video);
	}else{
		alert('Invalid stream descriptor');
	}
}

//load series by id---------------------------------------------
function loadSeries(ref){
    $('#seriesContent').animate({"width": "toggle", "opacity": "toggle"}, 750,
        function(){
        	var sid = ref.substr(ref.lastIndexOf('=')+1);
        	loadSeriesDescription(sid);
        	
            $('#seriesContent').empty();
            $.get(ref, function(data, status){
         
                if ( data == 0 ){
                    $('#seriesContent').html('<div class=\"loaderMsg\" style=\"width:100%; height:100%;\">Nothing to display</div>');
                    $('#seriesContent').animate({"width": "toggle", "opacity": "toggle"}, 750);                                    
                }else{
                    var div = $('<div style=\"float:left; width:392px; height:60px; overflow:hidden;\"></div>');
                    div.html(data);
                    $('#seriesContent').append(div);
                    var ul = $('ul.hc_menu');                                                                
                
                    $('#seriesContent').animate({"width": "toggle", "opacity": "toggle"}, 750,
                        function(){                                            
                            //Get menu width
                            var divWidth = div.width();
                            var Li = ul.find('li');
                            var ulWidth = Li.length*84;
                           
                                
                            //When user move mouse over menu
                            div.mousemove(function(e){
                                left = (e.pageX - parseInt(div.offset().left)) * (ulWidth-divWidth) / divWidth;
                                div.scrollLeft(left);
                            });                                                                    
                        }                                
                    );
                }                                    
            });                                    
        }
    );                        
}

//scroll to page------------------------------------------------
function toPage(page, d){
	d = d?d:750;
    $("#tabContent").animate({scrollTop: page*510}, d);
}

//init paging---------------------------------------------------
function initPaging(){
    pages = Math.ceil($(".refSeries").length/5);
    if ( pages > 1 ){
    	$('.pagingCtr').append("<span>Page </span>");
        for ( j=0; j<pages; ++j ){                       
        	var p = $("<a class=\"toPage\" id=\"" + j + "\" href=\"#\">" + (j+1) + "</a>");
        	if ( j==0 ) p.addClass('activePage');
        	p.click(
        		function(e){
        			e.preventDefault();
        			
        			$('.activePage').removeClass('activePage');
        			$(this).addClass('activePage');
        			toPage(this.id);
        		}
        	)        	
            $('.pagingCtr').append(p);
        }                                                
    }
}
                                        
//Load items by speaker id--------------------------------------
function loadBySpeaker(ref){
    $('.pagingCtr').html('');
    $('#tabContent').animate({"opacity": "toggle"}, 750,
        function(){
            $('#tabContent').html("");
            $.get(ref, function(data, status){
                $('#tabContent').html(data)
                activateRefSeries();                                
                $('#tabContent').animate({"opacity": "toggle", "scrollTop":0}, 750,
                    function(){
                        initPaging();
                    }
                );
            }); 
        }                                        
    );
}

//load live descriptor------------------------------------------
function loadLiveDescriptor(ref){
    $('.pagingCtr').empty();
    $('.seriesIndicator').empty();
    $('#seriesContent').animate({"width": "toggle", "opacity": "toggle"}, 700,
        function(){
            $('#seriesContent').empty();
        }
    );
    
    $('#tabContent').animate({"opacity": "toggle"}, 800,
        function(){
        	renderLivePlayer();
        }                        
    );                               
}

//countDownComplete-------------------------------------------------------------
function renderLivePlayer(){
	$('#tabContent').empty();

    $.getJSON('index.php?action=livesettings', 
    	function(data, status){      
                    if ( data.res  && data.errStat==0 ){
                        $('.seriesIndicator').html("<img src=\"" + data.res["background_image"] + "\" />");
                        $('#seriesContent').html("<div class=\"liveMsg\" style=\"width:100%; height:100%;\"><b>" + data.res["title"] + "</b><br />&nbsp;<br />" + data.res["description"] + "</div>");                                        
                        $('#tabContent').html("<ul class=\"sc_menu\"><li><a href=\"#\" class=\"refSeries\"><img src=\"" + data.res["background_image"] + "\" title=\""  + data.res["title"] + "\"/><span><b>" + data.res["title"] + "</b><br />&nbsp;<br />" + data.res["description"] + "</span></a></li></ul><p class=\"troubleShooting\">Please <a href=\"javascript:createTroubleTicket()\">click here</a> to report any problems you may experience while viewing this live stream.</p>");
                        $('#tabContent').animate({"opacity": "toggle"}, 750, 
                          function(){
                            playStream(data.res.uid, true);
                          }
                        );
                        $('#seriesContent').animate({"width": "toggle", "opacity": "toggle"}, 750);                                                                                                                                                                                                           
                    }else{
                    	window.setTimeout("loadLiveDescriptor()", 1000*(data.res.timeout+1));
                        $('#tabContent').html("<h2 style=\"margin-bottom:20px;\">Next Live Stream<br />in<br /></h2>" +		
                                              "<object width=\"322\" height=\"60\" id=\"countDown\" align=\"middle\" wmode=\"transparent\">" + 
        			                          "<param name=\"movie\" value=\"swfs/countdownFlip_gmt.swf\" />" +
        			                          "<param name=\"wmode\" value=\"transparent\" />" + 
        			                          "<param name=\"bgcolor\" value=\"#000000\" />" +	                       			
        			                          "<embed src=\"swfs/countdownFlip_gmt.swf\" bgcolor=\"#000000\"  width=\"322\" height=\"60\" name=\"countDown\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.adobe.com/go/getflashplayer\" wmode=\"transparent\" />" +
                                              "</object>" +
                                              "<span>&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br /><b>Live Streaming Schedule</b><br />&nbsp;<br />Saturdays 6:00pm CST<br />Sundays 9:00am &amp; 11:00am CST</span>");
                        $('#tabContent').animate({"opacity": "toggle"}, 750);
                        $('#seriesContent').html('<div class=\"loaderMsg\" style=\"width:100%; height:100%;\"><b>currently off air</div>');
                        $('#seriesContent').animate({"width": "toggle", "opacity": "toggle"}, 750); 
                    }                
        }
    );
}            
	

//create trouble ticket----------------------------------------------------------
function createTroubleTicket(){
    mod = $("<div id=\"modalScreen\"></div>");
    mod.css('opacity', 0.8);
    $('body').append(mod);

    dlg = $("#trouble_ticket");
    dlg.css("left", Math.round((screen.width-400)*0.5) + 'px');
    dlg.css("top", Math.round((screen.height-500)*0.5) + 'px');
    $('body').append(dlg);
    dlg.show(500);    
}

//submit report-----------------------------------------------------------------
function sendTroubleTicket(){
  params = "action=reporttrouble&name=" + $('#reportName')[0].value + "&email=" + $('#reportEmail')[0].value + "&description=" + $('#reportDescription')[0].value;
  $.getJSON('index.php?' + params, 
            function(data, status){
              if ( data.response == "OK" ){
                cancelReportDialog();
              }else{
                alert(data.response);
              }
            }
  );                               
}

//cancel report dialog----------------------------------------------------------
function cancelReportDialog(noaction){
  $('#trouble_ticket').hide(500, function(){
                                $('#modalScreen').remove();
                             }
  );
}

//send registration request-----------------------------------------------------
function sendRegistrationRequest(){
  params = "action=register&name=" + $('#registerName')[0].value + "&email=" + $('#registerEmail')[0].value + "&password=" + $('#registerPassword')[0].value;
  $.getJSON('index.php?' + params, 
            function(data, status){
              if ( data.response == "OK" ){
                repeatVisitor = 1; 
                cancelRegistrationDialog();
              }else{
                alert(data.response);
              }
            }
  );                               
}

//send login request------------------------------------------------------------
function sendLoginRequest(){
  params = "action=verifyregistration&email=" + $('#loginEmail')[0].value + "&password=" + $('#loginPassword')[0].value;
  $.getJSON('index.php?' + params, 
            function(data, status){
              if ( data.response == "OK" ){
                repeatVisitor = 1; 
                cancelLoginDialog();
              }else{
                alert(data.response);
              }
            }
  );                               
}

//cancel login dialog-----------------------------------------------------------
function cancelLoginDialog(noaction){
  $('#login_form').hide(500, function(){
                                $('#modalScreen').remove();
                                if ( !noaction && selectedSeries) selectedSeries.click();
                             }
  );
}

//cancel registration dialog----------------------------------------------------
function cancelRegistrationDialog(noaction){
  $('#register_form').hide(500, function(){
                                $('#modalScreen').remove();
                                if ( !noaction && selectedSeries) selectedSeries.click();                                
                             }
  );
}

//toggle forms------------------------------------------------------------------
function toggleForms(){
  if ( $("#register_form").css('display') == 'block' ){
    $("#register_form").hide(500, function(){showLoginForm();});
  }else{
    $("#login_form").hide(500, function(){showRegistrationForm();});  
  }
}

//switch to registration screen-------------------------------------------------
function showRegistrationForm(){
    dlg = $("#register_form");
    dlg.css("left", Math.round((ww-500)*0.5) + 'px');
    dlg.css("top", Math.round((hh-400)*0.5) + 'px');
    $('body').append(dlg);
    dlg.show(500);    
}

//switch to login screen--------------------------------------------------------
function showLoginForm(){                  
    dlg = $("#login_form");
    dlg.css("left", Math.round((ww-500)*0.5) + 'px');
    dlg.css("top", Math.round((hh-300)*0.5) + 'px');
    $('body').append(dlg);
    dlg.show(500,function(){$('#loginEmail').focus()});    
}

var selectedSeries = null;

//activate series reference-----------------------------------------------------    
function activateRefSeries(){
    $(".refSeries").each(function(){
        $(this).click(
            function(evt){
                if (evt) evt.preventDefault();
                if ( loginStatus() ){
                  selectedSeries = null;
                  icn = $(this).find('img');
                  if ( icn.length ){
                      $('.seriesIndicator').html("<img src=\"" + icn[0].src + "\" />");                                
                  }else{
                      $('.seriesIndicator').empty();
                  }
                  loadSeries(this.href);
                }else{
                  selectedSeries = $(this);
                  mod = $("<div id=\"modalScreen\"></div>");
                  mod.css('opacity', 0.8);
                  $('body').append(mod);
                  showLoginForm();
                }                                                  
            }                        
        );
    });
}

//check login status------------------------------------------------------------
function loginStatus(){	
  return (repeatVisitor);
}


//podCastDialog-----------------------------------------------------------------
function podCastDialog(){
    obj = $('#btn_2');
    var offset = obj.offset();
    var div = $("<div class=\"podCastDialog\"><b>Please subscribe to:</b><br /></div>");
    $("<a href=\"itpc://cfci.tv/index.php?action=podcast&speakerid=1\">Ps Theo's album</a><br /><a href=\"itpc://cfci.tv/index.php?action=podcast&speakerid=2\">Ps Beverley's album</a><br />").appendTo(div);
    $("<a href=\"#\">done</a>").click(
        function(evt){
            evt.preventDefault();
            div.animate({'opacity':0.2},750, function(){div.remove();});                            
        }                    
    ).appendTo(div);
    div.css({'top':offset.top, 'left':offset.left, 'width':obj.width(), 'height':obj.height(), 'opacity':0.2});
    div.appendTo($('body')).animate({'opacity':1.0},750);                        
}
        
//On startUp--------------------------------------------------------------------
$(document).ready(function(){
	ww = window.innerWidth?window.innerWidth:document.documentElement.clientWidth;
    hh = window.innerHeight?window.innerHeight:document.documentElement.clientHeight;
    	
	$('.selectAction').hover(
		function(){
			$(this).addClass('isOver');
		},
		function(){
			$(this).removeClass('isOver');
		}
	);
	
	
	$('.selectAction').bind('click',
		function(){
			if ( $(this).hasClass('audio') ){
				curFormat = 'audio';
			}else{
				curFormat = 'video';
			}
			$('#mediaSelect').fadeOut(500,
				function(){
					$('#playerBox').fadeIn(500,
						function(){
							startClip();
						}
					);
				}
			);
		}
	);
		
    $('#tab1').click(function(evt){
        closeFullDescriptionPane();
        evt.preventDefault();
        $('#' + curTab).removeClass(curTab+ '_on').addClass(curTab);
        curTab = this.id;
        $('#' + curTab).removeClass(curTab).addClass(curTab+ '_on');
        loadBySpeaker(this.href);
    });                                    

    $('#tab2').click(function(evt){
    	closeFullDescriptionPane();
        evt.preventDefault();
        $('#' + curTab).removeClass(curTab+ '_on').addClass(curTab);
        curTab = this.id;
        $('#' + curTab).removeClass(curTab).addClass(curTab+ '_on');
        loadBySpeaker(this.href);
    });      
    
    $('#tab3').click(function(evt){
    	closeFullDescriptionPane();
        if ( curTab == this.id ){
        evt.preventDefault();
        }else{
          evt.preventDefault();
          $('#' + curTab).removeClass(curTab+ '_on').addClass(curTab);
          curTab = this.id;
          $('#' + curTab).removeClass(curTab).addClass(curTab+ '_on');        
          loadLiveDescriptor(this.href);
        }
    });      

    $(".tabCtr").each(function(){
        $(this).hover(
            function(){
                if ( this.id != curTab ){
                    $(this).removeClass(this.id);
                    $(this).addClass(this.id + '_on');
                }                                    
            },
            
            function(){
                if ( this.id != curTab ){
                    $(this).removeClass(this.id + '_on');
                    $(this).addClass(this.id);
                }    
            }
        );                    
    });
    
    $('#loginEmail').keypress(
		function(event) {
			if (event.keyCode == '13') {
				event.preventDefault();
				$('#loginPassword').focus();
			}
		}
	);
	
    $('#loginPassword').keypress(
		function(event) {
			if (event.keyCode == '13') {
				event.preventDefault();
				submitLogin();
			}
		}
	);
	

    
    if ( onTheAir ){
      $('#' + curTab).removeClass(curTab+ '_on').addClass(curTab);
      curTab = 'tab3';
      $('#' + curTab).removeClass(curTab).addClass(curTab+ '_on');        
      loadLiveDescriptor("index.php?action=loadlivedescriptor");
    }else{
    	curTab = 'tab1';
        $('#' + curTab).removeClass(curTab).addClass(curTab+ '_on');
        loadBySpeaker($('#' + curTab).attr('href'));		
    }                                         
});
//------------------------------------------------------------------------------        

