var PFInputSize = 28; // initial input box size
var PFextendtimer = null;

function hideshowFormElements(action){
  for(f=0; f<document.forms.length; f++){
   theForm = document.forms[f];
   for(i=0; i<theForm.elements.length; i++){
      if(theForm.elements[i].type == "select-multiple" || theForm.elements[i].type == "select-one"){
         theForm.elements[i].style.visibility=action;
      }
   }
  }
}

function PFShowFormPage(formname,previous,next){

  //MM_showHideLayers('step'+formname+previous,'','hide');
  //MM_showHideLayers('step'+formname+next,'','show');
  PFToggleCollapsable('step'+formname+previous);
  PFToggleCollapsable('step'+formname+next);   
  //document.getElementById('stepform'+formname).style.height = document.getElementById('step'+formname+next).offsetHeight;

}

function PFswitchOptions(field){
   destCBO=field;
   for (iLoop = 1 ; iLoop < destCBO.options.length; iLoop++)
	{
		if (destCBO.options[0].selected==true){
		  destCBO.options[iLoop].selected=false;
		}else if (destCBO.options[iLoop].selected){
		  destCBO.options[0].selected=false;
		}
	}
}

function PFToggleField(formno,currentfield,currentfieldtype,fieldtohide,selectedoptions,action){
 if(document.getElementById){

 var hidefile = document.getElementById("pfrowid"+formno+"_"+fieldtohide);
 var disableformfield = eval("document.fHtmlEditor"+formno+"._"+fieldtohide+"_0");

 var hidefile2 = document.getElementById("pfrowid"+formno+"_"+fieldtohide+"b"); //for fields that span 2 columns
 var field = eval("document.fHtmlEditor"+formno+"."+currentfield);
 var foundoption=false;

 if((hidefile) && (field)){
	 if(currentfieldtype=="10-False" || currentfieldtype=="1-False"){ //type 1 or type 10 (multiple) select box
		  var foundoption=false;
		  for (var iElement = 0; iElement < field.options.length;iElement++){
		       if((field.options[iElement].selected) && field.options[iElement].value!="" && selectedoptions.indexOf(field.options[iElement].value)>=0) {
			foundoption=true;
		       }
		  }
	 }else if(currentfieldtype=="10-True" || currentfieldtype=="1-True"){ //type 1 or type 10 (multiple) checkboxes
		  //loop through selected options
		  if(field.length){
		    for (var iElement = 0; iElement < field.length;iElement++){
		       if((field[iElement].checked) && field[iElement].value!="" && selectedoptions.indexOf(field[iElement].value)>=0) {
			foundoption=true;
		       }
		    }
		  }else{
		       if((field.checked) && (selectedoptions.indexOf(field.value)>=0)) {
			foundoption=true;
		       }
		  }
	}else if(currentfieldtype=="3"){ //checkbox
	  if(field.checked){
	    foundoption=true;
	  }
	}
	if(foundoption){
		if(action=="1"){ //disable
		  if(disableformfield){
		     PFselectALL(disableformfield,false); //reset value
		     PFdisableALL(disableformfield,true); //disable
		  }
		}
		if(action=="4"){ //enable
		  if(disableformfield){
		     PFdisableALL(disableformfield,false); //enable

		  }
		}
		if(action=="2"){ //hide
		  if(disableformfield) PFselectALL(disableformfield,false); //reset value
		  hidefile.style.display='none';
		  if(hidefile2){
		     hidefile2.style.display='none';
		  }
		}else if(action=="3"){ //show
		  hidefile.style.display='';
		  if(hidefile2){
		     hidefile2.style.display='';
		  }
		}
	}else{
		if(action=="1"){ //disable reverse
		  if(disableformfield){
		    PFdisableALL(disableformfield,false); //enable

		  }
		}
		if(action=="4"){ //enable reverse
		  if(disableformfield){
		    PFselectALL(disableformfield,false); //reset value
		    PFdisableALL(disableformfield,true); //disable
		  }
		}
		if(action=="2"){ //hide reverse
		  hidefile.style.display='';
		  if(hidefile2){
		     hidefile2.style.display='';
		  }
		}else if(action=="3"){ //show reverse
		  if(disableformfield) PFselectALL(disableformfield,false);//reset value
		  hidefile.style.display='none';
		  if(hidefile2){
		     hidefile2.style.display='none';
		  }

		}
	}
  }

 }
}

