function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function Display(action,item) {
   obj=document.getElementById(item);
   if (action == "off") {
     obj.style.display="none";
   }
   if (action == "on") {
     obj.style.display="block";
   }
}

function Toggle(item) {
   obj=document.getElementById(item);
   visible=(obj.style.display!="none")  
   if (visible) {
     obj.style.display="none";
   }
   else {
     obj.style.display="inline";
   }
}

function checkVenue () {
	var venue=document.getElementById('venue');
	var newVenueArea=document.getElementById('newVenueArea');
	if (venue.value == "custom") {
		newVenueArea.style.display="block";
	} else {
		newVenueArea.style.display="none";
	}
	if (venue.value == "none") {
		var noVenue = document.getElementById('no-venue');
		noVenue.selected = "selected";
	}
}

function moreElements (elementName) {
	var elementRows = new Array(21);
	// To keep things simple, we skip record 0 and start at 1
	var thisElement = "";
	// Loop through and find the first display = none and set it to table-row
	for (n=1; n<21; n++) {
		thisElement = document.getElementById(elementName+"Row"+n);
		if (thisElement.style.display == "none") {
			thisElement.style.display = "block";
			break;
		}
	}
}

function fewerElements (elementName,elementSecondaryField) {
	var elementRows = new Array(21);
	// To keep things simple, we skip record 0 and start at 1
	var thisElement = "";
	// Loop through and find the first display = none and set it to table-row
	for (n=20; n>1; n--) {
		thisElementRow = document.getElementById(elementName+"Row"+n);
		thisElement = document.getElementById(elementName+n);
		thisElementSecondary = document.getElementById(elementName+n+elementSecondaryField);
		if (thisElementRow != null) {
			if (thisElementRow.style.display == "block") {
				thisElementRow.style.display = "none";
				thisElement.value = "";
				thisElementSecondary.value = "";
				break;
			}
		}
	}
}

function selectAll (caller,idstart) {
	var obj = caller;
	var number = 1;
	var checked = obj.checked;
	while (obj = document.getElementById(idstart+number)) {
		obj.checked = checked;
		number++;
	}
}

function limitLength(field,maxlimit) {
	if ( field.value.length > maxlimit ) {
		field.value = field.value.substring( 0, maxlimit );
		//alert( 'Textarea value can only be 2000 characters in length.' );
		return false;
	}
}

function formCheck(formobj){
	var varMonth = 'month';
	var varDay = 'day';
	var varNewVenueName = 'newVenueName';
	var varNewVenueAddress ='newVenueAddress';
	
	kvNormalDate=document.getElementById('normalDate');
	if (kvNormalDate.style.display == "none") {
		varMonth = null;
		varDay = null;
	}
	
	newVenue=document.getElementById('newVenueArea');
	if (newVenue.style.display == "none") {
		varNewVenueName = null;
		varNewVenueAddress = null;
	}

	// name of mandatory fields
	var fieldRequired = Array(varMonth,varDay,"hour","minute",varNewVenueName,varNewVenueAddress,"venue","band1","genre","submitName", "submitEmail");
	// field description to appear in the dialog box
	var fieldDescription = Array("Event Month","Event Day","Starting Time Hour","Starting Time Minute","Venue Name","Venue Address","Venue","Band Name","Genre", "Submitter Name", "Submitter Email");
	// dialog message
	var alertMsg = "The following additional fields are required:\n";
	
	// Check that all the fields are filled correctly
	var l_Msg = alertMsg.length;
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			if (obj.type == null){
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				continue;
			}

			switch(obj.type){
			case "select-one":
				if (obj.value == -1 || obj.options[obj.selectedIndex].text == "" || obj.value == "none"){
					alertMsg += " - " + fieldDescription[i] + "\n";
					obj.style.background="#FFFF99";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + fieldDescription[i] + "\n";
					obj.style.background="#FFFF99";
				}
				break;
			case "text":
			case "textarea":
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
					obj.style.background="#FFFF99";
				}
				break;
			default:
			}
		}
	}

	if (alertMsg.length != l_Msg){
		alert(alertMsg);
		return false;
	}else{
		document.getElementById("progress").style.display = "block";
		return true;
	}
}

function formCheckUpdate(formobj){
	var varNewVenueName = 'newVenueName';
	var varNewVenueAddress ='newVenueAddress';
	
	newVenue=document.getElementById('newVenueArea');
	if (newVenue.style.display == "none") {
		varNewVenueName = null;
		varNewVenueAddress = null;
	}

	// name of mandatory fields
	var fieldRequired = Array("date1","time1",varNewVenueName,varNewVenueAddress,"venue","band1","genre","submitName", "submitEmail");
	// field description to appear in the dialog box
	var fieldDescription = Array("At least one date","At least on time","Venue Name","Venue Address","Venue","Band Name","Genre", "Submitter Name", "Submitter Email");
	// dialog message
	var alertMsg = "The following additional fields are required:\n";
	
	// Check that all the fields are filled correctly
	var l_Msg = alertMsg.length;
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			if (obj.type == null){
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				continue;
			}

			switch(obj.type){
			case "select-one":
				if (obj.value == -1 || obj.options[obj.selectedIndex].text == "" || obj.value == "none"){
					alertMsg += " - " + fieldDescription[i] + "\n";
					obj.style.background="#FFFF99";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + fieldDescription[i] + "\n";
					obj.style.background="#FFFF99";
				}
				break;
			case "text":
			case "textarea":
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
					obj.style.background="#FFFF99";
				}
				break;
			default:
			}
		}
	}

	if (alertMsg.length != l_Msg){
		alert(alertMsg);
		return false;
	}else{
		return true;
	}
}

function completeFormProcess () {
	$formName = document.form1;
	/* Merges the form validation and upload scripts */
	if (formCheck($formName)) {
		return true;
	} else {
		return false;	
	}
}

