/**
 * @author Siebe
 */
var bcExp;


// Brightcove modules
var modVP;
var modExp;
var modCon;
var modMenu;
var modSocial;
// Holder for all videos
var videoCollection = [];
// Maximum videos per page
var videosPerPage = 15;
// Result array being filled by keyword
var resultArray;
// Document title
var title = document.title;
// Searchterm being search for
var searchTerm = "";
// Current videoname
var actieveNaam = "";
// Current page
var actievePagina = 1;
// Current video ID
var actieveVideoID;
var pathExpressInstallFile = escape("/lib/flash/expressInstall.swf");
var bitlyApiKey = 'R_6c6e65d5f4aac97c531bb93e46461ee1';
var previousSearch = "";
var searchSubmitted = false;


function initSearchbar() {
   $("#searchBar input.searchInputField").attr("value", "Zoekterm..");
   $("#searchBar input.searchInputField").one("click", clearSearchBar);
   $("#searchBar input.searchInputField").keyup(onSearchKeyup);

   $("form").submit(function() {
        if($("#searchBar input.searchInputField").val() !== 'Zoekterm..') {
            //searchVideosByTag($("#searchBar input.searchInputField").val(),true)
            searchSubmitted = true;
            $.address.value("zoeken/"+$("#searchBar input.searchInputField").val());
        }
		return false;
   });
}

function initBitlyApi() {
    BitlyCB.myShortenCallback = function(data) {
                // this is how to get a result of shortening a single url
                var result;
                for (var r in data.results) {
                    result = data.results[r];
                    result.longUrl = r;

                    break;
                }
                updateSocialmediaLinks(result.shortUrl);
            }
}

function updateSocialmediaLinks(bitlyUrl) {
    var currentVideo = modVP.getCurrentVideo();
    var videoURL = "http://www.zuidlimburg.nl/video/portretten/"+currentVideo.id+"/"+$.URLEncode(currentVideo.displayName);

    $("#twitter").attr("href","http://twitter.com/home?status="+currentVideo.displayName + " " + currentVideo.shortDescription +" " + bitlyUrl);
    $("#facebook").attr("href","http://www.facebook.com/sharer.php?u="+videoURL+"&t="+ currentVideo.displayName + " " + currentVideo.shortDescription);
    $("#linkedin").attr("href","http://www.linkedin.com/shareArticle?mini=true&url="+videoURL+"&title="+currentVideo.displayName+"&summary="+currentVideo.shortDescription+"&source=http://www.zuidlimburg.nl/video/portretten/");
}

function initFlash() {

    if($('#playerContainer').length>0) {

        $('#playerContainer').flashembed( {
            src: '',
			version: [9,0],
			id: 'myExperience',
			bgcolor: '#FFFFFF',
			videoID: actieveVideoID,
			playerID: '57936486001',
			publisherID: '1705722138',
			isVid: true,
			isUI: true,
            videoSmoothing: true,
			onFail: function(){

                var warningCode = "<div class='warning warning_javascript'>";
                warningCode += "<p>U beschikt niet over de laatste <span>Adobe Flash player</span> om de site goed te kunnen bekijken.</p><p class='small'>Download de player <em>gratis</em> op de site van Adobe.</p><a href='http://www.adobe.com/products/flashplayer/' rel='external' title='Adobe Flash Player'><img src='lib/images/btn_get_flash.png' alt='Get Flashplayer' /></a>";
                warningCode += "</div>";

                $('#playerContainer').html(warningCode);
            }
        });
        $('#myExperience').addClass('BrightcoveExperience');
		if($.browser.msie){
}else{ $('#myExperience').prepend('<param name="width" value="600" /><param name="height" value="337" />'); }
        //document.write("<script src='BrightcoveExperiences.js'><\/script>");
    } else if($('#flashcontent').length>0) {
        $('#flashcontent').css({'width': '862px', 'height': '291px'});
        $('#flashcontent').flashembed(
                {
            src: 'http://www.zuidlimburg.nl/flash/t36/header.swf', version: [9,0], width: '862px', height: '291px', id: 'flashHeader', bgcolor: '#FFFFFF', onFail: function(){
                // Hide slideshow container if Flash failed
				$('#flashcontent').hide();
            }
        });
    }


}

