//# PB Toolbox Base Utils

//# CSS


function toolbox_style_toggleDisplay(obj) {
	if (obj.style.display=='none') {
		obj.style.display = '';
		return true;
	} else {
		obj.style.display='none';
		return false;
	}
}

//# DOM

function toolbox_nodes_getFirstOf(obj,ntype) {
	return $(obj).find(ntype+':first')[0];
}

function toolbox_nodes_getActiveLink(root,url) {
	var refList = $(root).find('a');
	for( var i=0; i < refList.length; i++){
		if (refList[i].href == url) {	
			return refList[i];
		}
	}
}

function toolbox_nodes_getFirstParentByType(root,ntype) {
	
	var par = $(root).parents(ntype);
	if (par.length) {
		return par[0];
	} else {
		return root;
	} 
	
	

}

function toolbox_toggleSubCheckboxes(obj) {
	var root = toolbox_nodes_getFirstParentByType(obj,'LI');
	var togstate = obj.checked;
	toolbox_checkSubCheckboxes(root,togstate);
	obj.disabled = false;
}

function toolbox_checkSubCheckboxes(obj,togstate) {
	var i=0;
	var al='';
	//obj =
	//obj = document.getElementById(objID);
	var colObj = obj.childNodes;
	while(colObj[i]) {
		colName = new String(colObj[i].nodeName);
		al+=colName+'\n'

		if (colName == 'INPUT') {
			//alert(colName);
			colObj[i].checked = togstate;

			colObj[i].disabled=togstate;

		}
		if (colObj[i].childNodes.length > 0) {
			toolbox_checkSubCheckboxes(colObj[i],togstate);
		}
		i++;
	}
	//alert(al);
}

function stripQueryString(uri) {
	var newuri = parseUri(uri);
	return newuri.protocol+'://'+newuri.authority+newuri.path;
}

function parseUri (str) {
	var	o   = parseUri.options,
	m   = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
	uri = {},
	i   = 14;

	while (i--) uri[o.key[i]] = m[i] || "";

	uri[o.q.name] = {};
	uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
		if ($1) uri[o.q.name][$1] = $2;
	});

	return uri;
};

parseUri.options = {
	strictMode: false,
	key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
	q:   {
		name:   "queryKey",
		parser: /(?:^|&)([^&=]*)=?([^&]*)/g
	},
	parser: {
		strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
		loose:  /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
	}
};





