/*
** Nexgolf Online Tuloskortti Javascripts
** by Mika Porspakka
** (c) copyright by Nextime Solutions 2004
*/

// macromedia's crossbrowser object find function
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;
}

// macromedia's validate form (not used)
function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='<?= $helmi_mailEmailAlert_fi ?>\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}

// macromedia's change object property function
function MM_changeProp(objName,x,theProp,theValue) { //v6.0
  var obj = MM_findObj(objName);
  if (obj && (theProp.indexOf("style.")==-1 || obj.style)){
    if (theValue == true || theValue == false)
      eval("obj."+theProp+"="+theValue);
    else eval("obj."+theProp+"='"+theValue+"'");
  }
}

// macromedia's goo to url function
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

// NXT close window function
function closeWindow() { 
	window.close();
}

// disable object (not used)
function disableCheck(obj) { 
	if ( MM_findObj(obj).disabled == true ) {
		MM_changeProp(obj,'','disabled',false,'INPUT/TEXT');
	} else {
		MM_changeProp(obj,'','disabled',true,'INPUT/TEXT');
	}
}

// NXT function to send new hcp value back to nexGolf system's
// form field and close window
function sendHcpClose(hcpObj,commentObj,alertText,pointsObj) {
	var hcpo = MM_findObj(hcpObj);
	var como = MM_findObj(commentObj);
	var pointo = MM_findObj(pointsObj);
	var hcpValue = hcpo.value;
	var commentValue = como.value;
	var pointValue = pointo.value;
	window.opener.personForm.hcpString.value = hcpValue;
	window.opener.personForm.hcpComment.value = commentValue;
	window.opener.personForm.points.value = pointValue;
	//window.opener.forms.name['personForm'].hcpString.value = hcpValue;
	//window.opener.forms.name['personForm'].hcpComment.value = commentValue;
	alert(alertText);
	window.close();
}

function sendHcpUrlClose(hcpObj,commentObj,url,alertText,pointObj) {
	var hcpo = MM_findObj(hcpObj);
	var como = MM_findObj(commentObj);
	var pointo = MM_findObj(pointObj);
	var hcpValue = hcpo.value;
	var commentValue = como.value;
	var pointValue = pointo.value;
	opener.location=url+"&hcp="+escape(hcpValue)+"&comment="+escape(commentValue)+"&points="+escape(pointValue);
	/*
	alert box suppressed 18.march.2005: 
	SK: vaan voi ottaa pois sen "muista vielä tallentaa bla bla bla..
	SK:	kun enää ei tarvi erikseen
	// alert(alertText);
	*/
	window.close();
}

// NXT function to change/disabling tee color radiobuttons (not used)
//teeColorSexCheck(this,'document.selectcourse','scoreCardTeeColor',0);
function teeColorSexCheck(sobj,daform,desname,wrongvalue) {
	sob = sobj;
	daform = eval ( daform );
	if ( sob.value != wrongvalue ) {
	    for (var i=0;i<daform.length;i++) {
    	    if (daform[i].type == "radio" && daform[i].name.indexOf(desname) > -1 ) {
				daform[i].disabled = false;
				break;
			}
		} // for
	} else {
	    for (var i=0;i<daform.length;i++) {
    	    if (daform[i].type == "radio" && daform[i].name.indexOf(desname) > -1 ) {
				if (daform[i].checked == true) {
					daform[i].checked = false;
					daform[i+1].checked = true;
				}
				daform[i].disabled = true;
				break;
			}
		} // for
	}
}

// NXT function to copy the selected radiobuttons value to another form field
function radioValueToHidden(theVal,theObj) {
	var destinationObject = MM_findObj(theObj);
	destinationObject.value = theVal;
}

// NXT function to change course in the select
// list and refresh page with new values
function changeCourse() {
	var selectObject = MM_findObj("scoreCardCourse");
	var hcpObject = MM_findObj("scoreCardHcp");
	var teeColorObject = MM_findObj("scoreCardTeeColorH");
	var sexObject = MM_findObj("scoreCardSexH");

	var selectValue =  selectObject.value;
	var hcpValue = hcpObject.value;

	var teeColorValue = teeColorObject.value;
	var sexValue = sexObject.value;

	if ( selectValue != "" ) {
		var goTo = "course_select.php?scc="+selectValue;
		goTo += "&scoreCardTeeColor="+teeColorValue;
		goTo += "&scoreCardSex="+sexValue;
		goTo += "&scoreCardHcp="+hcpValue;
		location.href=goTo;
	}
} // function

// NXT function to disable all the tee colors that can't be chosen
function disableInactiveTees(aF,aM) {

	var sexObject = MM_findObj("scoreCardSexH");
	var sexValue = parseInt(sexObject.value);
	var teeColorObject = MM_findObj("scoreCardTeeColorH");
	var formObject = eval( 'document.selectcourse' );
	var formLength = formObject.length;
	
	for (var i=0;i<formLength ;i++) {
		// loop through form elements
		if (formObject[i].type == "radio" && formObject[i].name.indexOf('scoreCardTeeColor') > -1 ) {
			// if form element's type is radiobutton and name has 'scoreCardTeeColor'
			var a = formObject[i].value;

			if (sexValue == 0 ) {
				// this is for woman
				if ( a == 0 ) { 
					// always disable white tee for women
					if ( formObject[i].checked == true ) {
						// if white tee is selected, deselect it and select the following
						// tee, which is yellow
						formObject[i].checked = false;
						formObject[i+1].checked = true;
					}
					formObject[i].disabled = true;
				} 
				if ( aF[a] == false ) {
					// else see if the selected value is available, if not uncheck and disable
					formObject[i].checked = false;
					formObject[i].disabled = true;
				} else {
					// if tee is available, un-disable it
					formObject[i].disabled = false;
				} // if/else
				
			} else if (sexValue == 1 ) {
				// and the same for man
				if ( aM[a] == false ) {
					// if the tee isn't available, uncheck it and disable it
					formObject[i].checked = false;
					formObject[i].disabled = true;
				} // if
				else {
					// if tee is available, un-disable it
					formObject[i].disabled = false;
				}
			} // else if
			
		} // if
	} // for
} // function

function changeFocus( cobj ) {
	var cint = 0;
	if ( cobj.value > 1 || cobj.value == '-' || cobj.value == 0) { 
		clength = cobj.name.length;
		cbase = cobj.name.substr(0,clength-3);
		cnumberstring = cobj.name.substr(clength-2, 2);
		cint = parseFloat(cnumberstring);
		cint++;
		if ( cint < 10 ) {
			cnumberstring = "0"+cint;
		} else {
			cnumberstring = cint;
		}
		if ( cint < 19 ) {
			nobj = MM_findObj(cbase+"_"+cnumberstring);
			nobj.focus();
			nobj.select();
		}
	}
}
function validateHcpRound(text)
{
        if (MM_findObj("scoreCardHcp").value.replace(',','.') > 36 && MM_findObj("scoreCardTeeColorH").value != 3)     
        {
                return confirm(text);
        }
        else
        {
                return true;
        }
}



