//Script Info**************************************************************
//Version: 2.0.
//Date: 09/11/07
//Changes:
//Programmed by:  Charles McKinney
//Email: support@cfmc.com
//
//***********************************************************************************************
//*********  ANY CHANGES MADE BELOW THIS MAY MEAN THE SCRIPT CAN NO LONGER BE SUPPORTED  ********
//***********************************************************************************************


var ErrorHandling = "normal_alert";  //controls how error alerts are displayed

var maxStubItems=5; 
var maxBanItems=20; 
var banRadCount=0; //Pre-defined (radio) banners  
var RowObjects;  //array of all stub objects
var ColumnObjects; //array of all banner objects


window.onbeforeunload = function() {CleanUp();}

function OnDemandLoad() {
       
   //set clearCol and clearRow to clear data onclick
   SetDataChecks(
     "clearCol",
     "CLEARDATA:col[]"
   );

   SetDataChecks(
     "clearRow",
     "CLEARDATA:row[]"
   );


   RowObjects = FindObjects("row[]",true);
 
   //alert(RowObjects.length);
    for (var a = 0; a < RowObjects.length; a++) {
       ThisObject = RowObjects[a];
       ThisObject.buttons = RowObjects;
       ThisObject.CheckMax = true;
       ThisObject.onclick = function() {CheckAll(this);}
    }
      
   ColumnObjects = FindObjects("col[]",true);
   
    for (var a = 0; a < ColumnObjects.length; a++) {
       ThisObject = ColumnObjects[a];
       ThisObject.buttons = ColumnObjects;
       ThisObject.CheckMax = true;
       ThisObject.ClearBanners = true;
       ThisObject.onclick = function() {CheckAll(this);}
    }
  

    BanRadObjects = FindObjects("col_rad",true);
   
    for (var a = 0; a < BanRadObjects.length; a++) {
       ThisObject = BanRadObjects[a];
       ThisObject.buttons = BanRadObjects;
       ThisObject.ClearBanners = true;
       ThisObject.onclick = function() {CheckAll(this);}
    }

  
   // toggle1 - open/close edit menu
   var aaToggle = FindObjects('aaToggle');
   aaToggle = aaToggle[0];
   
   SetHideReveal("aaToggle","aa");  //run function to open or close the secondary object
   aaToggle.changetext = true;  //set to so ChangeText function will run
   aaToggle.onclick = function() {CheckAll(this);}
   
   // toggle2 - open/close submenus: freq percent stat
   
   var freqOn = FindObjects("freqOn");
   var freqOn = freqOn[0];
   SetStyle("ab","display:block");
   freqOn.onclick = function() {SetStyle("ab","display:block");}
   
   var freqOff = FindObjects("freqOff");
   var freqOff = freqOff[0];
   freqOff.onclick = function() {SetStyle("ab","display:none");}


   var percOn = FindObjects("percOn");
   var percOn = percOn[0];
   SetStyle("ac","display:block");
   percOn.onclick = function() {SetStyle("ac","display:block");}
   
   var percOff = FindObjects("percOff");
   var percOff = percOff[0];
   percOff.onclick = function() {SetStyle("ac","display:none");}


   var statOn = FindObjects("statOn");
   var statOn = statOn[0];
   SetStyle("ad","display:block");
   statOn.onclick = function() {SetStyle("ad","display:block");}
   
   var statOff = FindObjects("statOff");
   var statOff = statOff[0];
   statOff.onclick = function() {SetStyle("ad","display:none");}
  
   //add all multiple checks to over all check array
   AddCheckAll(CheckMax);
   AddCheckAll(ChangeText);
   AddCheckAll(ClearBanners);

   //add submit check function to the submit array
   AddOnSubmit(OnDemandSubmit);   
}

AddOnLoad(OnDemandLoad);

function ChangeText(ElemObject) {

  if (ElemObject.changetext != true) return true;
     
  var togglerText = document.getElementById("aaToggle").innerHTML .substring(7);
     
  if (ElemObject.object.opened == true) {
     NewText = '&#171; Close ' + togglerText;
     InsertText(ElemObject.id,NewText);
  }

  if (ElemObject.object.opened != true) {
     NewText = '&#187;  Open ' + togglerText;
     InsertText(ElemObject.id,NewText);
  }
  
  return true;
}  

function CheckMax(ElemObject) {

     if (ElemObject.CheckMax != true) return true;

     AnswerCount = FindValues(ElemObject);
     if (AnswerCount === false) AnswerCount = 0;
     
     if (ElemObject.name == "row[]") {

     //alert("Number of answers is " + AnswerCount.length + " maximum is " + maxStubItems);
    
        if (AnswerCount.length > maxStubItems) {
           ElemObject.checked = false;
           ErrorText =  'You may only choose '+maxStubItems+' stub items.'
           ShowErrorAlert(ErrorText,ElemObject);
        }
      }   
      
     if (ElemObject.name == "col[]") {
    
        if (AnswerCount.length > maxBanItems) {
           ElemObject.checked = false;
           ErrorText =  'You may only choose '+maxBanItems+' banner items.'
           ShowErrorAlert(ErrorText,ElemObject);
           return false;
        }
      }    
  return true;    
}

function ClearBanners(ElemObject) {

     if (ElemObject.ClearBanners != true) return true;

     if (ElemObject.name != "col[]") {
       if (ElemObject.checked == true) {
           for (var a = 0; a < ColumnObjects.length; a++) {
              ThisObject = ColumnObjects[a];
              ClearInputs(ThisObject);
           }
       }
     }  
     
     if (ElemObject.name != "col_rad") {
       if (ElemObject.checked == true) {
           for (var a = 0; a < BanRadObjects.length; a++) {
              ThisObject = BanRadObjects[a];
              ClearInputs(ThisObject);
           }
       }
     }  
     
   return true;
}     


function CleanUp() {
  var odloc = document.getElementById('ondemForm').odloc.value;
  var url = '/cfmcweb/php/ondemand/cleanup.php?odloc='+odloc;
  
  CleanUpProperties = "yes";        //status
  CleanUpProperties += ":no";      //toolbar
  CleanUpProperties += ":no";      //location
  CleanUpProperties += ":no";      //menu
  CleanUpProperties += ":yes";     //scrollbars
  CleanUpProperties += ":yes";     //resizable
  CleanUpProperties += ":200";     //height
  CleanUpProperties += ":400";     //width
  CleanUpProperties += ":100";     //top
  CleanUpProperties += ":100";     //left

  
  OpenPopup(url,"cleanup",CleanUpProperties); 

  return false;
} 


//Only checking for at least one banner and at least one column.
//onclick check will handle the maximum.

function OnDemandSubmit() {

     //alert("running submit check");
        var BanRadCount;

        StubCount = FindValues(RowObjects[0]);
        
        if (StubCount === false) {
            ErrorText = 'Please choose at least one stub item!';
            ShowErrorAlert(ErrorText,RowObjects[0]);
            return false;
        }
        
        ColumnCount = FindValues(ColumnObjects[0]);
        if (BanRadObjects.length > 0) BanRadCount = FindValues(BanRadObjects[0]);
        
        if ((ColumnCount === false && BanRadCount == undefined) || (ColumnCount === false && BanRadObjects.length > 0 && BanRadCount === false)) {
            ErrorText = 'Please choose at least one banner item!';
            ShowErrorAlert(ErrorText,ColumnObjects[0]);
            return false;
        }
   
return true;
}

