﻿var objLogoutWindow;
var timerObj;
var Apppath=""; 
var dblMinutes;

function ele(Id)
{
    return window.document.getElementById(Id);
}
function parentEle(Id)
{
    return window.parent.document.getElementById(Id);
}

function ConfirmUpdate()
{
    var blnHTMLEditorPresent = false;
    if(top.document.getElementById("InlineText"))
        blnHTMLEditorPresent = true;
    for(var i=0;i<top.frames.length;i++)
    {
        if(top.frames[i].document.getElementById("InlineText"))
            blnHTMLEditorPresent = true;
    }    
    if((top.parent.document.getElementsByTagName("var").length > 0) ||(top.parent.document.body.getAttribute("IgnoreSession")))
        blnHTMLEditorPresent = true;
    if (blnHTMLEditorPresent == false)
        objLogoutWindow = window.open(Apppath+"/Common/frmLogoutConfirmation.aspx","Pegasus","toolbar=no,statusbar=no,resizable=0,addressbar=no,left="+(screen.width * 30.0 /100)+", width="+(screen.width * 37.0 /100)+",top="+(screen.height * 40.0 /100)+",height="+(screen.height * 15.0 /100)+", scrollbars=no");
    else
        CheckForHTMLEditor()
}

function SetTimer()
{
    //set timer to call function to confirm update
    window.setTimeout("CheckForHTMLEditor()",5000)
}

function CheckForHTMLEditor()
{
    var blnHTMLEditorPresent = false; 
    try
    {	
        if(top.opener && top.document.getElementById("InlineText"))
        {
            if(top.opener.parent.document.getElementsByTagName("var").length == 0)
            {
                var varElement = top.opener.parent.document.createElement("var");
                varElement.innerHTML = "true"
                top.opener.parent.document.appendChild(varElement)
            }
        }
    }
    catch(ex){}    
    for(var i=0;i<top.frames.length;i++)
    {
        if(top.frames.location.href.indexOf("frmViewStudentSubmission.aspx") != -1)
            blnHTMLEditorPresent = true;
        else if(top.frames[i].document.getElementById("InlineText"))
                blnHTMLEditorPresent = true;
    }
    if (blnHTMLEditorPresent == false)
        timerObj = window.setTimeout("ConfirmUpdate()",dblMinutes);
}

function ResetTimer()
{
    if(timerObj != undefined)
        window.clearTimeout(timerObj);
    timerObj = window.setTimeout("ConfirmUpdate()",dblMinutes);
}

//Get the Confirmation timer value & applciation path for Confirmation page till web
function InitTimerVals(redirectTime, Webpath)
{
    dblMinutes = redirectTime;
    Apppath=Webpath;
}

//Below script is transfered from PegasusMenuItem.aspx By Madhukumar M S, to avoid repetition of javascript code in all pages which are inherited from PegasusCourseMainBase

