function ShowHide(element)
{
	if (element.style.display == 'none')
		element.style.display='block';
	else
		element.style.display='none';
}

function ConfirmOperation(text, url)
{
	if ((text != '') && (url != ''))
	{
		if (confirm(text))
			location.href=url;
	}
}

function updateHtmlElement(fieldType, fieldName, fieldValue)
{
	field = document.getElementById(fieldName)
	if (fieldType == "input")
		field.value = fieldValue;
	else
		field.childNodes[0].nodeValue = fieldValue;
}


function getValue (fieldType, fieldName)
{
	var valueField = "";
	
	if (fieldName != "")
	{
		field = document.getElementById(fieldName);
		if (fieldType == "input")
			valueField = field.value;
		else
			valueField = field.childNodes[0].nodeValue;
	}
	
	return valueField;
}


function updateElement(fieldType, fieldName, fieldValue)
{
	field = document.getElementById(fieldName)
	if (fieldType == "input")
		field.value = fieldValue;
	else
		field.childNodes[0].nodeValue = fieldValue;
}

function CssTrOdd (i)
{
	var CSSclass = "";
	if ((i % 2) > 0)
		CSSclass = "odd";
	else
		CSSclass = "even";
	
	return CSSclass;
}


function formatNumberToOutput(num, decimalDim, locale)
{
	switch (locale)
	{
		case "us":
			decimalSeparator = ".";
			thousandsSeparator = ",";
			break;
		default:
			decimalSeparator = ",";
			thousandsSeparator = ".";
			break;
	}
	
	decimalDimTemp = decimalDim.toString();
	if (decimalDimTemp == "")
		decimalDim = 2;
  
	if(isNaN(num))
		num = "0";
	
	sign = (num == (num = Math.abs(num)));
	num = num.toFixed(decimalDim);
	
	num = num.toString();
	
	x = num.split(".");
	num = x[0];
	cents = x[1];
	
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+thousandsSeparator+num.substring(num.length-(4*i+3));
		
	return (((sign)?'':'-') + num + decimalSeparator + cents);
}


function formatNumberToDB(fieldType, fieldName, num)
{
	if (num.indexOf(",") > 0)
	{
		num = num.replace(",",".");
		updateElement(fieldType, fieldName, num);
	}

}


function division (fieldType, targetField, inputValue, divisionPer)
{
	var resultValue = 0;
	
	if (inputValue > 0 && divisionPer > 0)
		resultValue = inputValue / divisionPer;
	
	if (resultValue == 0)
		resultValue = "";
	
	updateElement(fieldType, targetField, resultValue);
}

function priceCalc (fieldType, targetField, inputValue, qty)
{
	var resultValue = 0;
	
	if (inputValue > 0 && qty > 0)
		resultValue = inputValue * qty;
	
	if (resultValue == 0)
		resultValue = "";
	
	updateElement(fieldType, targetField, resultValue);
}




function sumFields (fieldPrefix, targetField, maxValue, returnValue)
{
	var totalValue = 0;
	for (i = 1; i <= maxValue; i++)
	{
		valTemp = getValue ("input", fieldPrefix+i);
		if (valTemp.indexOf(",") > 0)
		{
			valTemp = valTemp.replace(",",".");
			updateElement("input", fieldPrefix+i, valTemp);
		}
		totalValue = parseFloat(totalValue) + parseFloat(valTemp);
	}
	
	
	numberResult = formatNumberToOutput(totalValue, 2, "");
	if (returnValue === undefined)
		return updateElement("", targetField, numberResult);
	else
		return totalValue;
	
}

function multiplyFields (field, targetField)
{
	valField = getValue ("input", field);
	if (valField.indexOf(",") > 0)
	{
		valField = valField.replace(",",".");
		updateElement("input", field, valField);
	}
	if (valField != ".")
	{
		valTarget = getValue ("input", targetField);
		if (valTarget.indexOf(",") > 0)
		{
			valTarget = valTarget.replace(",",".");
			//updateElement("input", targetField, valTarget);
		}
		
		totalValue = parseFloat(valField) * parseFloat(valTarget);
		
		//numberResult = formatNumberToOutput(totalValue, 2, "");
		
		updateElement("input", targetField, totalValue);		
	}	
}


function parUrlEncode (clearString) {
  var output = '';
  if (clearString != undefined)
  {
	var x = 0;
	clearString = clearString.toString();
	var regex = /(^[a-zA-Z0-9_.]*)/;
	while (x < clearString.length) {
	  var match = regex.exec(clearString.substr(x));
	  if (match != null && match.length > 1 && match[1] != '') {
		  output += match[1];
		x += match[1].length;
	  } else {
		if (clearString[x] == ' ')
		  output += '+';
		else {
		  var charCode = clearString.charCodeAt(x);
		  var hexVal = charCode.toString(16);
		  output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
		}
		x++;
	  }
	}	
  }
  return output;
}


function parURLDecode (encodedString) {
  var output = encodedString;
  var binVal, thisString;
  var myregexp = /(%[^%]{2})/;
  while ((match = myregexp.exec(output)) != null
             && match.length > 1
             && match[1] != '') {
    binVal = parseInt(match[1].substr(1),16);
    thisString = String.fromCharCode(binVal);
    output = output.replace(match[1], thisString);
  }
  return output;
}




