if($.browser.msie) window.onerror = function(){return true;}

kgallery.current_page = 1;
//kgallery.auto_load = true;
kgallery.first_load = true;

kgallery.loadVideo = function(a_obj) { // entry_id
//						console.log("kgallery.loadVideo");
						$a_obj = $(a_obj);
						var entry_id = $a_obj.attr("href").split("#")[1];
            //NOA
            kgallery.$current_video_li = $a_obj.parents("li");
            kgallery.$current_video_li.addClass("playing");
            location.hash = entry_id;
            //NOA
//						console.log(entry_id);
						if(kgallery.kdp_ready) {
//							console.log(kgallery.kdp_ready);
							eval('kgallery.kdp.sendNotification("changeMedia",{entryId:"' + entry_id + '"})');
						}
						else {
//							console.log("!kgallery.kdp_ready");
							kgallery.video_to_play = entry_id;
						}
//						eval('kgallery.kdp.sendNotification("changeMedia",{entryId:"' + entry_id + '"})');
						var video_name = $a_obj.children("div:not(.play)").html();
						video_name = video_name.replace("<span> ","<span> (");
						video_name = video_name.replace("</span>",")</span>");
						video_name = video_name.replace("<span>( ","<span> (");
						video_name = video_name.replace("))",")");

						var video_descr = $a_obj.data("title") || $a_obj.attr("title");
//						console.log(video_descr);
						$("#video_info h1").html(video_name);
						$("#video_info h2").html(video_descr);
            // Changing the title of the page
            document.title = video_name.substr(0, video_name.indexOf("<span>")) + " - " + kgallery.site_title;
}

kgallery.getCategoryFromUri = function(url) {
								category = url.split("#")[1];
								category = unescape(category);
//								alert("category: " + category);
								return(category);
}

kgallery.getFirstSubcategory = function(category) {
								return eval('kgallery.category_tree["' + category + '"][0]');
}

kgallery.search = function() {
					var search_term = $("#search_term").val();
					$("#subnav_panel").slideDown();
					$("#subnav").hide();
					$("#kresults").show().html('Search results for <em>"' + search_term + '"</em>');
					kgallery.loadGallery("search",search_term);
					return false;
}

//NOA
kgallery.autoContinue = function() {
        if(kgallery.$current_video_li.next().length) {
          kgallery.$current_video_li.removeClass("playing");
          kgallery.$current_video_li = kgallery.$current_video_li.next();
          kgallery.$current_video_li.addClass("playing");
          kgallery.loadVideo(kgallery.$current_video_li.children("a").get(0));

          if(kgallery.$current_video_li.parents("#kitems").length) {
            if(!$("#gallery_right").hasClass("disabled") && kgallery.$current_video_li.index() % 5 == 0) {
              $("#gallery_right").click();
            }
          }
          else {
            kgallery.kpanes_li_height = kgallery.$current_video_li.get(0).scrollHeight;
            var li_place = kgallery.$current_video_li.index() * kgallery.kpanes_li_height;
            if(li_place >= $("#kpanes").scrollTop() + (3 * kgallery.kpanes_li_height) || li_place < $("#kpanes").scrollTop()) {
              $("#kpanes").scrollTop(li_place);
            }
          }
        }
        else {
          //kgallery.kdp.removeJsListener("playerPlayEnd", "kgallery.doStop");
        }
}
//NOA

