var subgenres = new Array();
subgenres[0] = "";
subgenres[1] = ["A Capella|38", "Other|39"];
subgenres[2] = ["Big Band|40", "Orchestra|41", "Other|42"];
subgenres[3] = ["Blue Grass|43", "Other|44"];
subgenres[4] = ["Blues|45", "Other|46"];
subgenres[5] = ["Cajun / Zydeco|160", "Other|161"];
subgenres[6] = ["Children&apos;s|97", "Other|98"];
subgenres[7] = ["String Sections|52", "Horns|53", "Wedding Music|54", "Guitar|55", "Other|56"];
subgenres[8] = ["Contemporary Country|57", "Country Rock|58", "Traditional Country|59", "Western Swing|60", "Other|61"];
subgenres[9] = ["African|62", "Middle Eastern|63", "Indian|64", "Irish|65", "Scottish|66", "Americana|67", "Other|68"];
subgenres[10] = ["Disco|95", "Other|96"];
subgenres[11] = ["DJ|162", "Other|163"];
subgenres[12] = ["Trance|101", "Ambient|102", "Jungle|103", "House|104", "Industrial|105", "Other|106"];
subgenres[13] = ["Folk & Traditional|69", "Other|70"];
subgenres[14] = ["Garage Bands|164", "Other|165"];
subgenres[15] = ["Hip Hop|71", "Rap|72", "R&B|73", "Other|74"];
subgenres[16] = ["Jazz|147", "Other|148", "Dixieland|170"];
subgenres[17] = ["Salsa|107", "Samba|108", "Mariachi|109", "Tejano|110", "Mexicano|111", "Conjunto|113", "Orchestra|114", "Keyboard / Accordian Based|115", "Urban / Rap / Reggeton|116", "Norteno|117", "Banda|118", "Duranguense|119", "International / Pop / Rock|120", "Other|121"];
subgenres[18] = ["March|122", "Other|123"];
subgenres[19] = ["National Acts|155", "Other|156"];
subgenres[20] = ["New Age|124", "Other|125"];
subgenres[21] = ["Magician|166", "Comedian|167", "Petting Zoo|168", "Other|169"];
subgenres[22] = ["Novelty|126", "Other|127"];
subgenres[23] = ["20s-30s|128", "30s-40s|129", "40s-50s|130", "50s-60s|131", "60s-70s|132", "70s-80s|133", "80s-90s|134", "Other|135"];
subgenres[24] = ["Czech|136", "German|137", "Other|138"];
subgenres[25] = ["Pop|87", "Other|88"];
subgenres[26] = ["Reggae|75", "Other|76"];
subgenres[27] = ["Christian Rock|47", "Christian Gospel|48", "Christian Worship|49", "Contemporary Christian|50", "Other|51"];
subgenres[28] = ["Classic Rock|77", "Metal|78", "Rock n Roll|79", "Punk Rock|80", "Hard Rock|81", "Blues Rock|82", "Alternative Rock|83", "Indie|84", "Emo|85", "Other|86"];
subgenres[29] = ["Singer / Songwriter|139", "Other|140"];
subgenres[30] = ["Solo|141", "Duo|142", "Trio|143", "Other|144"];
subgenres[31] = ["Motown|91", "Old School R&B|92", "Funk|93", "Other|94"];
subgenres[32] = ["Swing|145", "Other|146"];
subgenres[33] = ["Teen Acts|99", "Other|100"];
subgenres[34] = ["Band Tribute Acts|149", "Theme Music|150", "Other|151"];
subgenres[35] = ["Hawaiian|157", "Caribbean|158", "Other|159"];
subgenres[36] = ["Wedding Bands|152", "Dance|153", "Cover Bands|154", "Other|171"];
subgenres[37] = ["World Fusion|89", "Other|90"];


function updateGenres(nameOne, nameTwo, selectedOne) {
	var genreList = document.getElementById(nameOne);
	var subGenreList = document.getElementById(nameTwo);
	subGenreList.options.length = 0;
	if (selectedOne > 0) {
		for (i = 0; i < subgenres[selectedOne].length; i++) {
			subGenreList.options[subGenreList.options.length] = new Option(subgenres[selectedOne][i].split("|")[0], subgenres[selectedOne][i].split("|")[1]);
		}
	}
}