function CloseWindow()
{ 
 	try
 	{
		if(!objWin.Closed)	
			objWin.close();
	}catch(ex){}
}
function getposOffsetTop(overlay)
{
	var totaloffset=overlay.offsetTop;
	var parentEl=overlay.offsetParent;
	while (parentEl!=null)
	{
		totaloffset=totaloffset+parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
	}
	event.cancelBubble=true;
	return totaloffset;
}
function disableDropDownControls(dropDownId,objTitle,textControl)
{ 
  if(ele(dropDownId)!=null)
   {
    if(objTitle=="Course Content")
     {
        var SelectedItems = ele(dropDownId).options;
        var i=0;
        var MaxWidth=ele(dropDownId).offsetWidth;
        var MaxHeight=ele(dropDownId).offsetHeight;   
        ele(textControl).style.display="block";
        ele(dropDownId).style.display="none";
        for(i=0;i<SelectedItems.length;i++)
          {
                if(SelectedItems[i].selected)
                {
                   ele(textControl).value = SelectedItems[i].text;
                   ele(textControl).style.width=parseInt(ele(dropDownId).style.width) + "px"; 
                   ele(textControl).style.height =MaxHeight + "px"; 
                   break;
                }
           }           
      }
      else
          {
            ele(textControl).style.display="none";
            ele(dropDownId).style.display="block";
          }
    }
}
function searchFunction(obj)
{
    var strPage=window.location.href.substr(window.location.href.lastIndexOf("/")+1); 
    if(strPage.substr(0,strPage.lastIndexOf("."))=="frmCourseSearch")
    {
       disableDropDownControls("ddlAssessmentName",obj.title,"txtSearchActivity"); 
       disableDropDownControls("ddlobjectType",obj.title,"txtObjectType");
       disableDropDownControls("ddlObjFormat",obj.title,"txtObjFormat"); 
    }
}
var str;
function DropDownWindow(obj)
{ 
   if(navigator.appName=="Microsoft Internet Explorer")
    { 
        if(navigator.appVersion.indexOf("MSIE 6.0")!='-1')
            searchFunction(obj);
    }  
    if((navigator.appName=="Microsoft Internet Explorer")||(navigator.userAgent.toLowerCase().indexOf("safari") > -1))
      {
         for(var i=0;i<=parent.window.document.getElementById("divTable1").parentElement.parentElement.children.length-1;i++)
            parent.window.document.getElementById("divTable1").parentElement.parentElement.children[i].children[1].style.display='inline';
      }
    else
      {
          var str1=obj.id.substring(0,obj.id.lastIndexOf("_")+1);
          var ctlId = str1.substring(6,str1.lastIndexOf("_")+1);
          var selectIndex = getChildIndex(obj.id);
           for(var i=0;i<=parentEle("divTable1").parentNode.parentNode.cells.length-1;i++)
           {
             parentEle("divTable1").parentNode.parentNode.cells[i].lastChild.style.display='none';
             if(i == selectIndex)
                     parentEle("divTable1").parentNode.parentNode.cells[i].lastChild.style.display='inline';                              
            if(navigator.userAgent.indexOf("Mac")=="-1")
              parentEle("divTable1").parentNode.parentNode.cells[i].lastChild.style.position ="absolute"; 
             parentEle("tab1").style.width="203px";
         }
      } 
    try
       {
         if(navigator.appName=="Microsoft Internet Explorer")
             parentEle("tab1").style.width="160px";
         else
             parentEle("tab1").style.width="200px";    
        ele(str + "divTable").style.display="none";
       }
      catch(e){}  
      str=obj.id.substring(0,obj.id.lastIndexOf("_")+1);
      var subobj=ele(str + "divTable");
      var yValue = parseInt(getposOffsetTop(obj))+24;     
      subobj.style.top = yValue+'px';
      subobj.style.left = obj.offsetParent.offsetLeft+'px';      
      ele(str + "divTable").style.display="block";  
      if(parentEle("cmbCharacterSet"))
      {
        parentEle("cmbCharacterSet").style.display="block";
        ele(str + "divTable").style.display="block";
        parentEle("tab1").style.display="block"
      }       
}
function getChildIndex(searchFor)
{
    var varGetId = searchFor.substring(0,6);
    var j=0;
    var eleID ;
    if(ele(varGetId+'_navlist'))
        eleID = ele(varGetId+'_navlist');
    else
        eleID =  ele(varGetId+'navlist')

    var w;
    var z = eleID.cells.length +eleID.cells.length;
	    for(w=1; w < z; w++)
	    {
	        if(eleID.childNodes[w].childNodes[3] != "undefined")
                {
	                var varID =eleID.childNodes[w].childNodes[3].id;
	                if (varID == searchFor)
		                 return j;
	            }
            w=w+1;
            j=j+1;
	    }
	return 0;
}
function SubNavigationsUrls(ToolBar,strTab,strCourseType,strOrganisationTypeID)
{
   switch(ToolBar)
   {
     case 2:
            switch(strTab)
              {
                case 12:
                       return "/Modules/TeachingPlan/frmTeachingPlan.aspx?From=CC";
                       break;
                case 13:
                       return "/Modules/TeachingPlan/frmTeachingplan.aspx?From=LO";
                       break;
                case 14:
                       if(parentEle("hdnAssetLinkID"))
                         return "/Modules/TeachingPlan/frmCoursePreview.aspx?From=CC&intLinkID=" + parentEle("hdnAssetLinkID").value + "&RightAssetID=" + parentEle("hdnLinkParentId").value ;
                       else
                         return "/Modules/TeachingPlan/frmCoursePreview.aspx?From=CC"
                       break;
                case 15:
                       return "/Modules/TeachingPlan/Calendar/frmAssignContent.aspx?From=ACM";
                       break; 
                case 16:
                       if(strCourseType=="1" && strOrganisationTypeID=="2")
                       
                       return "/Modules/MediaLibrary/frmMLDefault.aspx?From=MediaLib";
                       else
                       return "/Modules/MediaLibrary/frmStuSearchMedialink.aspx?From=MediaLib";
                       break;
                case 17:
                       return "/Modules/QuestionLibrary/QuestionLibrary.aspx?mode=0";
                       break;
                case 18:
                       return "/Modules/QuestionLibrary/QuestionLibrary.aspx?mode=1"; 
                       break;
                case 30:
                       return "/Modules/TeachingPlan/Calendar/frmOrganizeCalendar.aspx?From=IOC";
                       break;
                case 31:
                       return "/Modules/TeachingPlan/frmTeachingPlan.aspx?From=IPS";
                       break;
              }break;
      case 4:
             switch (strTab)
               {
                 case 19:
                       return "/Modules/Gradebook/GBDefault.aspx?SubTab=1&PrefMode=1";
                       break;
                 case 20:
                       return "/Modules/Gradebook/frmGBRoasterDefault.aspx?PrefMode=3";
                       break;
                 case 11:
                       return "/Modules/Reports/frmRptDefault.aspx?PrefMode=4";
                       break;
                 case 27:
                       return "/Modules/Gradebook/frmGBCustomView.aspx?PrefMode=5";
                       break;
               }break;           
      case 5:
             switch(strTab)
              {
                case 21:
                      return "/Modules/CourseMail/CourseMailDefault.aspx?toForm=CM";
                      break;
                case 22:
                      return "/Modules/CourseAnnouncement/frmInstAnnouncementList.aspx?toForm=CA";
                      break;                
              } break; 
      case 8:   
             switch(strTab)
              {
                case 23:
                      return "/Modules/TeachingPlan/frmCoursePreview.aspx?From=VAC";
                      break;
                case 24:
                      return "/Modules/TeachingPlan/frmCoursePreview.aspx?From=SCC";
                      break;                
                case 25:
                      return "/Modules/LearningObjectives/frmLearningObjectiveView.aspx?From=LO";
                      break;
                case 26:
                      return "/Modules/MediaLibrary/frmStuSearchMedialink.aspx?From=MediaLib";
                      break;  
                case 32:
                      return "/Modules/TeachingPlan/frmCoursePreview.aspx?From=SPS";
                      break;     
              } break;  
        case 9:   
             switch(strTab)
              {
                 case 28:
                       return "/Modules/Gradebook/GBDefault.aspx?SubTab=1&PrefMode=1";
                       break;
                 case 29:
                       return "/Modules/Gradebook/frmGBCustomView.aspx?PrefMode=5";
                       break;     
              } break;            
   }
}
function CCSubNavigation(ToolBar,strTab,strCourseType,strOrganisationTypeID)
{ 
    ele(str + "divTable").style.display="none";
    window.location.href= Apppath +SubNavigationsUrls(ToolBar,strTab,strCourseType,strOrganisationTypeID);  
}
function DropDownBgColor(obj)
{             
    obj.className= "DropDownMainCss2";           
}
function DropDownBgColor1(obj)
{  
    obj.className= "DropDownMainCss3";	 	
}
function HideCourseBrowser()
{
    if(window.location.pathname.indexOf("frmTeachingPlan.aspx")!=-1 || window.location.pathname.indexOf("QuestionLibrary.aspx")!=-1)
        HideDivCourseBrowser();
}
  
