
var panelsToDisplay = new Array();
var panelConfigurations = new Array();
var panelsInitialized = false;


function MessagePanelConfig(width, title, body, footer) {
    this.width = width;
    this.title = title;
    if (body) {
        this.body = body;
    }
    if (footer) {
        this.footer = footer;
    }
}

function showMessage(documentBody, typeOfMessage) {
    var panel = getMessagePanel(documentBody, typeOfMessage);
    panel.show();
    panel.bringToTop();
}

function dumpProperties(obj) {
    var str = '';
    for(var prop in obj) {
        //Concate prop and its value from object
        str+= prop + " : " + obj[prop]+"\n";
    }
    return str;
}


function getMessagePanel(dB, typeOfPanel) {
    var documentBody = dB;
    initMessagePanels();

    if (!panelsToDisplay[typeOfPanel]) {
        var messagePanel =
         new YAHOO.widget.Panel(typeOfPanel,
             { width:"300px",
               fixedcenter:true,
               close:true,
               draggable:true,
               zindex:8,
               modal:true,
               visible:false
             }
        );

        var panelConfiguration = panelConfigurations[typeOfPanel];

        messagePanel.setHeader(panelConfiguration.title);
        messagePanel.setBody(panelConfiguration.body);
        if (panelConfiguration.footer) {
            messagePanel.setFooter(panelConfiguration.footer);
        }
        messagePanel.render(documentBody);

        panelsToDisplay[typeOfPanel] = messagePanel;
    }
    return panelsToDisplay[typeOfPanel];
}


function joinTheCommunityClick(from) {
    window.location='/community/profileSetup.jsp?ref=' + from;
}

function closeClicked(whatNeedsToClose) {
    panelsToDisplay[whatNeedsToClose].hide();
}


function splitWithPluses(sourceValue) {

    var finishedStr = '';

    if (sourceValue && sourceValue.length > 0) {
        var word_array = sourceValue.split(' ');
        var indice = 0;
        while (indice < word_array.length) {
            if (finishedStr.length > 0) {
                finishedStr = finishedStr + '+';
            }
            finishedStr = finishedStr + word_array[indice];
            indice++;
        }
    }

    if (finishedStr.length <= 0) {
        finishedStr = sourceValue;
    }
    return finishedStr;
}