function openCalendar(value)
{
	day = new Date();
	id = day.getTime();
	loc = "/includes/_calendar.php?" + value;
	eval("page" + id + " = window.open(loc , '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=1,resizable=0,width=211,height=350,left = 300,top = 255');");


}


function sortNum(a,b) { 
	return b-a;
}
function fixH(one,two) {
if (document.getElementById(one)) {
	var lh=document.getElementById(one).offsetHeight;
	var rh=document.getElementById(two).offsetHeight;
	var nh = Math.max(lh, rh);
	document.getElementById(one).style.height=nh+"px";
	document.getElementById(two).style.height=nh+"px";
}
}
function fixH2(one,two,three) {
	if (document.getElementById(one)) {
		var obj=new Array(3);
		var option= new Array(one,two,three);
		for(var i=0; i<option.length; i++) {
			document.getElementById(option[i]).style.height="auto";
			obj[i]=document.getElementById(option[i]).offsetHeight;
			nh=obj.sort(sortNum);
		}
		nh1=nh.splice(1,2);
		for(var i=0; i<option.length; i++) {
			document.getElementById(option[i]).style.height=nh+"px";
		}
	}
}

function switchDress(newName, dressObject){
	dressObject.value=newName;
	dressObject.select();
	dressObject.focus();
}

function hideShow(obj) {
	var el = document.getElementById(obj);
	if ( el.style.display != 'none' ) {
		el.style.display = 'none';
	}
	else {
		el.style.display = '';
	}
}

function hide(obj) {
	var el = document.getElementById(obj);
	if ( el.style.display != 'none' ) {
		el.style.display = 'none';
	}
}

function show(obj) {
	var el = document.getElementById(obj);
	if ( el.style.display == 'none' ) {
		el.style.display = '';
	}
}

function switchValues(obj, valone, valtwo) {
	var elem = document.getElementById(obj);
	if(elem.value == valone) {
		elem.value = valtwo;
	}
	else {
		elem.value = valone;
	}
}

function updateSelect(obj1, obj2, obj3) {
	var mySelect = document.getElementById(obj1);
	var myVal = mySelect.options[mySelect.selectedIndex].value;
	document.getElementById(obj2).value = myVal;
	if(myVal == 'Other')
		show(obj3);
	else
		hide(obj3);
}


function computeFormGross(form) {
	if ((form.DepositPercent.value == null) || (form.DepositPercent.value > 100) || (form.DepositPercent.value < 0)) {
		alert('You must specify a Deposit percentage between 0 and 100');
	}
	else {
		if ((form.ComPercent.value == null) || (form.ComPercent.value > 100) || (form.ComPercent.value < 0)) {
			alert('You must specify a percentage between 0 and 100');
		}
		else{
			if ((form.Net == null) & (form.Gross == null)) {
				alert('You must specify a gross or a net' + form.gross + form.net);
			}
			if ((form.Gross != null)){
				form.Net.value = Math.round((form.Gross.value * (1 - (form.ComPercent.value / 100))) * 100) / 100;
				form.BABDeposit.value = Math.round((form.Gross.value - form.Net.value) * 100) / 100;
				if(form.DepositPercent == null) {
					alert('Please enter a Deposit Percentage');
				}
			    else { 
					form.Deposit.value = Math.round(form.DepositPercent.value * form.Gross.value) / 100;
					form.DueToBand.value = Math.round(((form.DepositPercent.value * .01 * form.Gross.value) - form.BABDeposit.value) * 100) / 100;
					form.DueToBandAtGig.value = Math.round((form.Gross.value - form.Deposit.value) * 100) / 100;
					form.AffiliateEarnings.value = form.BABDeposit.value * 1;
					form.AffiliateEarnings.value = 0;
					form.BABEarnings.value = form.BABDeposit.value - form.AffiliateEarnings.value;
					form.referralFee.value = Math.round(form.referralPercentage.value * form.BABDeposit.value) / 100;
					form.BABDeposit.value = Math.round((form.BABDeposit.value - form.referralFee.value) * 100) / 100;
					form.agentcash.value = Math.round(form.agentcommission.value * form.BABDeposit.value) / 100;
					form.BABDeposit.value = Math.round((form.BABDeposit.value - form.agentcash.value) * 100) / 100;
				}
			}
		}
	}
}

