function getRecID(recobjName)
{
  recobj = document.recipeclass.elements;
  for (i=0;i<=recobj.length;i++) {
    if (recobj[i].name.substr(0,(recobjName).length) == recobjName) return recobj[i];
  }  
  return null;
}

var ssm = [];
var csm = [];

function out_subLevel(cats, cids, ctg, connectto2, connectto3, edit) {

  connectto2  = getRecID(connectto2);
  connectto3  = getRecID(connectto3);

  var sm1  = cats.split(",");
  var cm1  = cids.split(",");
  var reca = "0";
  var sm2 = [];
  var cm2 = [];

  while (reca < sm1.length) {
	  sm2[reca]  = sm1[reca].split("|");	 
	  cm2[reca]  = cm1[reca].split("|");	 
	  reca++;
  };


  var recb = "0";
  while (recb < sm2.length) {
     hv = "";
     cv = "";
     var recc = "1";
     while (recc < sm2[recb].length) {
	hv = hv + sm2[recb][recc] + ",";
	cv = cv + cm2[recb][recc] + ",";
	recc++;
     };
     ssm[cm2[recb][0]]=hv;
     csm[cm2[recb][0]]=cv;
     recb++;
  };
	
  while ( connectto3.length > 0) {
    connectto3.options[connectto3.length-1]=null;
  };
  while ( connectto2.length > 0) {
    connectto2.options[connectto2.length-1]=null;
  };

  recj=0;
  while ( sm1[recj] ) {
    option = new Option( sm1[recj].split("|",1), cm1[recj].split("|",1))
    connectto2.options[recj]=option
    recj=recj+1;
  };

  menutitle_left_edit (edit);
	
}


function out_connectto3 (edit) {

   var connectto3  = getRecID('connectto3');

   var cid = document.recipeclass.connectto2.options[document.recipeclass.connectto2.selectedIndex].value;
   var text = document.recipeclass.connectto2.options[document.recipeclass.connectto2.selectedIndex].text;

   sssm = ssm[cid].split(",");
   cssm = csm[cid].split(",");
  
  while ( connectto3.length > 0) {
    connectto3.options[connectto3.length-1]=null;
  };
   reci=0;
   while (sssm[reci] ) {
     option = new Option( sssm[reci], cssm[reci] );
     connectto3.options[reci]=option;
     reci++;
   }

  menutitle_left_edit (edit);

}

function menutitle_left_new (edit) {

  var sel_orderno  = getRecID('sel_orderno');
  var connectto    = getRecID('connectto');
  var connectto2    = getRecID('connectto2');
  var connectto3    = getRecID('connectto3');

  while ( sel_orderno.length > 0) {
     sel_orderno.options[sel_orderno.length-1]=null;
  }

 if ( connectto3.length || (connectto3.length == 0 && connectto2.selectedIndex >= 0) ) {
    reck = "0";
    while ( reck < connectto3.length ) {
/*      if (document.recipeclass.connectto3.options[reck].value != edit) { */
	option = new Option (document.recipeclass.connectto3.options[reck].text, document.recipeclass.connectto3.options[reck].value );
	sel_orderno.options[sel_orderno.length]=option;
/*      }; */
      reck++;
    }
 } else {
    if ( connectto2.length || (connectto2.length == 0 && connectto.selectedIndex >= 0) ) {
       reck = "0";
       while ( reck < connectto2.length ) {
/*	  if (document.recipeclass.connectto2.options[reck].value != edit) { */
	    option = new Option (document.recipeclass.connectto2.options[reck].text, document.recipeclass.connectto2.options[reck].value );
	    sel_orderno.options[sel_orderno.length]=option;
/*	  }; */
         reck++;
       }
    } else {
       reck = "0";
       while ( reck < connectto.length ) {
/*	  if (document.recipeclass.connectto.options[reck].value != edit) { */
	    option = new Option (document.recipeclass.connectto.options[reck].text, document.recipeclass.connectto.options[reck].value );
	    sel_orderno.options[sel_orderno.length]=option;
/*	  };*/
         reck++;
       }
    }
 }

 option = new Option( document.recipeclass.menutitle.value , 499 );
 sel_orderno.options[sel_orderno.length]=option;

} /* endfunc */