function PFselectSelected(fieldid,formno){

  var selectedfield = eval("document.fHtmlEditor"+formno+".selected_"+fieldid);
  var field = eval("document.fHtmlEditor"+formno+"._"+fieldid+"_0");

  if(selectedfield && field){
    if(selectedfield.value!=""){
          selectedarr=selectedfield.value.split(",");
	  if(field.length){

	   if(field[0].type=="radio" || field[0].type=="checkbox"){
	      for (var iElement = 0; iElement < field.length;iElement++){
		for(var iElement2 = 0; iElement2 < selectedarr.length;iElement2++){
		  if(selectedarr[iElement2]==field[iElement].value ){
		    field[iElement].checked=true;
		  }
		}
	      }
	   }else if((field.type=="select-multiple" || field.type=="select-one") ){
	     for (var iElement = 0; iElement < field.options.length;iElement++){
		for(var iElement2 = 0; iElement2 < selectedarr.length;iElement2++){

		  if(selectedarr[iElement2]==field[iElement].value){
		    if(field.type=="select-one"){
		      field.selectedIndex = iElement;
		    }else{
		      field.options[iElement].selected = true;
		    }
		    //alert(field.options[iElement].selected);
		  }
		}
	     }
	   }

	  }else{ //no length
	  // if(field.type=="radio" || field.type=="checkbox"){
	//	field.checked=true;
	  // }else{
	  //   if(!flag){
	  //     field.value="";
	  //   }
	  // }

	  }
   }
 }
}

function PFselectALL(field,flag){
  if(field.length){

   if(field[0].type=="radio" || field[0].type=="checkbox"){
      for (var iElement = 0; iElement < field.length;iElement++){
	field[iElement].checked=flag;
      }
   }else if(field.type=="select-multiple" || field.type=="select-one"){
     for (var iElement = 0; iElement < field.options.length;iElement++){
	field.options[iElement].selected=flag;
     }
   }
  }else{ //no length
   if(field.type=="radio" || field.type=="checkbox"){
	field.checked=flag;
   }else{
     if(!flag){
       field.value="";
     }
   }
  }
}

function PFdisableALL(field,flag){
  if(field.length){
   if(field[0].type=="radio" || field[0].type=="checkbox"){
      for (var iElement = 0; iElement < field.length;iElement++){
	field[iElement].disabled=flag;
      }
   }else if(field.type=="select-multiple" || field.type=="select-one"){
      field.disabled=flag;
   }
  }else{ //no length
   //alert(field.type);
   if(field.type=="radio" || field.type=="checkbox"){
      field.disabled=flag;
   }else if (field.type=="text"){
            field.disabled=flag;
   }
  }
}


