function compareProducts() {
	var queryString = "";
	var oidList	= getFormElement('compareform', 'oids').value;
	var oidArray = splitProducts(oidList);
	if (oidArray != null) {
		for (var i = 0; i < oidArray.length; i++) {
			var value = oidArray[i];
			if (value.length > 0) {
				queryString += "&oids=" +  oidArray[i];
			}
		}
	}
	var counter = getArrayLength(oidArray);
	if (counter <= 0) {
		alert(noneSelected)	;
		return;
	}
	if (counter > 5) {
		alert(invalidSelection);
		return;
	} else {
		location.href = getFormActionUrl() + queryString.substr(1,queryString.length);
	}
	return false;
}


function productToSave(product) {
	var addOidList;
	var remOidList;
	var counter = 0;
	
	for (var i= 0; i < document.forms.length; i++){
		var formName = document.forms[i].name;
		var isValidForm = formName.indexOf("compareform");
		if (isValidForm != -1){
			for (var j = 0; j < document.forms[i].elements.length; j++){
				var elementName = document.forms[i].elements[j].name;
				var isValidElement = elementName.indexOf("product");
				
				if (isValidElement != -1) {
					var elementValue = document.forms[i].elements[j].value;					
					if (document.forms[i].elements[j].checked) {
						if (addOidList == null) {
							addOidList = "";	
						}
						addOidList += elementValue;
						addOidList += ",";
					} else {
						if (remOidList == null) {
							remOidList = "";	
						}
						remOidList += elementValue;
						remOidList += ",";
					}
				}
			}
		}
	}
	var savedOidList = getFormElement('compareform', 'oids').value;
	var updatedOidList = removeFromOidList(savedOidList, remOidList);
	var checkedOidList = checkWithOidList(addOidList, updatedOidList);
	var checkedOidArray = splitProducts(checkedOidList);
	
	if (checkedOidArray != null) {
		counter = getArrayLength(checkedOidArray);
		if (counter <= 5) {
			getFormElement('compareform', 'oids').value = checkedOidList;
		}
	} else {
		getFormElement('compareform', 'oids').value = "";
	}
	if (counter > 5) {
		product.checked = false;
		alert(invalidSelection);
		return;
	}
	return false;
}

function getFormActionUrl() {
	var actionUrl = document.compareform.action;
	return actionUrl;
}

function goToPage(link) {
	var oidList = 	getFormElement('compareform', 'oids').value;	
	if (oidList != "") {
		location.href = link + "&comparelist=" + oidList;
	} else {
		location.href = link;
	}
}

function getArrayLength(array) {
	var counter = 0;
	for (var i = 0; i < array.length; i++) {
		if (array[i].length > 0) {
			counter++;
		}
	}
	return counter;
}

function getFormElement(form, element) {
	for (var i= 0; i < document.forms.length; i++){
		var formName = document.forms[i].name;
		var isValidForm = formName.indexOf(form);
		if (isValidForm != -1){
			for (var j = 0; j < document.forms[i].elements.length; j++){
				var elementName = document.forms[i].elements[j].name;
				var isValidElement = elementName.indexOf(element);
				if (isValidElement != -1) {
					return document.forms[i].elements[j];
				}
			}
		}
	}
	return;
}

function splitProducts(oids) {
	var oidArray;
	if (oids != null){
		oidArray = oids.split(",");
	}
	return oidArray;
}

function removeFromOidList(savedOidList, remOidList) {
	var newOidList = "";
	var hasOid = false;
	if (remOidList == null) {
		return savedOidList;
	}
	
	if (savedOidList != null) {
		var oidList = 	splitProducts(savedOidList);
		for (var i = 0; i < oidList.length; i++) {
			if (oidList[i] != null && oidList[i] != "") {
				if (remOidList.indexOf(oidList[i]) < 0) {
					newOidList += oidList[i];
					newOidList += ",";
				} else {
					hasOid = true;
				}
			}
		}
	}
	
	if (newOidList != "" && !hasOid) {
		newOidList = savedOidList
	}
	
	return newOidList;
}

function checkWithOidList(addOidList, updatedOidList) {
	var newOidList;
	if (updatedOidList == null) {
		return addOidList;
	}	
	if (addOidList == null) {
		return 	updatedOidList;
	}		
	var addOids = splitProducts(updatedOidList);
	for (var i = 0; i < addOids.length; i++) {
		var matchedOid = addOidList.match(addOids[i]);
		if (newOidList == null) {
			newOidList = addOidList;
		}
		if (matchedOid == null) {
			newOidList += addOids[i];
			newOidList += ",";
		} 
	}
	return newOidList;	
}