function initMessagePanels() {
    if (!panelsInitialized) {
        var messageType = 'registerToInvite';
        var registerToInvite = new MessagePanelConfig('300px', 'Online Community Membership Required');
        registerToInvite.body = "Network Invitations can only be sent by WorldatWork Online Community Members.<br><b>Community Membership is free</b>.<br><br><div style=\"text-align: center; width: 100%;\"><b><a style=\"text-decoration: underline;\" href=\"/community/community-info.html?ref=registertoinvite\">More info</a></b>&nbsp;&nbsp;<img width=\"6\" height=\"6\" border=\"0\" src=\"/community/images/dot.gif\">&nbsp;&nbsp;<b><a style=\"text-decoration: underline;\" href=\"/community/profileSetup.jsp?ref=registertoinvite\">Get started</a></b></div><br>";
        registerToInvite.footer = "<div align='center' style='text-align: center;'>" +
                                  "<input type='button' class='text11' name='closeButton' value='Close' onclick=\"closeClicked('registerToInvite')\"></div>";
        panelConfigurations[messageType] = registerToInvite;

        var messageType = 'registerToSendMessage';
        var registerToSendMessage = new MessagePanelConfig('300px', 'Online Community Membership Required');
        registerToSendMessage.body = "Community messages can only be sent by WorldatWork Online Community Members.<br><b>Community Membership is free</b>.<br><br><div style=\"text-align: center; width: 100%;\"><b><a style=\"text-decoration: underline;\" href=\"/community/community-info.html?ref=registertomessage\">More info</a></b>&nbsp;&nbsp;<img width=\"6\" height=\"6\" border=\"0\" src=\"/community/images/dot.gif\">&nbsp;&nbsp;<b><a style=\"text-decoration: underline;\" href=\"/community/profileSetup.jsp?ref=registertomessage\">Get started</a></b></div><br>";
        registerToSendMessage.footer = "<div align='center' style='text-align: center;'>" +
                                  "<input type='button' class='text11' name='closeButton' value='Close' onclick=\"closeClicked('registerToSendMessage')\"></div>";
        panelConfigurations[messageType] = registerToSendMessage;


        messageType = 'registerToViewProfile';
        var registerToViewProfile = new MessagePanelConfig('300px', 'Online Community Membership Required');
        registerToViewProfile.body = "Online Community Profiles can only be viewed by other WorldatWork Online Community Members.<br><b>Community Membership is free</b>.<br><br><div style=\"text-align: center; width: 100%;\"><b><a style=\"text-decoration: underline;\" href=\"/community/community-info.html?ref=registertoviewprofile\">More info</a></b>&nbsp;&nbsp;<img width=\"6\" height=\"6\" border=\"0\" src=\"/community/images/dot.gif\">&nbsp;&nbsp;<b><a style=\"text-decoration: underline;\" href=\"/community/profileSetup.jsp?ref=registertoviewprofile\">Get started</a></b></div><br>";

        registerToViewProfile.footer = "<div align='center' style='text-align: center;'>" +
                                  "<input type='button' class='text11' name='closeButton' value='Close' onclick=\"closeClicked('registerToViewProfile')\"></div>";
        panelConfigurations[messageType] = registerToViewProfile;

        messageType = 'registerToJoinGroup';
        var registerToJoinGroup = new MessagePanelConfig('300px', 'Online Community Membership Required');
        registerToJoinGroup.body = "Online Community Groups can only be joined by WorldatWork Online Community Members.<br><b>Community Membership is free</b>.<br><br><div style=\"text-align: center; width: 100%;\"><b><a style=\"text-decoration: underline;\" href=\"/community/community-info.html?ref=registertoviewprofile\">More info</a></b>&nbsp;&nbsp;<img width=\"6\" height=\"6\" border=\"0\" src=\"/community/images/dot.gif\">&nbsp;&nbsp;<b><a style=\"text-decoration: underline;\" href=\"/community/profileSetup.jsp?ref=registertojoingroup\">Get started</a></b></div><br>";

        registerToJoinGroup.footer = "<div align='center' style='text-align: center;'>" +
                                  "<input type='button' class='text11' name='closeButton' value='Close' onclick=\"closeClicked('registerToJoinGroup')\"></div>";
        panelConfigurations[messageType] = registerToJoinGroup;


        messageType = 'registerToViewGroupProfile';
        var registerToViewGroupProfile = new MessagePanelConfig('300px', 'Online Community Membership Required');
        registerToViewGroupProfile.body = "Online Community Group Profiles can only be viewed by WorldatWork Online Community Members.<br><b>Community Membership is free</b>.<br><br><div style=\"text-align: center; width: 100%;\"><b><a style=\"text-decoration: underline;\" href=\"/community/community-info.html?ref=registertoviewprofile\">More info</a></b>&nbsp;&nbsp;<img width=\"6\" height=\"6\" border=\"0\" src=\"/community/images/dot.gif\">&nbsp;&nbsp;<b><a style=\"text-decoration: underline;\" href=\"/community/profileSetup.jsp?ref=registertoviewgroupprofile\">Get started</a></b></div><br>";

        registerToViewGroupProfile.footer = "<div align='center' style='text-align: center;'>" +
                                  "<input type='button' class='text11' name='closeButton' value='Close' onclick=\"closeClicked('registerToViewGroupProfile')\"></div>";
        panelConfigurations[messageType] = registerToViewGroupProfile;


        messageType = 'registerToSendGroupManagersMessage';
        var registerToSendGroupManagersMessage = new MessagePanelConfig('300px', 'Online Community Membership Required');
        registerToSendGroupManagersMessage.body = "Contacting an Online Community Group's Managers is only allowed by Online Community Members.<br><b>Community Membership is free</b>.<br><br><div style=\"text-align: center; width: 100%;\"><b><a style=\"text-decoration: underline;\" href=\"/community/community-info.html?ref=registertoviewprofile\">More info</a></b>&nbsp;&nbsp;<img width=\"6\" height=\"6\" border=\"0\" src=\"/community/images/dot.gif\">&nbsp;&nbsp;<b><a style=\"text-decoration: underline;\" href=\"/community/profileSetup.jsp?ref=registertoviewgroupprofile\">Get started</a></b></div><br>";

        registerToSendGroupManagersMessage.footer = "<div align='center' style='text-align: center;'>" +
                                  "<input type='button' class='text11' name='closeButton' value='Close' onclick=\"closeClicked('registerToSendGroupManagersMessage')\"></div>";
        panelConfigurations[messageType] = registerToSendGroupManagersMessage;


        messageType = 'registerToFlag';
        var registerToFlag = new MessagePanelConfig('300px', 'Online Community Membership Required');
        registerToFlag.body = "Reporting inappropriate community content can only be done by registered WorldatWork Online Community Members.<br><b>Community Membership is free</b>.<br><br><div style=\"text-align: center; width: 100%;\"><b><a style=\"text-decoration: underline;\" href=\"/community/community-info.html?ref=registertoviewprofile\">More info</a></b>&nbsp;&nbsp;<img width=\"6\" height=\"6\" border=\"0\" src=\"/community/images/dot.gif\">&nbsp;&nbsp;<b><a style=\"text-decoration: underline;\" href=\"/community/profileSetup.jsp?ref=registertoviewprofile\">Get started</a></b></div><br>";

        registerToFlag.footer = "<div align='center' style='text-align: center;'>" +
                                  "<input type='button' class='text11' name='closeButton' value='Close' onclick=\"closeClicked('registerToFlag')\"></div>";
        panelConfigurations[messageType] = registerToFlag;

        messageType = 'registerForRSS';
        var registerForRSS = new MessagePanelConfig('300px', 'Online Community Membership Required');
        registerForRSS.body = "RSS feeds are available to registered WorldatWork Online Community Members.<br><b>Community Membership is free</b>.<br><br><div style=\"text-align: center; width: 100%;\"><b><a style=\"text-decoration: underline;\" href=\"/community/community-info.html?ref=registertoviewprofile\">More info</a></b>&nbsp;&nbsp;<img width=\"6\" height=\"6\" border=\"0\" src=\"/community/images/dot.gif\">&nbsp;&nbsp;<b><a style=\"text-decoration: underline;\" href=\"/community/profileSetup.jsp?ref=registertoviewprofile\">Get started</a></b></div><br>";

        registerForRSS.footer = "<div align='center' style='text-align: center;'>" +
                                  "<input type='button' class='text11' name='closeButton' value='Close' onclick=\"closeClicked('registerForRSS')\"></div>";
        panelConfigurations[messageType] = registerForRSS;

		messageType = 'registerForPost';
		var registerForPost = new MessagePanelConfig('300px', 'Online Community Membership Required');
		registerForPost.body = "Asking questions and responding to questions is only available to registered WorldatWork Online Community Members.<br><b>Community Membership is free</b>.<br><br><div style=\"text-align: center; width: 100%;\"><b><a style=\"text-decoration: underline;\" href=\"/community/community-info.html?ref=registertoviewprofile\">More info</a></b>&nbsp;&nbsp;<img width=\"6\" height=\"6\" border=\"0\" src=\"/community/images/dot.gif\">&nbsp;&nbsp;<b><a style=\"text-decoration: underline;\" href=\"/community/profileSetup.jsp?ref=registertoviewprofile\">Get started</a></b></div><br>";
        registerForPost.footer = "<div align='center' style='text-align: center;'>" +
                                  "<input type='button' class='text11' name='closeButton' value='Close' onclick=\"closeClicked('registerForPost')\"></div>";
        panelConfigurations[messageType] = registerForPost;

		messageType = 'registerForWatch';
		var registerForWatch = new MessagePanelConfig('300px', 'Online Community Membership Required');
		registerForWatch.body = "Watching topics and discussion areas is available to registered WorldatWork Online Community Members.<br><b>Community Membership is free</b>.<br><br><div style=\"text-align: center; width: 100%;\"><b><a style=\"text-decoration: underline;\" href=\"/community/community-info.html?ref=registertoviewprofile\">More info</a></b>&nbsp;&nbsp;<img width=\"6\" height=\"6\" border=\"0\" src=\"/community/images/dot.gif\">&nbsp;&nbsp;<b><a style=\"text-decoration: underline;\" href=\"/community/profileSetup.jsp?ref=registertoviewprofile\">Get started</a></b></div><br>";
        registerForWatch.footer = "<div align='center' style='text-align: center;'>" +
                                  "<input type='button' class='text11' name='closeButton' value='Close' onclick=\"closeClicked('registerForWatch')\"></div>";
        panelConfigurations[messageType] = registerForWatch;

		messageType = 'registerForRating';
		var registerForRating = new MessagePanelConfig('300px', 'Online Community Membership Required');
		registerForRating.body = "Rating topics is available to registered WorldatWork Online Community Members.<br><b>Community Membership is free</b>.<br><br><div style=\"text-align: center; width: 100%;\"><b><a style=\"text-decoration: underline;\" href=\"/community/community-info.html?ref=registertoviewprofile\">More info</a></b>&nbsp;&nbsp;<img width=\"6\" height=\"6\" border=\"0\" src=\"/community/images/dot.gif\">&nbsp;&nbsp;<b><a style=\"text-decoration: underline;\" href=\"/community/profileSetup.jsp?ref=registertoviewprofile\">Get started</a></b></div><br>";
        registerForRating.footer = "<div align='center' style='text-align: center;'>" +
                                  "<input type='button' class='text11' name='closeButton' value='Close' onclick=\"closeClicked('registerForRating')\"></div>";
        panelConfigurations[messageType] = registerForRating;


        messageType = 'registerForWWC';
		var registerForWWC = new MessagePanelConfig('330px', 'WorldatWork Premier Membership Required');
		registerForWWC.body = "The Global Rewards Library is available to <br><b>Premier</b> WorldatWork Members only.<br><br><div style=\"text-align: center; width: 100%;\"><a target=\"_blank\" href=\"/waw/myprofile/html/membership-benefits.html?frm=wwcgrlsrchresult\"><b>Learn about Premier WorldatWork Membership</b></a><br><br></div>";
        registerForWWC.footer = "<div align='center' style='text-align: center;'>" +
                                  "<input type='button' class='text11' name='closeButton' value='Close' onclick=\"closeClicked('registerForWWC')\"></div>";
        panelConfigurations[messageType] = registerForWWC;


        messageType = 'groupImageTooBig';
		var groupImageTooBig = new MessagePanelConfig('330px', 'Group Image File Too Large');
		groupImageTooBig.body = "The group logo you have selected it too<br>large.  Please select an image file<br>smaller than 5 MB in size.";
        groupImageTooBig.footer = "<div align='center' style='text-align: center;'>" +
                                  "<input type='button' class='text11' name='closeButton' value='Close' onclick=\"closeClicked('groupImageTooBig')\"></div>";
        panelConfigurations[messageType] = groupImageTooBig;
    }
}




