﻿/// <reference path="jquery-1.2.6.js" />

var baseUrl;

$(document).ready(function() {   
    $(".toggleBranchLayer").bind("click", Node_Click);
    $(".folderNode").bind("click", Node_Click);
    baseUrl = GetBaseUrl();
});

function Node_Click() {

    var ajaxRequestBaseUrl = "/Templates/Public/Pages/FileTreeBranch.aspx";
    var expandedNodeCssClass = "expandedNode";
    var collapsedNodeCssClass = "collapsedNode";
    var loadingImageUrl =  "/Templates/Public/Images/loading.gif";    
    var $nodeLink = $(this);
    var queryString;
    var $toggleLink; 
    
    if($nodeLink.attr("class") == "folderNode") {
        queryString = GetQueryString($nodeLink.attr("href"));
        $toggleLink = $nodeLink.siblings(".toggleBranchLayer");
    }
    else {
        queryString = GetQueryString($nodeLink.siblings(".folderNode").attr("href"));
        $toggleLink = $nodeLink;
    }
    
    var ajaxRequestUrl = ajaxRequestBaseUrl + queryString;
    var $layer = $nodeLink.siblings(".branchLayer");
    var encodedUrl = encodeURI(ajaxRequestUrl);

    if ($layer.is(":visible") && $layer.is(":empty")) {
        $toggleLink.attr("class", "toggleBranchLayer expandedNode");
        $layer.html('<div class="loading"><img src="' + loadingImageUrl + '" border="0" alt="Loading..." /></div>');
        $.get(encodedUrl, function(data) { 
            $layer.html(data);
            $layer.find(".toggleBranchLayer").bind("click", Node_Click);
            $layer.find(".folderNode").bind("click", Node_Click);
            //$layer.find(".folderNode").each(ReplaceUrl);
        });
    }
    else if ($layer.is(":visible")) {
        $layer.hide();
        $toggleLink.attr("class", "toggleBranchLayer collapsedNode");
    }
    else {
        $toggleLink.attr("class", "toggleBranchLayer expandedNode");
        $layer.show();   
    }

    return false;
}

//function ReplaceUrl() {
//    var $link = $(this);
//    var currentQueryString = GetQueryString($link.attr("href"));
//    var newUrl = baseUrl + currentQueryString;
//    $link.attr("href", newUrl);
//}

function GetQueryString(url) {
    return url.substring(url.indexOf("?"));
}

function GetBaseUrl() {        
    var url = $("#fileTree").find(".folderNode:first").attr("href");
    if(url.indexOf("?") != -1) {
        return url.substring(0, url.indexOf("?"));   
    }
    else {
        return url;
    }
}

function UrlEncode(string) {
    return escape(this._utf8_encode(string));
}



