// JavaScript Document
var templateItem = '<li><div class="#CLASS#"><a href="#HREF#">#TITLE#</a></div><div class="content" style="display:none;"><ul class="accordion"></ul></div></li>';
var showAllElem = '<li><div class="showAll"><a href="#HREF#">#TITLE#</a></div></li>'.replace("#HREF#", "#").replace("#TITLE#", "Show More");
var aTVwebServiceUrl = "/AnswersTV/AnswersTVService.asmx/";
var getContentTopicMethod = "GetCollectionContentHTML";
var setTreePosition = "GetCollectionContentJSON";
var loadDocumentContentMethod = "GetVideoByDocumentContent";
var loadRelatedVideo = "GetEnhancedUrl";

	function getPrefix(jsonObj){
    	return jsonObj.IsFolder?"folder_":"leaf_";
	}

	function getSeconds(t)
	{
		return t.getMinutes()*60 + t.getSeconds();
	}

	function addItems(parentItem, jsonObj){
//		var startTime = new Date();
		var parentObj = jQuery(parentItem).children(".content").children("ul");
		parentObj.append(jsonObj.HTML);
		jQuery(".head", parentObj).click(function() {
      		toggleSmart(jQuery(this).parent(), false);
			return false;
		});
		jQuery(".leaf", parentObj).click(function() {
			return loadDocumentContent(jQuery(this).parent().attr("id").substring(5));
		});
		if(jsonObj.isShowMoreLink){
			parentObj.append(jQuery(showAllElem));
			jQuery(".showAll", parentObj).click(function(){
				toggleSmart(jQuery(jQuery(this).parents("li")[1]), true);
				return false;
			});
		}
//		var endTime = new Date();
//		alert(getSeconds(endTime) - getSeconds(startTime));
      }
	  
	  function addLoader(parentControl){
		  jQuery(parentControl).append("<div class='loading-div'></div>");
	  }
	  
	  function removeLoader(parentControl){
		  jQuery("div", jQuery(parentControl)).remove(".loading-div");
	  }
	  

      function toggleSmart(obj, showAll){
		var contentJQObj = jQuery(obj).children(".content");
		jQuery("li .selected").removeClass().addClass("head");
		obj.children(".head").removeClass().addClass("selected");				
		if(showAll){			
			contentJQObj.hide();
			jQuery("li", contentJQObj).remove();
		}
		if(!contentJQObj.is(":visible")){
			jQuery("li .content", obj.parent().parent()).hide();
			if(jQuery("li", contentJQObj).length == 0){
				if(obj.attr("id").indexOf("folder") != -1) {//if folder
					addLoader(contentJQObj);
      				var objID = obj.attr("id").substring(7);
	  				jQuery.post(webServiceUrl + getContentTopicMethod, {collectionID:objID, isShowAll:showAll}, function(data){
						removeLoader(contentJQObj);
      					if(data.documentElement.childNodes.length > 0){//if something received
							var s = "";
            				jQuery.each(data.documentElement.childNodes, function (i, n){s += n.nodeValue;});
				            var jsonContent = eval('(' + s + ')');            
      						addItems(obj, jsonContent);
      					}
      				}, "xml");
					jQuery.post(aTVwebServiceUrl + setTreePosition, {collectionID:objID, controlID:informationCenterControlID}, debugAnswer, "xml");
				}
			}			
			contentJQObj.show();
		}
		else{
			contentJQObj.hide();
		}
		return;
	}
	
	function askAcknowledge(callbackFunctionObject){
        if(!getIfAskedAcknowledge()){
            jQuery.get("/AnswersTV/acknowledge.html", function(data){
                tabsObj.setActiveTabContent({content:data});
				jQuery("#agreeBtn > a").click(function(){
                    jQuery(this).parent().hide();
                    setAskedAcknowledge();
                    execFunction(callbackFunctionObject);
                    return false;
                });                
            });
        }else{
            execFunction(callbackFunctionObject);
        }
    }
	
	function getFullContent(data){
        var s = "";
        jQuery.each(data.documentElement.childNodes, function (i, n){s += n.nodeValue;});
        return s;
    }
	
	    var ackCookieName = 'AcknowledgeAgreed';
    function getIfAskedAcknowledge(){
        return (jQuery.cookie(ackCookieName) == "true");
    }
    
    function setAskedAcknowledge(){
        return jQuery.cookie(ackCookieName, 'true', { path: '/', expires: 1000 });
    }
    
    function execFunction(callbackFunctionObject){
        var paramsString = "";
        jQuery.each(callbackFunctionObject.params, function (i, n){paramsString += "'" + n + "',";});
        paramsString = paramsString.substring(0, paramsString.length-1);
        eval(callbackFunctionObject.functionName + "(" + paramsString + ")");
    }


