﻿var g_session_id = 0;

var Cal = new Array();

function CalItem(divId, startDayDiv, startTimeDiv, endTimeDiv, offsetX, offsetY)
{
    this.divId = divId;
    this.startDayDiv = startDayDiv;
    this.startTimeDiv = startTimeDiv;
    this.endTimeDiv = endTimeDiv;
    this.offsetX = offsetX;
    this.offsetY = offsetY;
    Cal[Cal.length] = this;
}

function PositionDivs()
{
    for(i=0;i<Cal.length;i++)
    {
        Cal[i].divId.style.left = parseInt(findPosX(Cal[i].startDayDiv).toString()) + parseInt(Cal[i].offsetX) + 'px';
        Cal[i].divId.style.top = parseInt(findPosY(Cal[i].startTimeDiv).toString()) + parseInt(Cal[i].offsetY) + 'px';
        Cal[i].divId.style.height = findPosY(Cal[i].endTimeDiv) - findPosY(Cal[i].startTimeDiv);
    }
}

function AddToTimeSlot(calItemId, startDay, startTimeId, endTimeId, offsetX, offsetY)
{
    var theDiv = document.getElementById("Weekly1_ci_" + calItemId + "_" + startDay + "_" + startTimeId);
    var startTimeDiv = document.getElementById("Weekly1_" + startTimeId);
    var endTimeDiv = document.getElementById("Weekly1_" + endTimeId);
    var startDayDiv = document.getElementById("Weekly1_" + startDay);

    new CalItem(theDiv, startDayDiv, startTimeDiv, endTimeDiv, offsetX, offsetY);
}

function AddToDay(id, startTime, endTime, subject, calItemId)
{
    document.getElementById(id).innerHTML += 
        //'<div class=\'calTime\'><a href=ViewCalItem.aspx?calItemId=' + calItemId + '>' + startTime + ' - ' + endTime + '</a>' +
        '<div class=\'calSubject\'><a href=\'CalDay.aspx?date=' + startTime + '&calItemId=' + calItemId + '\'>' + subject + '</a></div>';// +        
        //'</div>';
}

function GoToCalItem(calItemId)
{
    alert(calItemId);
}

function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }

  function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }
    
