﻿ // check positive numeric must be integer
 function isPosNumWOD(str) {
	for (var j=0; j<str.length; j++) {
		var temp = str.charAt(j);
        if (!((temp=='0') || (temp=='1') || (temp=='2') || (temp=='3') || (temp=='4') || (temp=='5') || (temp=='6') || (temp=='7') || (temp=='8') || (temp=='9') )){
			return false;
            break;
        }
        // if j = last term, it means true - all char are digits!! Great
        if (j == str.length-1)
			return true;
	}
 }

 //display error message ('field name', 'err msg')
 function error(elem, text) {
	if (errfound) return;
	window.alert (text);
	elem.focus();
	errfound=true;
 }

 function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');

	if(isNaN(num))
		num = "0";

	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();

	if(cents<10)
		cents = "0" + cents;

	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 (((sign)?'':'-') + num + '.' + cents);
}

NoOfProductID = 10;

var ProductID = new Array();
ProductID[-1] = -1;
ProductID[0] = 0;
ProductID[1] = 1;
ProductID[2] = 2;
ProductID[3] = 3;
ProductID[4] = 4;
ProductID[5] = 5;
ProductID[6] = 6;
ProductID[7] = 7;
ProductID[8] = 8;
ProductID[9] = 9;

var ProductName = new Array();
ProductName[-1] = '';
ProductName[0] = 'Bar & Lounge';
ProductName[1] = 'Chinese Restaurant';
ProductName[2] = 'Discotheque';
ProductName[3] = 'Hairdressing & Beauty Salon';
ProductName[4] = 'Hotel & Guesthouse';
ProductName[5] = 'Karaoke';
ProductName[6] = 'Karaoke (Secondary Entertainment)';
ProductName[7] = 'Night Club, Ballroom & Dancing Hall';
ProductName[8] = 'Restaurant (Except Chinese Restaurant)';
ProductName[9] = 'Retail Store';

var Name01 = new Array();
Name01[-1] = '';
Name01[0] = 'Seats';
Name01[1] = 'Seats';
Name01[2] = 'Seats';
Name01[3] = 'Seats';
Name01[4] = 'Rooms';
Name01[5] = 'Seats';
Name01[6] = 'Seats';
Name01[7] = 'Seats';
Name01[8] = 'Seats';
Name01[9] = 'Seats';

var MinPrice = new Array();
MinPrice[-1] = 0;
MinPrice[0] = 5000;
MinPrice[1] = 3500;
MinPrice[2] = 0;
MinPrice[3] = 1350;
MinPrice[4] = 9000;
MinPrice[5] = 0;
MinPrice[6] = 0;
MinPrice[7] = 1700;
MinPrice[8] = 1800;
MinPrice[9] = 1100;

var SeatPrice = new Array();
SeatPrice[-1] = 0;
SeatPrice[0] = 180;
SeatPrice[1] = 9999;
SeatPrice[2] = 9999;
SeatPrice[3] = 135;
SeatPrice[4] = 9999;
SeatPrice[5] = 81;
SeatPrice[6] = 0;
SeatPrice[7] = 90;
SeatPrice[8] = 100;
SeatPrice[9] = 0;

var SquarePrice = new Array();
SquarePrice[-1] = 0;
SquarePrice[0] = 0;
SquarePrice[1] = 0;
SquarePrice[2] = 0;
SquarePrice[3] = 0;
SquarePrice[4] = 0;
SquarePrice[5] = 0;
SquarePrice[6] = 0;
SquarePrice[7] = 0;
SquarePrice[8] = 0;
SquarePrice[9] = 2.2;

var ScreenPrice = new Array();
ScreenPrice[-1] = false;
ScreenPrice[0] = false;
ScreenPrice[1] = false;
ScreenPrice[2] = false;
ScreenPrice[3] = false;
ScreenPrice[4] = false;
ScreenPrice[5] = true;
ScreenPrice[6] = true;
ScreenPrice[7] = false;
ScreenPrice[8] = false;
ScreenPrice[9] = false;

function appendOptionLast(inElement, inText, inValue, inSelect)
{
    var elOptNew = document.createElement('option');
    elOptNew.text = inText;
    elOptNew.value = inValue;
    elOptNew.selected = inSelect;
    var elSel = document.getElementById(inElement);

    try {
        elSel.add(elOptNew, null); // standards compliant; doesn't work in IE
    }
    catch(ex) {
        elSel.add(elOptNew); // IE only
    }
}

function LoadProduct()
{
	appendOptionLast('product', '-- Select One --', -1, true);

    for (i=0; i<NoOfProductID; i++) {
        appendOptionLast('product', ProductName[i], ProductID[i], false);
    }
}

function FirstLoad()
{
	LoadTariff();
	LoadProduct();
	Clear();
}

