function checkServicesActivation(form,namespace){
//return true;
	var messages = new Array();
	l = form.elements.length;
	count = 0;
	for (i=0; i<l; i++) {
		elem = form.elements[i];
		if (elem.type == "checkbox" && elem.name == "serviceId" && elem.checked) {
			count++;
			var conflictedServices = new Array();
			var dependantServices = new Array();
			serviceId = elem.value;
			serviceAttribsElem = document.getElementById(namespace+"serviceAttributes"+serviceId);
			divs = serviceAttribsElem.childNodes;
			serviceName = serviceAttribsElem.firstChild.textContent;
			isActivable = false;
			myStatus = "";
			dl = divs.length;
			for (d=0; d<dl; d++) {
				theDiv = divs[d];
				if (theDiv.nodeType != 1/*Node.ELEMENT_NODE*/) continue;
				theClass = theDiv.className;//getAttribute("class");
				if (theClass=="displayName") {
					serviceName = getTextContent(theDiv);
				} else if (theClass=="status") {
					myStatus = getTextContent(theDiv);
				} else if (theClass=="activable") {
					isActivable = true;
				} else if (theClass=="conflictsWith") {
					conflictDivs = theDiv.getElementsByTagName("div");
					cl = conflictDivs.length;
					for (c=0; c<cl; c++) {
						conflictDiv = conflictDivs[c];
						conflictId = conflictDiv.className;//getAttribute("class");
						otherElem = document.getElementById(namespace+"serviceId"+conflictId);
						if (otherElem) {
							if (otherElem.checked) {
								otherElem = document.getElementById(namespace+"serviceAttributes"+conflictId);
								otherDivs = otherElem.childNodes;
								for (o=0; o<otherDivs.length; o++) {
									if (otherDivs[o].nodeType != 1/*Node.ELEMENT_NODE*/) continue;
									if (otherDivs[o].className == "status") {
										otherStatus = getTextContent(otherDivs[o]);
									}
								}
								if ((otherStatus == "NotActivated")||(otherStatus == "Pending")) {
									conflictedServices[conflictedServices.length] = getTextContent(conflictDiv);
									//otherElem.checked = false;
								}
							}
						}
					}
				} else if (theClass=="dependsOn") {
					dependDivs = theDiv.getElementsByTagName("div");
					cl = dependDivs.length;
					for (c=0; c<cl; c++) {
						dependDiv = dependDivs[c];
						dependId = dependDiv.className;//getAttribute("class");
						otherElem = document.getElementById(namespace+"serviceId"+dependId);
						if (otherElem) {
							if (!otherElem.checked) {
								otherElem = document.getElementById(namespace+"serviceAttributes"+dependId);
								otherDivs = otherElem.childNodes;
								for (o=0; o<otherDivs.length; o++) {
									if (otherDivs[o].nodeType != 1/*Node.ELEMENT_NODE*/) continue;
									if (otherDivs[o].className == "status") {
										otherStatus = getTextContent(otherDivs[o]);
									}
								}
								if (otherStatus != "Activated") {
									dependantServices[dependantServices.length] = getTextContent(dependDiv);
									//otherElem.checked = true;
								}
							}
						}
					}
				}
			}
			if (myStatus != "NotActivated") {
				messages[messages.length] = getPortalLocalizedMessage("service.not.deactivated",serviceName);
				//elem.checked = false;
			} else if (!isActivable) {
				messages[messages.length] = getPortalLocalizedMessage("service.not.activable",serviceName);
				//elem.checked = false;
			}
			if (conflictedServices.length > 0) {
				messages[messages.length] = getPortalLocalizedMessage("service.conflicts.activate",serviceName)+"\n"+arrayToString(conflictedServices);
			}
			if (dependantServices.length > 0) {
				messages[messages.length] = getPortalLocalizedMessage("service.depends.activate",serviceName)+"\n"+arrayToString(dependantServices);
			}
		}
	}
	if (messages.length > 0) {
		alert(arrayToString(messages));
		return false;
	} else if (count == 0) {
		alert(getPortalLocalizedMessage("no.service.selected"));
	} else {
		return true;
	}
}

