idcurl = "/idc/idcplg";
ids = new Array();
count = 0;
$.ajaxSetup({ cache: false });

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

myFolderId = gup("ssFolderId");

function roundNumber(rnum, rlength) { 
	  var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
	  return newnumber;
}

function str_pad( input, pad_length, pad_string, pad_type ) {	// Pad a string to a certain length with another string
	// 
	// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// + namespaced by: Michael White (http://crestidg.com)

	var half = '', pad_to_go;

	var str_pad_repeater = function(s, len){
			var collect = '', i;

			while(collect.length < len) collect += s;
			collect = collect.substr(0,len);

			return collect;
		};

	if (pad_type != 'STR_PAD_LEFT' && pad_type != 'STR_PAD_RIGHT' && pad_type != 'STR_PAD_BOTH') { pad_type = 'STR_PAD_RIGHT'; }
	if ((pad_to_go = pad_length - input.length) > 0) {
		if (pad_type == 'STR_PAD_LEFT') { input = str_pad_repeater(pad_string, pad_to_go) + input; }
		else if (pad_type == 'STR_PAD_RIGHT') { input = input + str_pad_repeater(pad_string, pad_to_go); }
		else if (pad_type == 'STR_PAD_BOTH') {
			half = str_pad_repeater(pad_string, Math.ceil(pad_to_go/2));
			input = half + input + half;
			input = input.substr(0, pad_length);
		}
	}

	return input;
}



$.tablesorter.addParser({
	id: "regl",
	is: function(s){
		return false;
		},
	format: function(s){
		var r  = /(?:\.)\d+(?:\.)/;
		return r.exec(s);
		},
	type: "numeric"
});


$.tablesorter.addParser({
	id: "tree",
	is: function(s){
		return false;
		},
	format: function(s){
		var r = s.split(".");
		$.each(r, function(k,v){
			r[k]=str_pad(v, 4, '0', 'STR_PAD_LEFT');
		});
		return r.join('');
		},
	type: "text"
});


$(document).ready(function(){
	
	if ( $("#browseDiv").length > 0 ) {
	  getDataForBrowse($("#startFolder").attr('value'));
	  $("a.folderr").livequery('click', function() {
	  			getDataForBrowse($(this).attr("name"), $("#parentFolder").attr('value'));
	  			});
	};
	
	function getDataForBrowse(param, old) {

		$("#session").empty().append("<input type='hidden' id='parentFolder' value="+param+" />");
		if (param==2) old=2;
	
		$.each (ids, function (i,n) {
			if (ids[i].current == param) old = ids[i].parent;
		});                

		ids[count] = { "current" : param, "parent" : old };

		$.getJSON(idcurl+"?IdcService=COLLECTION_DISPLAY&hasCollectionID=true&dCollectionID="+param+"&IsJson=1",
			function(data){	
	
				folders = new Array();

				$.each (data.ResultSets.COLLECTIONS.fields, function (i,n) {
					//if (data.ResultSets.COLLECTIONS.fields[i].name == "dCollectionID")
					//alert("dCollectionID="+i);

					if (data.ResultSets.COLLECTIONS.fields[i].name == "xsr_alt_name")
					idxsr_alt_name=i;
					
					if (data.ResultSets.COLLECTIONS.fields[i].name == "dCollectionName")
					idCollectionName=i;
					
					if (data.ResultSets.COLLECTIONS.fields[i].name == "dCollectionEnabled")
					idCollectionEnabled=i;

					if (data.ResultSets.COLLECTIONS.fields[i].name == "dCollectionOwner")
					idCollectionOwner=i;

					if (data.ResultSets.COLLECTIONS.fields[i].name == "xComments")
					ixComments=i;

					if (data.ResultSets.COLLECTIONS.fields[i].name == "xsr_sort")
					ixSRSort=i;
				});                
				
				$.each (data.ResultSets.COLLECTIONS.rows, function (i,n) {
				  var r = data.ResultSets.COLLECTIONS.rows[i];
				  folders[i] = { 
				     "id" : r[0], 
					 "name" : 0 < r[idxsr_alt_name].length ? r[idxsr_alt_name] : r[idCollectionName], 
					 "collectionEnabled" : r[idCollectionEnabled],
					 "author" : r[idCollectionOwner],
					 "comments" : r[ixComments],
					 "alt_name" : r[idxsr_alt_name],
					 "kod" : r[ixSRSort]
				  };
				});

				files = new Array();

				$.each (data.ResultSets.CONTENTS.fields, function (i,n) {
					if (data.ResultSets.CONTENTS.fields[i].name == "dDocAuthor")
					idDocAuthor=i;
					
					if (data.ResultSets.CONTENTS.fields[i].name == "dInDate")
					idInDate=i;
					
					if (data.ResultSets.CONTENTS.fields[i].name == "dDocTitle")
					idDocTitle=i;

					if (data.ResultSets.CONTENTS.fields[i].name == "dDocName")
					idDocName=i;
					
					if (data.ResultSets.CONTENTS.fields[i].name == "dFileSize")
					idFileSize=i;

					if (data.ResultSets.CONTENTS.fields[i].name == "dWebURL")
					idWebURL=i;
					
				});                

				$.each (data.ResultSets.CONTENTS.rows, function (i,n) {
				  files[i] = { 
					 "author" : data.ResultSets.CONTENTS.rows[i][idDocAuthor],
					 "date" : data.ResultSets.CONTENTS.rows[i][idInDate],
					 "title" : data.ResultSets.CONTENTS.rows[i][idDocTitle],
					 "name" : data.ResultSets.CONTENTS.rows[i][idDocName],
					 "size" : (roundNumber(data.ResultSets.CONTENTS.rows[i][idFileSize]/1000, 0)+" KB"),
					 "url" : data.ResultSets.CONTENTS.rows[i][idWebURL]
				  };
				});
				
				contents = { "files": files, "folders": folders};

			    $('#browseDiv').setTemplateURL('/idc/groups/sr_site_assets/documents/sr_templates/sr_flat_folders_tmpl.hcsp');
				//$('#browseDiv').setParam('param1', myFolderId);
				$('#browseDiv').processTemplate(contents);
				$("#flatTable").tablesorter({
					headers: {0: {sorter:"folder"}, 1: {sorter:"text"}, 2: {sorter:"tree"} },
					sortList: [[2,0],[0,0]]
					});
				$("#flatTable").tablesorterPager({container: $("#pager"), size:30, positionFixed: false});
				setTall(); //From sr_col.js
			});

		count = count+1;
	};

});

