﻿var pos_X;
var pos_Y;
var inlinewin = null;
document.onmousedown = function (event) {
    if (!event) {
    event = window.event;
    }
    pos_X = event.clientX;
    pos_Y = event.clientY;
}




function PerformWidgetFunction(sender, eventArgs)
 {
    var method = "PerformWidgetFunction";
    var cmd = eventArgs.command;
   
 
    var senderContent = sender.get_contentContainer().innerHTML;
    var re = new RegExp('pnlDockWrapper\\d+');
    var m = re.exec(senderContent);
    //The widget must contain only one pnlDockWrapper
    
    var reDL = new RegExp('DockUserControl\\d+');
    var DL = reDL.exec(senderContent);
     
    if (m == null && m.length > 1) {return;}
    else{ 

       if(sender.get_dockZoneID() != "")
       {
           if (cmd.get_name() == "InsertNew")
           {
             //send the id of Panel pnlDockWrapper
             displayDockDiv(m[0]);
           }
           else if(cmd.get_name()== "Remove")
           {
            parent.frames["description"].checkChanged(false);
            if(confirm("Are you sure you want to remove this widget?"))
            {
                var result; 
                if (DL != null && DL.length >= 1) {
                    result = WidgetHandler.RemoveUserControl(TemplateId,m[0].substring(14),DL[0]);
                }
                else{
                    var delStatus = WidgetHandler.DeleteWidgetFile(TemplateId,m[0].substring(14));
                    if(delStatus)
                        result = WidgetHandler.RemoveDockItem(TemplateId,m[0].substring(14));
                    else
                        result.value = false;
                }
                if(result.value == true)
                {
                   // __doPostBack('','');
                    alert("Successfully removed.")
                    parent.frames['description'].location.href = parent.frames['description'].location;
                }
                else
                    alert("unable to remove the widget elements");
            }
           }
           else if(cmd.get_name() == "CreateMaster")
           {
            //alert("Create Master Called");
            //var myPop = new RegExp('popUpMaster\\d+');
            //var id = myPop.exec(senderContent);
            if (DL != null && DL.length >= 1) {
                alert("Cannot create Master.")
                return;
            }
            var wrapperId = m[0].replace("pnlDockWrapper","");
            var objWrappper = sender.get_contentContainer();
            parent.frames["description"].checkChanged(false);
            
            var popUpContent = '';
            popUpContent = " <span id='popUpMaster_"+m[0]+"' >";
                popUpContent += "<ul>";
                    popUpContent += "<li>Enter master name:&nbsp;";
                        popUpContent += "<input type='text' id='masterName_"+m[0]+"' /></li>";
                    popUpContent += "<li>";
//            popUpContent += " <input type='checkbox' id='masterCheck_"+m[0]+"' onclick='ShowMasterList(\"masterSelect\")'/>";
//            popUpContent += "Overwrite Existing</li>";
//            popUpContent += "<li>";
//            popUpContent += "<select id='masterSelect' style='display:none;'>";
//            popUpContent += "<option value='0'>first_one</option>";
//            popUpContent += "</select>";
//            popUpContent += "</li>";
            popUpContent += "<li>";
            popUpContent += "<input type='button' name='Save' value='Save' onclick=\"SaveMaster('masterName_"+m[0]+"',"+wrapperId+")\" />";
            popUpContent += "</li>";

            popUpContent += "</ul>";
            popUpContent += "</span>";
            
            
           
            
            inlinewin=dhtmlwindow.open("createMaster", "inline",popUpContent, "Create Master", "width=250,height=80,left="+(pos_X - 190)+"px,top="+pos_Y+"px,resize=0,scrolling=0", "recal");
            //document.getElementById(id[0]).style.display="block";

           }
            else if(cmd.get_name() == "ChooseColor")
           {
               PerformMyFunction(sender,m[0]);
               return;

            }
         
        
         
       }
   }
 }
 
 function PerformMyFunction(sender,DockWrapperid)
 {
   
     var method = "PerformMyFunction";
     var docid = sender._uniqueID;
     var popUpContent='';
     var myDockWrapperId = DockWrapperid;
     
     //get the active category with color
     var result = WidgetHandler.GetColorCategoryInfo();
     if(result != null && result.value != null)
     {
         var tblColorCategory = result.value;
         
         if(typeof(tblColorCategory) == 'object')
         {
             popUpContent = " <div id='dvTrial' onload=\"RevertSelection();\">";
            
             popUpContent += "<table width='100%';>";
             
             for(var i = 0; i < tblColorCategory.Rows.length; i++)
             {
                 popUpContent += "<tr>";
                 popUpContent += "<td style='padding:2px 5px'>";
                 popUpContent += "Category: " + tblColorCategory.Rows[i].Categoryname; 
                 popUpContent += "</td>";
                 popUpContent += "<td>";
                 popUpContent += "<div style='padding:2px 4px;color:#fff;' id='" + tblColorCategory.Rows[i].Categoryname + "Color' style='background:" + tblColorCategory.Rows[i].Color + ";cursor:pointer;'onclick=\"applyColor(" + docid + ",this.id,'txt" + tblColorCategory.Rows[i].Categoryname +"');\">Click Here To Select Color</div>";
                 popUpContent += "<input type='text' id='txt" + tblColorCategory.Rows[i].Categoryname +"'  value='" + tblColorCategory.Rows[i].Color + "' style='display:none'>";
                 popUpContent += "</td>";
                 popUpContent += "</tr>";
             }
             popUpContent += "<tr>";
             popUpContent += "<td colspan='2'>";
             popUpContent += "<input type='button' value='Save' onclick=\"SaveColorCategorySetting('"+myDockWrapperId+"');\"> &nbsp;&nbsp;";
             popUpContent += "<input type='button' value = 'Cancel' onclick=\"CancelColorCategorySetting();\"> &nbsp;&nbsp;";
             popUpContent += "<input type='button' value = 'Save And Publish' onclick=\"SaveAndPublishCategorySetting('"+myDockWrapperId+"');\">";
             popUpContent += "</td>";
             popUpContent += "</tr>"; 
             
             popUpContent += "</table>";
             popUpContent += "</div>";
             inlinewin=dhtmlwindow.open("ChooseColor", "inline",popUpContent, "Choose Color", "width=300,height=120,left="+(pos_X - 45)+"px,top="+pos_Y+"px,resize=0,scrolling=0", "recal");
        }
     }
 }
 
  function SaveMaster(obj,dockWrapperId)
 {
    var method = "SaveMaster";
    var masterName = document.getElementById(obj).value;
    var status = false;
    if(masterName == null || masterName == ''){ alert("Please enter the master name.");document.getElementById(obj).focus();return;}
   //check existing Master Widget
   var whereCond = "Where mastername <> '' OR mastername <> null";
   var masterList  = WidgetHandler.GetMasterWidgetList(whereCond);
   if(masterList.value !=null && masterList.value.Rows.length > 0)
   {
        for(var i = 0; i < masterList.value.Rows.length ; i++)
        {
            if(masterList.value.Rows[i].MasterName.toLowerCase() == masterName.toLowerCase())
            {

                if(confirm("The Master Name already exists. Do you want to overwrite it?? [Note:Overwriting master will overwrite existing contents also]"))
                {               
                    var toDockWrapperId = masterList.value.Rows[i].DockWrapperId;
                    var currentDescriptions= getDescriptionArray();
                    var currentImages = getImageArray();
                    var toSiteMapId = masterList.value.Rows[i].SiteMapId;
                    var retVal  =WidgetHandler.SetOverwriteMasterWidget(TemplateId,toSiteMapId, dockWrapperId,toDockWrapperId,masterName,currentDescriptions,currentImages) ;
                    if(retVal.value != -1)
                    {
                        alert("SuccessFully Created");
                        parent.frames['description'].location.href = parent.frames['description'].location;
                        status = true;
                    }
                }   
                else
                {
                    document.getElementById(obj).focus();
                    return;
                }

             }
             
        }
   }
    if(!status)
    {
            var result =WidgetHandler.SetMasterWidget(TemplateId,dockWrapperId,1,masterName,0);
            if(result.value){alert("Successfully Created.");}
            else{alert("Could Not Create Master Widget.");}
    }
    if(inlinewin != null)
    {
        dhtmlwindow.close(inlinewin);
    }
 }
 function ShowMasterList(obj)
 {
     //javascript:document.getElementById(\"masterSelect\").style.display = \"block\";
      var selObj = document.getElementById(obj);
      removeMasterList(obj);
      if(selObj.style.display == "none")
      {
          var tblMasterWidgetList = WidgetHandler.GetMasterWidgetList("Where MasterType=1 and MasterName<>'' ").value;
          if(tblMasterWidgetList.Rows.length >0)
          {
           
            
                if(selObj != null)
                {
                
                 for(var i = 0 ;i < tblMasterWidgetList.Rows.length;i++)
                    {
                        //masterContent += ""<option value=""+tblMasterWidgetList.Rows[i].DockId+"">""+tblMasterWidgetList.Rows[i].MasterName+""</option>"";
                      var optNew = document.createElement('option');
                      optNew.value =   tblMasterWidgetList.Rows[i].DockId;
                      optNew.text =  tblMasterWidgetList.Rows[i].MasterName;
                      selObj.add(optNew);
                    }
                    selObj.style.display = "block";
                }
          }
      }
      else
      {
        selObj.style.display = "none";
      }
 }
 function removeMasterList(obj)
    {
      var elSel = document.getElementById(obj);
      var i;
      for (i = elSel.length - 1; i>=0; i--) {
        if (elSel.options[i].selected) {
          elSel.remove(i);
        }
      }
    }

 var SelectedColor=null;
 var SelectedCategory = null;
 var selectedDoc = null;

 function applyColor(obj,objDiv,objText)
 {

   var radDock = document.getElementById(obj.id);
   var divs = radDock.getElementsByTagName("div");
   var txtColor = document.getElementById('txtColor');
   var textBox = document.getElementById(objText);
   for(var i = 0; i < divs.length ; i++)
   {
    divs[i].style.background =  document.getElementById(objDiv).style.background; //'green';
   }
   
   SelectedColor =textBox.value; //document.getElementById(objDiv).style.background;
   
   SelectedCategory = 'Category';
   selectedDoc = obj.id;
   
  
  
 }
 
 function SaveColorCategorySetting(wrapperId)
 {
     var re = new RegExp('\\d+');
    var m = re.exec(wrapperId);
    var mynumber = m[0];
    //save category, color and docid into the database to the temp table
    if(selectedDoc != null && SelectedColor != null)
    {
        var result = WidgetHandler.InsertUpdateDockColor(SelectedColor,true,mynumber);
        if(result != null && result.value != null)
        {
            if(result.value)
            {
                 dhtmlwindow.close(document.getElementById('ChooseColor'));
                 RevertSelection();
            }
            else
                alert("sorry your selection cannot be changed");
        }
        else
        {
            alert("sorry your selection cannot be changed");
        }
    }
 }
 
 function CancelColorCategorySetting()
 {
   
    //cancel the selection and keep the previously stored color
 }
 
 function SaveAndPublishCategorySetting(wrapperId)
 {  
   
    var re = new RegExp('\\d+');
    var m = re.exec(wrapperId);
    var mynumber = m[0];
    
    if(selectedDoc != null && SelectedColor != null)
    {
        var result = WidgetHandler.InsertUpdateDockColor(SelectedColor,false,mynumber);
        if(result != null && result.value != null)
        {
            if(result.value)
            {
                 dhtmlwindow.close(document.getElementById('ChooseColor'));
                 RevertSelection();
            }
            else
                alert("sorry your selection cannot be changed");
        }
        else
        {
            alert("sorry your selection cannot be changed");
        }
    }
      //save category, color and docid into the database in both temp and main table 
 }
 
 function RevertSelection()
 {
    selectedDoc = null;
    SelectedColor = null;
 }
 