function menutitle_left_edit (edit) {

  var sel_orderno  = getRecID('sel_orderno');
  var connectto    = getRecID('connectto');
  var connectto2    = getRecID('connectto2');
  var connectto3    = getRecID('connectto3');

  while ( sel_orderno.length > 0) {
     sel_orderno.options[sel_orderno.length-1]=null;
  }

 if ( connectto3.length || (connectto3.length == 0 && connectto2.selectedIndex >= 0) ) {
    reck = "0";
    while ( reck < connectto3.length ) {
/*      if (document.recipeclass.connectto3.options[reck].value != edit) { */
        option = new Option (document.recipeclass.connectto3.options[reck].text, document.recipeclass.connectto3.options[reck].value );
        sel_orderno.options[sel_orderno.length]=option;
/*      };*/
      reck++;
    }
 } else {
    if ( connectto2.length || (connectto2.length == 0 && connectto.selectedIndex >= 0) ) {
       reck = "0";
       while ( reck < connectto2.length ) {
/*          if (document.recipeclass.connectto2.options[reck].value != edit) {*/
            option = new Option (document.recipeclass.connectto2.options[reck].text, document.recipeclass.connectto2.options[reck].value );
            sel_orderno.options[sel_orderno.length]=option;
/*          };*/
         reck++;
       }
    } else {
       reck = "0";
       while ( reck < connectto.length ) {
/*          if (document.recipeclass.connectto.options[reck].value != edit) {*/
            option = new Option (document.recipeclass.connectto.options[reck].text, document.recipeclass.connectto.options[reck].value );
            sel_orderno.options[sel_orderno.length]=option;
/*          };*/
         reck++;
       }
    }
 }

} /* endfunc */




function move_selorder_up () {

  var sel_orderno  = getRecID('sel_orderno');

  if ( sel_orderno.selectedIndex > 0 ) {
     val1 = sel_orderno.options[sel_orderno.selectedIndex].value;
     txt1 = sel_orderno.options[sel_orderno.selectedIndex].text;
     otherindex = sel_orderno.selectedIndex - 1;
     sel_orderno.options[sel_orderno.selectedIndex].value = sel_orderno.options[otherindex].value
     sel_orderno.options[sel_orderno.selectedIndex].text = sel_orderno.options[otherindex].text
     sel_orderno.options[otherindex].value = val1;
     sel_orderno.options[otherindex].text = txt1;
     sel_orderno.selectedIndex = otherindex;

     var hiddenrun = "0";
     var hidden = "";

     while (hiddenrun < sel_orderno.options.length) {
       if (hidden != "") { hidden = hidden + "," };
         hidden = hidden + sel_orderno.options[hiddenrun].value;
         hiddenrun++;
       };
     document.recipeclass.sortorder.value = hidden;

 }


} /* endfunc */


function move_selorder_down () {

  var sel_orderno  = getRecID('sel_orderno');

  if ( sel_orderno.selectedIndex < sel_orderno.length - 1 ) {
     val1 = sel_orderno.options[sel_orderno.selectedIndex].value;
     txt1 = sel_orderno.options[sel_orderno.selectedIndex].text;
     otherindex = sel_orderno.selectedIndex + 1;
     sel_orderno.options[sel_orderno.selectedIndex].value = sel_orderno.options[otherindex].value
     sel_orderno.options[sel_orderno.selectedIndex].text = sel_orderno.options[otherindex].text
     sel_orderno.options[otherindex].value = val1;
     sel_orderno.options[otherindex].text = txt1;
     sel_orderno.selectedIndex = otherindex;
 }

     var hiddenrun = "0";
     var hidden = "";

     while (hiddenrun < sel_orderno.options.length) {
       if (hidden != "") { hidden = hidden + "," };
         hidden = hidden + sel_orderno.options[hiddenrun].value;
         hiddenrun++;
       };
     document.recipeclass.sortorder.value = hidden;

} /* endfunc */

var rcid = [];
var rid = [];
var rnam = [];

function out_categories (cats, cids, ctg, connectto2, connectto3, recipecid, recipeid, recipename, id_old) {

  connectto2  = getRecID(connectto2);
  connectto3  = getRecID(connectto3);

	var sm1  = cats.split(",");
	var cm1  = cids.split(",");
	var reca = "0";
	var sm2 = [];
	var cm2 = [];
	rcid = recipecid.split(",");
	rid  = recipeid.split(",");
	rnam = recipename.split(",");

	while (reca < sm1.length) {
		sm2[reca]  = sm1[reca].split("|");	 
		cm2[reca]  = cm1[reca].split("|");	 
		reca++;
	};


	var recb = "0";
	while (recb < sm2.length) {
	   hv = "";
	   cv = "";
           var recc = "1";
	   while (recc < sm2[recb].length) {
              hv = hv + sm2[recb][recc] + ",";
              cv = cv + cm2[recb][recc] + ",";
	      recc++;
	   };
           ssm[cm2[recb][0]]=hv;
           csm[cm2[recb][0]]=cv;
	   recb++;
	};
	
  while ( connectto3.length > 0) {
    connectto3.options[connectto3.length-1]=null;
  };
  while ( connectto2.length > 0) {
    connectto2.options[connectto2.length-1]=null;
  };

  recj=0;
  while ( sm1[recj] ) {
    option = new Option( sm1[recj].split("|",1), cm1[recj].split("|",1))
    connectto2.options[recj]=option
    recj=recj+1;
  };

  menutitle_categories (id_old);
	
}