function closeMe(divName) {
    var divToClose = MM_findObj(divName);
    divToClose.style.visibility = 'hidden';
    divToClose.style.display = 'none';
}

function showMe(divName, displayStyle) {
    var divToShow = MM_findObj(divName);
    divToShow.style.visibility = 'visible';
    divToShow.style.display = displayStyle;
}

function showMeCentered(divName, displayStyle, popupWidth, popupHeight) {
	var divToShow = MM_findObj(divName);

	var contentDiv = MM_findObj('contentDiv');

	var x = (screen.width/2) - (popupWidth/2);
    var y = (screen.height/2) - (popupHeight/2);
    var scrollInfo = getScrollXY();

    divToShow.style.left = x;
    // subtract half of the height of the div....
    divToShow.style.top = y + scrollInfo[1];
	divToShow.style.display = 'block';
    divToShow.style.visibility = 'visible';
}


function getScrollXY() {

      var scrOfX = 0, scrOfY = 0;
      if( typeof( window.pageYOffset ) == 'number' ) {
        //Netscape compliant
        scrOfY = window.pageYOffset;
        scrOfX = window.pageXOffset;
      } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
        //DOM compliant
        scrOfY = document.body.scrollTop;
        scrOfX = document.body.scrollLeft;
      } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
        //IE6 standards compliant mode
        scrOfY = document.documentElement.scrollTop;
        scrOfX = document.documentElement.scrollLeft;
      }
      return [ scrOfX, scrOfY ];
}