function openVideo(naam) {

/*
	var i = videoCollection.length;
	var video = 0;

    // Vervang ' door de juiste entitie
	naam = naam.replace(/\'/g,'%27');
    naam = naam.replace(/\-/g,'%2D');


	while(i--) {

			if ($.URLEncode(videoCollection[i].name) == naam) {
				video = videoCollection[i].id;
			}
	}

	actieveVideoID = video;

    modCon.getMediaAsynch(video);

    $(this).scrollTo($("#site"));
*/


	return false;
}

function onEmbedCodeRetrieved(e) {
		//alert('Embedcode ontvangen' + e.snippet);
}

function convertMsToMinutes(value) {
	var length = Math.floor((value/1000)/60);
	var lengthsec = ""+Math.round((value-(length*1000*60))/1000);

	if(lengthsec.length < 2) {lengthsec = "0"+lengthsec; }
	return length + ":" + lengthsec;
}

function sefURL(url) {

	var output = url.stripSpaces();
	//var output = url;
	return output;
}

function onVideoClick(event) {
	var t = $.URLEncode(this.title);

	if(actievePagina < 2) {
        $.address.value('portret/'+t);
    } else {
        $.address.value('portret/'+t+'/pagina/'+actievePagina);
    }

	return false;
}

function onPaginationClick(event) {
	// Set Jquery address

	$.address.value('pagina/'+(event.target.title));
	return false;
}

function createVideoEntry(video) {
    return '<li><a href="http://www.zuidlimburg.nl/video/portretten/'+video.id+'/'+$.URLEncode(video.name)+'" class="portrait" title="'+video.name+'"><img src="'+video.thumbnailURL+'" /><span class="vidduration">'+convertMsToMinutes(video.length)+'</span><span class="vidname">'+createBrokenVideoName(video.name)+'</span><span class="viddesc">'+video.shortDescription+'</span><span class="playbutton"></span></a></li>';
}

function openPagina(p) {

	actievePagina = p;

	var pagina = p-1;
	var video;
	var leftOver = videosPerPage;

	// Tijdelijk verbergen voor animatie effect
	//$("#all_videos").hide();
	$("#pagination a.page").css({'background-color': '#fff', 'border': 'none'});
	$("#pagination a.page:eq("+pagina+")").css({'background-color': '#cad9ea', 'border': '1px solid #aaa'});

    if(pagina > 0) {
       $("#pagination a.vorige").show();
    } else { $("#pagination a.vorige").hide(); }
    if(pagina < (Math.ceil(videoCollection.length/videosPerPage)-1)) {
       $("#pagination a.volgende").show();
    } else { $("#pagination a.volgende").hide(); }

    // pagina = 1;

	if(videoCollection.length-(pagina*videosPerPage) < videosPerPage) {

		leftOver = videoCollection.length-(pagina*videosPerPage);
	}

	for(var i = pagina*videosPerPage; i < (pagina*videosPerPage)+leftOver; i++) {
        video += createVideoEntry(videoCollection[i]);
	}

	// Strip out undefined (Brigtcove bugfix)
	video = video.replace(/undefined/i,"");
	leftOver = videosPerPage;
	$("#all_videos").html(video);

    $(this).scrollTo($("#pagination"));

	$("#pagination a.vorige").attr('href','http://www.zuidlimburg.nl/video/portretten/pagina/'+pagina);
	pagina += 2;
	$("#pagination a.volgende").attr('href','http://www.zuidlimburg.nl/video/portretten/pagina/'+pagina);
	fixIEStackBug();
	return false;
}

