Click here to Skip to main content
15,896,606 members
Articles / Web Development / ASP.NET

DesktopBrowser - A Web Based File Explorer for Media Desktops

Rate me:
Please Sign up or sign in to vote.
4.21/5 (4 votes)
25 Jun 2011GPL32 min read 34.1K   1.1K   22  
A presentation of DesktopBrowser open-source project, a web based file explorer for media desktops.
//@AutoGenerated
function Namespace(ns)
{
	var obj = window;
	var tokens = ns.split('.');
	for (var i = 0;i < tokens.length;i++)
	{
		var token = tokens[i];
		if (obj[token] == null)
		{
			obj[token] = new Object({IsNamepsace : true});
		}
		obj = obj[token];
	}
}
Namespace("DesktopBrowser.Client.Utils");
IsIE6 = ((window.navigator.userAgent.indexOf("MSIE 6.") != -1) && (window.navigator.userAgent.indexOf("Opera") == -1));
IsWebKit = (window.navigator.userAgent.indexOf("AppleWebKit") != -1);
function ApplyExactTemplate(el, template)
{
	if (el.getAttribute("_IsTemplated"))
		return null;
	el.setAttribute("_IsTemplated", true);
	var tmp = template.cloneNode(true);
	tmp.id = "";
	$(el).replaceWith(tmp);
	$("#Element", tmp).replaceWith(el);
	return tmp;
}
function ApplyTemplates()
{
	$("#Templates").children().each(function(i, templateEl){
		templateEl.setAttribute("_IsTemplated", true);
		var className = "." + templateEl.id;
		$(className).each(function(index, t){ return ApplyExactTemplate(t, templateEl)});
	}
	);
}
function ApplyTemplate(el)
{
	var className = el.className;
	if (className.length > 0)
	{
		var templateEl = document.getElementById(className);
		if (templateEl != null && templateEl.parentElement.id == "Templates")
			return ApplyExactTemplate(el, templateEl);
	}
	return null;
}
function ParseQueryString(search)
{
	var obj = new Object();
	var pairs = search.substring(1).split("&");
	var $it1 = pairs.GetEnumerator();
	while ($it1.MoveNext())
	{
		var pair = $it1.get_Current();
		var tokens = pair.split("=");
		obj[decodeURIComponent(tokens[0])] = decodeURIComponent(tokens[1]);
	}
	return obj;
}
function GetFormData(inputMappings, suffix)
{
	var obj2 = inputMappings;
	var data = new Object();
	for(var p in obj2)
	{
		var id = obj2[p];
		if (suffix != null)
			id += suffix;
		var input = document.getElementById(id);
		if (input == null)
			continue;
		if (input.type == "checkbox")
			data[p] = input.checked;
		else
			data[p] = input.value;
	}
	return data;
}
function GetRepeatedFormData(inputMappings)
{
	var list = new Array();
	var i = 0;
	while (true)
	{
		i++;
		var data = GetFormData(inputMappings, i.toString());
		if (data == null)
			return list;
		list.push(data);
	}
}
function FixBrowserCompatibilityIssues()
{
	if (IsIE6 || IsWebKit)
	{
		$("a").each(function(i, el){ return FixAnchor(el)});
	}
}
function FixAnchor(el)
{
	if (el == null || el.nodeName != "A")
		return;
	if (!IsWebKit)
		return;
	var a = el;
	if (a.href == null || a.href.length == 0)
		a.href = "javascript:void(0);";
}
function SmoothScrollTo(id)
{
	$("html,body").animate({scrollTop : $("#" + id).offset().top}, "slow");
}
function SmoothScrollToTop()
{
	$("html,body").animate({scrollTop : 0}, "slow");
}
if(typeof(DesktopBrowser)=='undefined')DesktopBrowser={};if(typeof(DesktopBrowser.Client)=='undefined')DesktopBrowser.Client={};
DesktopBrowser.Client.SiteProxy = function()
{
	this.DataClient = new DesktopBrowser.Client.Utils.DataServiceProxy();
}

DesktopBrowser.Client.SiteProxy.prototype.Execute=function(filename, callback)
{
	this.Invoke("System.Object", "Execute", [filename], callback);
}


