function NumberFormat(num, inputDecimal)
{
this.COMMA=',';
this.PERIOD='.';
this.DASH='-';
this.LEFT_PAREN='(';
this.RIGHT_PAREN=')';
this.LEFT_OUTSIDE=0;
this.LEFT_INSIDE=1;
this.RIGHT_INSIDE=2;
this.RIGHT_OUTSIDE=3;
this.LEFT_DASH=0;
this.RIGHT_DASH=1;
this.PARENTHESIS=2;
this.NO_ROUNDING=-1
this.num;
this.numOriginal;
this.hasSeparators=false;
this.separatorValue;
this.inputDecimalValue;
this.decimalValue;
this.negativeFormat;
this.negativeRed;
this.hasCurrency;
this.currencyPosition;
this.currencyValue;
this.places;
this.roundToPlaces;
this.setNumber=setNumberNF;
this.toUnformatted=toUnformattedNF;
this.setInputDecimal=setInputDecimalNF;
this.setSeparators=setSeparatorsNF;
this.setCommas=setCommasNF;
this.setNegativeFormat=setNegativeFormatNF;
this.setNegativeRed=setNegativeRedNF;
this.setCurrency=setCurrencyNF;
this.setCurrencyPrefix=setCurrencyPrefixNF;
this.setCurrencyValue=setCurrencyValueNF;
this.setCurrencyPosition=setCurrencyPositionNF;
this.setPlaces=setPlacesNF;
this.toFormatted=toFormattedNF;
this.toPercentage=toPercentageNF;
this.getOriginal=getOriginalNF;
this.moveDecimalRight=moveDecimalRightNF;
this.moveDecimalLeft=moveDecimalLeftNF;
this.getRounded=getRoundedNF;
this.preserveZeros=preserveZerosNF;
this.justNumber=justNumberNF;
this.expandExponential=expandExponentialNF;
this.getZeros=getZerosNF;
this.moveDecimalAsString=moveDecimalAsStringNF;
this.moveDecimal=moveDecimalNF;
this.addSeparators=addSeparatorsNF;
if (inputDecimal == null) {
this.setNumber(num, this.PERIOD);
} else {
this.setNumber(num, inputDecimal);
}
this.setCommas(true);
this.setNegativeFormat(this.LEFT_DASH);
this.setNegativeRed(false);
this.setCurrency(false);
this.setCurrencyPrefix('$');
this.setPlaces(2);
}
function setInputDecimalNF(val)
{
this.inputDecimalValue=val;
}
function setNumberNF(num, inputDecimal)
{
if (inputDecimal != null) {
this.setInputDecimal(inputDecimal);
}
this.numOriginal=num;
this.num=this.justNumber(num);
}
function toUnformattedNF()
{
return (this.num);
}
function getOriginalNF()
{
return (this.numOriginal);
}
function setNegativeFormatNF(format)
{
this.negativeFormat=format;
}
function setNegativeRedNF(isRed)
{
this.negativeRed=isRed;
}
function setSeparatorsNF(isC, separator, decimal)
{
this.hasSeparators=isC;
if (separator == null) separator=this.COMMA;
if (decimal == null) decimal=this.PERIOD;
if (separator == decimal) {
this.decimalValue=(decimal == this.PERIOD) ? this.COMMA : this.PERIOD;
} else {
this.decimalValue=decimal;
}
this.separatorValue=separator;
}
function setCommasNF(isC)
{
this.setSeparators(isC, this.COMMA, this.PERIOD);
}
function setCurrencyNF(isC)
{
this.hasCurrency=isC;
}
function setCurrencyValueNF(val)
{
this.currencyValue=val;
}
function setCurrencyPrefixNF(cp)
{
this.setCurrencyValue(cp);
this.setCurrencyPosition(this.LEFT_OUTSIDE);
}
function setCurrencyPositionNF(cp)
{
this.currencyPosition=cp
}
function setPlacesNF(p)
{
this.roundToPlaces=!(p == this.NO_ROUNDING);
this.places=(p < 0) ? 0 : p;
}
function addSeparatorsNF(nStr, inD, outD, sep)
{
nStr += '';
var dpos=nStr.indexOf(inD);
var nStrEnd='';
if (dpos != -1) {
nStrEnd=outD + nStr.substring(dpos + 1, nStr.length);
nStr=nStr.substring(0, dpos);
}
var rgx=/(\d+)(\d{3})/;
while (rgx.test(nStr)) {
nStr=nStr.replace(rgx, '$1' + sep + '$2');
}
return nStr + nStrEnd;
}
function toFormattedNF()
{
var pos;
var nNum=this.num;
var nStr;
var splitString=new Array(2);
if (this.roundToPlaces) {
nNum=this.getRounded(nNum);
nStr=this.preserveZeros(Math.abs(nNum));
} else {
nStr=this.expandExponential(Math.abs(nNum));
}
if (this.hasSeparators) {
nStr=this.addSeparators(nStr, this.PERIOD, this.decimalValue, this.separatorValue);
}
var c0='';
var n0='';
var c1='';
var n1='';
var n2='';
var c2='';
var n3='';
var c3='';
var negSignL=(this.negativeFormat == this.PARENTHESIS) ? this.LEFT_PAREN : this.DASH;
var negSignR=(this.negativeFormat == this.PARENTHESIS) ? this.RIGHT_PAREN : this.DASH;
if (this.currencyPosition == this.LEFT_OUTSIDE) {
if (nNum < 0) {
if (this.negativeFormat == this.LEFT_DASH || this.negativeFormat == this.PARENTHESIS) n1=negSignL;
if (this.negativeFormat == this.RIGHT_DASH || this.negativeFormat == this.PARENTHESIS) n2=negSignR;
}
if (this.hasCurrency) c0=this.currencyValue;
} else if (this.currencyPosition == this.LEFT_INSIDE) {
if (nNum < 0) {
if (this.negativeFormat == this.LEFT_DASH || this.negativeFormat == this.PARENTHESIS) n0=negSignL;
if (this.negativeFormat == this.RIGHT_DASH || this.negativeFormat == this.PARENTHESIS) n3=negSignR;
}
if (this.hasCurrency) c1=this.currencyValue;
}
else if (this.currencyPosition == this.RIGHT_INSIDE) {
if (nNum < 0) {
if (this.negativeFormat == this.LEFT_DASH || this.negativeFormat == this.PARENTHESIS) n0=negSignL;
if (this.negativeFormat == this.RIGHT_DASH || this.negativeFormat == this.PARENTHESIS) n3=negSignR;
}
if (this.hasCurrency) c2=this.currencyValue;
}
else if (this.currencyPosition == this.RIGHT_OUTSIDE) {
if (nNum < 0) {
if (this.negativeFormat == this.LEFT_DASH || this.negativeFormat == this.PARENTHESIS) n1=negSignL;
if (this.negativeFormat == this.RIGHT_DASH || this.negativeFormat == this.PARENTHESIS) n2=negSignR;
}
if (this.hasCurrency) c3=this.currencyValue;
}
nStr=c0 + n0 + c1 + n1 + nStr + n2 + c2 + n3 + c3;
if (this.negativeRed && nNum < 0) {
nStr='<font color="red">' + nStr + '</font>';
}
return (nStr);
}
function toPercentageNF()
{
nNum=this.num * 100;
nNum=this.getRounded(nNum);
return nNum + '%';
}
function getZerosNF(places)
{
var extraZ='';
var i;
for (i=0; i<places; i++) {
extraZ += '0';
}
return extraZ;
}
function expandExponentialNF(origVal)
{
if (isNaN(origVal)) return origVal;
var newVal=parseFloat(origVal) + '';
var eLoc=newVal.toLowerCase().indexOf('e');
if (eLoc != -1) {
var plusLoc=newVal.toLowerCase().indexOf('+');
var negLoc=newVal.toLowerCase().indexOf('-', eLoc);
var justNumber=newVal.substring(0, eLoc);
if (negLoc != -1) {
var places=newVal.substring(negLoc + 1, newVal.length);
justNumber=this.moveDecimalAsString(justNumber, true, parseInt(places));
} else {
if (plusLoc == -1) plusLoc=eLoc;
var places=newVal.substring(plusLoc + 1, newVal.length);
justNumber=this.moveDecimalAsString(justNumber, false, parseInt(places));
}
newVal=justNumber;
}
return newVal;
}
function moveDecimalRightNF(val, places)
{
var newVal='';
if (places == null) {
newVal=this.moveDecimal(val, false);
} else {
newVal=this.moveDecimal(val, false, places);
}
return newVal;
}
function moveDecimalLeftNF(val, places)
{
var newVal='';
if (places == null) {
newVal=this.moveDecimal(val, true);
} else {
newVal=this.moveDecimal(val, true, places);
}
return newVal;
}
function moveDecimalAsStringNF(val, left, places)
{
var spaces=(arguments.length < 3) ? this.places : places;
if (spaces <= 0) return val;
var newVal=val + '';
var extraZ=this.getZeros(spaces);
var re1=new RegExp('([0-9.]+)');
if (left) {
newVal=newVal.replace(re1, extraZ + '$1');
var re2=new RegExp('(-?)([0-9]*)([0-9]{' + spaces + '})(\\.?)');
newVal=newVal.replace(re2, '$1$2.$3');
} else {
var reArray=re1.exec(newVal);
if (reArray != null) {
newVal=newVal.substring(0,reArray.index) + reArray[1] + extraZ + newVal.substring(reArray.index + reArray[0].length);
}
var re2=new RegExp('(-?)([0-9]*)(\\.?)([0-9]{' + spaces + '})');
newVal=newVal.replace(re2, '$1$2$4.');
}
newVal=newVal.replace(/\.$/, '');
return newVal;
}
function moveDecimalNF(val, left, places)
{
var newVal='';
if (places == null) {
newVal=this.moveDecimalAsString(val, left);
} else {
newVal=this.moveDecimalAsString(val, left, places);
}
return parseFloat(newVal);
}
function getRoundedNF(val)
{
val=this.moveDecimalRight(val);
val=Math.round(val);
val=this.moveDecimalLeft(val);
return val;
}
function preserveZerosNF(val)
{
var i;
val=this.expandExponential(val);
if (this.places <= 0) return val;
var decimalPos=val.indexOf('.');
if (decimalPos == -1) {
val += '.';
for (i=0; i<this.places; i++) {
val += '0';
}
} else {
var actualDecimals=(val.length - 1) - decimalPos;
var difference=this.places - actualDecimals;
for (i=0; i<difference; i++) {
val += '0';
}
}
return val;
}
function justNumberNF(val)
{
newVal=val + '';
var isPercentage=false;
if (newVal.indexOf('%') != -1) {
newVal=newVal.replace(/\%/g, '');
isPercentage=true;
}
var re=new RegExp('[^\\' + this.inputDecimalValue + '\\d\\-\\+\\(\\)eE]', 'g');
newVal=newVal.replace(re, '');
var tempRe=new RegExp('[' + this.inputDecimalValue + ']', 'g');
var treArray=tempRe.exec(newVal);
if (treArray != null) {
var tempRight=newVal.substring(treArray.index + treArray[0].length);
newVal=newVal.substring(0,treArray.index) + this.PERIOD + tempRight.replace(tempRe, '');
}
if (newVal.charAt(newVal.length - 1) == this.DASH ) {
newVal=newVal.substring(0, newVal.length - 1);
newVal='-' + newVal;
}
else if (newVal.charAt(0) == this.LEFT_PAREN
&& newVal.charAt(newVal.length - 1) == this.RIGHT_PAREN) {
newVal=newVal.substring(1, newVal.length - 1);
newVal='-' + newVal;
}
newVal=parseFloat(newVal);
if (!isFinite(newVal)) {
newVal=0;
}
if (isPercentage) {
newVal=this.moveDecimalLeft(newVal, 2);
}
return newVal;
}