function createBrokenVideoName(vidName) {
    spacePosition = vidName.indexOf(" ");
    newName =vidName.substring(0,spacePosition);
    newName += "<br />";
    newName += vidName.substring(spacePosition+1);
    return newName;
}

function onTagClick(event) {
	$.address.value('zoeken/'+event.target.title);

	return false;
}

function initJqueryAddress() {

		var previous = "";

		$.address.init(function(event) {

				// Nu kijken wat de url is en dan acties ondernemen op de pagina

				/*log('init: ' + serialize({
                    value: $.address.value(),
                    path: $.address.path(),
                    pathNames: $.address.pathNames(),
                    parameterNames: $.address.parameterNames(),
                    queryString: $.address.queryString()
                }));*/
            }).change(function(event) {


				switch(event.pathNames[0]) {
					case 'zoeken':
						searchTerm = event.pathNames[1];


                        $("#zoekresultaten").show();
						$("#all_videos").hide();
                        $("#overige_videos #all_videos").show();

						if(videoCollection.length > 0) {
                            if($("#searchBar input.searchInputField").val() !== searchTerm || searchSubmitted == true) {
                                searchVideosByTag(searchTerm,true);
                            } else {
							    searchVideosByTag(searchTerm);
                            }
						} else {
							$("#zoekresultaten").show();
							$("#all_videos").hide();

							$("#searchResults").html("Bezig met laden van videos..");
						}

						$("#searchBar input").val(searchTerm);
                        $.address.title(title + " | Zoeken op " + searchTerm);

					break;
					case 'pagina':
						actievePagina = event.pathNames[1];

						if (videoCollection.length > 0) {
							openPagina(actievePagina);
						}
						else {

						}
                        resetSearchResults();

                        $.address.title(title + " | Pagina " + actievePagina);


					break;
					case 'portret':
						actieveNaam = $.URLDecode(event.pathNames[1]);
                        //title = actieveNaam;
						$("#all_videos").show();
						if (videoCollection.length > 0) {
							openVideo($.URLDecode(event.pathNames[1]));
						}
						else {

						}

                        $.address.title("Zuid-Limburgse levens | " + actieveNaam.replace(/\_/g,' '));
                        if(actievePagina > 1) {
                            $.address.title("Zuid-Limburgse levens | " + actieveNaam.replace(/\_/g,' ') + " | Pagina " + actievePagina);

                        }
                        if(event.pathNames[2] == "pagina") {
                            actievePagina = event.pathNames[3];
                            if (videoCollection.length > 0) {

                                openPagina(pagina);
                            } else {

                            }
                        }

						resetSearchResults();

					break;
					default:
                        title = "Zuid-Limburgse levens";
                        if(previous == "zoeken") {
						    $("#gerelateerd").hide("");
						    $("#all_videos").show();
                            $("#overige_videos").show();
                            $("#zoekresultaten").hide();
                            $("#videosHolder #searchResults").hide();
						    resetSearchResults();
                        }
					break;
				}
				previous = event.pathNames[0];

				var pathje = serialize(event, /parameters|parametersNames|path|pathNames|queryString|value/);

				//alert('change: ' + serialize(event, /parameters|parametersNames|path|pathNames|queryString|value/));
                var names = $.map(event.pathNames, function(n) {
                    return n.substr(0, 1).toUpperCase() + n.substr(1);
                }).concat(event.parameters.id ? event.parameters.id.split('.') : []);

                //$.address.title(title);
                //$.address.title([title].concat(names).join(' - '));
				fixIEStackBug();

            });
			return false;
}

// Serialization utility
function serialize(obj, re) {
    var result = [];
    $.each(obj, function(i, val) {
        if ((re && re.test(i)) || !re) {
            result.push(i + ': ' + (typeof val == 'object' ? val.join ? '\'' + val.join(', ') + '\'' : serialize(val) : '\'' + val + '\''));
        }
    });
    return '{' + result.join(', ') + '}';
}

function onTagCloudClick(e) {
	return false;
}