String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}

function MM_openBrWindow(theURL,winName,features) {
    window.open(theURL,winName,features);
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}


function MM_findPos(obj) {
    var t=0, l=0;
    if (obj.offsetParent) {
        do {
            l += obj.offsetLeft;
            t += obj.offsetTop;
        } while (obj = obj.offsetParent);
    }
    return [t,l];
}

function gotoURL(aURL) {
	window.location=aURL;
}

function asyncLog(message, url, area, exObj) {
    var addInfo = "";
    if (exObj != null) {
        addInfo =  "-- exception: ";
        addInfo = dumpProperties(exObj);
    }
    new Ajax.Request("/waw/debug/asynclog.jsp?&nonav",
          { method: 'post',
            postBody: 'msg='+message+addInfo+'&url='+url+'&area='+area
		});
}

function asyncAlertAndLog(message, url, area, exObj)  {
    asyncLog(message, url, area, exObj);
	alert("An error occurred while processing your request, try refreshing the page and trying again");
}

// show the asynchronus error but use the message passed as the text for the alert box
function asyncMessageAlertAndLog(message, url, area, exObj) {
	asyncLog(message, url, area, exObj);
	alert(message);
}


// save preference when they hit enter in the textarea...
function countChars(me,ev, textAreaName, maxLength, counterDivName)
{
	var keycode;
    if (window.event) {
		keycode = window.event.keyCode;
	}
    else if (ev) {
		keycode = ev.which;
	}
    else {
		return true;
	}

	if (keycode == 13) {
        return false;
    }
    else {
		// they hit a key but it was not the return key...
		var textArea = MM_findObj(textAreaName);
		var counterDiv = MM_findObj(counterDivName);

		if (textArea.value.length > maxLength) {
			textArea.value = textArea.value.substring(0, maxLength);
			counterDiv.innerHTML = '0 available';
			return false;
		}
		else {
			var charsLeft = maxLength - textArea.value.trim().length;
			counterDiv.innerHTML = charsLeft + ' available';
		}
		return true;
	}
}




