// JavaScript Document
var compatible = (
	document.getElementById && document.getElementsByTagName && document.createElement
	&&
	!(navigator.userAgent.indexOf('MSIE 5') != -1 && navigator.userAgent.indexOf('Mac') != -1)
	);

function exists(el){
	return document.getElementById(el) != "undefined" && document.getElementById(el) != null
}

function getNumber(str){
	num = 0
	//var regexp = /\D/g;
	//str = str.replace(regexp,'')
	num = parseInt(str)
	return num
}

function setAccessKey(id,key){
  document.getElementById(id).accessKey=key  
}

function dontRequireField(f){
	changeClassName(f.id,'')
	eRF = document.getElementById('extraRequiredFields')
	eRF.innerHTML = eRF.innerHTML.replace(f.id+"|","")
	//alert(eRF.innerHTML)
}

function requireField(f){
	changeClassName(f.id,'required')
	eRF = document.getElementById('extraRequiredFields')
	eRF.innerHTML += f.id+"|"
	//alert(eRF.innerHTML)
}

function getElementsByKey(key, bul_action){
	$f = document.forms[0].elements
	$a_by_key = new Array()
	//str = key + " -->"
	for (i=0; i<$f.length; i++){
		el = $f[i]
		if(el.accessKey == key){
			$a_by_key.push(el)	
			//str += el.id+" * " 
			if(!bul_action){
				if(key!='SDC' && key!='SRC-1W' && key!='SRC-2W' && key!='EST' && key!='LIT' && key!='LIT-I' && key!='LIT-II' && key!='CIT' && key!='R1W' && key!='R2W' && key!='MRP' && key!='AT' && key!='JR1W' && key!='MHT' && key!='AT-2W'){
				//if(key!='adventure_trips' && key!='SDC' && key!='SRC' && key!='RAN' &&	key!='CIT' && key!='LIT' && key!='MC'){
					requireField(el)
				}
			}else{
				//changeClassName(el.id,'')
				dontRequireField(el)
			}
			if(key == "check_info"){
				el.checked = !bul_action
			}
			el.disabled = bul_action
			
		}					
	}
	//alert($f.length + " ::: " + str)
	return true;
}

function changeClassName(id, str){
	el = document.getElementById(id)
	if (el && el!="undefined"){
			el.className = str
			return el
	}
	return false
}

function activateFormSection(el){
	var form_section = changeClassName(el,'active_section')
	if (form_section){
		getElementsByKey(el, false)		 
	}
}

function disableFormSection(el){
	var form_section = changeClassName(el,'')
	if (form_section){
		getElementsByKey(el, true)		 
	}
}

//------specific fields
function activate_cc_info(){
	activateFormSection('cc_info')
	//disableFormSection('check_info')
}

function disable_cc_info(){
	disableFormSection('cc_info')
	//activateFormSection('check_info')
}

function check_info(box){
	if(box.checked){
		//activateFormSection('check_info')
		disableFormSection('cc_info')
	}else{
		//disableFormSection('check_info')
		activateFormSection('cc_info')
	}
	box.className=''
}

function checkAge_Jewell(f){

if(exists('adventure_trips')){
	f.className=''
	var minAge = 13
	var maxAge = 16
	var d = new Date();
	var age = d.getFullYear() - getNumber(f[f.selectedIndex].value)
	if (age>=minAge && age<=maxAge){
		activateFormSection('adventure_trips')
	}else{
		disableFormSection('adventure_trips')
	}}

}

function emptyCheckbox(f){
	return f.type == 'checkbox' && (f.checked != true || f.checked != "true")
}

function updateCard(s_action,s_price,code){
	
	card = document.getElementById('shoppingCard')
	totalFeeDiv = document.getElementById('totalFee')
	
	if(totalFeeDiv != "undefined"){
	var totalFee = getNumber(totalFeeDiv.innerHTML)
	
	if (getNumber(s_price)>0){
	var deposit = (getNumber(s_price) > 10) ? amount(code) : 0;
	switch(s_action){
		case 'add':
			totalFee += getNumber(s_price)
			addDeposit(deposit,code)
			break;
		case 'remove':
			totalFee -= getNumber(s_price)
			removeDeposit(deposit,code)
			break;
	}
	}else{
		//alert(code+": "+amount(code))
		if (s_action=='add' && not(code.match("clear_"))){
			alert("Please complete financial assistance application")
		}
	}
	totalFeeDiv.innerHTML = totalFee.toFixed(2)
	card.className = "visible"
	//card.focus()
	}
}

function disableAllJewellSessions(){
	disableFormSection('SDC')
	disableFormSection('SRC-1W')
	disableFormSection('SRC-2W')
	disableFormSection('EST')
	disableFormSection('CIT')
	disableFormSection('LIT')
	disableFormSection('LIT-I')
	disableFormSection('LIT-II')
	disableFormSection('JRC')
	disableFormSection('JR1W')
	disableFormSection('R1W')
	disableFormSection('R2W')
	disableFormSection('MHT')
	disableFormSection('MRP')
	disableFormSection('AT')
	disableFormSection('AT-2W')
}
function disableAllJewellSessions_new(){
	var str="SRC-1W,SRC-2W,EST,LIT,CIT,LIT-I,LIT-II,JR1W,R1W,R2W,MRP,AT,SDC,MHT,AT-2W"
	var ar = new Array(str.split(","))
	for (i=0; i<ar.length; i++){
		disableFormSection(ar[i])
	}
}