DesktopBrowser.Client.SiteProxy.prototype.Invoke=function(T, methodName, prms, callback)
{
	var req = {AssemblyName:"DesktopBrowser",
	TypeName:"DesktopBrowser.Server.SiteService",
	MethodName:methodName,
	Parameters:prms};
	this.DataClient.InvokeAsync(req, function(t){
		if (t.Error != null)
		{
			alert(t.Error);
		}
		else
		{
			if (callback != null)
				callback(t.ReturnValue);
		}
	}
	);
}
if(typeof(DesktopBrowser)=='undefined')DesktopBrowser={};if(typeof(DesktopBrowser.Client)=='undefined')DesktopBrowser.Client={};if(typeof(DesktopBrowser.Client.Utils)=='undefined')DesktopBrowser.Client.Utils={};
DesktopBrowser.Client.Utils.DataServiceProxy = function()
{
	this.DataServiceUrl = "DataService.ashx";
}

DesktopBrowser.Client.Utils.DataServiceProxy.CreateRequest=function()
{
	if (window.XMLHttpRequest)
  return new XMLHttpRequest();

else if (window.ActiveXObject)
     return new ActiveXObject('MSXML2.XMLHTTP.3.0');
else
    throw new Error('Your browser does not support ajax requests');
}

DesktopBrowser.Client.Utils.DataServiceProxy.WebGetAsync=function(url, callback)
{
	var req = DesktopBrowser.Client.Utils.DataServiceProxy.CreateRequest();
	req.open("GET", url, true);
	req.onreadystatechange = function(){
		if (req.readyState == 4)
		{
			callback(req);
		}
	}
	;
	req.send(null);
}

DesktopBrowser.Client.Utils.DataServiceProxy.WebPostFormAsync=function(url, form, callback)
{
	var req = DesktopBrowser.Client.Utils.DataServiceProxy.CreateRequest();
	req.open("POST", url, true);
	req.setRequestHeader("content-type", "application/x-www-form-urlencoded");
	req.onreadystatechange = function(){
		if (req.readyState == 4)
		{
			callback(req);
		}
	}
	;
	var sb = new Array();
	DesktopBrowser.Client.Utils.DataServiceProxy.SerializeForm(form, sb);
	req.send(sb.join(""));
}

DesktopBrowser.Client.Utils.DataServiceProxy.SerializeForm=function(form, sb)
{
	var first = true;
	for(var p in form)
	{
		if (first)
			first = false;
		else
			sb.push("&");
		sb.push(p);
		sb.push("=");
		sb.push(encodeURIComponent(form[p]));
	}
}

DesktopBrowser.Client.Utils.DataServiceProxy.prototype.InvokeAsync=function(req, callback, useGetMethod)
{
	var callback2 = function(t){
		var res = {};
		if (t.status == 200)
		{
			var code = t.responseText;
			var func = new Function(code);
			try
			{
				res = func();
			}
			catch(e)
			{
				res.Error = e.toString();
			}
		}
		else
		{
			res.Error = "Http error code " + t.status + ", " + t.statusText;
		}
		callback(res);
	}
	;
	var url = this.DataServiceUrl;
	var sb = new Array();
	if (useGetMethod)
	{
		sb.push(url, "?z=z");
		DesktopBrowser.Client.Utils.DataServiceProxy.SerializeToQueryString(req, sb);
		url = sb.join("");
		DesktopBrowser.Client.Utils.DataServiceProxy.WebGetAsync(url, callback2);
	}
	else
	{
		var body = JSON.stringify(req);
		DesktopBrowser.Client.Utils.DataServiceProxy.WebPostFormAsync(url, new Object({req : body}), callback2);
	}
}

DesktopBrowser.Client.Utils.DataServiceProxy.SerializeToQueryString=function(req, sb)
{
	if (req.AssemblyName != null)
		sb.push("&a=" + req.AssemblyName);
	if (req.TypeName != null)
		sb.push("&t=" + req.TypeName);
	if (req.MethodName != null)
		sb.push("&m=" + req.MethodName);
	if (req.InstanceSessionKey != null)
		sb.push("&isk=" + req.InstanceSessionKey);
	if (req.Parameters != null)
	{
		var prms = req.Parameters;
		for (var i = 0;i < prms.length;i++)
		{
			sb.push("&p");
			sb.push((i + 1).toString());
			sb.push("=");
			sb.push(encodeURIComponent(prms[i].toString()));
		}
	}
}
if(typeof(DesktopBrowser)=='undefined')DesktopBrowser={};
DesktopBrowser.ClientExtensions = function()
{
}

DesktopBrowser.ClientExtensions.RegexEscape=function(text)
{
	return text.replace(new RegExp("[-[\\]{}()*+?.,\\\\^$|#\\s]", "g"), "\\$&");
}
if(typeof(DesktopBrowser)=='undefined')DesktopBrowser={};
DesktopBrowser.Keys = function()
{
}

DesktopBrowser.Keys.Enter = 13;

DesktopBrowser.Keys.PageUp = 33;

DesktopBrowser.Keys.PageDown = 34;

