
var openDetail = "";
	
showPicker = function(detailid)
{
	openDetail=detailid;
	if(!window.name)window.name='admin_parent';
	window.open( '/openedit/editors/newpicker/index.html?parentName='+window.name+'&detailid='+detailid, 'pickerwindow','alwaysRaised=yes,menubar=no,scrollbars=yes,width=1000,x=100,y=100,height=600,resizable=yes' );
	return false;
}

//TODO: Does this need to be defined on the page itself? 
SetPath = function( inUrl )
{
	var input = document.getElementById(openDetail + ".value");
	input.value = inUrl;
}
	

validate = function(inCatalogId, inDataType, inView , inFieldName)
{
	var field = inFieldName + '.value';
	var val = document.getElementById(field).value;
	var div = 'error_' + inFieldName;
	var params="catalogid=" + inCatalogId + "&searchtype="+ inDataType + "&view=" + inView + "&field=" + inFieldName + "&" + "value=" + val;
	//alert( params );
	new Ajax.Updater(div, '/openedit/editors/xml/validatefield.html?' + params, {  });
}

//Delete this feature. Too complex to maintain
validateall = function()
{
	alert(" Not implemented");
	return;
	
	params = "catalogid=$searcher.getCatalogId()&view=$view&type=$searcher.getFieldName()";
/*	*/	
	new Ajax.Updater('allerrors', '/openedit/editors/xml/validateallfields.html', { parameters: params });
}

listchangelisteners = new Array();
addListListener = function( inParentFieldName, inFieldName )
{
	//alert("Adding parent:" + inParentFieldName + " child:" + inComponentId );
	var children = listchangelisteners[inParentFieldName];
	if( !children )
	{
		children = new Array();
		listchangelisteners[inParentFieldName]  = children;
	}
	children[children.length] = inFieldName; //append the child
}



//When a field is changed we want to validate it and update any listeners
//Find all the lists in this form. Update all of them that are marked as a listener
//parent = businesscategory, child = lob, field = product
updatelisteners = function(catalogid, searchtype,view , fieldname)
{
	var val = document.getElementById( fieldname + '.value').value;

	validate(catalogid, searchtype, view , fieldname);
	var alllists = listchangelisteners;
	var children = alllists[fieldname];
	//alert("Updating" + fieldname + children);
	if( children )
	{
		for( var i=0;i< children.length;i++)
		{
			var childfieldname = children[i];
			var element = document.getElementById(childfieldname + '.value');
			var valueselection = element.options[element.selectedIndex].value;

			var div="listdetail_" + childfieldname;
			
			//we are missing the data element of te children
			//required: catalogid, searchtype, fieldname, value
			//optional: query, foreignkeyid and foreignkeyvalue
			new Ajax.Updater(div, '/openedit/editors/xml/list.html', { parameters: {catalogid: catalogid, searchtype:searchtype, view:view,fieldname:childfieldname,foreignkeyid:fieldname,foreignkeyvalue:val,value: valueselection,oemaxlevel:1} });
		}
	}
}

//Don't use any form inputs named 'name'!
postForm = function(inDiv, inFormId)
{
	var form = document.getElementById(inFormId);
	form = Element.extend(form);
	var oOptions = { 
	    method: 'post',
	    parameters: form.serialize(true), 
	    evalScripts: true,
		asynchronous: false,
        onFailure: function (oXHR, oJson) {
              alert("An error occurred: " + oXHR.status);
        }
     };

	new Ajax.Updater(inDiv, form.action, oOptions );
	
	return false;
}	

postPath = function(inCss, inPath, inMaxLevel)
{
	if( inMaxLevel == null )
	{
		inMaxLevel = 1;
	}
	new Ajax.Updater(inCss, inPath, { parameters: {oemaxlevel: inMaxLevel }, evalScripts: true });	
	return false;
}