function switchAge(a){
	var age = parseInt(a)
	if(age != "NaN"){
		disableAllJewellSessions()
		if (age>=7 && age<=9){
			activateFormSection('SRC-1W')
		} 	
		if (age>=10 && age<=14){
			activateFormSection('SRC-2W')
		} 
		if (age>=7 && age<=14){
			activateFormSection('EST')
		}
		if (age==15){
			activateFormSection('LIT')
			activateFormSection('LIT-I')
			activateFormSection('LIT-II')
		}	  
		if (age==16){
			activateFormSection('CIT')
		}		
		if (age>=7 && age<=9){
			activateFormSection('JRC')
			activateFormSection('JR1W')
		}
		if (age>=10 && age<=12){
			activateFormSection('R1W')
		} 		
		if (age>=12 && age<=15){
			activateFormSection('R2W')
		} 		
		if (age==15){
			activateFormSection('MRP')
		} 		
		if (age>=13 && age<=17){
			activateFormSection('AT')
			activateFormSection('AT-2W')
		} 		
		if (age>=4 && age<=12){
			activateFormSection('SDC')
		}
		if (age==16){
			activateFormSection('MRP')
		} 
		if (age>=12 && age<=15){
			activateFormSection('MHT')
		}
	}else{
		alert("Age should be a number: "+age)
	}
}
function switchGive(num){
	var amount = getNumber(num)
	var giveFee = document.getElementById("giveFee")
	var giving = giveFee.innerHTML
	if(amount != "NaN"){
		updateCard("remove",giving,"EXTRA")
		giveFee.innerHTML = amount
		updateCard("add",amount,"EXTRA")		
	}else{
		alert("Amount should be a number: "+amount)
	}
}

function addDeposit(a){
	var args = addDeposit.arguments
	var code = args[1].substring(0,5).toUpperCase()
	var amount = getNumber(a)
	if(amount >= 0 && compatible){
		session_countDiv = document.getElementById('session_count')
		depositDiv = document.getElementById('deposit')	
		minimum_feeDiv = document.getElementById('minimum_fee')
		var deposit = getNumber(depositDiv.innerHTML)
		var session_count = getNumber(session_countDiv.innerHTML)
		//add
		if (args[1] != "WELCOME_KIT" && code != "EXTRA"){
			session_countDiv.innerHTML = session_count + 1
		}
		depositDiv.innerHTML = (deposit + amount).toFixed(2)
		minimum_feeDiv.innerHTML = depositDiv.innerHTML
	}
}
function removeDeposit(a){
	var args = removeDeposit.arguments
	var code = args[1].substring(0,5).toUpperCase()
	
	var amount = getNumber(a)
	if(amount >= 0 && compatible){
		session_countDiv = document.getElementById('session_count')
		depositDiv = document.getElementById('deposit')	
		minimum_feeDiv = document.getElementById('minimum_fee')	
		var deposit = getNumber(depositDiv.innerHTML)
		var session_count = getNumber(session_countDiv.innerHTML)
		//add
		if (args[1] != "WELCOME_KIT" && code != "EXTRA"){
			session_countDiv.innerHTML = session_count - 1
		}
		depositDiv.innerHTML = (deposit - amount).toFixed(2)
		minimum_feeDiv.innerHTML = depositDiv.innerHTML
	}
}

function doClick(f){

	a = doClick.arguments
	var code = f.name.substring(0,3).toUpperCase()
	var subname = code
	if (f.accessKey && f.accessKey != ""){
		code = f.accessKey		
	}
	if(a.length > 1){
		s_price = getNumber(a[1])
		s_age = getNumber(a[2])
		
		if((f.type=='checkbox' && f.checked==true) || filledRadioGroup(f)){
			//alert(f.accessKey+" add "+s_price)
			s_action = "add"			
		}else{
			//alert(f.accessKey+" remove "+s_price)
			s_action = "remove"
			
		}
		
		if(f.type=='radio'){
			code = a[2]
			var selectedSessionsDiv = document.getElementById("selectedSessions")
			
			for(i=1;i<=3;i++){
				var other = document.getElementById("tier"+i+"_"+code)
				if(other!="undefined"){
					if(selectedSessionsDiv.innerHTML.match(other.id)){				
						updateCard("remove",other.value,code)
						selectedSessionsDiv.innerHTML = selectedSessionsDiv.innerHTML.replace(other.id,"*")
					}
				}
				
			}
			selectedSessionsDiv.innerHTML = selectedSessionsDiv.innerHTML.replace(("clear_"+code),"*")
			if (f.id.match("clear_")){
				code = "clear_"+code
			}			
			selectedSessionsDiv.innerHTML += f.id+","
			s_action = "add"
		}
		
		if(subname=="PRE" || subname=="POS" || subname=="HOR"){
			code = "EXTRA_"+code
		}
			updateCard(s_action,s_price,code)		
			//alert(f.id+" : "+f.accessKey+" : "+s_action+" : "+s_price+" : "+code)
		
	}else{
		//alert(f.name+" "+f.id+" "+f.accessKey+" "+f.value)
		if(f.name == "* Date of Birth Year"){
		//if(f.name == "* Age while at camp"){
			var d=new Date();
			var todayYear = d.getFullYear()
			var birthYear = getNumber(f.value)
			var age = todayYear - birthYear
			//alert(todayYear+"-"+birthYear+"="+age)
			switchAge(age)
		}		
		
	}
}
