
function updateOption(el) {
	var groupOption = fetchSelected(el);

	if( groupOption != "none" ) {;
		optionSelect.options.length = 0;
		var j = 0;
		
		// Loop, create new options
		for ( keyVar in packageSelection[groupOption] ) {
			optionSelect.options[j] = new Option( packageSelection[groupOption][keyVar].text , packageSelection[groupOption][keyVar].value );
			if(!j) updatePackage(packageSelection[groupOption][keyVar].value);
			if( selectedOption == packageSelection[groupOption][keyVar].value ) {
				optionSelect.options[j].selected = true;
				updatePackage(packageSelection[groupOption][keyVar].value);
			}
			j++;

		}

		optionSelect.disabled = false;
	}
}

function updateDetails(el) {
	updatePackage(fetchSelected(el));
}

function fetchSelected(el) {
	return ( el.options ) ? el.options[el.options.selectedIndex].value : false ;
}

function updatePackage(i) {
	var detailElements = document.getElementsByTagName("div");

	for( x = 0; x < detailElements.length; x++ ) {
		if( detailElements[x].id.indexOf("option_description_") != "-1" ) {
			detailElements[x].style.display = "none";
			if( detailElements[x].id == "option_description_"+i ) {
				detailElements[x].style.display = "block";
			}
		}
	}

	if(packageDetails[i]["option_fixed"])
	{
		if(peopleNumber.value)
		{
			if(peopleNumber.value > 6)
			{
				peopleNumber.value = 2;
			}
			depositPrice.innerHTML = (packageDetails[i]["option_fixed"].range[peopleNumber.value] / 10);
			hiddenDeposit.value = (packageDetails[i]["option_fixed"].range[peopleNumber.value] / 10);
			
		}
		else
		{
			depositPrice.innerHTML = (packageDetails[i]["option_fixed"].range[1] / 10);
			hiddenDeposit.value= (packageDetails[i]["option_fixed"].range[1] / 10);
		}
		
	}
	else
	{
		depositPrice.innerHTML = packageDetails[i]["option_deposit"];
		hiddenDeposit.value= packageDetails[i]["option_deposit"];
	}

	if(packageDetails[i]["option_isGroupOnly"])
	{
		// basicPrice.innerHTML = packageDetails[i]["option_ppp"];
	}
	else
	{
		// basicPrice.innerHTML = packageDetails[i]["option_ppp"] * packageDetails[i]["option_min"];
	}
	
	peopleNumber.value = packageDetails[i]["option_min"];
	
	if( !packageDetails[i]["option_price"] ) {
		basicPrice.parentNode.parentNode.style.display = "none";
	} else {
		basicPrice.parentNode.parentNode.style.display = "block";	
	}
}

function checkInput(el) {
	var newStr = "";
	var str = el.value;
	
	for( var i = 0; i < str.length; i++ ) {
		if( valid.indexOf(str.charAt(i)) != "-1" ) {
			newStr += str.charAt(i);
		}
	}
	
	var new_value = ( newStr == "" ) ? parseFloat( valid.charAt(0) ) : parseFloat( newStr ) ;
	el.value = new_value; //( new_value > parseFloat( valid.charAt( ( valid.length - 1 ) ) ) ) ? valid.charAt(0) : new_value ;
}

function updateCost(el) {
	var value = parseFloat( checkInput(el) );
	var package = ( packageDetails[fetchSelected(optionSelect)] ) ? packageDetails[fetchSelected(optionSelect)] : false ;
	if( package ) 
	{
			if(package["option_isGroupOnly"])
			{
				//basicPrice.innerHTML = parseFloat( package["option_ppp"] );
			}
			else if(package["option_fixed"])
			{
				if(peopleNumber.value > 6)
				{
					alert("Adventure tours can be for groups of no more than 6 people.");
					peopleNumber.value = 6;
				}
				//basicPrice.innerHTML = parseFloat(package["option_fixed"].range[peopleNumber.value] );
				depositPrice.innerHTML = parseFloat(package["option_fixed"].range[peopleNumber.value]  / 10);
				hiddenDeposit.value = parseFloat(package["option_fixed"].range[peopleNumber.value]  / 10);
			}
			else
			{
				//basicPrice.innerHTML = parseFloat( peopleNumber.value * package["option_ppp"] );
			}
			//basicPrice.innerHTML = parseFloat( peopleNumber.value * package["option_ppp"] );
	}

}

function validate(form) {
	if( fetchSelected(categorySelect) == "none" ) {
		categorySelect.parentNode.appendChild( errorBox );
		return false;
	}
	if( startDate.value == "" ) {
		startDate.parentNode.appendChild( errorBox );
		return false;
	}
	if( peopleNumber.value == "" ) {
		peopleNumber.parentNode.appendChild( errorBox );
		return false;
	}
	if( !termsConditions.checked ) {
		termsConditions.parentNode.appendChild( errorBox );
		return false;
	}
}