function computeFormNet(form)
{
	if ((form.DepositPercent.value == null) || (form.DepositPercent.value > 100) || (form.DepositPercent.value < 0)){
    	alert('You must specify a Deposit percentage between 0 and 100');
    }
 	else{
  		if ((form.ComPercent.value == null) || (form.ComPercent.value > 100) || (form.ComPercent.value < 0)){
     		alert('You must specify a percentage between 0 and 100');
		}
 		else{
  			if ((form.Net == null) & (form.Gross == null)){
     			alert('You must specify a gross or a net' + form.gross + form.net);
    		}
   			if ((form.Net != null)){
		    	x = form.Net.value / (1 - (form.ComPercent.value * .01 ));
     			form.Gross.value = x;
     			x = form.Gross.value - form.Net.value;
     			form.BABDeposit.value = x;
				
			    if(form.DepositPercent == null) {
					alert('Please enter a Deposit Percentage');
				}
		      	else { 
					x = form.DepositPercent.value * .01 * form.Gross.value ;
					form.Deposit.value = x;
					x = form.DepositPercent.value * .01 * form.Gross.value - form.BABDeposit.value;
					form.DueToBand.value = x;
					x =  form.Gross.value - form.Deposit.value;
					form.DueToBandAtGig.value = x;
					x = form.BABDeposit.value * 1;
					form.AffiliateEarnings.value = x;
					form.AffiliateEarnings.value = 0;
					form.BABEarnings.value = x;
			        x = form.BABDeposit.value - form.AffiliateEarnings.value ;
          			form.BABEarnings.value = x;
	  				// referrals
					form.referralFee.value = form.referralPercentage.value * form.BABDeposit.value / 100;
					form.BABDeposit.value = form.BABDeposit.value - form.referralFee.value;
				    // agent code
					x = form.agentcommission.value * form.BABDeposit.value / 100;
					form.agentcash.value = x;
	  				form.BABDeposit.value =  form.BABDeposit.value -  form.agentcash.value;
       			}
     		}
   		}
 	}
}


function dynamicSelect(id1, id2) {

	// Feature test to see if there is enough W3C DOM support
	if (document.getElementById && document.getElementsByTagName) {
		// Obtain references to both select boxes
		var sel1 = document.getElementById(id1);
		var sel2 = document.getElementById(id2);
		// Clone the dynamic select box
		var clone = sel2.cloneNode(true);
		// Obtain references to all cloned options 
		var clonedOptions = clone.getElementsByTagName("option");
		// Onload init: call a generic function to display the related options in the dynamic select box
		refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
		// Onchange of the main select box: call a generic function to display the related options in the dynamic select box
		sel1.onchange = function() {
			refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
		};
	}
}
function refreshDynamicSelectOptions(sel1, sel2, clonedOptions) {
	// Delete all options of the dynamic select box
	var selectedValue = sel2.options[sel2.selectedIndex].value;
	var j = 0;
	while (sel2.options.length) {
		sel2.remove(0);
	}
	// Create regular expression objects for "select" and the value of the selected option of the main select box as class names
	var pattern1 = /( |^)(select)( |$)/;
	var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");
	// Iterate through all cloned options
	for (var i = 0; i < clonedOptions.length; i++) {
		// If the classname of a cloned option either equals "select" or equals the value of the selected option of the main select box
		if (clonedOptions[i].className.match(pattern1) || clonedOptions[i].className.match(pattern2)) {
			// Clone the option from the hidden option pool and append it to the dynamic select box
			sel2.appendChild(clonedOptions[i].cloneNode(true));
			if(sel2.options[j].value == selectedValue){
			//alert("Selecting genre");
				sel2.selectedIndex = j;
			}
			j++; 
		}
	}
}
/*
function refreshDynamicSelectOptions(sel1, sel2, clonedOptions) {
	// Delete all options of the dynamic select box
	while (sel2.options.length) {
		sel2.remove(0);
	}
	// Create regular expression objects for "select" and the value of the selected option of the main select box as class names
	var pattern1 = /( |^)(select)( |$)/;
	var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");
	// Iterate through all cloned options
	for (var i = 0; i < clonedOptions.length; i++) {
		// If the classname of a cloned option either equals "select" or equals the value of the selected option of the main select box
		if (clonedOptions[i].className.match(pattern1) || clonedOptions[i].className.match(pattern2)) {
			// Clone the option from the hidden option pool and append it to the dynamic select box
			sel2.appendChild(clonedOptions[i].cloneNode(true));
		}
	}
}
*/
function updatePrices() {
	var sum = 0;
	sum += (document.updateDirectInfo.startingPrice.value * 1);
	sum += (document.updateDirectInfo.extraCost1.value * 1);
	sum += (document.updateDirectInfo.extraCost2.value * 1);
	sum += (document.updateDirectInfo.extraCost3.value * 1);
	document.updateDirectInfo.subtotal1.value = sum;
	sum += (document.updateDirectInfo.numGenres.value * document.updateDirectInfo.amtPerGenre.value);
	document.updateDirectInfo.total1.value = sum;
	sum -= (document.updateDirectInfo.webLink.value * 1);
	sum -= (document.updateDirectInfo.myspaceFriend.value * 1);
	sum -= (document.updateDirectInfo.extraDisc1.value * 1);
	sum -= (document.updateDirectInfo.extraDisc2.value * 1);
	sum -= (document.updateDirectInfo.extraDisc3.value * 1);
	document.updateDirectInfo.total2.value = sum;
}