function showPortraitTooltip(e) {


	$(this).children('.vidname').eq(0).css({'background-image': 'url(lib/images/play_button_over.png)'});

	$(this).children('.viddesc').eq(0).show();
	

	$(this).mouseleave(function(){
		$(this).children('.viddesc').eq(0).hide();
		$(this).children('.vidname').eq(0).css({'background-image': 'url(lib/images/play_button.png)'});
		});
	return false;
}

function initiate(){
    kudos.token = "UbGcgczp5nfajUSY3IauBFejMf9fF9jaxVbsGRoWU1I.";
    kudos.cb = "handle";
    kudos.get("find_playlist_by_id", 50863869001);
}

function onMediaChange(evt){
	setCurrentVideoLabel();
}

function handleVid(reponse) {
	alert('handlevid');
	 
	
}

function setCurrentVideoLabel() {
	var currentVideo = modVP.getCurrentVideo();
    var videoURL = "http://www.zuidlimburg.nl/video/portretten/"+currentVideo.id+"/"+$.URLEncode(currentVideo.displayName);

	modSocial.setLink(videoURL);
	
	BitlyClient.shorten(videoURL, 'BitlyCB.myShortenCallback');
    $(".download").attr("href",currentVideo.FLVFullLengthURL);
    $("#currentVideo h2").html(createBrokenVideoName(currentVideo.displayName));
    $("#currentVideo p").html(currentVideo.shortDescription);
	
	// Get total views
	// Moet via aparte api request om VideoDTO geen playTotal terug geeft
	
	var call = "http://api.brightcove.com/services/library?token=THJ1AnPaHZb0IwSakgXRXzGl3q7QkSXES3fXwsHPpH0.&command=find_video_by_id&video_id="+currentVideo.id+"&video_fields=playsTotal";
		$.ajax({
	    type: "GET",
		dataType: "html",
	    url: "http://www.zuidlimburg.nl/inc/t36/getVideoTotalPlays.php",
	    data: "video="+modVP.getCurrentVideo().id,
	    success: function(d,s) {			
           if(d !== "") {
		    $("#currentVideo #views").html(d + "x bekeken");
           } 
	    },
	    error: function() {			
			$("#currentVideo #views").html("Onbekend aantal keer bekeken");
	    },
		beforeSend: function() {

		}
	});
	//$("#currentVideo #views").html(currentVideo.playsTotal + "x bekeken");
	
    $("input#vidURL").attr("value","http://www.zuidlimburg.nl/videos/portretten/"+currentVideo.id+"/"+$.URLEncode(currentVideo.displayName));
    var embedCode = '<object id="flashObj" width="600" height="337" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0"><param name="movie" value="http://c.brightcove.com/services/viewer/federated_f9/57825838001?isVid=1&isUI=1&publisherID=1705722138" /><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="videoId='+currentVideo.id+'&playerID=57825838001&domain=embed&" /><param name="base" value="http://admin.brightcove.com" /><param name="seamlesstabbing" value="false" /><param name="allowFullScreen" value="true" /><param name="swLiveConnect" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://c.brightcove.com/services/viewer/federated_f9/57825838001?isVid=1&isUI=1&publisherID=1705722138" bgcolor="#FFFFFF" flashVars="videoId='+currentVideo.id+'&playerID=57825838001&&domain=embed&" base="http://admin.brightcove.com" name="flashObj" width="480" height="270" seamlesstabbing="false" type="application/x-shockwave-flash" allowFullScreen="true" allowScriptAccess="always" swLiveConnect="true" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed></object>';
    //var embedCode = '<object id="flashObj" width="600" height="337" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0"><param name="movie" value="http://c.brightcove.com/services/viewer/federated_f9/46395732001?isVid=1&publisherID=1705722138" /><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="videoId='+currentVideo.id+'&playerID=46395732001&domain=embed&" /><param name="base" value="http://admin.brightcove.com" /><param name="seamlesstabbing" value="false" /><param name="allowFullScreen" value="true" /><param name="swLiveConnect" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://c.brightcove.com/services/viewer/federated_f9/46395732001?isVid=1&publisherID=1705722138" bgcolor="#FFFFFF" flashVars="videoId='+currentVideo.id+'&playerID=46395732001&domain=embed&" base="http://admin.brightcove.com" name="flashObj" width="600" height="337" seamlesstabbing="false" type="application/x-shockwave-flash" allowFullScreen="true" swLiveConnect="true" allowScriptAccess="always" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed></object>';
    $("input#vidEmbed").attr("value",embedCode);

    var currBreadcrumb = $("#breadcrumbtrail").html();
    currBreadcrumb = currBreadcrumb.slice(0,currBreadcrumb.lastIndexOf("&gt;"));
    currBreadcrumb+= "&gt; <a href='"+videoURL+"' title='"+currentVideo.displayName+"'>"+currentVideo.displayName+"</a>";

    $("#breadcrumbtrail").html(currBreadcrumb);

	return false;
}