function SendAndReceive(link, params, divName)
{
    var xmlHttpReq = false;
    var strURL = link + params + "&date=" + escape(new Date()).toString() + "&session-id=" + g_session_id;

    if (window.XMLHttpRequest)
    {
	    xmlHttpReq = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
	    xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else return;

    xmlHttpReq.open('GET', strURL, true);
    xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    

	
    xmlHttpReq.onreadystatechange = function()
    {
	    if (xmlHttpReq.readyState == 4)
	    {
	        //alert(xmlHttpReq.responseText);
	        if(document.getElementById(divName))
    		    document.getElementById(divName).innerHTML = xmlHttpReq.responseText;
        }
    }
    xmlHttpReq.send(strURL);
}

function SendAndReceiveTemplate(link, params, editorName)
{
    var xmlHttpReq = false;
    var strURL = link + params + "&date=" + escape(new Date()).toString() + "&session-id=" + g_session_id;
    
    if (window.XMLHttpRequest)
    {
	    xmlHttpReq = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
	    xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else return;

    xmlHttpReq.open('GET', strURL, true);
    xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

    xmlHttpReq.onreadystatechange = function()
    {
	    if (xmlHttpReq.readyState == 4)
	    {
	        //alert(xmlHttpReq.responseText);
	        if(tinyMCE.getInstanceById(editorName))
	        {
    	        var ed = tinyMCE.getInstanceById(editorName);
                ed.setHTML(xmlHttpReq.responseText);
    		}
    		else
    		{
    		    if(document.getElementById(editorName))
    		       document.getElementById(editorName).value = xmlHttpReq.responseText;
    		}
        }
    }
    xmlHttpReq.send(strURL);
}



var viewDivID = "";
function ToggleDetails(divID)
{
    if(document.getElementById("pnlMO_" + divID)) //div exists, move along
    {
        if(viewDivID!=divID)//it is a new div id
        {
            if(document.getElementById("pnlMO_" + viewDivID)) //if there was one that was turned on, turn it off
                document.getElementById("pnlMO_" + viewDivID).className = "mouseOverOff";
                
            viewDivID = divID;//set the viewDivID to the new id
            var theDiv = document.getElementById("pnlMO_" + divID); //get the div
            theDiv.className = "mouseOverOn"; //set it to on
            CenterDiv("pnlMO_" + divID);    //center it
        }
        else // we're on an old one
        {
            var theDiv = document.getElementById("pnlMO_" + viewDivID);
            if (theDiv.className == "mouseOverOn")
                theDiv.className = "mouseOverOff";
            viewDivID = "";
        }
    }    
}

function CenterDiv(divID) 
{
    var unmovableObj = document.getElementById(divID);
	var W3C = window.addEventListener;

	var pageOffsetX;
	var pageOffsetY;
	
	var objectWidth = '400px';
	var objectHeight = '300px';

	if(W3C) 
	{
	    height = parseInt(document.documentElement.clientHeight);
        width = parseInt(document.documentElement.clientWidth);
               
		pageOffsetX = parseInt(window.pageXOffset);
		pageOffsetY = parseInt(window.pageYOffset);
	}
	else 
	{          
	    height = parseInt(document.body.clientHeight);
        width = parseInt(document.body.clientWidth);
        
		pageOffsetX = parseInt(document.body.scrollLeft || document.documentElement.scrollLeft);
		pageOffsetY = parseInt(document.body.scrollTop || document.documentElement.scrollTop);
	}
	
	unmovableObj.style.left = (pageOffsetX + (width / 2) - (parseInt(objectWidth) / 2)) + 'px'; 
	unmovableObj.style.top = (pageOffsetY + (height / 2) - (parseInt(objectHeight) / 2)) + 'px'; 
}


var offsetfrommouse=[15,15]; //image x,y offsets from cursor position in pixels. Enter 0,0 for no offset
var displayduration=0; //duration in seconds image should remain visible. 0 for always.
var currentimageheight = 270;  // maximum image size.

/*if (document.getElementById || document.all)
{
        document.write('<div id="trailimageid">');
        document.write('</div>');
}
*/

function gettrailobj()
{
    if (document.getElementById)
        return document.getElementById("trailimageid").style
    else if (document.all)
        return document.all.trailimagid.style
}

function gettrailobjnostyle()
{
    if (document.getElementById)
        return document.getElementById("trailimageid")
    else if (document.all)
        return document.all.trailimagid
}

function getDiv(divID)
{
    if (document.getElementById)
        return document.getElementById(divID)
    else if (document.all)
        return document.all[divID]
}


function truebody()
{
    return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

var currentDivID = "";

function showtrail(divID)
{
    if(getDiv(divID))
    {
        //if(currentDivID!=divID)
        //{
            if(currentDivID!="")
                getDiv(divID).display = "none";
                
        //    currentDivID = divID;
            
            document.onmousemove = followmouse;
            getDiv("popup").innerHTML = getDiv(divID).innerHTML;
            //gettrailobjnostyle().innerHTML = getDiv(divID).innerHTML;
            
            if(parseInt(getDiv(divID).innerHTML.length)>5)
                gettrailobj().display = "inline";
            else
                gettrailobj().display = "none";
        //}
    }
}

function hidetrail()
{
        currentDiv = "";
        gettrailobj().innerHTML = "";
        gettrailobj().display="none"
        document.onmousemove=""
        gettrailobj().left="-500px"
}

function followmouse(e){

        var xcoord=offsetfrommouse[0]
        var ycoord=offsetfrommouse[1]

        var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15
        var docheight=document.all? Math.min(truebody().scrollHeight, truebody().clientHeight) : Math.min(window.innerHeight)

        if (typeof e != "undefined")
        {
               if (docwidth - e.pageX < 300)
               {
                       xcoord = e.pageX - xcoord - 400; // Move to the left side of the cursor
               }
               else 
               {
                       xcoord += e.pageX;
               }
               if (docheight - e.pageY < (currentimageheight + 110))
               {
                       // truebody().scrollTop is always zero in Safari 3.1, so we us documnet.body.scrollTop instead
                       if ( document.body )
                       {
                               scrollTop = Math.max(truebody().scrollTop, document.body.scrollTop);
                       }
                       else
                       {
                               scrollTop = truebody().scrollTop;
                       }
                       ycoord += e.pageY - Math.max(0,(110 + currentimageheight + e.pageY - docheight - scrollTop));
               } 
               else 
               {
                       ycoord += e.pageY;
               }

        } 
        else if (typeof window.event != "undefined")
        {
               if (docwidth - event.clientX < 300)
               {
                       xcoord = event.clientX + truebody().scrollLeft - xcoord - 400; // Move to the left side of the cursor
               }
               else
               {
                       xcoord += truebody().scrollLeft+event.clientX
               }
               if (docheight - event.clientY < (currentimageheight + 110))
               {
                       ycoord += event.clientY + truebody().scrollTop - Math.max(0,(110 + currentimageheight + event.clientY - docheight));
               }
               else
               {
                       ycoord += truebody().scrollTop + event.clientY;
               }
        }

        if(ycoord < 0) 
        { 
            ycoord = ycoord*-1; 
        }
        gettrailobj().left=xcoord+"px"
        gettrailobj().top=ycoord+"px"

}

function PreviewEmail(link)
{ 
    window.open(link,"New","status=no,toolbar=no,scrollbars=yes, resizable=yes,left=0,top=0,width=685,height=677");
}

function PositionByDiv(divID, parentDivID)
        {
            var e = document.getElementById(divID);
            var p = document.getElementById(parentDivID);

	        var x = 0;
	        var y = 0;
	        var h = 0;
	        var w = 0;
	        var sw = 0;
	        var sh = 0;
            var offsety = 0;
            var offsetx = 0;
            
            try
            {
                if(document.all) //ie
                {
                    offsety = document.documentElement.scrollTop;
                    offsetx = document.documentElement.scrollLeft;
                    
                    sh = document.documentElement.clientHeight;
                    sw = document.documentElement.clientWidth;
                }
                else
                {
                    offsety = window.pageYOffset;
                    offsetx = window.pageXOffset;

                    sh = window.innerHeight;
                    sw = window.innerWidth;
                }
                
                x = GetX(p);
                y = GetY(p);
                
                h = GetHeight(p);
                w = GetWidth(p);
                
                sh += offsety;
                sw += offsetx;

                if(x + w > sw) x = sw - w;
                if(y + h > sh) y = sh - h;
                
                if(x < 0) x = 0;
                if(y < 0) y = 0;
                
                e.style.left = x.toString() + 'px';
                e.style.top = y.toString() + 'px'; 
            }
            catch(ex)
            {
                alert(ex.toString());
            }
        }
        
        function GetWidth(obj)
        {
            return obj.clientWidth;
        }

        function GetHeight(obj)
        {
            return obj.clientHeight;
        }

        function GetX(obj)
        {
            var x = 0;
            do { x += obj.offsetLeft; }
            while (obj = obj.offsetParent);
            
            return x;
        }

        function GetY(obj)
        {
            var y = 0;
            do { y += obj.offsetTop; }
            while (obj = obj.offsetParent);

            return y;
        }