//Transfered from pegasusmenucollections.ascx
  
function ValidateUserAndSession(obj)
{
    try
    {
        var __LogOutRespose;
        __LogOutRespose = PegasusMenuItem.ValidateUserAndSession()
        if(!__LogOutRespose.error)
        {
            if(__LogOutRespose.value=='True')
            {
                window.IsDuplicateLogin = 1;
                window.open(Apppath + "/Common/ShowMessage.aspx?alert=1&ResID=9551&fn=ForceLogOut&IsDupLogin=1","","toolbar=no,statusbar=no,resizable=0,addressbar=no,left="+(screen.width * 30.0 /100)+", width="+(screen.width * 30.0 /100)+", top="+(screen.height * 40.0 /100)+",height="+(screen.height * 10.0 /100)+", scrollbars=no");		
                return false;
            }           
        }       
    }
    catch(ex){}
}

function ForceLogOut()  
{
    location.href=Apppath+'/frmlogout.aspx?IsSessionDiffer=1&logout=1';
}

/*To identify the browser and OS for accessing pegasus applications*/
    var BrowserDetect = {
	    init: function () {	  
		    this.browser = this.searchString(this.dataBrowser);
		    this.version = this.searchVersion(navigator.userAgent)|| this.searchVersion(navigator.appVersion);
		    this.OS = this.searchString(this.dataOS);
	    },
	    searchString: function (data) {
		    for (var i=0;i<data.length;i++)	
		        {
			        var dataString = data[i].string;
			        var dataProp = data[i].prop;
			        this.versionSearchString = data[i].versionSearch || data[i].identity;
			
			        if (dataString) 
			            {
				            if (dataString.indexOf(data[i].subString) != -1)
					            return data[i].identity;
			            }
			        else if (dataProp)
				        return data[i].identity;
		        }
	    },
	    searchVersion: function (dataString) {
		    var index = dataString.indexOf(this.versionSearchString);
		    if (index == -1) return;
		        return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	    },
	    dataBrowser: [
		    {
			    string: navigator.userAgent,
			    subString: "Chrome",
			    identity: "Chrome"
		    },	 
		    {
			    string: navigator.vendor,
			    subString: "Apple",
			    identity: "Safari",
			    versionSearch: "Version"
		    },
		    {
			    prop: window.opera,
			    identity: "Opera"
		    },		 
		    {
			    string: navigator.userAgent,
			    subString: "Firefox",
			    identity: "Firefox"
		    },		 
		    {	 
			    string: navigator.userAgent,
			    subString: "Netscape",
			    identity: "Netscape"
		    },
		    {
			    string: navigator.userAgent,
			    subString: "MSIE",
			    identity: "Explorer",
			    versionSearch: "MSIE"
		    },
		    {
			    string: navigator.userAgent,
			    subString: "Gecko",
			    identity: "Mozilla",
			    versionSearch: "rv"
		    } 
	    ],
	    dataOS : [
		    {
			    string: navigator.platform,
			    subString: "Win",
			    identity: "Windows"
		    },
		    {
			    string: navigator.platform,
			    subString: "Mac",
			    identity: "Mac"
		    }, 
		    {
			    string: navigator.platform,
			    subString: "Linux",
			    identity: "Linux"
		    }
	    ]
    };

    BrowserDetect.init();
 

    function DetectBrowserDetails(AppnPath,blnFlag)
        {            
            var FlagStatus  =   false;     
            
            switch(BrowserDetect.browser)
                {
		            case "Explorer" : 
		                                
							            if(BrowserDetect.version>8)
								            FlagStatus  =   false;
							            else							                
								            FlagStatus  =   true;							
							            break;
		            case "Firefox" :						            
						                FlagStatus  =   false;
						                break;

		            case "Chrome" :		                
		                                FlagStatus  =   false;
		                                break;
		            case "Safari" :  		                   
		                                if(BrowserDetect.OS == "Mac")           
		                                    FlagStatus  =   true;
		                                 else 
		                                    FlagStatus  =   false;
		                                break;
		            default:				
				                        FlagStatus  =   false;
	            }	            
	            
	        if (FlagStatus == false && blnFlag == "1")
	        {
	            MessageForInvalidBrowser();
	        }else if(FlagStatus == false && blnFlag == "0"){
	            location.href=AppnPath+'/frmlogout.aspx?IsInvalidBrowser=1';	  
	        }
              
        }