function formatCurrencyTrlNew(num){
	num = num.toString();
num=num.replace(/\./g,'');
for (var i=0; i < Math.floor((num.length-(1+i))/3); i++)
num=num.substring(0,num.length-(4*i+3))+'.'+
num.substring(num.length-(4*i+3));
return num;
}

function round_up(a, numd) {
var num;
var dek;
var c;
var d;
var result1;
var the_result;
	dek = 10.0;
	num = numd;
	c = Math.pow(dek, num);
	d = a * c;
	result1 = Math.round(d);
	the_result = result1 / c;
	return the_result;
}

function CalcTR() {
    var ClientCost;
    var MaxClients;
    var Total;
	var Currency;
	var Cost;
	var Kdv;
	var Bonus;
	var Ay;
	var Turu;
	var Donem;
	var nf = new NumberFormat();
	nf.setInputDecimal(nf.PERIOD);
	nf.setSeparators(true, nf.PERIOD, nf.COMMA);
	var nZero = nf.setNumber(0);
   	ClientCost = 0.99;
	nZero = nf.toFormatted();
    MaxClients = parseInt(document.forms["frmorder"].pr_qty.value, 10);
	Currency = document.forms["frmorder"].pr_kur.value;
//	Turu = document.forms["frmorder"].pr_tur.value;
//	if (Turu == 1)
//    	ClientCost = 0.45;
//    else
//	    ClientCost = 20;	
	Donem = document.forms["frmorder"].pr_donem.value;
	Bonus = 0;
	Ay = Donem;
	if (Donem == 0) {
		Ay = 1;
		ClientCost = 35;		
	}
	else if (Donem == 3)
		Bonus = 1;
	else if (Donem == 6)
		Bonus = 2;
	else if (Donem == 12)
		Bonus = 4;		
    if (isNaN(MaxClients) || MaxClients == 0)
    {
	  if (Currency == "YTL") {
        document.forms["frmorder"].pr_tutar.value = nZero + " YTL";
        document.forms["frmorder"].pr_kdv.value = nZero + " YTL";
        document.forms["frmorder"].pr_toplam.value = nZero + " YTL";
      } else {
        document.forms["frmorder"].pr_tutar.value = "0 TL";
        document.forms["frmorder"].pr_kdv.value = "0 TL";
        document.forms["frmorder"].pr_toplam.value = "0 TL";
	  }
	  return;
    } else {
//		if (Bonus > 0 && Bonus < 6) {
//			document.forms["frmorder"].pr_bonus.value = Bonus + " Ay";
//		} else {
//			document.forms["frmorder"].pr_bonus.value = "";
//		}			
	    Cost = round_up(ClientCost * MaxClients * Ay, 2);
	    Kdv = round_up(0.18 * Cost, 2);
        Total = round_up(Cost + Kdv, 2);
		if (Currency == "YTL")
		{
		  nf.setNumber(Cost);
          document.forms["frmorder"].pr_tutar.value = nf.toFormatted() + " YTL";
          
		  nf.setNumber(Kdv);
          document.forms["frmorder"].pr_kdv.value = nf.toFormatted() + " YTL";

          nf.setNumber(Total);
          document.forms["frmorder"].pr_toplam.value = nf.toFormatted() + " YTL";
		} else {
		  Cost = Math.round(Cost * 1000000);
		  Kdv = Math.round(Kdv * 1000000);
		  Total = Math.round(Total * 1000000);

		  document.forms["frmorder"].pr_tutar.value = formatCurrencyTrlNew(Cost) + " TL";
          document.forms["frmorder"].pr_kdv.value = formatCurrencyTrlNew(Kdv) + " TL";
          document.forms["frmorder"].pr_toplam.value = formatCurrencyTrlNew(Total) + " TL";
		}
    }
}