// pobiera początkową część łańcucha znaków
// umieszczoną przed łańcuchem przekazanym jako searchString
function getFront(mainStr,searchStr){
	foundOffset = mainStr.indexOf(searchStr)
	if (foundOffset == -1) {
		return null
	}
	return mainStr.substring(0,foundOffset)
}

// pobiera końcową część łańcucha znaków
// umieszczoną za łańcuchem przekazanym jako searchString
function getEnd(mainStr,searchStr) {
	foundOffset = mainStr.indexOf(searchStr)
	if (foundOffset == -1) {
		return null
	}
	return mainStr.substring(foundOffset+searchStr.length,mainStr.length)
}

// wstawia łańcuch znaków przekazany jako insertString
// bezpośrednio przed łańcuchem przekazanym jako searchString
function insertString(mainStr,searchStr,insertStr) {
	var front = getFront(mainStr,searchStr)
	var end = getEnd(mainStr,searchStr)
	if (front != null && end != null) {
		return front + insertStr + searchStr + end
	}
	return null
}

// usuwa łańcuch znaków deleteSting
function deleteString(mainStr,deleteStr) {
	return replaceString(mainStr,deleteStr,"")
}

// zastępuje łańcuch znaków podany jako searchString
// łańcuchem replaceString
function replaceString(mainStr,searchStr,replaceStr) {
	var front = getFront(mainStr,searchStr)
	var end = getEnd(mainStr,searchStr)
	if (front != null && end != null) {
		return front + replaceStr + end
	}
	return null
}
