/*================================================================================*/
/*                                                                                */
/*             BW2Technologies.Web.JScript.Framework (Alpha V1.0.0.0)             */
/*                                                                                */
/*                                  Web-Repeater                                  */
/*                                                                                */
/*              Copyright © 2006-2010 by BW2Technologies (HP. Lassnig)            */
/*                           mail to : hansi@lassnig.ch                           */
/*                                                                                */
/*================================================================================*/

var _oRepeaters = new Array();
var _oRepeater = null;

/*--------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------*/


/*================================================================================*/
/* <Function> Repeater Object </Function>
/*================================================================================*/
function __bw2Repeater(strRepeaterID , fAjax) {
         this.Ajax = fAjax;
         this.ID = strRepeaterID;

         /*--- Repeater Object ---*/
         this.Repeater = __bw2GetElementById(strRepeaterID); 
         this.Repeater.ParentObject = this;
         this.Repeater.Type = 'repeater';

         this.Repeater.Resize = _bw2RepeaterResizeFn;

         /*--- ToolStrip-Panels Objects ---*/   
         this.Repeater.PanelTop = __bw2GetElementById(strRepeaterID + '__PanelTop');
         this.Repeater.PanelBottom = __bw2GetElementById(strRepeaterID + '__PanelBot');

         /*--- Grid-Header Object ---*/   
         this.Repeater.Head = __bw2GetElementById(strRepeaterID + '__Head');
         this.Repeater.Head.ParentObject = this.Repeater;

         /*--- Grid-Body Object ---*/   
         this.Repeater.Body = __bw2GetElementById(strRepeaterID + '__Body');
         this.Repeater.Body.ParentObject = this.Repeater;

         /*--- Grid-Footer Object ---*/   
         this.Repeater.Foot = __bw2GetElementById(strRepeaterID + '__Foot');
         this.Repeater.Foot.ParentObject = this.Repeater;

         if (_fIE) {
            __bw2AddEventListener(this.Repeater, 'resize', _bw2RepeaterResizeEv, false);
         } else {
            __bw2AddEventListener(this.Repeater, 'resize', __bw2RepeaterResizeObject, false);
         }

         this.Repeater.Resize();

/*--------------------------------------------------------------------------------*/

         function _bw2RepeaterResizeEv(oEvent) {
                  if (oEvent == null) return;
                  var oRepeater = __bw2EventSource(oEvent);
                  if (oRepeater) __bw2RepeaterResize(oEvent, oRepeater.id); 
         }

/*--------------------------------------------------------------------------------*/

         function _bw2RepeaterResizeFn(oObj) {
                  if (oObj) {
                     __bw2RepeaterResize(null, oObj.id); 
                  } else {
                     __bw2RepeaterResize(null, this.id); 
                  }  
         }
}

/*--------------------------------------------------------------------------------*/

function __bw2RepeaterResizeObject(oObj) {
         try {
             if (oObj) __bw2RepeaterResize(null, oObj.id); 
         } catch (e) {}
}

/*================================================================================*/
/* <Function> Repeater Scroll </Function>
/*================================================================================*/
function __bw2RepeaterResize(oEvent, strRepeaterID) {
         try {
             var oObj = __bw2GetElementById(strRepeaterID); if (!oObj) return;
         
             with (oObj) {
                  var oST = null;  
                  var nT = 0;  
                  var nH = offsetHeight;  
                  var nW = offsetWidth;  
                  var nBH = 0;
                  var nPH = 0;
                  var nPW = 0;

//__bw2Debug(nH + ', ' + offsetParent.offsetHeight);

                  if (_fIE) nPH++;

                  nPH += __bw2GetNumber(oObj.style.paddingTop);  
                  nPH += __bw2GetNumber(oObj.style.paddingBottom);  
                  nPW += __bw2GetNumber(oObj.style.paddingLeft);  
                  nPW += __bw2GetNumber(oObj.style.paddingRight);  

                  nPH += __bw2GetNumber(oObj.style.borderTopWidth);  
                  nPH += __bw2GetNumber(oObj.style.borderBottomWidth);  
                  nPW += __bw2GetNumber(oObj.style.borderLeftWidth);  
                  nPW += __bw2GetNumber(oObj.style.borderRightWidth);  

                  nH -= nPH;
                  nW -= nPW;
                  
                  /*--- ToolStrips neu anordnen ---*/ 
                  if ((PanelTop) && (PanelTop.style.display != 'none')) {
                     PanelTop.style.left = 0;
                     PanelTop.style.top = 0;
                     PanelTop.style.width = nW;
                     nT = PanelTop.offsetHeight;
                     nH -= nT;
                  }

                  if ((PanelBottom) && (PanelBottom.style.display != 'none')) {
                     PanelBottom.style.left = 0;
                     PanelBottom.style.top = nH - PanelBottom.offsetHeight;
                     PanelBottom.style.width = nW;
                     nH -= PanelBottom.offsetHeight;
                  }

                  if ((Head) && (Head.style.display != 'none')) {
                     Head.style.Top = nT;
                     Head.style.width = nW;
                     nBH += Head.offsetHeight;
                     nT = nBH;
                  }

                  if ((Foot) && (Foot.style.display != 'none')) {
                     Foot.style.top = nH - Foot.offsetHeight;
                     Foot.style.width = nW;
                     nBH += Foot.offsetHeight;
                  }

                  if (Body) {
                     Body.style.top = nT;
                     Body.style.width = nW;
                     Body.style.height = nH - nBH;
                  }
             }
         } catch (e) {
             __bw2Debug('__bw2RepeaterResize Exception : ' + e);
        }
}

