//用于在页面中查找某个对象（来自Dreamweaver）
function findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}


function showHidObject(objectName){
  var obj = findObj(objectName);
  if(!obj) return;
  
  if(obj.style.display == "none"){
    obj.style.display = "block";
  } else {
    obj.style.display = "none";
  }
}


function isUndefined(v)
{
	return typeof(v) == 'undefined';
}

function isDefined(v)
{
	return typeof(v) != 'undefined';
}

function fillTemplate(template)
{
	var result = template;
	for (var i = 1; i< arguments.length; i+= 2)
	{
		var name = arguments[i];
		var rexp = new RegExp('\\$\\{' + name + '\\}', 'g');
		var value = arguments[i + 1];
		result = result.replace(rexp, value);
	}

	return result;
}

function toggleOpen(modelSource)
{
	var openFlagName = modelSource + '_open';
	var open = eval(openFlagName);
	if (open == undefined) open = false;
	eval(openFlagName + '=' + !open);
}

function refreshElement(id)
{
	var elm = document.getElementById(id);
	if (elm)
	{
		var widget = ElementWidgetMap[id];
		if (widget)
		{
			widget.updateModel();
			elm.innerHTML = widget.render();
		}
	}
}

function isAllCharsEmpty(s)
{
	for (var i = 0; i < s.length; i++)
	{
		if (s.charCodeAt(i) > 32)
			return false;
	}

	return true;
}

function isEmpty(s)
{
	return isUndefined(s) || s == null || s.length == 0 || isAllCharsEmpty(s);
}

function processEmpty(s)
{
	return isEmpty(s) ? '' : s;
}

function nbsp(s)
{
	return isEmpty(s) ? '&nbsp;' : s;
}

function addStaticContentPrefix(rest)
{
	if (isDefined(staticContentPrefix) && staticContentPrefix != null)
		return staticContentPrefix + rest;
	else
		throw "global variable staticContentPrefix undefined or null";
}

function renderWidgetWrapper(widget)
{
	return fillTemplate(
		Template.widgetWrapperElement,
		'elementId', widget.elementId,
		'content', widget.render()
	);
}

function getToday()
{
	var today = new Date();
	return today.getDate() + '/' + MonthMap[today.getMonth()] + '/' + today.getFullYear();
}

var MonthMap = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