DesktopBrowser.Keys.End = 35;

DesktopBrowser.Keys.Home = 36;

DesktopBrowser.Keys.Up = 38;

DesktopBrowser.Keys.Down = 40;
Array.prototype.GetEnumerator=function()
{
	return new DesktopBrowser.Client.Utils.JsArrayEnumerator(this);
}
if(typeof(DesktopBrowser)=='undefined')DesktopBrowser={};if(typeof(DesktopBrowser.Client)=='undefined')DesktopBrowser.Client={};if(typeof(DesktopBrowser.Client.Utils)=='undefined')DesktopBrowser.Client.Utils={};
DesktopBrowser.Client.Utils.JsArrayEnumerator = function(array)
{
	this.Array = array;
	this.Index = -1;
}


DesktopBrowser.Client.Utils.JsArrayEnumerator.prototype.MoveNext=function()
{
	this.Index++;
	return this.Index < this.Array.length;
}

DesktopBrowser.Client.Utils.JsArrayEnumerator.prototype.Index = 0;

DesktopBrowser.Client.Utils.JsArrayEnumerator.prototype.get_Current=function()
{
	return this.Array[this.Index];
}

DesktopBrowser.Client.Utils.JsArrayEnumerator.prototype.Dispose=function()
{
}

DesktopBrowser.Client.Utils.JsArrayEnumerator.prototype.Reset=function()
{
	this.Index = -1;
}
if(typeof(DesktopBrowser)=='undefined')DesktopBrowser={};if(typeof(DesktopBrowser.Client)=='undefined')DesktopBrowser.Client={};if(typeof(DesktopBrowser.Client.Utils)=='undefined')DesktopBrowser.Client.Utils={};
DesktopBrowser.Client.Utils.jQueryExtensions = function()
{
}

DesktopBrowser.Client.Utils.jQueryExtensions.isChecked=function(j, value)
{
	if (arguments.length == 1)
		return j.attr("checked");
	else
	{
		j.attr("checked", value);
		return undefined;
	}
}

DesktopBrowser.Client.Utils.jQueryExtensions.val=function(j, visible)
{
	if (visible)
		j.show();
	else
		j.hide();
}
if(typeof(DesktopBrowser)=='undefined')DesktopBrowser={};if(typeof(DesktopBrowser.Client)=='undefined')DesktopBrowser.Client={};if(typeof(DesktopBrowser.Client.Utils)=='undefined')DesktopBrowser.Client.Utils={};
DesktopBrowser.Client.Utils.JsExtensions = function()
{
}

DesktopBrowser.Client.Utils.JsExtensions.Trim=function(s)
{
	return s.replace(new RegExp("^\\s*"), "").replace(new RegExp("\\s*$"), "");
}

DesktopBrowser.Client.Utils.JsExtensions.AsJsArray$$List$1=function(T, list)
{
	throw new System.Exception.ctor();
}

DesktopBrowser.Client.Utils.JsExtensions.AsJsArray$$T$Array=function(T, array)
{
	throw new System.Exception.ctor();
}

DesktopBrowser.Client.Utils.JsExtensions.AsList=function(T, list)
{
	throw new System.Exception.ctor();
}

DesktopBrowser.Client.Utils.JsExtensions.IndexOf=function(array, item)
{
	var i = 0;
	var $it2 = array.GetEnumerator();
	while ($it2.MoveNext())
	{
		var item2 = $it2.get_Current();
		if (item2 == item)
			return i;
		i++;
	}
	return -1;
}

DesktopBrowser.Client.Utils.JsExtensions.Remove=function(array, item)
{
	var i = 0;
	var $it3 = array.GetEnumerator();
	while ($it3.MoveNext())
	{
		var item2 = $it3.get_Current();
		if (item2 == item)
		{
			array.splice(i, 1);
			return true;
		}
		i++;
	}
	return false;
}

DesktopBrowser.Client.Utils.JsExtensions.RemoveAt=function(array, index)
{
	array.splice(index, 1);
}

DesktopBrowser.Client.Utils.JsExtensions.Clear=function(array)
{
	array.splice(0, array.length);
}

DesktopBrowser.Client.Utils.JsExtensions.Contains=function(array, item)
{
	var $it4 = array.GetEnumerator();
	while ($it4.MoveNext())
	{
		var item2 = $it4.get_Current();
		if (item2 == item)
			return true;
	}
	return false;
}

DesktopBrowser.Client.Utils.JsExtensions.Insert=function(array, index, item)
{
	array.splice(index, 0, item);
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)


Written By
Architect SharpKit
Israel Israel
Founder of SharpKit

Comments and Discussions