//Global Vars
var roomChoices=new Array();
roomChoices[0]="M";
roomChoices[1]="XL";
roomChoices[2]="XS";



var moveChoices=new Array();
moveChoices[0]="No Move2";
moveChoices[1]="Light Move2";
moveChoices[2]="Heavy Move2";
	




var fullOutput = "";
var totalPrice = 0;

var taxAmount =0;
var subTotal = 0;

var minOrder = 59.95;

var numberOfRooms =0;
var subTotalTitle = "SubTotal";

var data=new Array();

//var defaultName = "MyCustomRoom-2";



function buildDataArray()
{
	for (var i=0;i<20;i++){
		data[i]= new Array();		
		data[i][0]=defaultName;
		data[i][1]=0;
		data[i][2]=0;
		data[i][3]=0;
		data[i][4]=false;
		data[i][5]=false;
		data[i][6]=false;
		data[i][7]=false;
		data[i][8]=0;
		//setRoomPriceHandler(i);
	}
}

function setNameHandler(a,b){
	data[a][0] = b;
	setRoomPriceHandler(a);
	setHousePrice();
}
function setQualityStandard(a,b){	
	data[a][1] = b;
	setRoomPriceHandler(a);
	setHousePrice();
}
function setSizeHandler(a,b){
	data[a][2] = b;
	setRoomPriceHandler(a);
	setHousePrice();
}
function setMoveHandler(a,b){
	data[a][3] = b;
	setRoomPriceHandler(a);
	setHousePrice();
}
function setVacuumHandler(a,b){
	data[a][4] = b;;
	setRoomPriceHandler(a);
	setHousePrice();
}
function setDryHandler(a,b){
	data[a][5] = b;
	setRoomPriceHandler(a);
	setHousePrice();
}
function setGuardHandler(a,b){
	data[a][6] = b;
	setRoomPriceHandler(a);
	setHousePrice();
}
function setEnzymeHandler(a,b){
	data[a][7] = b;
	setRoomPriceHandler(a);
	setHousePrice();
}



function setRoomPriceHandler(a){
	var roomPrice = 0;
	
	//  Calculate room size price
	switch(data[a][2]){
	case 0:
 	 	roomPrice = roomPrices[0];
  		break;
	case 1:
 	 	roomPrice = roomPrices[1];
  		break;
	case 2:
 	 	roomPrice = roomPrices[2];
  		break;
	}
	//Calculate economy discount
	switch(data[a][1]){
	case 1:
 	 	roomPrice *= ecoDiscount;
  		break;
	}
	//Calculate Move price
	switch(data[a][3]){
	case 0:
 	 	roomPrice += movePrices[0];
  		break;
	case 1:
 	 	roomPrice += movePrices[1];
  		break;
	case 2:
 	 	roomPrice += movePrices[2];
  		break;
	}
	if(data[a][4]){
 	 	roomPrice += preVacuumPrice;
	}
	if(data[a][5]){
 	 	roomPrice += quickDryPrice;
	}
	if(data[a][6]){
 	 	roomPrice += scotchGuardPrice;
	}
	if(data[a][7]){
 	 	roomPrice += petEnzymePrice;
	}
	
	data[a][8] = roomPrice;
	document.getElementById("money_".concat(a)).innerHTML = "$"+roomPrice;
	return roomPrice;
}

function setHousePrice(){
	subTotal =0;
	for(var i=0;i<numberOfRooms;i++){
		subTotal += data[i][8];
	}
	
	if(subTotal < minOrder){
		subTotal = minOrder;
		document.getElementById("subTotalTitle").innerHTML = 'Minimum Charge';
	}else{
		document.getElementById("subTotalTitle").innerHTML = subTotalTitle;
	}
	
	document.getElementById("subTotal").innerHTML = '$'+ subTotal;
	taxAmount = subTotal * taxRate;
	document.getElementById("tax").innerHTML = '$'+ taxAmount.toFixed(2);
	totalPrice = subTotal + taxAmount
	document.getElementById("total").innerHTML = '$'+ totalPrice.toFixed(2);
}

function formatAsMoney(mnt) {
    mnt -= 0;
    mnt = (Math.round(mnt*100))/100;
    return (mnt == Math.floor(mnt)) ? mnt + '.00' 
              : ( (mnt*10 == Math.floor(mnt*10)) ? 
                       mnt + '0' : mnt);
}

var http = createRequestObject(); 
function createRequestObject(){
	var request_o; //declare the variable to hold the object.
	var browser = navigator.appName; //find the browser name
	if(browser == "Microsoft Internet Explorer"){
		request_o = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		request_o = new XMLHttpRequest();
	}
	return request_o; //return the object
}

function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) {
         IsNumber = false;
         }
      }
   return IsNumber;
}

function buildInputArea(){
	if((IsNumeric(document.inputForm.numberOfRooms.value)==true)&&(document.inputForm.numberOfRooms.value!=0)){
		
		requestCodeFromPHP(document.inputForm.numberOfRooms.value);
		
	}else{
		document.inputForm.numberOfRooms.value = "Type only a number";
	}
}
function requestCodeFromPHP(a){
	if(a==0){a=1;}
	a = parseInt(a);
	http.open('get', 'codeSupply.php?action=startCode&id='+a);
	http.onreadystatechange = receiveCodeFromPHP; 
	http.send(null);
		
	numberOfRooms = a;
}

function receiveCodeFromPHP(){
	if(http.readyState == 4){ //Finished loading the response
		var response = http.responseText;
		document.getElementById('inputDiv').innerHTML = response;
		if(data[0]==undefined){
			buildDataArray();
		}
		
		for(var i=0;i<numberOfRooms;i++){	
			setRoomPriceHandler(i);
		}
		setHousePrice();
		applySavedData();
	}
}

function addRoomHandler(){
		requestCodeFromPHP(++numberOfRooms);
}

function applySavedData(){

	for(var i=0;i<numberOfRooms;i++){
		//document.getElementById("outputArea").innerHTML = "num: "+numberOfRooms+" i: "+i;
		document.getElementById("roomName_".concat(i)).value = data[i][0];
		document.getElementById("cleanType_".concat(i)).selectedIndex = data[i][1];
		document.getElementById("roomSize_".concat(i)).selectedIndex = data[i][2];
		document.getElementById("moveType_".concat(i)).selectedIndex = data[i][3];
		document.getElementById("preVacuum_".concat(i)).checked = data[i][4];
		document.getElementById("quickDry_".concat(i)).checked = data[i][5];
		document.getElementById("scotchGuard_".concat(i)).checked = data[i][6];
		document.getElementById("petEnzyme_".concat(i)).checked = data[i][7];
		document.getElementById("money_".concat(i)).innerHTML = "$"+data[i][8];
		setHousePrice();
	}	
}

function removeRoomHandler(a){
		data.splice(a,1);
		requestCodeFromPHP(--numberOfRooms);
}