function LoadTariff()
{
	$('#BT0').text(ProductName[0]);
	$('#BT1').text(ProductName[1]);
	$('#BT2').text(ProductName[2]);
	$('#BT3').text(ProductName[3]);
	$('#BT4').text(ProductName[4]);
	$('#BT5').text(ProductName[5]);
	$('#BT6').text(ProductName[6]);
	$('#BT7').text(ProductName[7]);
	$('#BT8').text(ProductName[8]);
	$('#BT9').text(ProductName[9]);
}

function Clear()
{
	// Clear All the result
	$('#license-fee').text('---');
	document.aspnetForm.area.value='';
	document.aspnetForm.screen.value='';
	document.aspnetForm.person.value='';
}

function ClientSelected()
{
	Clear();

	selectProductID = document.aspnetForm.product.value;

	if (SquarePrice[selectProductID]==0) {
		document.getElementById('showArea').style.display = 'none';
	} else {
		document.getElementById('showArea').style.display = 'block';
	}

	if (SeatPrice[selectProductID]==0) {
		document.getElementById('showPerson').style.display = 'none';
	} else {
		document.getElementById('showPerson').style.display = 'block';
		$('#Name01').text(Name01[selectProductID]);
		$('#Name01_pcs').text(Name01[selectProductID].toLowerCase());
	}

	if (ScreenPrice[selectProductID]) {
		document.getElementById('showScreen').style.display = 'block';
	} else {
		document.getElementById('showScreen').style.display = 'none';
	}

	setFocusWithTimer();
}

function setFocusWithTimer()
{
	setTimeout('setFocus()',1);
}

function setFocus()
{
	showButton = false;

	if (document.getElementById('showArea').style.display == 'block') {
		document.aspnetForm.area.focus();
		showButton = true;
	}

	if (document.getElementById('showScreen').style.display == 'block') {
		document.aspnetForm.screen.focus();
		showButton = true;
	}

	if (document.getElementById('showPerson').style.display == 'block') {
		if (!showButton) {
			document.aspnetForm.person.focus();
			showButton = true;
		}
	}

	if (showButton) {
		document.getElementById('submit').style.display = 'block';
	} else {
		document.getElementById('submit').style.display = 'none';
	}

}

function Calulate()
{
	if (Validate()) {
		ttlVal = getAmount_PerAnnum() + getAmount_PerSquare() + getAmount_PerScreen();
		ttlVal = getMinAmount(ttlVal);
		$('#license-fee').text(formatCurrency(ttlVal));
	}

	setFocusWithTimer();
}

// Cal Min Price
function getMinAmount(inPrice)
{
	resultValue = inPrice;
	selectProductID = getProductID();
	MinOrgValue = MinPrice[selectProductID];

	if (MinOrgValue > inPrice) {
		resultValue = MinOrgValue;
	}

	return resultValue;
}

//Per Annum (Person / Seat)
function getAmount_PerAnnum()
{
	resultValue = 0;
	selectProductID = getProductID();
	if (document.aspnetForm.person.value.length>0) {
		AnnumOrgValue = SeatPrice[selectProductID];
		AnnumInpValue = parseInt(document.aspnetForm.person.value);
		switch (selectProductID) {
			case 1: {
				//Define Price
				Price_1_50 = 72;
				Price_51_100 = 60;
				Price_101_200 = 45;
				Price_201up = 15

				//Sum Price
				Price50 = Price_1_50 * 50;
				Price100 = (Price_51_100 * 50) + Price50;
				Price200 = (Price_101_200 * 100) + Price100;

				if (AnnumInpValue>200) {
					resultValue = (Price_201up * (AnnumInpValue - 200)) + Price200;
				} else if (AnnumInpValue>100) {
					resultValue = (Price_101_200 * (AnnumInpValue - 100)) + Price100;
				} else if (AnnumInpValue>50) {
					resultValue = (Price_51_100 * (AnnumInpValue - 50)) + Price50;
				} else {
					resultValue = (Price_1_50 * AnnumInpValue);
				}

				break
			}
			case 2: {
				//Define Price
				if (AnnumInpValue>200) {
					resultValue = 160000;
				} else if (AnnumInpValue>=101 && AnnumInpValue<=200) {
					resultValue = 130000;
				} else if (AnnumInpValue>=51 && AnnumInpValue<=100) {
					resultValue = 99000;
				} else if (AnnumInpValue>=1 && AnnumInpValue<=50) {
					resultValue = 68000;
				}

				break
			}
			case 4: {
				//Define Price
				Price_1_500 = 90;
				Price_501up = 50;

				//Sum Price
				Price500 = (Price_1_500 * 500);

				if (AnnumInpValue>500) {
					resultValue = (Price_501up * (AnnumInpValue - 500)) + Price500;
				} else {
					resultValue = (Price_1_500 * AnnumInpValue);
				}

				break
			}
			default: {
				resultValue = AnnumInpValue * AnnumOrgValue;
				break
			}
		}
	}

	return resultValue;
}

// Per Square
function getAmount_PerSquare()
{
	resultValue = 0;
	selectProductID = getProductID();

	//Set Area Value
	if (document.aspnetForm.area.value.length>0) {
		SquareOrgValue = SquarePrice[selectProductID];
		SquareInpValue = parseInt(document.aspnetForm.area.value);
		resultValue = SquareOrgValue * SquareInpValue;
	}

	return resultValue;
}

