﻿// JScript File

$.fn.ScriptLibrary = function(options){
          var config = {
          RootFolder:".",
          LoadImage:"Images/loader.gif",
          ErrorIcon:"Images/exclamation.gif",
          ControlStatusID: "ControlStatusMessage",
          ControlHolderID: "ControlHolder"
          }
          jQuery.extend(config, options);
          

          return  this.each(function(){
             
          }).extend({
                  UpdateControlStatus:function(StatusMessage){
                     var ControlStatus = $("div#" + config.ControlStatusID);
                     ControlStatus.html(StatusMessage).show().fadeOut(1200);
                  },
                  TabClick: function(TabName){
                     $("li#" + TabName).trigger("click");
                  },
                  UpdateContent: function(ContentHtml){
                    var ControlHolder = $("div#" + config.ControlHolderID);
                    ControlHolder.html(ContentHtml);
                  },
                  DoContainer:function(options){
                     var Title = $(this).find("div.InformationContainerTitle");
                     var Content = $(this).find("div.InformationContainerContent");
                     var ContainerWidth = $(this).width();
                     var ContainerHeight = $(this).height();
                     
                     if(Title && Content)
                       {
                        
                         var TitleContainer;
                         if(!options.TitleImage){
                                     TitleContainer = jQuery("<DIV />").addClass("TitleContainer")
                                                                       .height(options.TitleHeight)
                                                                       .append(jQuery("<DIV />").addClass("MyIIRCBackGroundSkin LeftCorner")
                                                                                                .html("&nbsp;"))
                                                                       .append(jQuery("<DIV />").addClass("MyIIRCBackGroundSkin Middle")
                                                                                                .width(ContainerWidth - 20)
                                                                                                .append(Title))
                                                                       .append(jQuery("<DIV />").addClass("MyIIRCBackGroundSkin RightCorner")
                                                                                                .html("&nbsp;"));                           
                         }
                         else{
                                TitleContainer = jQuery("<DIV />").addClass("TitleContainer")
                                                                  .height(options.TitleHeight)
                                                                  .addClass("MyIIRCHeaderSkin " + options.TitleImage)
                                                                  .append(Title);   
                         }
                         
                         
                         var ContentContainer = jQuery("<DIV />").addClass("ContentContainer") 
                                                                 .height(ContainerHeight - options.TitleHeight - options.BottomHeight)                                                                                       
                                                                 .append(jQuery("<DIV />").addClass("MyIIRCBorderSkin LeftCorner")
                                                                                          .html("&nbsp;"))
                                                                 .append(jQuery("<DIV />").addClass((options.ShadedBackGround ? "ShadedMiddle" : "Middle"))
                                                                                          .width(ContainerWidth - 2)
                                                                                          .append(Content))
                                                                 .append(jQuery("<DIV />").addClass("MyIIRCBorderSkin RightCorner")
                                                                                          .html("&nbsp;"));

                         var BottomContainer = jQuery("<DIV />").addClass("BottomContainer")
                                                                .height(options.BottomHeight)
                                                                .append(jQuery("<DIV />").addClass("MyIIRCBackGroundSkin " + (options.ShadedBackGround ? "ShadedLeftCorner" : "LeftCorner"))
                                                                                         .html("&nbsp;"))
                                                                .append(jQuery("<DIV />").addClass("MyIIRCBackGroundSkin " + (options.ShadedBackGround ? "ShadedMiddle" : "Middle"))
                                                                                         .width(ContainerWidth - 20)
                                                                                         .html("&nbsp;"))
                                                                .append(jQuery("<DIV />").addClass("MyIIRCBackGroundSkin " + (options.ShadedBackGround ? "ShadedRightCorner" : "RightCorner"))
                                                                                         .html("&nbsp;"));                                                                                     
                         
                         
                         $(this).addClass("InformationContainer")
                                .append(TitleContainer)
                                .append(ContentContainer)
                                .append(BottomContainer); 
                       }                   
                  },
                  DoError: function(ErrorMessage){
                    return "<div class='ErrorMessage'><img src='" + config.RootFolder + "/" + config.ErrorIcon + "' />" + ErrorMessage + "</div>";
                  },
                  DoSuccess: function(SuccessMessage){
                    return "<div class='SuccessMessage'><img src='images/accept.gif' border='0' style='float:left;' />" + SuccessMessage + "</div>";
                  },
                  GetRootFolder: function(){
                    return config.RootFolder
                  },
                  GetData: function(postUrl, postData, CallBackFunc){                  
                  $.ajax({
                    type:"POST",
                    url: config.RootFolder + "/" + postUrl,
                    data: postData,
                    contentType:"application/json; charset=utf-8",
                    dataType:"json",
                    error:function(xhr,status,err){
                      var errorObj = eval("(" + xhr.responseText + ")");
                     var ErrorMessage = "ExceptionType: " + errorObj.ExceptionType + " "
                     ErrorMessage += "Message: " + errorObj.Message + " "
                     ErrorMessage += "Stack Trace: " + errorObj.StackTrace + " "
                     alert(ErrorMessage);
                    },
                    success:function(dataResponse){
                       if(CallBackFunc){
                         if(jQuery.isFunction(CallBackFunc)){
                            CallBackFunc(dataResponse);
                         }                       
                       }  
                      else
                        return dataResponse                   
                    }
                  });
                  },
                  LoadContent: function(objTarget,postUrl,postData, CallBackFunc){

                    var ProgressDiv = jQuery("<DIV />").attr("id", "ProgressBox")
                                                       .addClass("ProgressDiv")
                                                       .width(objTarget.width())
                                                       .height(objTarget.height())                                      
                                                       .css({
                                                        top:0,
                                                        left:0,
                                                        bottom:0,
                                                        right:0
                                                        })   
                                                       .append(jQuery("<DIV />").addClass("LoadingImage")
                                                                                .html('<img src="' + config.RootFolder + '/Images/loader.gif" style="display:block;"/>'))
                   objTarget.append(ProgressDiv);            
                   $.ajax({
                   type:"POST",
                   url: config.RootFolder + "/" + postUrl,
                   data:postData,
                   contentType:"application/json; charset=utf-8",
                   dataType:"json",
                   error: function(xhr,status,err){
                      var errorObj = eval("(" + xhr.responseText + ")");
                     var ErrorMessage = "ExceptionType: " + errorObj.ExceptionType + " "
                     ErrorMessage += "Message: " + errorObj.Message + " "
                     ErrorMessage += "Stack Trace: " + errorObj.StackTrace + " "
                     alert(ErrorMessage);
                   },
                   success:function(dataResponse){
                   ProgressDiv.remove();
                   if (CallBackFunc) {     
                     if (jQuery.isFunction(CallBackFunc)) {    
                     if (dataResponse)  
                        {
                         if(dataResponse.ListSource)
                           CallBackFunc(objTarget, dataResponse.ListSource);
                         else
                           CallBackFunc(objTarget, dataResponse);
                        }
                     else CallBackFunc(objTarget, dataResponse)
                     }
                    }
                     else   objTarget.html(dataResponse).hide().show();
                   }
                   })
                },
                Draggable: function(objTarget){
                       objTarget.mousedown(function(e){                                             
                                             var self = $(this);
                                             var dx = self.offset().left;
                                             var dy = self.offset().top;
                                             var xGap = e.pageX - dx;
                                             var yGap = e.pageY - dy;
                                             self.css({"cursor":"move"});
                                             $(document).bind("mousemove.drag", function(e){
                                                var x = e.pageX - xGap;
                                                var y = e.pageY - yGap;
                                                
                                                if(e.pageX >= 0 && e.pageY >= 0)
                                                   self.css({left:x, top:y});
                                                
                                                return false;
                                             });
                                            return false;
                                          })
                               .mouseup(function(e){
                                            $(document).unbind("mousemove.drag");
                                            $(this).css({"cursor":"default"});
                                });                 
                },
                Initialize: function(){
                  $('a[rel*=IIRCMessageBox]').IIRCMessageBox({
                    loadingImage : config.RootFolder + "/Images/popup/loading.gif",
                    closeImage   : config.RootFolder + "/Images/popup/closelabel.gif"
                  }) ;   
                  return this;                               
                }
          });
}

