﻿
var openDivs = [];
var exclusiveDivs = [];

var answersDivDetails = {srcLink:"",id:"",srcQuestionDiv:"",closeLinkId:""};

var exclusiveDivId = "";
var openReportLink = "";

function showHideCompanyName(selectedItem)
{
    if (_companyNameDiv = document.getElementById('companyNameDiv'))
    {
        if(selectedItem == 'Business')
        {
            _companyNameDiv.style.display = 'block';
        }
        else
        {
            _companyNameDiv.style.display = 'none';
        }
    }    
}

function closeInstructiveText(panelId,openerId,contentId)
{
    panel = document.getElementById(panelId);
    opener = document.getElementById(openerId);
    
    if(panel && opener)
    {
        panel.style.display = 'none';
        opener.style.display = 'block';            
        setCookie('closed_instText',contentId,365);
    }
}

function openInstructiveText(panelId,openerId)
{
    panel = document.getElementById(panelId);
    opener = document.getElementById(openerId);
    
    if(panel && opener)
    {
        panel.style.display = 'block';
        opener.style.display = 'none';
    }
}

function setCookie(c_name,value,expiredays,overwrite)
{
    if (currentValue = getCookie(c_name) && overwrite!=true)
    {
        value = escape(currentValue)+","+escape(value);
    }
    else
    {
        value = escape(value);
    }
    
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +value+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function getCookie(c_name)
{
    if (document.cookie.length>0)
    {
        c_start=document.cookie.indexOf(c_name + "=")
        if (c_start!=-1)
        { 
            c_start=c_start + c_name.length+1;
            c_end=document.cookie.indexOf(";",c_start);
            if (c_end==-1)
            {
                c_end=document.cookie.length;
            }
            
            return unescape(document.cookie.substring(c_start,c_end));
        }
    }
    return false;
}

function closeDiv(divId)
{
    if(div = document.getElementById(divId))
    {
        div.style.display = 'none';
    }
}

function closeExclusiveDivs()
{
    if (exclusiveDivId != "")
    {
        if(exclusiveDiv = document.getElementById(exclusiveDivId))
        {
            if(exclusiveDiv.style)
            {
               exclusiveDiv.style.display = 'none';
            }            
        }
    }

    exclusiveDivId = "";

    var srcLink = document.getElementById(answersDivDetails.srcLink);
    var div = document.getElementById(answersDivDetails.id);
    var srcQuestionDiv = document.getElementById(answersDivDetails.srcQuestionDiv);
    var closeLink = document.getElementById(answersDivDetails.closeLinkId);
    
    var reportLink = document.getElementById(openReportLink);
    
    answersDivDetails.srcLink = "";
    answersDivDetails.id = "";
    answersDivDetails.srcQuestionDiv = "";
    answersDivDetails.closeLinkId = "";

    if (div != null && srcLink != null && srcQuestionDiv != null && closeLink != null)
    {
        div.style.display = 'none';
       
        srcQuestionDiv.setAttribute("class",'answer');
        srcQuestionDiv.setAttribute("className",'answer');       
    
        srcLink.style.display = 'block';
        closeLink.style.display = 'none';
        divIsClosed(answersDivDetails.id);
    }
    
    if (reportLink != null)
    {
        reportLink.innerHTML = 'Report this';   
    }
            
    return false;
}

function replyto(id,commentIdField)
{
    if(idField = document.getElementById(commentIdField))
    {
        idField.value = id;
    }
}

function toggleAnswersDiv(srcLink,id,srcQuestionDiv,closeLinkId)
{    
    var div = document.getElementById(id);
    var link = document.getElementById(srcLink);
    var questionDiv = document.getElementById(srcQuestionDiv);
    var closeLink  = document.getElementById(closeLinkId);
    
    if(div!=null && link!=null)
    {        
        if (div.style.display == 'block')
        {
            divStyle = 'none';
            qDivStyle = 'answer';
            
            link.style.display = 'block';
            closeLink.style.display = 'none';
            answersDivIsClosed();
        }
        else
        {
            closeExclusiveDivs();
                                                              
            answersDivDetails.srcLink = srcLink;
            answersDivDetails.id = id;
            answersDivDetails.srcQuestionDiv = srcQuestionDiv;
            answersDivDetails.closeLinkId = closeLinkId;
            
            link.style.display = 'none';
            closeLink.style.display = 'block';
            
            divStyle = 'block';
            qDivStyle = 'answer answer-has-answers';
            
            answersDivIsOpen(srcLink,id,srcQuestionDiv,closeLinkId);
        }
        
        div.style.display = divStyle;
        
        questionDiv.setAttribute("class",qDivStyle);
        questionDiv.setAttribute("className",qDivStyle);
    }
                
    return false;
}

function toggleQuestionDiv(id)
{        
    if(div = document.getElementById(id))
    {
        if(div.style.display == 'block')
        {
            div.style.display = 'none';
        }
        else
        {
            closeExclusiveDivs();
           exclusiveDivId = id
    
            div.style.display = 'block';
            ypos = findPosY(div);        
            window.scroll(0,ypos);                  
        }     
    }
    
    return false;
}

function toggleReplyDiv(answersDivId,formDivId,linkId)
{           
    return false;
}

function toggleReportQuestionDiv(answersDivId,formDivId,answersLinkId,reportLinkId)
{        
    answersDiv = document.getElementById(answersDivId);
    formDiv = document.getElementById(formDivId)
    
    answersLink = document.getElementById(answersLinkId);
    reportLink = document.getElementById(reportLinkId);
    
    if (answersDiv == null || formDiv == null)
    {
        return false;
    }
        
    if (formDiv.style.display == 'block')
    {
        formDiv.style.display = 'none';
        reportLink.innerHTML = 'Report this';   
        openReportLink = "";        
    }
    else
    {
        closeExclusiveDivs();
        exclusiveDivId = formDivId;
    
        formDiv.style.display = 'block';
                        
        reportLink.innerHTML = "Don't report this";
        
        ypos = findPosY(formDiv);                
        openReportLink = reportLinkId;
    }
            
    return false;
}

function toggleReportAnswerDiv(formDivId,reportLinkId)
{   
    formDiv = document.getElementById(formDivId);
    reportLink = document.getElementById(reportLinkId);
    
    if (formDiv == null)
    {
        return false;
    }
        
    if (formDiv.style.display == 'block')
    {
        formDiv.style.display = 'none';
        reportLink.innerHTML = 'Report this';
    }
    else
    {       
        exclusiveDivId = formDivId;
    
        formDiv.style.display = 'block';
        reportLink.innerHTML = "Don't report this";
        openReportLink = reportLinkId;
        
        ypos = findPosY(formDiv);        
    }
            
    return false;
}

function divIsOpen(divId)
{
    openDivs[openDivs.length]=divId;
    storeDivStates();
}

function divIsClosed(divId)
{
    for(var i=0; i< openDivs.length; i++)
    {
        if(openDivs[i] == divId)
        {
            delete(openDivs[i]);
        }
    }
    
    storeDivStates();
}

function answersDivIsOpen(srcLink,id,srcQuestionDiv,closeLinkId)
{
    cookieString = srcLink+","+id+","+srcQuestionDiv+","+closeLinkId;
    setCookie("answersDiv",escape(cookieString),1,true);
}

function answersDivIsClosed()
{
    cookieString = "";
    setCookie("answersDiv",escape(cookieString),1,true);
}

function setOpenDivs()
{
    if (divString = getCookie("opendivs"))
    {
        divString = unescape(divString);
        
        openDivs = divString.split(',');
        
        for(var i=0; i< openDivs.length; i++)
        {                        
            if(div = document.getElementById(openDivs[i]))
            {
                div.style.display = 'block';
            }
        }
    }
    
    if(divString = getCookie("answersDiv"))
    {
        divString = unescape(divString);        
        answersDiv = divString.split(',');
        
        srcLink = answersDiv[0];
        id = answersDiv[1];
        srcQuestionDiv = answersDiv[2];
        closeLinkId = answersDiv[3];
        
        toggleAnswersDiv(srcLink,id,srcQuestionDiv,closeLinkId)                
    }
}

function storeDivStates()
{
    divString = openDivs.toString();
    setCookie("opendivs",escape(divString),1,true);
}

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 addLoadEvent(func)
{
    var oldonload = window.onload;
    if (typeof window.onload != 'function')
    {
        window.onload = func;
    }
    else
    {
        window.onload = function()
        {
            if (oldonload)
            {
                oldonload();
            }
            func();
        }
    }
}

var firstCall = true;

function changeFontsize(fSize, increment) {
  if (firstCall) {
    firstCall = false;
    if (increment != "")
      changeFontsize('13', '');
  }
  if (document.getElementsByTagName) {
    tags = new Array ( "body" );
    for (j=0; j<tags.length; j++) {
      var getElement = document.getElementsByTagName(tags[j]);
      var eachElement, currentFontSize, fontIncrease, newFontSize;
      for (i=0; i<getElement.length; i++) {
        eachElement = getElement[i];
        if (increment != "") {
          currentFontSize = parseInt(eachElement.style.fontSize);
          fontIncrease = parseInt(increment);
          newFontSize = currentFontSize + fontIncrease;
          }
        else if (fSize != "")
          newFontSize = parseInt(fSize);
        if (tags[j] == "li")
          eachElement.style.lineHeight = Math.round(newFontSize*1.2) + "px";
        else
          eachElement.style.lineHeight = Math.round(newFontSize*1.5) + "px";
        if (fSize != "") {
          switch(tags[j]) {
          case "h2": newFontSize += 3; break;
          case "h3": newFontSize += 2; break;
          case "h4": newFontSize += 1; break;
          case "h5": newFontSize += 1; break;
          case "h6": newFontSize += 1;
          }
        }
        eachElement.style.fontSize = newFontSize + "px";
        setCookie('fontSize', newFontSize);
      }
    }
  }
}

document.getElementsByClassName = function (needle)
{
  var         my_array = document.getElementsByTagName("*");
  var         retvalue = new Array();
  var        i;
  var        j;

  for (i = 0, j = 0; i < my_array.length; i++)
  {
    var c = " " + my_array[i].className + " ";
    if (c.indexOf(" " + needle + " ") != -1)
      retvalue[j++] = my_array[i];
  }
  return retvalue;
}

function addEvent( obj, type, fn )
{
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if (obj.attachEvent)
	{
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}

function HelpHover()
{
	this._mousePosX = 0;
	this._mousePosY = 0;
	this._hoverItem = null;
	this._hoverContents = null;
}

HelpHover.prototype.init = function()
{
	var hh = this;
	var helpItems = document.getElementsByClassName('hasHelp');
	
	for (var i=0; i<helpItems.length; i++)
	{
		if (document.getElementById(helpItems[i].id+'Help'))
		{
			helpItems[i].onmousemove = function(e)
			{
				if (!e) var e = window.event;
				if (e.pageX || e.pageY)
				{
					hh.mousePosX = e.pageX;
					hh.mousePosY = e.pageY;
				}
				else if (e.clientX || e.clientY)
				{
					hh.mousePosX = e.clientX + document.documentElement.scrollLeft;
					hh.mousePosY = e.clientY + document.documentElement.scrollTop;
				}
				hh._hoverItem = this;
				hh._hoverContents = document.getElementById(this.id+'Help');
				hh.move();
			}
			helpItems[i].onmouseout = function (e)
			{
				hh.out();
			}
		}
	}
}

HelpHover.prototype.out = function()
{
	this._hoverContents.style.top = -10000+'px';
	this._hoverContents.style.left = -10000+'px';
	this._hoverItem = null;
	this._hoverContents = null;
}

HelpHover.prototype.move = function()
{
	this._hoverContents.style.top = this.mousePosY+'px';
	this._hoverContents.style.left = this.mousePosX-220+'px';
}

function toggleNavMenu(divToShow)
{
    topicsDiv = document.getElementById('topics');
    cloudDiv = document.getElementById('cloud');
    
    topicsButton = document.getElementById('topicsButton');
    cloudButton = document.getElementById('cloudButton');
    
    if(topicsDiv == null || cloudDiv == null || topicsButton == null || cloudButton == null)
    {
        return false;
    }
    
    if (divToShow == 'topics')
    {
        topicsDiv.style.display = 'block';
        cloudDiv.style.display = 'none';
        
        topicsButton.src = "/images/buttons/topics-button.jpg";
        cloudButton.src = "/images/buttons/cloud-button.jpg";
        setCookie("navState","topics",7,true);
    }
    else
    {
        topicsDiv.style.display = 'none';
        cloudDiv.style.display = 'block';
        
        topicsButton.src = "/images/buttons/topics-inactive.jpg";
        cloudButton.src = "/images/buttons/cloud-active.jpg";
        setCookie("navState","cloud",7,true);
    }
    
    return false;
}

addLoadEvent(
    function()
    {
        var hh = new HelpHover();
        hh.init();
    }
);

addLoadEvent(
    function()
    {
        state = getCookie("navState");
        
        if (state!=false)
        {
            toggleNavMenu(state);
        }
    }
);

addLoadEvent(showHideCompanyName);