kgallery.loadGallery = function(category,subcategory) {
							$(".loading").show();
							var scrollable = $("#scrollable").scrollable();
							scrollable.begin();
							scrollable.getItems().remove();
							$("#kcount").css("visibility","hidden");
							scrollable.reload();
							var ajax_url = "index.php/action/";
							if(category == "search") {
								var searchterm = (subcategory == "Search all videos") ? "" : subcategory;
								ajax_url += "search/text/" + searchterm;
							}
							else
								ajax_url += "get-videos/category/" + category + ">" + subcategory;
							$.ajax({
								url: ajax_url,
								dataType: "json",
								error: function(xmlhttpobj, data, err) {
									alert(data);
									alert(err);
								},
								success: function(data) {
									if(data) {
										$('.loading').hide();

									// needed ? move to if(!no_results) ?
										var scrollable = $("#scrollable").scrollable();
										scrollable.getItemWrap().append($(data.gallery).find('li'));
										scrollable.reload();
										if (scrollable.getPageAmount() > 1)
											$('.nextPage').removeClass('disabled');
									// end if(!no_results) ?

										kgallery.total_count = data.count;
										var no_results = (data.count == 0) ? true : false;

										if(no_results) {
											$("#gallery_scroll").css("visibility","hidden");
											$("#kcount").html("<h1>No results found</h1>")
													.css("visibility","visible");
										}
										else {
											var single_page = (data.count < 5) ? true : false;
											var five = single_page ? data.count : 5;
											$("#kcount").css("visibility","visible")
												.html("Videos 1-" + five + " of " + data.count);

											//resize and display navigator
											if(!single_page) {
												var pages = data.count / 5;
												pages = Math.ceil(pages);
												var navi_width = 67 + (28 * pages);
												navi_width += "px";
												$("#gallery_scroll").css({
													width : navi_width,
													visibility : "visible"
												});
											}

											var $videos_list = $("#gallery li a")
											$videos_list.tooltip({
												tip: "#tooltip",
												effect: "fade",
												fadeOutSpeed: 500,
												offset: [-50, 0],
												predelay: 150
											});
											$videos_list.click(function(){
//												kgallery.auto_load = true;
												kgallery.loadVideo(this); // passes a obj
                        //NOA
                        $("#gallery li.playing").removeClass("playing"); 
                        var $this_li = $(this).parents("li");
                        $this_li.addClass("playing"); 
                        kgallery.$current_video_li = $this_li;
                        $("#kpanes li.playing").removeClass("playing");
                        //NOA
												return false;
											});

											// @todo: optimize into function
												$("#knavi a").click(function(){
													var page = this.id;
													 page = page.split("page_")[1];
													 page = parseInt(page) + 1;
													kgallery.updateCount(page);
												});

											if(kgallery.first_load) {
//												console.log("kgallery.first_load");
												kgallery.first_load = false;
												kgallery.loadVideo($videos_list.eq(0)); // a obj
											}
//											//play first video
//											kgallery.next_video = $videos_list.eq(0); // a obj
//											if(kgallery.kdp_ready) {
//												kgallery.doPlay();
//											}
										} // end if(no_results) else
									} // end if(data)
								} // end success
							}); // end ajax
						}

kgallery.updateCount = function(page) {
						var end = page * 5;
						end = (kgallery.total_count > end) ? end : kgallery.total_count;
						var start = end - 4;
						$("#kcount").html("Videos " + start + "-" + end + " of " + kgallery.total_count); // animate?
						kgallery.current_page = page;
}



kgallery.loadSubCategories = function(category){

							// build subcategory menu
									var subcats_list = '';
									var subcats_length = kgallery.category_tree[category].length;
									for(var i=0; i<subcats_length; i++) {
										var this_subcat = kgallery.category_tree[category][i]
							// build friendly url - deferred
							//			subcats_list += '<li><a href="/' + category + '/' + this_subcat + '"';
										subcats_list += '<li><a';
										if(i == 0) // first
											subcats_list += ' class="active"';
										else
											subcats_list += ' href="/' + category + '/' + this_subcat + '"'
										subcats_list += '>' + this_subcat + '</a></li>\n';
									}
									$("#subnav").html(subcats_list).show();
									$("#kresults").hide();
									var $subcat_menu = $("#subnav a");
									$subcat_menu.click(function(){
														if(!$(this).hasClass("active")) {
															kgallery.loadGallery(category,$(this).html());
															$subcat_menu.removeClass("active");
															$(this).addClass("active");
														}
									});
							}


