
function OT_transferLeft() { moveSelectedOptions(this.right,this.left,this.autoSort,this.staticOptionRegex); this.update(); }
function OT_transferRight() { moveSelectedOptions(this.left,this.right,this.autoSort,this.staticOptionRegex); this.update(); }
function OT_transferAllLeft() { moveAllOptions(this.right,this.left,this.autoSort,this.staticOptionRegex); this.update(); }
function OT_transferAllRight() { moveAllOptions(this.left,this.right,this.autoSort,this.staticOptionRegex); this.update(); }
function OT_saveRemovedLeftOptions(f) { this.removedLeftField = f; }
function OT_saveRemovedRightOptions(f) { this.removedRightField = f; }
function OT_saveAddedLeftOptions(f) { this.addedLeftField = f; }
function OT_saveAddedRightOptions(f) { this.addedRightField = f; }
function OT_saveNewLeftOptions(f) { this.newLeftField = f; }
function OT_saveNewRightOptions(f) { this.newRightField = f; }
function OT_update() {
var removedLeft = new Object();
var removedRight = new Object();
var addedLeft = new Object();
var addedRight = new Object();
var newLeft = new Object();
var newRight = new Object();
for (var i=0;i<this.left.options.length;i++) {
var o=this.left.options[i];
newLeft[o.value]=1;
if (typeof(this.originalLeftValues[o.value])=="undefined") {
addedLeft[o.value]=1;
removedRight[o.value]=1;
}
}
for (var i=0;i<this.right.options.length;i++) {
var o=this.right.options[i];
newRight[o.value]=1;
if (typeof(this.originalRightValues[o.value])=="undefined") {
addedRight[o.value]=1;
removedLeft[o.value]=1;
}
}
if (this.removedLeftField!=null) { this.removedLeftField.value = OT_join(removedLeft,this.delimiter); }
if (this.removedRightField!=null) { this.removedRightField.value = OT_join(removedRight,this.delimiter); }
if (this.addedLeftField!=null) { this.addedLeftField.value = OT_join(addedLeft,this.delimiter); }
if (this.addedRightField!=null) { this.addedRightField.value = OT_join(addedRight,this.delimiter); }
if (this.newLeftField!=null) { this.newLeftField.value = OT_join(newLeft,this.delimiter); }
if (this.newRightField!=null) { this.newRightField.value = OT_join(newRight,this.delimiter); }
}
function OT_join(o,delimiter) {
var val; var str="";
for(val in o){
if (str.length>0) { str=str+delimiter; }
str=str+val;
}
return str;
}
function OT_setDelimiter(val) { this.delimiter=val; }
function OT_setAutoSort(val) { this.autoSort=val; }
function OT_setStaticOptionRegex(val) { this.staticOptionRegex=val; }
function OT_init(theform) {
this.form = theform;
if(!theform[this.left]){alert("OptionTransfer init(): Left select list does not exist in form!");return false;}
if(!theform[this.right]){alert("OptionTransfer init(): Right select list does not exist in form!");return false;}
this.left=theform[this.left];
this.right=theform[this.right];
for(var i=0;i<this.left.options.length;i++) {
this.originalLeftValues[this.left.options[i].value]=1;
}
for(var i=0;i<this.right.options.length;i++) {
this.originalRightValues[this.right.options[i].value]=1;
}
if(this.removedLeftField!=null) { this.removedLeftField=theform[this.removedLeftField]; }
if(this.removedRightField!=null) { this.removedRightField=theform[this.removedRightField]; }
if(this.addedLeftField!=null) { this.addedLeftField=theform[this.addedLeftField]; }
if(this.addedRightField!=null) { this.addedRightField=theform[this.addedRightField]; }
if(this.newLeftField!=null) { this.newLeftField=theform[this.newLeftField]; }
if(this.newRightField!=null) { this.newRightField=theform[this.newRightField]; }
this.update();
}
function OptionTransfer(l,r) {
this.form = null;
this.left=l;
this.right=r;
this.autoSort=true;
this.delimiter=",";
this.staticOptionRegex = "";
this.originalLeftValues = new Object();
this.originalRightValues = new Object();
this.removedLeftField = null;
this.removedRightField = null;
this.addedLeftField = null;
this.addedRightField = null;
this.newLeftField = null;
this.newRightField = null;
this.transferLeft=OT_transferLeft;
this.transferRight=OT_transferRight;
this.transferAllLeft=OT_transferAllLeft;
this.transferAllRight=OT_transferAllRight;
this.saveRemovedLeftOptions=OT_saveRemovedLeftOptions;
this.saveRemovedRightOptions=OT_saveRemovedRightOptions;
this.saveAddedLeftOptions=OT_saveAddedLeftOptions;
this.saveAddedRightOptions=OT_saveAddedRightOptions;
this.saveNewLeftOptions=OT_saveNewLeftOptions;
this.saveNewRightOptions=OT_saveNewRightOptions;
this.setDelimiter=OT_setDelimiter;
this.setAutoSort=OT_setAutoSort;
this.setStaticOptionRegex=OT_setStaticOptionRegex;
this.init=OT_init;
this.update=OT_update;
}
