/*
 Static Arrays with following parameters :
 type, total max people, array of max adults, array of max kids 1 and kids 2
*/
var singleMaxValues = [[1], [1], [false, false]];
var doublesingleuseMaxValues = [[1], [1], [false, false]];
var doubleMaxValues = [[2], [2], [false, false]];
var tripleMaxValues = [[3], [2,3], [true, false]];
var quadripleMaxValues = [[4], [2,3,4], [true, true]];
var suiteMaxValues = [[4], [2,3,4], [true, true]];
var studioMaxValues = [[4], [2,3,4], [true, true]];
var juniorsuiteMaxValues = [[4], [2,3,4], [true, true]];
var duplexMaxValues = [[4], [2,3,4], [true, true]];
//-------------pax---------------------------------
var pax1_1MaxValues = [[1], [1], [false, false]];
var pax1_2MaxValues = [[2], [1,2], [true, false]];
var pax2_2MaxValues = [[2], [2], [false, false]];
var pax2_3MaxValues = [[3], [2,3], [true, false]];
var pax2_4MaxValues = [[4], [2,3,4], [true, true]];
var pax3_5MaxValues = [[5], [3,4,5], [true, true]];
var pax4_5MaxValues = [[5], [4,5], [true, false]];
var pax4_6MaxValues = [[6], [4,5,6], [true, true]];
var pax6_8MaxValues = [[8], [6,7,8], [true, true]];
//-------------------------------------------------

function UpdateRoomNumbers(t, cID) {
 if(t.options[t.selectedIndex].value) {
    var type_id = t.id.split('_');
    prefix = (cID !='')? type_id[1]: type_id[0];
    id = (cID !='')? type_id[2].substr(type_id[2].length-1): type_id[1].substr(type_id[1].length-1);
    var a = document.getElementById(prefix+'_adults'+id);
    var kids1 = document.getElementById(prefix+'_kids1'+id);
    var kids2 = document.getElementById(prefix+'_kids2'+id);
  	
    if (prefix == 'room') {
	    var pArray = eval(t.options[t.selectedIndex].value.replace(new RegExp(' ','g'),'')+'MaxValues');
    } else {
	    var pArray = eval('pax'+t.options[t.selectedIndex].value.replace(new RegExp('/','g'),'_')+'MaxValues');
    }
    //---adults----
    a.options.length = 0;
    for(i=0;i<pArray[1].length;i++) {
	    a.options[a.options.length] = new Option(pArray[1][i], pArray[1][i], false, false);
    }
    //---kids ----
    kids1.disabled = !pArray[2][0];
    kids2.disabled = !pArray[2][1];
    if (!kids1.enabled)
      kids1.selectedIndex = 0;
    if (!kids2.enabled)
      kids2.selectedIndex = 0;	  
 }
}

/*TABLE MANIPULATION*/ 
function AddRoomTableRow(tablePrefix) {
	var roomTable = document.getElementById(controlID + '_'+tablePrefix+'Table');
	
	var roomBody = roomTable.getElementsByTagName("TBODY");
	var roomRows = roomBody[0].getElementsByTagName("TR");
	var offset = (tablePrefix == 'apart')? 0:1;// apart does not have pension
	
	if (roomRows.length <4+offset) {
		var old_dd = roomRows[offset].getElementsByTagName("SELECT")
		rNew = roomRows[offset].cloneNode(true);
		
		var dropdowns = rNew.getElementsByTagName("SELECT");
		
		dropdowns[0].setAttribute("id", controlID+"_"+tablePrefix+"_type"+(roomRows.length-offset));
		dropdowns[0].setAttribute("name", controlID+"$"+tablePrefix+"_type"+(roomRows.length-offset));
		dropdowns[0].setAttribute("selectedIndex", old_dd[0].getAttribute("selectedIndex"));
	
		dropdowns[1].setAttribute("id", tablePrefix+"_adults"+(roomRows.length-offset));
		dropdowns[1].setAttribute("name", tablePrefix+"_adults"+(roomRows.length-offset));
		dropdowns[1].setAttribute("selectedIndex", old_dd[1].getAttribute("selectedIndex"));
		
		dropdowns[2].setAttribute("id", tablePrefix+"_kids1"+(roomRows.length-offset));
		dropdowns[2].setAttribute("name", tablePrefix+"_kids1"+(roomRows.length-offset));
		dropdowns[2].setAttribute("selectedIndex", old_dd[2].getAttribute("selectedIndex"));
		
		dropdowns[3].setAttribute("id", tablePrefix+"_kids2"+(roomRows.length-offset));
		dropdowns[3].setAttribute("name", tablePrefix+"_kids2"+(roomRows.length-offset));
		dropdowns[3].setAttribute("selectedIndex", old_dd[3].getAttribute("selectedIndex"));

		var delBtn = rNew.getElementsByTagName("INPUT");
		delBtn[0].onclick = function (){RemoveTableRow(this)};
		delBtn[0].setAttribute("value", delTranslation);
		delBtn[0].setAttribute("id", "delbtn_"+tablePrefix+"_"+(roomRows.length-offset+1));
		delBtn[0].setAttribute("name", "delbtn_"+tablePrefix+"_"+(roomRows.length-offset+1));

		var validators = rNew.getElementsByTagName("SPAN");
		if(validators.length == 1) {
		 validators[0].setAttribute("controltovalidate", tablePrefix+"_type"+(roomRows.length-offset));
		 validators[0].setAttribute("id", tablePrefix+"_type"+"Validator"+(roomRows.length-offset));
		 Page_Validators[Page_Validators.length] = validators[0];
		}

		roomBody[0].appendChild(rNew);
		document.forms[0]["roomsCount"].value = roomRows.length-offset;
	}
}

