/*************************************************************************
Name:	queryFormat.php (attached to query.php)
Desc:	query string manipulation functions 
*************************************************************************/

/*
//removes the length part from type (ie: string(128) == string)
function queryGetTypeName(type) {
	var index = type.indexOf('(');
	var name = type.substr(0, index);
	return name;
}
function queryGetTypeLength(type) {
	var index = type.indexOf('(');
	var length = type.substr(index+1, type.length-index-2);
	return length;
}
/**/

	
	
	
	
//get result value from data
function getResultValue(dataItem, map, index) {
	return arrayGetNest(dataItem, map[index]['path']);
}
//set result data value
function setResultValue(dataItem, map, index, value) {
	return arraySetNest(dataItem, map[index]['path'], value);
}

//get result PK value
function getResultKey(dataItem, map, managerData) {
	var index = getResultKeyIndex(map, managerData);
	if (index >= 0) {
		return getResultValue(dataItem, map, index);
	} else {
		return null;
	}
}
//get result PK field alias
function getResultKeyAlias(managerData) {
	return managerData['table']+'.'+QUERY_ID_FIELD;
	/*
	var index = getResultKeyIndex(map, managerData);
	if (index >= 0) {
		var mapItem = map[index];
		return mapItem['table']+'.'+QUERY_ID_FIELD;//mapItem['field'];
	} else {
		return null;
	}/**/
}
//get result key map index
function getResultKeyIndex(map, managerData) {
	var table = managerData['table'];
	var field = DATATABLE_PK_FIELD;//QUERY_ID_FIELD;
	
	for (var index=0; index<map.length; index++) {
		if ((map[index]['table'] == table) &&
			(map[index]['field'] == field)) {
			return index;
		}
	}
	return -1;
}



function getTypeOperatorNames(type) {
	var nameList = {	string: 	['Contains', 'Excludes'],
						timestamp:	['Contains', 'After', 'Before', 'Excludes'],
						int:		['Equal To', 'Greater Than', 'Less Than', 'Is Not'],
						boolean:	['Yes', 'No']};
	return nameList[type];
}

function getTypeOperators(type) {
	var valueList = {	string: 	['LIKE', 'NOT LIKE'],
						timestamp:	['LIKE', '>', '<', 'NOT LIKE'],
						int:		['=', '>', '<', '<>'],
						boolean:	['=', '<>']};
	return valueList[type];
}

function queryGetComment(field) {		return strLast(field, '#');	}	//return query comment
function queryRemoveComment(field) {	return trimLast(field, '#');	}	//remove query without
function queryGetAlias(field) {			return strLast(queryRemoveComment(field), ' AS ');	}	//return field alias
function queryRemoveAlias(field) {		return trimLast(queryRemoveComment(field), ' AS ');}	//remove field alias