function menutitle_categories (id_old) {

  var sel_orderno  = getRecID('sel_orderno');
  var connectto    = getRecID('connectto');
  var connectto2    = getRecID('connectto2');
  var connectto3    = getRecID('connectto3');


  while ( sel_orderno.length > 0) {
     sel_orderno.options[sel_orderno.length-1]=null;
  };

  if (connectto3.length && connectto3.selectedIndex >= 0) {
    reck = "0";
    while (reck < rcid.length) {
      if (connectto3.options[connectto3.options.selectedIndex].value == rcid[reck]) {
	if (rid[reck] != id_old) {
	  option = new Option (rnam[reck],rid[reck]);
	  sel_orderno.options[sel_orderno.length]=option;
	};
      };
      reck++;
    };
  }
  else {
    if (connectto2.length && connectto2.selectedIndex >= 0) {
      reck = "0";
      while (reck < rcid.length) {
	if (connectto2.options[connectto2.options.selectedIndex].value == rcid[reck]) {
	  if (rid[reck] != id_old) {
	    option = new Option (rnam[reck],rid[reck]);
	    sel_orderno.options[sel_orderno.length]=option;
	  };
	};
	reck++;
      };
    }
    else {
      if (connectto.length && connectto.selectedIndex >= 0) {
	reck = "0";
	while (reck < rcid.length) {
	  if (connectto.options[connectto.options.selectedIndex].value == rcid[reck]) {
	    if (rid[reck] != id_old) {
	      option = new Option (rnam[reck],rid[reck]);
	      sel_orderno.options[sel_orderno.length]=option;
	    };
	  };
	  reck++;
	};
      };
    };
  };

  if (document.recipeclass.recipetitle.value != 'edit') {
    option = new Option( document.recipeclass.recipetitle.value , 499 );
    sel_orderno.options[sel_orderno.length]=option;
  };

} /* endfunc */

function out_order () {

   var connectto3  = getRecID('connectto3');

   var cid = document.recipeclass.connectto2.options[document.recipeclass.connectto2.selectedIndex].value;
   var text = document.recipeclass.connectto2.options[document.recipeclass.connectto2.selectedIndex].text;

   sssm = ssm[cid].split(",");
   cssm = csm[cid].split(",");
  
  while ( connectto3.length > 0) {
    connectto3.options[connectto3.length-1]=null;
  };
   reci=0;
   while (sssm[reci] ) {
     option = new Option( sssm[reci], cssm[reci] );
     connectto3.options[reci]=option;
     reci++;
   }

  menutitle_categories ();

}

function choose_cat (cats, cids, ctg, connectto2, connectto3) {

  connectto2  = getRecID(connectto2);
  connectto3  = getRecID(connectto3);

	var sm1  = cats.split(",");
	var cm1  = cids.split(",");
	var reca = "0";
	var sm2 = [];
	var cm2 = [];

	while (reca < sm1.length) {
		sm2[reca]  = sm1[reca].split("|");	 
		cm2[reca]  = cm1[reca].split("|");	 
		reca++;
	};


	var recb = "0";
	while (recb < sm2.length) {
	   hv = "";
	   cv = "";
           var recc = "1";
	   while (recc < sm2[recb].length) {
              hv = hv + sm2[recb][recc] + ",";
              cv = cv + cm2[recb][recc] + ",";
	      recc++;
	   };
           ssm[cm2[recb][0]]=hv;
           csm[cm2[recb][0]]=cv;
	   recb++;
	};
	
  while ( connectto3.length > 0) {
    connectto3.options[connectto3.length-1]=null;
  };
  while ( connectto2.length > 0) {
    connectto2.options[connectto2.length-1]=null;
  };

  recj=0;
  while ( sm1[recj] ) {
    option = new Option( sm1[recj].split("|",1), cm1[recj].split("|",1))
    connectto2.options[recj]=option
    recj=recj+1;
  };

}

function out_connectto3_edit () {

   var connectto3  = getRecID('connectto3');

   var cid = document.recipeclass.connectto2.options[document.recipeclass.connectto2.selectedIndex].value;
   var text = document.recipeclass.connectto2.options[document.recipeclass.connectto2.selectedIndex].text;

   sssm = ssm[cid].split(",");
   cssm = csm[cid].split(",");
  
  while ( connectto3.length > 0) {
    connectto3.options[connectto3.length-1]=null;
  };
   var reci="0";
   while (sssm[reci] ) {
     option = new Option( sssm[reci], cssm[reci] );
     connectto3.options[reci]=option;
     reci++;
   }

}