function PFToggleList(formno,currentfield,currentfieldtype,fieldtofilter,selectedoptions,showoptions){
 if(document.getElementById){

 var relatedformfield = eval("document.fHtmlEditor"+formno+"._"+fieldtofilter+"_0");
 var field = eval("document.fHtmlEditor"+formno+"."+currentfield);
 var relatedarray = eval("form"+formno+"array"+fieldtofilter);
 var foundoption=false;
 var arrpos=-1;
 var selectedoptionsarr = selectedoptions.split(";");
 var showoptionsarr = showoptions.split(";");

 if((relatedformfield) && (field) && (relatedarray)){
	 if(currentfieldtype=="1-False"){ //type 1 select box
		  for (var iElement = 0; iElement < field.options.length;iElement++){
		       //alert(iElement);
		       if((field.options[iElement].selected) && field.options[iElement].value!=""){
			 //loop through options
			 for (var c=0; c < selectedoptionsarr.length; c++){
			   if (parseFloat(field.options[iElement].value) == parseFloat(selectedoptionsarr[c])){
			      foundoption=true;
			      arrpos=c;
			   }
			 }
		       }
		  }
	 }else if(currentfieldtype=="1-True"){ //type 1 checkboxes
		  if(field.length){
		    for (var iElement = 0; iElement < field.length;iElement++){
		       //alert(iElement);
		       if((field[iElement].checked) && field[iElement].value!=""){
			 //loop through options
			 for (var c=0; c < selectedoptionsarr.length; c++){
			   if (parseFloat(field[iElement].value) == parseFloat(selectedoptionsarr[c])){
			      foundoption=true;
			      arrpos=c;
			   }
			 }
		       }
		    }
		  }else{ //single checkbox or radio
		       if((field.checked) && field.value!=""){
			 //loop through options
			 for (var c=0; c < selectedoptionsarr.length; c++){
			   if (parseFloat(field.value) == parseFloat(selectedoptionsarr[c])){
			      foundoption=true;
			      arrpos=c;
			   }
			 }
		       }
		  }
	}else if(currentfieldtype=="3"){ //checkbox
	  if(field.checked){
	    foundoption=true;
	    arrpos=0;
	  }
	}
	if(foundoption && arrpos>=0){
		if(relatedformfield.type=="select-multiple" || relatedformfield.type=="select-one"){ //remove options
		  //remove all options
		    for (var iElement2 = relatedformfield.length-1; iElement2 >= 0;iElement2--){
		      relatedformfield.options[iElement2] = null;
                    }
                    //add all options

		    for (var iElement2 = 0; iElement2 < relatedarray.length;iElement2++){
		      if (showoptionsarr[arrpos].indexOf(relatedarray[iElement2][0])>=0){
		        newOpt = new Option(relatedarray[iElement2][1],relatedarray[iElement2][0]);
		        selLength = relatedformfield.length;
		        relatedformfield.options[selLength] = newOpt;
		      }
                    }
		}else{ //must be radio or checkbox
		     if(relatedformfield.length){
		      for (var iElement2 = 0; iElement2 < relatedformfield.length;iElement2++){
		       if(showoptionsarr[arrpos].indexOf(relatedformfield[iElement2].value)>=0) {
			 relatedformfield[iElement2].disabled=false;
		       }else{
		         relatedformfield[iElement2].checked=false;
			 relatedformfield[iElement2].disabled=true;
		       }
		      }
		     }else{ //single checkbox or radio
		       if(showoptionsarr[arrpos].indexOf(relatedformfield.value)>=0) {
			 relatedformfield.disabled=false;
		       }else{
		         relatedformfield.checked=false;
			 relatedformfield.disabled=true;
		       }
		     }
		}
	}else{
		if(relatedformfield.type=="select-multiple" || relatedformfield.type=="select-one"){ //remove options
		  //remove all options
		  for (var iElement2 = relatedformfield.options.length-1; iElement2 >=0;iElement2--){
		    relatedformfield.options[iElement2] = null;
                  }
                  //add all options
		  for (var iElement2 = 0; iElement2 < relatedarray.length;iElement2++){
		    newOpt = new Option(relatedarray[iElement2][1], relatedarray[iElement2][0]);
		    selLength = relatedformfield.length;
		    relatedformfield.options[selLength] = newOpt;
                  }
		}else{ //must be radio or checkbox
		  // enable all fields
		  if(relatedformfield.length){
		    for (var iElement = 0; iElement < relatedformfield.length;iElement++){
		      relatedformfield[iElement].disabled=false;
		    }
		  }else{
		    relatedformfield.disabled=false;
		  }
		}
	}
 }

 }
}

// Auto extend input box size
function extendinput(field) {
  max_length = 70;
  newfield = field;
  if((field.value == null ) || (field.value == "" )) field.size = PFInputSize;
  if((field.value.length >= PFInputSize)&&(field.value.length <= max_length)){
    field.size = field.value.length + 1;
  }else if(field.value.length > max_length){
  }else{
   field.size = PFInputSize;
  }
  PFextendtimer = setTimeout("extendinput(newfield)",100);
}