$(document).ready(function() {
	kgallery.$main_menu = $("#knav a");
	kgallery.$main_menu.click(function(){
		var $this = $(this);
		kgallery.$main_menu.removeClass("active");
		$this.addClass("active");
		var category = kgallery.getCategoryFromUri(this.href);
		var subcategory = kgallery.getFirstSubcategory(category);
		kgallery.loadGallery(category,subcategory);
		kgallery.loadSubCategories(category);
		$("#subnav_panel").slideDown();
		return false;
	});


	$("#ksubmit").click(function(){
		kgallery.search();
	});

	$("#ksearch").submit(function(){
		return false;
	});
		

	$("#close_gallery").click(function(){
		$("#subnav_panel").slideUp();
	});

	$("#ktabs").tabs("#kpanes > ul", {
		effect: "fade",
		fadeOutSpeed: 300
	});
	
	$.ajax({
		url: "index.php/action/get-playlist-videos/playlist-id/" + "0_2pg5o2ky", // id needs to come dynamically from php
		dataType: "json",
		success: function(data) {
			if (data) {
				$("#kpanes").html(data.playlist);
			}
		} // end success
	}); // end ajax

	$("#kpanes").click(function(e){
//		var entry_id = $this_video.attr("name");
    $("#kpanes li.playing").removeClass("playing"); //NOA
		var $this_video = $(e.target).parents("a").eq(0);
    var $this_li = $this_video.parents("li"); //NOA
		kgallery.auto_load = true;
		kgallery.loadVideo($this_video);
    $this_li.addClass("playing"); //NOA
    kgallery.$current_video_li = $this_li; //NOA
    $("#gallery li.playing").removeClass("playing"); //NOA
//		return false;
	});

//	$("#kpanes li").click(function(){ // contents of ktabs
//		if(window.$now_playing) window.$now_playing.removeClass("active");
//		window.$now_playing = $(this);
//		window.$now_playing.addClass("active");
//	});

	$("#subnav_wrap").scrollable({
        vertical: true,
        size: 6,
		keyboard: false,
		nextPage: ".subnav_down",
		prevPage: ".subnav_up",
		api: true
	});

	$("#subnav_wrap a").click(function(){return false;});
	$("#search_term").focus(function(){
		if(this.value == "Search all videos")
			this.value = "";
	})
		.blur(function(){
			if(this.value == "")
				this.value = "Search all videos";
		});
	$("#knavi a").click(function(){
		var page = this.id;
		 page = page.split("page_")[1];
		 page = parseInt(page) + 1;
		kgallery.updateCount(page);
	});

	$("#gallery_right").click(function(){
		kgallery.updateCount(kgallery.current_page + 1);
		return false;
	});
	$("#gallery_left").click(function(){
		kgallery.updateCount(kgallery.current_page - 1);
		return false;
	});

	$("#subnav").click(function(e){
		if(e.target.tagName == "A") {
			return false;
		}
	});

	// @todo: add titles to navi items
	//$.each(attr($("#knavi a"),("title", "Jump to page " + this.id.split("page_")[1]);

	// kgallery.kdp = $("#kaltura_player").get(0);
	kgallery.updateCount(1);

}); // end onready

$(window).load(function(){
	// init the scrollable
	$("#scrollable").scrollable({
		speed: 900,
		clickable: false,
		keyboard: false
	}).navigator({
		navi: "#knavi",
		idPrefix: "page_"
	});
	
	if(kgallery.open_gallery)
		var first_category = $("#knav a").get(0);
		first_category = first_category.toString();
		first_category = kgallery.getCategoryFromUri(first_category);
		kgallery.loadGallery(first_category,kgallery.getFirstSubcategory(first_category));
		kgallery.loadSubCategories(first_category);
		first_category = null;
		$("#subnav_panel").slideDown();
});

kgallery.pageLoaded = function() {
  kgallery.pageReady = true;
}

function jsCallbackReady(player_id) {
//	alert("jsCallbackReady");
//console.info("*** in jsCallbackReady");
	kgallery.kdp = $("#"+player_id).get(0);
	kgallery.kdp_ready = false;
	kgallery.kdp.addJsListener("kdpEmpty","kgallery.setReady");
  kgallery.kdp.addJsListener("mediaReady", "kgallery.addEndListener");
  kgallery.kdp.addJsListener("changeMedia", "kgallery.removeEndListener");
}

kgallery.setReady = function(){
	kgallery.kdp_ready = true;
	if(kgallery.video_to_play) {
		eval('kgallery.kdp.sendNotification("changeMedia",{entryId:"' + kgallery.video_to_play + '"})');
		kgallery.video_to_play = false;
	}
}

kgallery.doPlay = function() {
					if(kgallery.first_load){
						kgallery.first_load = false;
						kgallery.loadVideo(kgallery.next_video);
					}
					else{
						kgallery.kdp.sendNotification("doPlay");
						kgallery.auto_load = false;
					}
}

//NOA
kgallery.doStop = function() {
//  console.info("stopping listener in doStop");
  kgallery.kdp.removeJsListener("playerPlayEnd", "kgallery.doStop");
	kgallery.kdp.sendNotification("doStop");
//  console.info("going to auto continue");
  kgallery.autoContinue();
}
kgallery.addEndListener = function() {
//  console.log("MEDIA READY: in addEndListener");
  kgallery.kdp.addJsListener("playerPlayEnd", "kgallery.doStop");
}
kgallery.removeEndListener = function() {
//  console.log("in removeEndListener");
  kgallery.kdp.removeJsListener("playerPlayEnd", "kgallery.doStop");
}
//NOA

//kgallery.doPlay = function(){
//					kgallery.kdp_ready = true;
//					if(kgallery.next_video) {
//						if(kgallery.auto_load) {
//							if(kgallery.first_load){
//								kgallery.first_load = false;
//								kgallery.loadVideo(kgallery.next_video);
//							}
//							else{
//								kgallery.kdp.sendNotification("doPlay");
//								kgallery.auto_load = false;
//							}
//						}
//					}
//				}
