
/* -------------------------------------------------------------------------- */
/*                               List  Methods                                */
/* -------------------------------------------------------------------------- */

String.prototype.listFind = _listFind;
function _listFind(expV, delimiter) {
	return JSV_listFind(this, expV, delimiter);
}

String.prototype.listFindNoCase = _listFindNoCase;
function _listFindNoCase(expV, delimiter) {
	return JSV_listFindNoCase(this, expV, delimiter);
}

String.prototype.listGetAt = _listGetAt;
function _listGetAt(expN, delimiter) {
	return JSV_listGetAt(this, expN, delimiter);
}

String.prototype.listLen = _listLen;
function _listLen(delimiter) {
	return JSV_listLen(this, delimiter);
}

String.prototype.listAppend = _listAppend;
function _listAppend(expE, delimiter) {
	return JSV_listAppend(this, expE, delimiter);
}

function JSV_listFind(expL, expV, delimiter) {
	var listLocation = 0;

	if (JSV_listFind.arguments[2] == null) delimiter = jsvCommaDelimiter;

	if ( !JSV_isEmpty(JSV_listFind.arguments[0]) && !JSV_isEmpty(JSV_listFind.arguments[1]) ) {
		var i = 0;
		var listArray = JSV_splitString(expL, delimiter);

		for (i=0; i<listArray.length; i++) {
			if ( JSV_toString(expV) == JSV_toString(listArray[i]) ) {
				listLocation = i+1;
				break;
			}
		}
	}

	return listLocation;
}

function JSV_listFindNoCase(expL, expV, delimiter) {
	return JSV_listFind(JSV_toString(expL).toLowerCase(), JSV_toString(expV).toLowerCase(), delimiter);
}

function JSV_listGetAt(expL, expN, delimiter) {
	if (JSV_listGetAt.arguments[2] == null) delimiter = jsvCommaDelimiter;
	var listArray = JSV_splitString(expL, delimiter);
	return ( (expN > listArray.length) ? null : listArray[expN-1] );
}

function JSV_listLen(expL, delimiter) {
	if (JSV_listLen.arguments[1] == null) delimiter = ',';
	return JSV_occurs(expL, delimiter) + ( JSV_isWhitespace(expL) ? 0 : 1 );
}

function JSV_listAppend(expL, expE, delimiter) {
	if ( JSV_isEmpty(expL) )
		return expE;
	else
		return expL + ( (JSV_listAppend.arguments[2] == null) ? ',' : delimiter ) + expE;
}