// Per Screen
function getAmount_PerScreen()
{
	resultValue = 0;
	selectProductID = getProductID();

	//Set Screen Value
	if (document.aspnetForm.screen.value.length>0) {
		ScreenInpValue = parseInt(document.aspnetForm.screen.value);
		switch (selectProductID) {
			case 5: {
				//Define Price
				Price_1_10 = 3285;
				Price_11_20 = 648;
				Price_21up = 387;

				//Sum Price
				Price10 = Price_1_10 * 10;
				Price20 = Price10 + (Price_11_20 * 10);

				if (ScreenInpValue>20) {
					resultValue = (Price_21up * (ScreenInpValue - 20)) + Price20;
				} else if (ScreenInpValue>10) {
					resultValue = (Price_11_20 * (ScreenInpValue - 10)) + Price10;
				} else {
					resultValue = (Price_1_10 * ScreenInpValue);
				}

				break
			}
			case 6: {
				//Define Price
				Price_1 = 3285;
				Price_2_10 = 648;
				Price_11up = 387;

				//Sum Price
				Price10 = (Price_2_10 * 9) + Price_1;

				if (ScreenInpValue>10) {
					resultValue = (Price_11up * (ScreenInpValue - 10)) + Price10;
				} else if (ScreenInpValue>1) {
					resultValue = (Price_2_10 * (ScreenInpValue - 1)) + Price_1;
				} else {
					resultValue = (Price_1 * ScreenInpValue);
				}

				break
			}
			default: {
				break
			}
		}
	}

	return resultValue;
}

//Get ProductID
function getProductID() {
	return parseInt(document.aspnetForm.product.value);
}

function Validate()
{
	errfound= false;

	if (document.getElementById('showArea').style.display == 'block') {
		if (document.aspnetForm.area.value.length==0)
			document.aspnetForm.area.value = 0;

		if (!isPosNumWOD(document.aspnetForm.area.value))
			error(document.aspnetForm.area,"No. of Area must be a positive integer");
	}

	if (document.getElementById('showScreen').style.display == 'block') {
		if (document.aspnetForm.screen.value.length==0)
			document.aspnetForm.screen.value = 0;

		if (!isPosNumWOD(document.aspnetForm.screen.value))
			error(document.aspnetForm.screen,"No. of Screen must be a positive integer");
	}

	if (document.getElementById('showPerson').style.display == 'block') {
		if (document.aspnetForm.person.value.length==0)
			document.aspnetForm.person.value = 0;

		if (!isPosNumWOD(document.aspnetForm.person.value))
			error(document.aspnetForm.person,"No. of Seats must be a positive integer");
	}

	/*if (!isPosNumWOD(document.aspnetForm.area.value) && document.aspnetForm.area.value.length>0) {
		error(document.aspnetForm.area,"No. of Area must be a positive integer");
	} else if (!isPosNumWOD(document.aspnetForm.area.value) && document.getElementById('showPerson').style.display == 'none') {
		error(document.aspnetForm.area,"No. of Area must be a positive integer");
	}

	if (!isPosNumWOD(document.aspnetForm.person.value) && document.aspnetForm.person.value.length>0) {
		error(document.aspnetForm.person,"No. of Seats must be a positive integer");
	} else if (!isPosNumWOD(document.aspnetForm.person.value) && document.getElementById('showArea').style.display == 'none' && document.getElementById('showScreen').style.display == 'none') {
		error(document.aspnetForm.person,"No. of Seats must be a positive integer");
	}

	if (document.getElementById('showPerson').style.display == 'block' && document.getElementById('showArea').style.display == 'block') {
		if (document.aspnetForm.area.value.length+document.aspnetForm.person.value.length==0)
		error(document.aspnetForm.area,"Please input the value");
	}

	if (document.getElementById('showPerson').style.display == 'block' && document.getElementById('showScreen').style.display == 'block') {
		if (document.aspnetForm.screen.value.length+document.aspnetForm.person.value.length==0)
		error(document.aspnetForm.screen,"Please input the value");
	}*/

	return !errfound;
}

function KeyDown(event,actionType)
{
	if (event.keyCode == 13)
    {
		calStatus = false;

		if (actionType==0) {
			if (document.getElementById('showPerson').style.display == 'block') {
				document.aspnetForm.person.focus();
			} else {
				Calulate();
				document.aspnetForm.area.focus();
			}
		} else if (actionType==1) {
			Calulate();
			document.aspnetForm.person.focus();
		} else if (actionType==2) {
			if (document.getElementById('showPerson').style.display == 'block') {
				document.aspnetForm.person.focus();
			} else {
				Calulate();
				document.aspnetForm.screen.focus();
			}
		}
	}
}

function selectBusinessType(actionType)
{
	var selObj = document.getElementById('product');
	selObj.selectedIndex = actionType+1;

	ClientSelected();
}

FirstLoad();