function onTemplateReady(evt){
    //alert("EVENT: TEMPLATE_READY");

}

function onContentLoad(evt){
	//alert('on content load');
}

function onVideoLoad(evt){
    //alert("EVENT: VIDEO_LOAD");

    // Play video that was just loaded
    modVP.loadVideo(actieveVideoID);

	getRelatedVideos(actieveVideoID);
	modSocial.getEmbedCode(actieveVideoID);
}

function getRelatedVideos(video_id) {
	//alert("Haal de gerelateerde videos op voor: " + video_id);
	var output = "";
	$("#gerelateerd .videoGrid").html("");
	$("#gerelateerd .videoGrid").append('<span class="loader"><img src="http://www.zuidlimburg.nl/img/t36/ajax-loader.gif" /></span>');
    $("#gerelateerd").fadeIn('slow');

	$.ajax({
	    type: "GET",
		dataType: "html",
	    url: "http://www.zuidlimburg.nl/inc/t36/getRelatedVideos.php",
	    data: "video="+modVP.getCurrentVideo().id,
	    success: function(d,s) {
           if(d !== "") {
		    $("#gerelateerd .videoGrid").html(d);
           } else {
               $("#gerelateerd").hide();
           }
	    },
	    error: function() {
			$("#gerelateerd .videoGrid").html("Geen gerelateerde videos gevonden.");
	    },
		beforeSend: function() {

		}
	});


	//$("#gerelateerd .videoGrid").html(output);
}

function handle(response){
    var vidData = response.videos;
    var totalvids = vidData.length;
	videoCollection = [];

	for (var i = totalvids - 1; i >= 0; i--) {
	 videoCollection[i] = vidData[i];
    }

	if(searchTerm !== "") {
        searchVideosByTag(searchTerm);
    }
	if (actievePagina > 1) {

        openPagina(actievePagina); }
	if(actieveNaam !== "") {
        openVideo(actieveNaam); }
    }

function clearSearchBar(){
    $("#searchBar input").attr("value", "");
    $("#searchBar input").css({
        color: "black"
    });
}

function videoHasTag(video,tag) {
	var tagString = "tags: " + video.tags;
	return tagString.search(new RegExp(tag,"i"));
}

function searchVideoByCloudTag(e) {
	$("#searchBar input").val(e.title);
	searchVideosByTag(e.title);
	return false;
}

function searchVideos(query) {
	var i = videoCollection.length;
	resultArray = [];
	var re = new RegExp(query,"i");
	var video;

	while(i--) {

		if(videoCollection[i].name.search(re)> -1 || videoCollection[i].shortDescription.search(re)> -1 || videoHasTag(videoCollection[i],query)> -1) {

            video = createVideoEntry(videoCollection[i]);
			resultArray.push(video);
		}
	}

	return resultArray.length;
}