function checkServicesDeactivation(form,namespace){
	var messages = new Array();
	l = form.elements.length;
	count = 0;
	for (i=0; i<l; i++) {
		elem = form.elements[i];
		if (elem.type == "checkbox" && elem.name == "serviceId" && elem.checked) {
			count++;
			serviceId = elem.value;
			var conflictedServices = new Array();
			var dependantServices = new Array();
			serviceAttribsElem = document.getElementById(namespace+"serviceAttributes"+serviceId);
			divs = serviceAttribsElem.childNodes;
			serviceName = getTextContent(serviceAttribsElem.firstChild);
			isDeactivable = false;
			myStatus = "";
			dl = divs.length;
			for (d=0; d<dl; d++) {
				theDiv = divs[d];
				if (theDiv.nodeType != 1/*Node.ELEMENT_NODE*/) continue;
				theClass = theDiv.className;//getAttribute("class");
				if (theClass=="displayName") {
					serviceName = getTextContent(theDiv);
				} else if (theClass=="status") {
					myStatus = getTextContent(theDiv);
				} else if (theClass=="deactivable") {
					isDeactivable = true;
				}
			}
			if (myStatus != "Activated") {
				messages[messages.length] = getPortalLocalizedMessage("service.not.activated",serviceName);
				//elem.checked = false;
			} else if (!isDeactivable) {
				messages[messages.length] = getPortalLocalizedMessage("service.not.deactivable",serviceName);
				//elem.checked = false;
			}
			//dependsOn z druhej strany
			for (j=0; j<l; j++) {
				elem = form.elements[i];
				if (elem.type == "checkbox" && elem.name == "serviceId" && !elem.checked && elem.value != serviceId) {
					otherAttribsElem = document.getElementById(namespace+"serviceAttributes"+serviceId);
					otherName = getTextContent(otherAttribsElem.firstChild);
					adivs = otherAttribsElem.getElementsByTagName("div");
					myStatus = "";
					for (a=0; a<adivs.length; a++) {
						if (adivs[a].className == "displayName") {
							otherName = getTextContent(adivs[a]);
						} else if (adivs[a].className == "status") {
							myStatus = getTextContent(adivs[a]);
						} else if ((adivs[a].className == "dependsOn")&&(myStatus == "Activated")) {
							bdivs = adivs[a].getElementsByTagName("div");
							for (b=0; b<bdivs.length; b++) {
								if (bdivs[b].className == serviceId) {
									dependantServices[dependantServices.length] = otherName;
								}
							}
						}
					}
				}
			}
			if (dependantServices.length > 0) {
				messages[messages.length] = getPortalLocalizedMessage("service.depends.deactivate",serviceName)+"\n"+arrayToString(dependantServices);
			}
		}
	}
	if (messages.length > 0) {
		alert(arrayToString(messages));
		return false;
	} else if (count == 0) {
		alert(getPortalLocalizedMessage("no.service.selected"));
	} else {
		return confirm(getPortalLocalizedMessage("confirm.services.deactivation"));
	}
}

function checkServicesModification(form,namespace){
	var messages = new Array();
	l = form.elements.length;
	count = 0;
	for (i=0; i<l; i++) {
		elem = form.elements[i];
		if (elem.type == "checkbox" && elem.name == "serviceId" && elem.checked) {
			count++;
			serviceId = elem.value;
			serviceAttribsElem = document.getElementById(namespace+"serviceAttributes"+serviceId);
			divs = serviceAttribsElem.childNodes;
			serviceName = getTextContent(serviceAttribsElem.firstChild);
			isModifiable = false;
			myStatus = "";
			dl = divs.length;
			for (d=0; d<dl; d++) {
				theDiv = divs[d];
				if (theDiv.nodeType != 1/*Node.ELEMENT_NODE*/) continue;
				theClass = theDiv.className;//getAttribute("class");
				if (theClass=="displayName") {
					serviceName = getTextContent(theDiv);
				} else if (theClass=="status") {
					myStatus = getTextContent(theDiv);
				} else if (theClass=="modifiable") {
					isModifiable = true;
				}
			}
			if (myStatus != "Activated") {
				messages[messages.length] = getPortalLocalizedMessage("service.not.activated.modify",serviceName);
				//elem.checked = false;
			} else if (!isModifiable) {
				messages[messages.length] = getPortalLocalizedMessage("service.not.modifiable",serviceName);
				//elem.checked = false;
			}
		}
	}
	if (messages.length > 0) {
		alert(arrayToString(messages));
		return false;
	} else if (count == 0) {
		alert(getPortalLocalizedMessage("no.service.selected"));
	} else {
		return true;
	}
}

function checkServiceBulkActivation(form,namespace){
//return true;
	var messages = new Array();
	l = form.elements.length;
	count = 0;
	for (i=0; i<l; i++) {
		elem = form.elements[i];
		if (elem.type == "checkbox" && elem.name == "msisdn" && elem.checked) {
			count++;
			contractDn = elem.value;
		}
	}
	if (messages.length > 0) {
		alert(arrayToString(messages));
		return false;
	} else if (count == 0) {
		alert(getPortalLocalizedMessage("no.contract.selected"));
	} else {
		return true;
	}
}
