// common JavaScript functions for Ontario Sailing Association web site

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_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 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;
}
	

	// DHTML function to show/hide options for user form
	function area_access() {
		obj = document.getElementById('usertype');
		
		if (obj.options[obj.selectedIndex].value == 'admin' || obj.options[obj.selectedIndex].value == 'super') {
			document.getElementById('area_access').style.visibility = 'visible';
			document.getElementById('area_access').style.display = 'block';
			document.getElementById('area_access_data').style.visibility = 'visible';
			document.getElementById('area_access_data').style.display = 'block';
		} else {
			document.getElementById('area_access').style.visibility = 'hidden';
			document.getElementById('area_access').style.display = 'none';
			document.getElementById('area_access_data').style.visibility = 'hidden';
			document.getElementById('area_access_data').style.display = 'none';
		}
	}
	
	// DHTML function to show/hide options for regata form
	function isUnder23(member, show) {		
		if (show) {			
			document.getElementById(member+'_age').style.display = 'block';
			document.getElementById(member+'_age_data').style.display = 'block';
			document.getElementById(member+'_age').style.visibility = 'visible';
			document.getElementById(member+'_age_data').style.visibility = 'visible';
		} else {
			document.getElementById(member+'_age').style.display = 'none';
			document.getElementById(member+'_age_data').style.display = 'none';
			document.getElementById(member+'_age').style.visibility = 'hidden';
			document.getElementById(member+'_age_data').style.visibility = 'hidden';
		}
	}
	

	// uses JS + DOM to select option within a select
	// params:  name/id (string),  option value (string)
	function select_option(formElementId, optionValue) {
		var obj;
		
		if (optionValue != '') {

			obj = document.getElementById(formElementId);

			if (obj) {
				// alert('found object by ID ' + obj.id);
			} else {
				// if there is no ID, try the name			
				obj = document.getElementsByName(formElementId)[0];
				if (obj) {
					// alert('found object by name ' + obj.name);
				} else {
					alert('cannot find object');
					return false;
				}
			}
				
			if (obj.tagName.toLowerCase() != 'select') {
				alert('element is not a SELECT');
				return false;
			}
				
			for (i=0; i<obj.length; i++) {
				var val = obj.options[i].value;
				if (val == optionValue) {
					obj.options[i].selected = true;
					break;
				}
			}
			return true;
		}
	}


	// uses JS + DOM to check certain checkbox
	// params:  name/id (string),  value (string)
	function checkbox(formElementId, checkValue) {
		var obj;
		
		if (checkValue != '') {

			obj = document.getElementById(formElementId);

			if (obj) {
				// alert('found object by ID ' + obj.id);
			} else {
				// if there is no ID, try the name			
				obj = document.getElementsByName(formElementId)[0];
				if (obj) {
					// alert('found object by name ' + obj.name);
				} else {
					alert('cannot find object');
					return false;
				}
			}
				
			if (obj.tagName.toLowerCase() != 'input' || obj.type != 'checkbox') {
				alert('element is not a CHECKBOX')
				return false;
			}
				
			if (obj.value == checkValue) {
				obj.checked = true;
			}
			return true;
		}
	}
	
	function form_submitUsingEnter(formname){
		if(typeof(event) != 'undefined'){
			if(event.keyCode == 13){
				document.forms[formname].submit();
			}
		}
	}
	
	function validateInteger(field){
	  var str =  field.value.replace(/^\s*|\s*$/g,"");
 
	  while(str.length > 1 && str.substring(0,1) == '0'){
		 str = str.substring(1,str.length);
	  }
	  var val = parseInt(str);
	  
	  if(isNaN(val) || val == 0) {
		 field.value = '';
	  }else{
		field.value = val;
	 }
   }
 