function updateSignUp(form) {
	var sum = 0;
	sum += (form.year.value * 1);
	if(form.myspace.checked == true)
		sum += (form.myspace.value * 1);
	if(form.website.checked == true)
		sum += (form.website.value * 1);
	if(form.genre1Check.checked == true)
		sum += (form.genre1Check.value * 1);
	if(form.genre2Check.checked == true)
		sum += (form.genre2Check.value * 1);
	if(form.genre3Check.checked == true)
		sum += (form.genre3Check.value * 1);
	if(form.genre4Check.checked == true)
		sum += (form.genre4Check.value * 1);
	if(form.genre5Check.checked == true)
		sum += (form.genre5Check.value * 1);
	form.total.value = sum;
}

function cancelEvent() {
	if(confirm('Are you sure you want to cancel this event?\nThis will delete all the bands in your interest list.')) { 
		document.viewOrder.changeRecent.value = 0; 
		document.viewOrder.cancelOrder.value = 1; 
		document.viewOrder.submit(); 
	} 
	else { 
		return; 
	}
}



function dynamicSelectBox()
{
	this.selects = new Array();
	
	this.addSelect = function(name)
	{
		this.selects[name] = new selectObj();
	}



	this.updateOptions = function(source, target)
	{
		var form = source.form;
		var target = form.elements[target];
		var value = source.options[source.selectedIndex].value;
		
		while(target.options.length) target.remove(0);
		
		if(!this.selects[source.name].options[value])
		{
			//alert('Invalid selection.'); //For debugging while you set it up
			return;
		}
		
		var data = this.selects[source.name].options[value].options;
		
		for(var x=0; x<data.length; x++)
		{
			try
			{
				target.add(data[x]);
			}
			catch(e)
			{
				target.add(data[x], null);
			}
		}
		
		target.selectedIndex = 0;
	}

}



function selectObj()
{
	this.options = new Array();
	
	this.addOption = function(value)
	{
		this.options[value] = new optionObj();
	}
}



function optionObj()
{
	this.options = new Array();
	
	this.createOption = function(name, value)
	{
		this.options[this.options.length] = new Option(name, value);
	}
}


function openHowto() {
	window.open('/HowTo/video.php', '_blank', 'status=0,toolbar=0,location=0,menubar=0,directories=0,resizable=0,scrollbars=1,height=425,width=500');
}

// o = object or objectID 
// b = boolean on/off, not required 

function optChange(o)  
{ 
    var b = b;
    // if not passed an object, get the object 
    if (typeof(o) != 'object') 
	var o = document.getElementById(o);  
    var opts = o.options; 
    for (var i = opts.length-1; i > -1; --i) { 
	
	if (document.forms['send'].emailBand[i].checked) {
	opts[i].selected = true;
	} 
	if (document.forms['send'].emailBand[i].checked == false) {
	opts[i].selected = false;
	}
	
    } 
}

function checkAll() {
	for (i = 0; i < document.send.emailBand.length; i++)
		document.send.emailBand[i].checked = document.getElementById('checkAllBox').checked ;
		optChange('emailList');
}


function openNewWindow(theURL,winName,features) { 
  window.open(theURL,winName,features);
  
}