/*================================================================================*/
/* <Function> Repeater load </Function>
/*================================================================================*/
function __bw2RepeaterLoad(strRepeaterID, fNewLoad, fAsync) {
//         try {
//             with (_oRepeaters[strRepeaterID]){
//                  __bw2Loading(true); 
//                  
//                  if (Ajax) {
//                     if (fAsync) {
//                        __bw2AjaxRequest(strRepeaterID, 'Repeater', fNewLoad, 'onload', __bw2RepeaterLoadAsyncResponse);
//                     } else {    
//                        __bw2AjaxRequest(strRepeaterID, 'Repeater', fNewLoad, 'onload');
//                     }
//                  }  
//             }
//         } catch (e) {
//             this.error = new __bw2FrameworkError(e.name, e.description, e.number);
//             alert('__bw2RepeaterLoad Exception : ' + this.error);
//         }
}

/*================================================================================*/
/* <Function> Repeater load response </Function>
/*================================================================================*/
function __bw2RepeaterLoadAsyncResponse(oRequest) {
         try {
             //with (_oRepeaters[oRequest.context]){
                  //Repeater.Body.innerHTML += oRequest.value;   
             //}
         } catch (e) {
             this.error = new __bw2FrameworkError(e.name, e.description, e.number);
             alert('__bw2RepeaterLoadResponse Exception : ' + this.error);
         }
}

/*================================================================================*/
/* <Function> Repeater Scroll </Function>
/*================================================================================*/
function __bw2RepeaterScroll(oEvent, strRepeaterID) {
//         try {
//             var oHead = __bw2GetElementById(strRepeaterID + '__Head');
//             var oBody = __bw2GetElementById(strRepeaterID + '__Body');
//             var oScroll = __bw2GetElementById(strRepeaterID + '_SCP');

//             oHead.scrollLeft = oBody.scrollLeft;
//             oScroll.value = oBody.scrollTop + ',' + oBody.scrollLeft;
//         } catch (e) {
//             this.error = new __bw2FrameworkError(e.name, e.description, e.number);
//             alert('__bw2RepeaterScroll Exception : ' + this.error);
//         }
}

/*================================================================================*/
/* <Function> Repeater Sort </Function>
/*================================================================================*/
function __bw2RepeaterSort(oEvent, oObject, strRepeaterID, strSort) {
//         try {
//             //__bw2Loading(true);

//             var oBody = __bw2GetElementById(strRepeaterID + '__Body');
//             var oScroll = __bw2GetElementById(strRepeaterID + '_SCP');

//             oScroll.value = oBody.scrollTop + ',' + oBody.scrollLeft;

//             with (_oRepeaters[strRepeaterID]){
//                  if (Ajax) {
//                     if (oEvent.ctrlKey == true) {
//                        __bw2AjaxObjOnEvent(oEvent, strRepeaterID, 'onsort_+' + strSort, oObject.id, true);
//                     } else {
//                        __bw2AjaxObjOnEvent(oEvent, strRepeaterID, 'onsort_' + strSort, oObject.id, true);
//                     }
//                  } else {  
//                     if (oEvent.ctrlKey == true) {
//                        __doPostBack(oObject.id, 'SORT_+' + strSort);
//                     } else {
//                        __doPostBack(oObject.id, 'SORT_' + strSort);
//                     }
//                  }  
//             }
//         } catch (e) {
//             this.error = new __bw2FrameworkError(e.name, e.description, e.number);
//             alert('__bw2RepeaterSort : ' + this.error);
//         }
}

/*--------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------*/
