/content/folder[@name='Samples']/folder[@name='Models']/package[@name='GO Data Warehouse (query)']/model[@name='model']<script>
var fW = (typeof getFormWarpRequest == "function" ? getFormWarpRequest() : document.forms["formWarpRequest"]);
if (!fW || fW == undefined) {
fW = (formWarpRequest_THIS_ ? formWarpRequest_THIS_:formWarpRequest_NS_);
}
var preFix = "";
if (fW.elements["cv.id"]) { preFix = fW.elements["cv.id"].value;}
var nameSpace = "oCV" + preFix;
var paulScripts = {};
/*
* Utilities
*/
paulScripts.isInArray=function(value, array) {
//return array.indexOf(value) > -1; //Curses, foiled again! I'll get you IE, and your dog too!
for(var j=0;j<array.length;++j)
{
if(array[j]===value){return true;}
}
return false;
}
/*
* selectColumns
* Fill the AvailableFields prompt with fields from the package.
*/
paulScripts.selectColumns={};
/*
* Params
*/
paulScripts.selectColumns.selectField = function(name) {
var available = fW['_oLstChoicesAvailableFields'+name]
, selected = fW['_oLstChoicesSelectedFields'+name]
, selectedCount=0;
for(var i=0;i<available.length;++i){
if(available.options[i].selected) ++selectedCount;
}
for(var i=0;i<selectedCount;++i){
selected.appendChild(available.options[available.options.selectedIndex]);
}
}
paulScripts.selectColumns.removeField=function(name) {
var available = fW['_oLstChoicesAvailableFields'+name]
, selected = fW['_oLstChoicesSelectedFields'+name]
, selectedCount=0;
for(var i=0;i<selected.length;++i){
if(selected.options[i].selected) ++selectedCount;
}
for(var i=0;i<selectedCount;++i){
available.appendChild(selected.options[selected.options.selectedIndex]);
}
}
//Before modifying the use values, join the values into the merged textbox. This allows us to reselect those fields, in that order, on page load.
paulScripts.selectColumns.mergeFields = function(name){
var selected = fW['_oLstChoicesSelectedFields'+name]
, merged = fW['_textEditBoxMergedFields'+name]
, mergedValue=[];
for(var i=0;i<selected.length;++i){
mergedValue.push(selected.options[i].value);
}
merged.value=mergedValue.join('||');
}
//On page reload, select the fields that appear in the merged textbox
paulScripts.selectColumns.reselectFields = function(name){
var selected = fW['_oLstChoicesSelectedFields'+name]
, merged = fW['_textEditBoxMergedFields'+name]
, available = fW['_oLstChoicesAvailableFields'+name]
, mergedArr = merged.value.split('||');
for(var i=0;i<mergedArr.length;++i){
for(var j=0;j<available.length;++j)
{
if(available.options[j].value===mergedArr[i]){selected.appendChild(available.options[j])}
}
}
}
paulScripts.selectColumns.moveToTop= function(name){
var selected = fW['_oLstChoicesSelectedFields'+name]
,j=0;
for(var i=0;i<selected.length;++i){
if(selected.options[i].selected) {selected.insertBefore(selected.options[i],selected.options[0+j]);++j}
}
/* Really disgusting IE hack. IE doesn't always redraw the select after moving options. Why?
* Why should it? I only wasted 3 hours trying to figure out why the hell it wasn't working.
* When it actually was working. Of course it doesn't refresh. That would be silly. Silly me,
* expecting IE to act the way it should.*/
selected.style.display='none';
selected.style.display='block';
}
paulScripts.selectColumns.moveUp= function(name){
var selected = fW['_oLstChoicesSelectedFields'+name];
for(var i=1;i<selected.length;++i){
if(selected.options[i].selected&!selected.options[i-1].selected) {
selected.insertBefore(selected.options[i],selected.options[i-1]);
}
}
selected.style.display='none';
selected.style.display='block';
}
paulScripts.selectColumns.moveDown= function(name){
var selected = fW['_oLstChoicesSelectedFields'+name]
for(var i=selected.length-2;i>=0;--i){
if(selected.options[i].selected&!selected.options[i+1].selected) {
selected.insertBefore(selected.options[i],selected.options[i+2]);
}
}
selected.style.display='none';
selected.style.display='block';
}
paulScripts.selectColumns.moveToBottom= function(name){
var selected = fW['_oLstChoicesSelectedFields'+name]
, j=0;
for(var i=0;i<selected.length;++i){
if(selected.options[i-j].selected) {
selected.appendChild(selected.options[i-j]);
++j;
}
}
selected.style.display='none';
selected.style.display='block';
}
/*After the fields have been merged to the text box, it is time to prepare them. The
* report will search for the fields by looking for a number surrounded by pipes: |1| or |2|
* This function will loop through and modify the use value to incorporate the pipes.
*/
paulScripts.selectColumns.prepUseValues = function(name){
var selected = fW['_oLstChoicesSelectedFields'+name];
for(var i=0;i<selected.length;++i){
selected.options[i].value+='|'+i+'|';
selected.options[i].selected=true;
}
}
</script>