function foldObjectById(objectId){
	if(document.getElementById(objectId)){
		foldObject(document.getElementById(objectId));
	}
}

function foldObject(object){
	if(object){
		object.style.display = "none";
	}
}

function unFoldObjectById(objectId){
	if(document.getElementById(objectId)){
		document.getElementById(objectId).style.display = "block";
	}
}

function unFoldListObjectById(objectId){
	if(document.getElementById(objectId)){
		document.getElementById(objectId).style.display = "list-item";
	}
}

function foldInlineObjectById(objectId){
	foldObjectById(objectId);
}

function unFoldInlineObjectById(objectId){
	if(document.getElementById(objectId)){
		document.getElementById(objectId).style.display = "inline";
	}
}

function foldedStatusObjectById(objectId){
	if(document.getElementById(objectId)){
		if(document.getElementById(objectId).style.display == "none"){
			return true;
		}
	}
	return false;
}

function unfoldedStatusObjectById(objectId){
	if(document.getElementById(objectId)){
		if(document.getElementById(objectId).style.display == "block"){
			return true;
		}
	}
	return false;
}

function showObjectById(objectId){
	if(document.getElementById(objectId)){
		document.getElementById(objectId).style.visibility = "visible";
	}
}

function hideObjectById(objectId){
	if(document.getElementById(objectId)){
		document.getElementById(objectId).style.visibility = "hidden";
	}
}

function changeBackgroundById(objectId,url){
	if(document.getElementById(objectId)){
		document.getElementById(objectId).style.backgroundImage = "url("+url+")";
	}
}

function addCSSClassTinyMCEId(objectTinyMceId,classname){
	// TODO doesn't work in IE
	addCSSClassByObject(tinyMCE.getInstanceById(objectTinyMceId).getWin().document.body,classname);
}

function removeCSSClassTinyMCEId(objectTinyMceId,classname){
	// TODO doesn't work in IE
	editor = tinyMCE.getInstanceById(objectTinyMceId);
	// TODO doesn't work in IE 
	removeCSSClassByObject(editor.getWin().document.body,classname);
}

function addCSSClassById(objectId,classname){
	addCSSClassByObject(document.getElementById(objectId),classname);
}

function removeCSSClassById(objectId,classname){
	removeCSSClassByObject(document.getElementById(objectId),classname);
}

function addCSSClassByObject(object,classname){
	if(object){
		removeCSSClassByObject(object,classname);
		object.className = object.className +" "+ classname;
	}
}

function removeCSSClassByObject(object,classname){
	if(object){	
		object.className = object.className.replace(classname, "");
	}
}

function addCompositeFieldError(form, fieldPrefix,classname) {
	if (form != null) {
		for (var n = 0; n < form.elements.length; n++) {
			var element = form.elements[n];
			if (element.name.indexOf(fieldPrefix) == 0) {
				addCSSClassByObject(element,classname);
			}
		}
	}
}

function removeCompositeFieldError(form, fieldPrefix,classname) {
	if (form != null) {
		for (var n = 0; n < form.elements.length; n++) {
			var element = form.elements[n];
			if (element.name.indexOf(fieldPrefix) == 0) {
				removeCSSClassByObject(element,classname);
			}
		}
	}
}

function resetFieldById(objectId){
	return resetFieldByObject(document.getElementById(objectId));
}

function resetFieldByObject(object){
	if(object){	
		if(object.nodeName=="INPUT"){
			object.value = "";
		}
		if(object.nodeName=="SELECT"){
			for (i=0;i<object.options.length;i++){
				object.options[i].selected=false;
			} 
		}
	}	
}
	
function getIntValue(stringValue){
	var match = stringValue.match(/\d+/);
	return parseInt(match[0], 10);
}

function getFormElementObject(thisForm,elementname){
	return thisForm.elements[elementname];
}

function removeCSSClassByObjectsType(tagName,className){
	var tags=document.getElementsByTagName(tagName);
	for (var i=0; i<tags.length; i++) {
		removeCSSClassByObject(tags[i],className);
	}
}

function foldObjectsByClass(tagName,className){
	var tags=document.getElementsByTagName(tagName);
	for (var i=0; i<tags.length; i++) {
		 if(tags[i].className.indexOf(className)!=-1){
			 foldObject(tags[i]);
		 }
	}
}