function searchVideosByTag(searchQuery, bySubmit) {

    $("#searchBar input.searchInputField").css({'color' : '#000000'});
    var resultMessage;
    if(bySubmit == true) { $(this).scrollTo($("#searchResults")); }
    if (searchQuery.length > 2 || bySubmit === true && searchQuery.length > 0 ) {
		// Als er lettertjes zijn ingedrukt in de zoekbalk
		$("#all_videos").hide();
        $("#overige_videos #all_videos").show();

		$("#zoekresultaten").hide();
		$("#zoekresultaten").fadeIn('fast');
        $("#videosHolder #searchResults").hide();
        $("#videosHolder #searchResults").fadeIn('fast');

		if(videosPerPage > 10) { $("#pagination").hide(); }
		var resetMessage = 'Alle videos weergeven';
        if(videosPerPage < 15) {
            resetMessage = 'Wis zoekterm';
        }

		if (searchVideos(searchQuery)) {

			var nrOfRows = Math.ceil(resultArray.length/5);


			$("#searchResults").height(nrOfRows*150);

			if(resultArray.length > 1) {resultMessage = 'zijn '+resultArray.length+' videos'; }
			else {resultMessage = 'is 1 video'; }
            resultArray.reverse();
			resultArray = "<span id='gridTitle'>Er "+resultMessage+" gevonden met de zoekterm <strong>" + searchQuery + "</strong><a href='#' onclick='resetSearchResults(true)' title='"+resetMessage+"'>"+resetMessage+"</a></span><ul>" + resultArray + "</ul>";
			resultArray = resultArray.replace(/\,/g,'');

            $("#searchResults").html(resultArray);
		}
		else {
			$("#searchResults").height(30);
			$("#searchResults").html("<span id='gridTitle'>Geen resultaten gevonden voor <strong>" + searchQuery + "</strong><a href='#' onclick='resetSearchResults(true)' title='"+resetMessage+"'>"+resetMessage+"</a></span>");
		}
	} else {
		resetSearchResults();
	}

	fixIEStackBug();
}

function resetSearchResults(byInteraction) {

    $("#zoekresultaten").hide();
	$("#pagination").show();
	$("#all_videos").fadeIn('fast');
    $("#overige_videos").show();
	$("#searchBar input.searchInputField").one("click", clearSearchBar);
    $("#videosHolder #searchResults").hide();
	if(byInteraction) {
        $.address.value("alle");
		$("#searchBar input.searchInputField").val("Zoekterm..");
		$("#searchBar input.searchInputField").css({'color' : '#cccccc'});
	}

	return false;
}

function onSearchKeyup(){
    searchSubmitted = false;
	var searchQuery = $("#searchBar input").val();
	searchVideosByTag(searchQuery);
}

function previousPage(event) {
	actievePagina--;
	$.address.value('pagina/'+actievePagina);
	return false;
}

function nextPage(event) {
	actievePagina++;
	$.address.value('pagina/'+actievePagina);
	return false;
}



$("document").ready(function(){
    initiate();
    initSearchbar();
    //$("a").one("click", loadIt)
    //$(".videoGrid a.portrait").live('mouseover',showPortraitTooltip);
    //$(".videoGrid a.portrait").live('click',onVideoClick);
    
	$("#currentVideo input").focus( function() {this.select(); } );
    $("a .viddesc").hide();
    $("#tagcloud a").click(onTagClick);
    $(".page").click(onPaginationClick);
	$("#pagination a.vorige").click(previousPage);
	$("#pagination a.volgende").click(nextPage);

    $("#gridTitle a").live("click",resetSearchResults);
    initJqueryAddress();

    initFlash();
    if (!DetectSmartphone()) {	
       initForDesktop();
    } 
    initBitlyApi();
		 
	fixIEStackBug();
});

function initForDesktop() {
$(".videoGrid a.portrait").live('mouseover',showPortraitTooltip);
}

function fixIEStackBug() {
if ($.browser.msie) {
							$('.videoGrid li').each(function(i)  {
								if ($(this).css('position') != 'absolute') $(this).css('zIndex', 1000 - (i * 10));
							});
						}
}