function RemoveTableRow(obj) {
	var tablePrefix = obj.id.split('_')[1];
	var itemIndex = parseInt(obj.id.split('_')[2]);
	var roomTable = document.getElementById(controlID + '_'+tablePrefix+'Table');
	var roomBody = roomTable.getElementsByTagName("TBODY");
	var roomRows = roomBody[0].getElementsByTagName("TR");
	var offset = (tablePrefix == 'apart')? 0:1;// apart does not have pension
	
	for(i=itemIndex+1;i<=document.forms[0]["roomsCount"].value;i++) {
		var idN = i-1-offset;
		var dropdowns = roomRows[i].getElementsByTagName("SELECT");
		
		dropdowns[0].setAttribute("id", controlID+"_"+tablePrefix+"_type"+idN);
		dropdowns[0].setAttribute("name", controlID+"$"+tablePrefix+"_type"+idN);
	
		dropdowns[1].setAttribute("id", tablePrefix+"_adults"+idN);
		dropdowns[1].setAttribute("name", tablePrefix+"_adults"+idN);
		
		dropdowns[2].setAttribute("id", tablePrefix+"_kids1"+idN);
		dropdowns[2].setAttribute("name", tablePrefix+"_kids1"+idN);
		
		dropdowns[3].setAttribute("id", tablePrefix+"_kids2"+idN);
		dropdowns[3].setAttribute("name", tablePrefix+"_kids2"+idN);

		var delBtn = rNew.getElementsByTagName("INPUT");
		delBtn[0].setAttribute("id", "delbtn_"+tablePrefix+"_"+(idN+1));
		delBtn[0].setAttribute("name", "delbtn_"+tablePrefix+"_"+(idN+1));
		
	}
	roomBody[0].removeChild(roomRows[itemIndex]);
	document.forms[0]["roomsCount"].value = parseInt(document.forms[0]["roomsCount"].value) - 1;
	
}

function UpdateAddedRooms(tablePrefix) {
	var roomRows = document.getElementById(controlID + '_'+tablePrefix+'Table').getElementsByTagName("TBODY")[0].getElementsByTagName("TR");
	var offset = (tablePrefix == 'apart')? 0:1;// apart does not have pension
	if (roomRows.length > 1+offset) {
	  var baseDD = roomRows[offset].getElementsByTagName("SELECT")[0];
	  var i=offset+1;
	  while (i<roomRows.length) {
	    var dd = roomRows[i].getElementsByTagName("SELECT")[0];
	    var selVal = dd.options[dd.selectedIndex].value;
	    var index = FindOptionIndex(baseDD, selVal);
	    if (index != -1) {
	      dd.options.length = 0;
	      for(var y=0;y<baseDD.options.length;y++) {
	        dd.options[dd.length] = new Option(baseDD.options[y].text, baseDD.options[y].value, true, true);
	      }
	      dd.selectedIndex = index;
	      i++;
	    } else {
	      var dbtn = roomRows[i].getElementsByTagName("INPUT");
	      RemoveTableRow(dbtn[0]);
	    }
	  }
	}
}


function FindOptionIndex(o, val) {
	if (o != null && o.options != null && o.options.length > 0) {
		optionIndex = 0;
		while (optionIndex < o.options.length) {
			if (o.options[optionIndex].value == val) {
				break;
			}
			optionIndex++; 
		}
		if(optionIndex != o.options.length)
		  return optionIndex;
		else 
		  return -1;  
	} else {
		return -1;
	}
}
