
// global configuration variables for div scroller
var slow_speed = 2;
var fast_speed = 10;
var top_position_scroll = 0;
var bottom_position_scroll = 300;
var px = "px";
var scroll_timer = null;
/////////////////////////////////////

function editArticle(id)
{
    IManager.Navigate('/admin/EditArticle.aspx?pageId='+id);
}


function hideNavigation(image)
{
    // Toggle the show/hide display status of an element
    var nav = getElement('pageNavigation');
    var page = getElement('pageContentControl');
    if (nav && page)
    {
        if (getElementStyle(nav,"display")=='none')
        {nav.style.display='block';
            page.className = "pageContentControlOpen";
            image.src="/gfx/pinOut.gif";
            sendAndForget("/actions/pinState.aspx?state=out");
        }
        else
        {
            nav.style.display='none';
            page.className = "pageContentControlClosed";
            image.src="/gfx/pinIn.gif";
            sendAndForget("/actions/pinState.aspx?state=in");
        }
    }
}
function fixupBehavior(div)
{
    try {
   			var hot = getElementsByClassName(div,"hotButton");
    		for (loop = 0; hot && loop < hot.length; loop++)
                   hot[loop].addBehavior("/css/behavior/hotButton.htc");
		    var hot = getElementsByClassName(div,"dragable");
   			for (loop = 0; hot && loop < hot.length; loop++)
                   hot[loop].addBehavior("/css/behavior/drag-box.htc");
    }
    catch (e) { }
}

function alertPopup(message)
{
    try {
	  var optionDiv = getElement('errorHolder');
	  if (optionDiv)
	  {
	      var l = '<div class="popupWindow iwDragTarget" id="popup" onSelectStart="return false">';
	      l += '<div class="popupWindowBar iwDrag">';
	      l += '<div class="popupWindowBarLeft"></div>';
	      l += '<div class="popupWindowBarRight"><img class="popupWindowClose hotButton" src="/gfx/popClose.gif" onclick="return closeDiv(\'errorHolder\')"/></div>';
	      l += '<div class="popupWindowBarMiddle">Status</div></div>';
	      l += '<div class="popupWindowBody">';
	      l += '<div style="width:300px" class="popupWindowBodyInner">';
	      l += '<br /><p>' + message + '</p>';
          l += '<center><img class="hotButton" title="Close" src="/gfx/buttons/button_ok.gif" onclick="return closeDiv(\'errorHolder\')"/>';
	      l += '</center>';
	      if (isIE())
	          l += '<br/>';
	      l += '<div id="popupErrorResponse"></div></div></div></div>';

	      optionDiv.style.position = "absolute";
	      optionDiv.zIndex = "9999";

	      // need to work this out from the current window dimensions
	      optionDiv.style.top = (130 + parseInt(document.documentElement.scrollTop)) + "px";
	      optionDiv.style.left = "170px";
	      optionDiv.style.display = 'block';
	      optionDiv.innerHTML = l;
	      fixupBehavior(optionDiv);
		}
		else
    	  	alert(message);
    } catch (e) {
    	  	alert(message);
    }
}

function popupBox(message)
{
    try {
	  var optionDiv = getElement('popupHolder');
	  if (optionDiv)
	  {
			var l = '<div style="z-index:999;" class="popupWindow iwDragTarget" id="popup" onSelectStart="return false">';
			l += '<div class="popupWindowBar iwDrag">';
            l += '<div class="popupWindowBarLeft"></div>';
            l += '<div class="popupWindowBarRight"><img class="popupWindowClose hotButton" src="/gfx/popClose.gif" onclick="return closePopupDiv()"/></div>';
            if (arguments[4])
                l += '<div class="popupWindowBarMiddle">'+arguments[4]+'</div></div>';
            else
                l += '<div class="popupWindowBarMiddle">Status</div></div>';
            l += '<div class="popupWindowBody">';
            l += '<div id="popupBoxContent" class="popupWindowBodyInner">';
            l += '<br /><p>'+message+'</p>';
            if (arguments[1])
                l += '<center><img src="/gfx/loading.gif" /><br /><br /></center>';
            l += "<center>";
            if (arguments[2])
                l += '<a href="'+arguments[2]+'"><img class="hotButton" title="Close" src="/gfx/buttons/button_ok.gif"/></a>';
            else if (!arguments[3])
                l += '<img class="hotButton" title="Close" src="/gfx/buttons/button_ok.gif" onclick="return closePopupDiv()"/>';
                        
            l += '</center>';
            if (isIE())
                l+= '<br/>';
            l += '<div id="popupResponse"></div></div></div></div>';
            
			optionDiv.style.position = "absolute";
			optionDiv.zIndex = "999";
		
			// need to work this out from the current window dimensions
            optionDiv.style.top = (130 + parseInt(document.documentElement.scrollTop))+"px";
			optionDiv.style.left = "170px";
			optionDiv.style.display = 'block';
			optionDiv.innerHTML = l;
            fixupBehavior(optionDiv);

		}
		else
    	  	alert(message);
    } catch (e) {
    	  	alert(message);
    }
}
/////////////////////////////////////

function debug(message)
{
//    var div = document.getElementById('debug');
//    if (div)
//        div.innerHTML = message;
}


// POST the form
function buildXmlPost(theFormName) {

    // Get The Form
    var oForm = document.forms[theFormName];
    var qs = ''
    // Scoot round all the elements on the form
    // adding there values to an output xml string using their names as the tag
    // delimiters (but only if the element has a name)
    if (oForm)
	    for (e=0;e<oForm.elements.length;e++) {
	        if (oForm.elements[e].name!='') {
	            var name = oForm.elements[e].name;
           	if (escape(oForm.elements[e].value) == '')
			qs+="<"+name+"/>";
		else
			qs+="<"+name+">"+escape(oForm.elements[e].value)+"</"+name+">";
	        }
	    }
    else
    	alert("No Form on page to post from :"+theFormName+','+theFormName.name);
    return qs
}

function buildPost(theFormName) {

    // Get The Form
    var oForm = document.forms[theFormName];
    if (!oForm)
        oForm = getElement(theFormName);
    var qs = '';
	var f = 0;
    // Scoot round all the elements on the form
    // adding there values to an http post string using their names as the tag
    // delimiters (but only if the element has a name)
	try
	{
	    if (oForm)
		    for (e=0;e<oForm.elements.length;e++) 
			{
				if (oForm.elements[e].name && oForm.elements[e].name!='') 
				{
		            var name = oForm.elements[e].name;
		            var value = value = oForm.elements[e].value;
		            if (oForm.elements[e].tagName == 'SELECT' && value == '')
		            {
		                value = oForm.elements[e].options[oForm.elements[e].selectedIndex].innerText;
		            }
		            else if (oForm.elements[e].type && oForm.elements[e].type.toUpperCase() == 'CHECKBOX')
		            {
		                if (oForm.elements[e].checked)
		                    value='on';
		                else
		                    value='off';
		            }
		            else
		            {
		                value = oForm.elements[e].value;
		            }
			   		if (escape(value) != '')
					{
   						qs+= (f==0?"?":"&")+name+"="+escape(value);
						f++;
					}
					else
					{
   						qs+= (f==0?"?":"&")+name+"=";
						f++;
					}
			    }
		    }
		else
	    	alert("No Form on page to post from :'"+theFormName+"'");
	}
	catch (e)
	{
		alert(e.description);
	}
    return qs
}

function asyncDisplayResponse(containerName) {

    // Locate the DIV block for the reply data
    var outputDiv = document.getElementById(containerName);
	
	var xmlHttp = findHttpRequest(containerName);
    // Replace the DIVs current HTML with the response HTML
    if (outputDiv)
    {
	try {
		switch (xmlHttp.readyState)
		{
		case 1:
//			outputDiv.innerHTML="<b>Please Wait...</b>";
			outputDiv.innerHTML="<img src='/gfx/loading.gif'/>"
			break;
		case 2:
			outputDiv.innerHTML="<img src='/gfx/loading.gif'/>"
			break;
		case 3:
			outputDiv.innerHTML="<img src='/gfx/loading.gif'/>"
			break;
		case 4:
		    handleResponse(xmlHttp,containerName);
			break;
		default:
			outputDiv.innerHTML="<b>Please Wait, Instantiating...</b>";
			break;
			}
	} catch(e) {
		// Ignore the error ?
//		alert(e.description);
	}
    }
}

function asyncDisplayResponseSilent(containerName) {

    // Locate the DIV block for the reply data
    var outputDiv = getElement(containerName);
    
	var xmlHttp = findHttpRequest(containerName);
    // Replace the DIVs current HTML with the response HTML
    if (outputDiv && xmlHttp)
    {
	    try {
    //	    alert(xmlHttp.readyState);
		    switch (xmlHttp.readyState)
		    {
		    case 1:
			    break;
		    case 2:
			    break;
		    case 3:
			    break;
		    case 4:
		        handleResponse(xmlHttp,containerName);
		        break;
		    default:
			    break;
			    }
	    } catch(e) { }
    }
}


// Asynchronous send
function asyncSend(message,URLto,divName) {

    if (message!='')
    {
		if (!document.getElementById(divName))
		{
			return false;
		}
    	xmlHttp = getHttpRequest(divName);
	    // Send it
	    xmlHttp.onreadystatechange = new Function("asyncDisplayResponse(\""+divName+"\")");
	    xmlHttp.open("POST",URLto, true);
		xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
//		xmlHttp.setRequestHeader('Content-Type', 'multipart/form-data');
//	    xmlHttp.setRequestHeader('Content-Type','text/html');
	    xmlHttp.send(message);
		return true;
    }
    else
    {
    	alert("No Input Data, have not sent.");
		return false;
    }
}
function busy()
{
    var div = document.getElementById('popupHolderQWERTY');
    if (div)
    {
        l = '<div class="popupWindow" id="busy">'+
            '<div class="popupWindowBar">'+
            '<div class="popupWindowBarLeft"></div>'+
            '<div class="popupWindowBarRight"></div>'+
            '<div class="popupWindowBarMiddle">Busy</div>'+
            '</div>'+
            '<div class="popupWindowBody">'+
            '<p>Please Wait...</p>'+
            '<center>'+
//            <a href=""><img title="confirm" src="/gfx/button_yes.gif" onclick="return asyncNavigate('<%=confirm%>','yesnoResponse')"/></a>
//            <a href=""><img title="cancel" src="/gfx/button_no.gif" onclick="return closePopupDiv()"/></a>
            '</center>'+
            '</div>'+
            '</div>';
        div.innerHTML = l;
        div.style.display="block";            
    }
}

function syncNavigate(URLto,divName) {
    return getSilent(URLto,divName,false);
}

function asyncNavigate(URLto, divName) {
    busy();
    return getSilent(URLto, divName, true);
}

function asyncNavigateSilent(URLto, divName) {
    return asyncSendSilent('<dummy/>',URLto, divName);
}

function getSilent(URLto,divName,async) 
{
	if (!document.getElementById(divName))
	{
//		    debug('No output div : '+divName);
		return true;
	}
   	xmlHttp = getHttpRequest(divName);
    // Send it
    if (async)
    {
   	    xmlHttp.onreadystatechange = new Function("asyncDisplayResponseSilent(\""+divName+"\")");
    }
    try {
        xmlHttp.open("GET",URLto, async); /* Humm GET causes cache to get used */
    //    xmlHttp.open("POST",URLto, async); /* Humm can't use get for certain stuff */
        xmlHttp.setRequestHeader('Content-Type','text/html');
        xmlHttp.setRequestHeader('Cache-Control','no-cache');
        xmlHttp.setRequestHeader('Pragma','no-cache');
        xmlHttp.send('');
        if (!async)
        {
            handleResponse(xmlHttp,document.getElementById(divName),divName);
        }
    }
    catch (e)
    {
    }
	return false;
}

function sendAndForget(URLto)
{
   	xmlHttp = getHttpRequest('$SendAndForget$');
    // Send it
    xmlHttp.onreadystatechange = new Function("dummyResponse('$SendAndForget$')");
    xmlHttp.open("GET",URLto, true);
    xmlHttp.setRequestHeader('Content-Type','text/html');
    xmlHttp.send('<dummy/>');
	return false;
}

function dummyResponse(containerName)
{
	var xmlHttp = findHttpRequest(containerName);
    // Replace the DIVs current HTML with the response HTML
    if (xmlHttp)
    {
	    try {
    //	    alert(xmlHttp.readyState);
		    switch (xmlHttp.readyState)
		    {
		    case 1:
			    break;
		    case 2:
			    break;
		    case 3:
			    break;
		    case 4:
		        freeHttpRequest(containerName);
		        break;
		    default:
			    break;
			    }
	    } catch(e) { }
    }
}

function asyncSendSilent(message,URLto,divName) 
{

    if (message!='')
    {
		if (!document.getElementById(divName))
		{
			return true;
		}
    	xmlHttp = getHttpRequest(divName);
	    // Send it
	    xmlHttp.onreadystatechange = new Function("asyncDisplayResponseSilent(\""+divName+"\")");
	    xmlHttp.open("POST",URLto, true);
	    xmlHttp.setRequestHeader('Content-Type','text/html');
	    xmlHttp.send(message);
		return false;
    }
    else
    {
    	alert("No Input Data, have not sent.");
		return false;
    }
}

function syncSendSilent(message,URLto,divName) {

    try {
        if (!document.getElementById(divName))
    	{
    			return true;
    	}
    	xmlHttp = getHttpRequest(divName);
     // Send it
     xmlHttp.open("POST",URLto, false);
     xmlHttp.setRequestHeader('Content-Type','text/html');
     xmlHttp.send(message);
    

      handleResponse(xmlHttp,document.getElementById(divName),divName);
    } catch (e) {
         alert("JScript Browser Excpetion while trying to request page\n"+e.message);
    }
	return false;
}

// Asynchronous send
function asyncXmlPost(theFormName,URLto,divName) {

    // Get the XML message

    var xmlMessage = buildXmlPost(theFormName);
    return asyncSend(xmlMessage,URLto,divName);
}

function asyncPost(theFormName,URLto,divName) {

    // Get the message
    var postMessage = buildPost(theFormName);
    return asyncSend(postMessage.substring(1),URLto,divName);
}

function asyncSendFields(theFormName,URLto,divName) {

    // Get the message
    var postMessage = buildPost(theFormName);
    return asyncSend("<DUMMY/>",URLto+postMessage,divName);
}

function handleResponse(xmlHttp,containerName)
{
	if (parseResponse(xmlHttp.responseText,containerName))
	{
	    var outputDiv = getElement(containerName);
	    if (typeof(handle_async_reply) == 'function')
	    {
			if (!handle_async_reply(containerName,xmlHttp.responseText))
			{
				outputDiv.innerHTML=xmlHttp.responseText;
			}
            fixupBehavior(outputDiv);
		}
		else
		{
			outputDiv.innerHTML=xmlHttp.responseText;
	        if (outputDiv.id=='popupHolder')
            {
                var div = findChildNode(outputDiv,'DIV');
                if (div)
                    div.style.top = (130 + parseInt(document.documentElement.scrollTop))+"px";
            }
			var df = getElement('forceFocus');
			if (df)
			{
			    df.focus();
			    df.id = '$forceFocus$deleted'; // So we don't do it ever again
			}
			/* this is because the -moz-behaviors don't seem to hook up on DHTML */
            fixupBehavior(outputDiv);
            
		}
        try {		
// I used to use regular expressions to achieve this, but it was just tooooooo slow for large responses - on ff and ie a full page of html takes upto 2 mins
// to parse using regular expressions
            var s = xmlHttp.responseText.indexOf('<script');
            while (s != -1)
            {
                c = xmlHttp.responseText.indexOf('>',s);
                e = xmlHttp.responseText.indexOf('</script',c);
                if (c != -1 && e != -1)
                {
                    sc = xmlHttp.responseText.substring(c+1,e);
                    eval(sc);
                }
                s = xmlHttp.responseText.indexOf('<script',s+1);
            }
        } catch (e) { 
            alert('Dynamic Script error : '+e);
        }
		freeHttpRequest(containerName);
	    if (typeof(post_async_reply) == 'function')
			post_async_reply(containerName);
		if (typeof(context_action) == 'function')
			context_action(containerName);
	}
}
function parseResponse(response,containerName)
{
    if (response.toUpperCase().indexOf("REDIRECT:",0) == 0)
    {
		freeHttpRequest(containerName);
		top.location=response.substr(9);
		return false;
    }
    else if (response.toUpperCase().indexOf("DOWNLOAD:",0) == 0)
    {
		freeHttpRequest(containerName);
		top.location=response.substr(9);
		closeDiv(containerName);
		return false;
    }
    else if (response.toUpperCase().indexOf("POPUPERROR:",0) == 0) {
		freeHttpRequest(containerName);
		closeDiv('popupHolder');
		alertPopup(response.substr(11));
		return false;
    }
    else if (response.toUpperCase().indexOf("POPUPBOX:",0) == 0)
    {
		freeHttpRequest(containerName);
		closeDiv(containerName);
		popupBox(response.substr(9));
		return false;
    }
    else if (response.toUpperCase().indexOf("POPUPACTION:",0) == 0)
    {
		freeHttpRequest(containerName);
		closeDiv(containerName);
		pos = response.indexOf(":",12);
		popupBox(response.substr(pos+1),null,response.substr(12,pos-12));
		return false;
    }
    
    var result = true;
    var parts = response.split(":");
    if (parts.length > 1 && parts[0].toUpperCase()=='OK')
    {
        parts = parts[1].split(",");
        for(e=0;e<parts.length;e++)
        {
            if (parts[e].toUpperCase() == "REFRESH")
            {
                top.location.reload(true);
                return false;
            }
            else if (parts[e].toUpperCase() == "NULL")
            {
                result=false;
            }
            else if (parts[e].toUpperCase().indexOf("CLOSE=",0) == 0)
            {
                var cl = parts[e].split("=");
                if (cl.length > 1)
                {
                    closeDiv(cl[1]);
                    result = false;
                }
            }
            else if (parts[e].toUpperCase().indexOf("ONCLICK=",0) == 0)
            {
                var cl = parts[e].split("=");
                if (cl.length > 1)
                {
                    var ele = document.getElementById(cl[1]);
                    if (ele)
                    {
                        if (ele.click)
                            ele.click();
                        else
                            ele.onclick(); /* bloody firefox again */
                    }
                    result = false;
                }
            }
            else if (parts[e].toUpperCase().indexOf("HIDE=",0) == 0)
            {
                var cl = parts[e].split("=");
                if (cl.length > 1)
                {
                    hide(cl[1]);
                    result = false;
                }
            }
            else if (parts[e].toUpperCase().indexOf("FUNCTION=",0) == 0)
            {
                var cl = parts[e].split("=");
                if (cl.length > 1)
                {
                    var func = new Function(cl[1]);
                    eval(func());
                }
            }
            else if (parts[e].toUpperCase().indexOf("EVAL=",0) == 0)
            {
                var cl = parts[e].split("=");
                if (cl.length > 1)
                    eval(cl[1]);
            }
        }        
    }
    return result;
}

activateMenu = function (navId) {

    /* currentStyle restricts the Javascript to IE only */
	if (document.all && getElement(navId).currentStyle && 1==1)
	{
        var navroot = getElement(navId);
        /* Get all the list items within the menu */
        var lis=navroot.getElementsByTagName("LI");  
        for (i=0; i<lis.length; i++) {
           /* If the LI has another menu level */
            if(lis[i].lastChild && lis[i].lastChild.tagName=="UL") {
            
                /* assign the function to the LI */
             	lis[i].onmouseover=function() {	
                
                   /* display the inner menu */
                   this.lastChild.style.display="block";
                }
                lis[i].onmouseout=function() {                       
                   this.lastChild.style.display="none";
                }
            }
        }
        var lis=navroot.getElementsByTagName("FIELDSET");  
        for (i=0; i<lis.length; i++) {
           /* If the LI has another menu level */
            if(lis[i].lastChild && lis[i].lastChild.tagName=="UL") {
            
                /* assign the function to the LI */
             	lis[i].onmouseover=function() {	
                
                   /* display the inner menu */
                   this.lastChild.style.display="block";
                   this.lastChild.style.Zindex=99; 
                }
                lis[i].onmouseout=function() {                       
                   this.lastChild.style.display="none";
                }
            }
        }
    }
}

initMenus = function()
{
 	var divs = document.getElementsByTagName("DIV");
	var uli = 0;
	for (var uli=0;uli<divs.length;uli++) 
	{
	    if (divs[uli].className=="menuHorz" || divs[uli].className=="menuHorz menu")
	    {
	        if (divs[uli].id) 
	            activateMenu(divs[uli].id);
	    }
	}
}

function stickyNote(category,call,id,modulename)
{
    var div = getElement(id);
    if (div)
    {
        show(div.parentNode);
        div.innerHTML = "Loading notes";
        if (modulename)
            url = "/actions/postitList.aspx?cat="+category+"&call="+call+"&module="+modulename;
        else           
            url = "/actions/postitList.aspx?cat="+category+"&call="+call;
        asyncNavigate(url,id);
        return false;
    }
    return true;
}

function closePopupDiv()
{
    return closeDiv('popupHolder');
}
function positionPopup(id)
{
    var div = getElement(id);
    var phDiv = getElement('popupHolder');
    if (div && phDiv)
    {
        div.style.top= (parseInt(document.documentElement.scrollTop)+200)+'px';
        div.style.position='absolute';
        phDiv.style.top='0px'; //(parseInt(document.documentElement.scrollTop)+200)+'px';
//        alert('It is at '+div.style.top+', or maybe at '+phDiv.style.top);
    }
}

function initPopup(id)
{
    var div = getElement(id);
    if (div)
    {
		div.zIndex = "500";
        div.style.display="block";
//        div.style.top=(parseInt(document.documentElement.scrollTop)+200)+'px';
        div.style.zIndex=500;
        div.innerHTML= '<div class="popupWindow" style="z-index:500" id="busy"></div>';
    }
}

function yesnoYes(yesAction,id)
{
    if (getElement(id))
    {
        getElement(id).innerHTML = 'Please Wait, Action being performed <img src="/gfx/loading.gif"/>';
    }
    asyncNavigate(yesAction,id);
    return false;
}

function yesnoAction(title,message,yesAction,finalResponse)
{
    var div = getElement('popupHolder');
    if (div)
    {
        initPopup('popupHolder');
        syncNavigate("/actions/yesno.aspx?title="+title+"&message="+message+"&yes="+escape(yesAction)+"&final="+finalResponse,'popupHolder');
    }
}

function reasonYes(yesAction,id)
{
    if (getElement(id))
    {
        getElement(id).innerHTML = 'Please Wait, Action being performed <img src="/gfx/loading.gif"/>';
    }
    asyncNavigate(yesAction,id);
    return false;
}

function responseAction(title,message,yesAction,finalResponse)
{
    var div = getElement('popupHolder');
    if (div)
    {
        initPopup('popupHolder');
        syncNavigate("/actions/popupReason.aspx?title="+title+"&message="+message+"&yes="+escape(yesAction)+"&final="+finalResponse,'popupHolder');
    }
}

function linkCall(callNumber)
{
    var div = getElement('popupHolder');
    if (div)
    {
        initPopup('popupHolder');
        yesAction = '/';
        syncNavigate("/calls/actions/linkcall.aspx?call="+callNumber,'popupHolder');
    }
}


function lotusStatusUpdate(title,message,yesAction,finalResponse,currentStatus,currentAnalyst)
{
    var div = getElement('popupHolder');
    if (div)
    {
        initPopup('popupHolder');
        syncNavigate("/actions/popupLotusStatus.aspx?title="+title+"&message="+message+"&yes="+escape(yesAction)+"&final="+finalResponse+"&current="+currentStatus+"&analyst="+currentAnalyst,'popupHolder');
    }
}

function addPostit(category,requestnumber,finalAction,modulename)
{
//    closeDiv('popupHolder');
    var div = getElement('popupHolder');
    if (div)
    {
        var title = "Add To Do";
        if (category == 'MESS')
            title = "Add Site/Broadcast Message"
        else if (category == 'MODULE')
            title = "Add Change Item"
        else if (category == 'CALL')
            title = "Call Note : "+requestnumber;
        initPopup('popupHolder');
        if (requestnumber && requestnumber!='')
        {
            if (modulename && modulename!='')
                asyncNavigate("/actions/popuppostit.aspx?title="+title+"&cat="+category+"&call="+requestnumber+"&module="+modulename+"&final="+finalAction,'popupHolder');
            else
                asyncNavigate("/actions/popuppostit.aspx?title="+title+"&cat="+category+"&call="+requestnumber+"&final="+finalAction,'popupHolder');
            
        }
        else
            asyncNavigate("/actions/popuppostit.aspx?title="+title+"&cat="+category+"&final="+finalAction,'popupHolder');
     }
     else
     {
        alert('Page context has become corrupted - please reload');
        return true;
     }
    return false;     
}

function editPostit(id)
{
//    closeDiv('popupHolder');
    var div = getElement('popupHolder');
    if (div)
    {
        initPopup('popupHolder');
        syncNavigate("/actions/popup.aspx?title=Edit Posit "+id+"&message=Retrieving Memo Item "+id,'popupHolder');
        asyncNavigate("/actions/popuppostit.aspx?id="+id,'popupHolder');
     }
     else
     {
        alert('Page context has become corrupted - please reload');
        return true;
     }
    return false;     
}

function deletePostit(id,topic,finalAction)
{
    yesnoAction("Delete Postit",
                "Are you sure you wish to delete this memo item<br/>"+
                "<p class=\"highlight\">"+
                "<b>"+topic+"</b></p>",
                "/actions/deletePostit.aspx?id="+id,
                finalAction);
    return false;
}

function seenPostit(id,topic,finalAction)
{
    yesnoAction("Seen Message",
                "Are you sure you wish mark this item as seen ?"+
                "<p class=\"highlight\">"+
                "<b>"+topic+"</b></p>",
                "/actions/seenPostit.aspx?id="+id,
                escape(finalAction));
    return false;
}

function deleteUser(id,replyId)
{
    var form = document.forms[id];
    var user = null;
    if (form)
        user = form["name"].value;
    if (user)
    {
        yesnoAction("Delete User",
                "Are you sure you wish to delete this user<br/>"+
                "<p class=\"highlight\">"+
                "<b>"+user+"</b></p>",
                "/misc/actions/deleteUser.aspx?name="+user,
                'refresh');
    }
    return false;
}

function getLotusCall(inputId)
{
    if (getElement(inputId) && getElement(inputId).value != "")
    {
        openCall(getElement(inputId).value);
    }
    else
        alert("Enter a call number");
}

function getLegacyRecordUsage(inputId)
{
    if (getElement(inputId) && getElement(inputId).value != "")
    {
        top.location = '/sourcecontrol/legacyrecord.aspx?record='+getElement(inputId).value;
    }
    else
        alert("Enter a module name");
    return false;
}

function getLegacyModuleDetail(inputId)
{
    if (getElement(inputId) && getElement(inputId).value != "")
    {
        top.location = '/sourcecontrol/legacymodule.aspx?module='+getElement(inputId).value;
    }
    else
        alert("Enter a module name");
    return false;
}

function getLegacyModule(moduleName)
{
    top.location = '/sourcecontrol/legacymodule.aspx?module='+moduleName;
    return false;
}

function getJavaClass(moduleName,packageName)
{
//    alert('/sourcecontrol/javamodule.aspx?module='+moduleName+'&package='+packageName);
    top.location = '/sourcecontrol/javamodule.aspx?module='+moduleName+'&package='+packageName;
    return false;
}

function getGuiModule(moduleName,fileType,libraryName)
{
//    alert('/sourcecontrol/guimodule.aspx?module='+moduleName+'.'+fileType+'&library='+libraryName);
    top.location = '/sourcecontrol/guimodule.aspx?module='+moduleName+'.'+fileType+'&library='+libraryName;
    return false;
}

function popupLegacyModule(moduleName)
{
    try {
        new DWindow('Module '+moduleName,900,500).setContent('/sourcecontrol/actions/legacymodule.aspx?module='+moduleName);
    } catch (e) { alert("Failed to create popup"); }        
    return false;
}

function getCopyFile(copyFile)
{
    alert("Not Implemented");
}

function popupCopyFile(copyFile)
{
    new DWindow('Copy File '+copyFile,900,500).setContent('/sourcecontrol/actions/copyfile.aspx?file='+copyFile);
//    new IWindow('Copy File '+copyFile,900,500).setContent('/sourcecontrol/actions/copyfile.aspx?file='+copyFile).setBig();
    return false;
}

function popupQuery(table,query)
{
    new DWindow('Dog Query '+table+'/'+query,900,500).setContent('/dog/actions/showquery.aspx?record='+table+'&query='+query);
    return false;
}

function openCall(callNumber)
{
    new DWindow("Call "+callNumber,900,500).setContent("/calls/actions/showcall.aspx?call="+callNumber);
    return false;
}

function openTestRequest(testId)
{
//    new DWindow("Test Item "+testId,900,500).setContent("/calls/actions/testItem.aspx?id="+testId);
    top.location = "/calls/testRequest.aspx?id="+testId;
    return false;
}

function openLotusCall(callNumber)
{
    new IWindow("Call "+callNumber,900,500).setContent("/lotus/actions/showcall.aspx?call="+callNumber).setBig();
    return false;
}

function initServerLights()
{
    var div = getElement('topBarRight');
    if (div)
    {
        asyncNavigate("/actions/trafficLights.aspx","topBarRight");
	    setTimeout("initServerLights()",30000);
    }
}

function projectDocument(id,name)
{
    
    var div = getElement('popupHolder');
    if (div)
    {
        initPopup('popupHolder');
        syncNavigate("/actions/popup.aspx?title=Get Document : "+id+"&message=Retrieving Project Document "+id+" : "+name,'popupHolder');
         if (getElement('documentLayer'))
         {
             getElement('documentLayer').src="/projects/actions/loadDocument.aspx?id="+id;
             closeDiv('popupHolder');
             return false;
         }
        if (name && name != '')
            asyncNavigate("/projects/actions/getDocument.aspx?id="+id+'&name='+name,'popupHolder');
        else
            asyncNavigate("/projects/actions/getDocument.aspx?id="+id,'popupHolder');
     }
     else
     {
        alert('Page context has become corrupted - please reload');
        return true;
     }
    return false;     
}

function addFromCombo(comboId,fieldId)
{
    if (getElement(comboId) && getElement(fieldId))
    {
 		value = getElement(comboId).options[getElement(comboId).selectedIndex].innerText;
        if (getElement(fieldId).value != '')
            getElement(fieldId).value = getElement(fieldId).value+','+value;
        else
            getElement(fieldId).value = value;
    }
    return false;
}

function browseFolder(siteId,title)
{
      initPopup('popupHolder');
      syncNavigate("/actions/browse.aspx?title="+title+"&what="+siteId,'popupHolder');
      return false;
}

function onFileSelect(root,name)
{
    if (getElement('browseFile'))
    {
        if (name == getElement('browseFile').value)
        {
            if (isIE())
            {
                iw = new IWindow(name)._maximize();
                iw.setContent("/actions/download.aspx?path="+root+"&id="+name);
                closeDiv('popupHolder');
            }
            else
            {
                closeDiv('popupHolder');
                top.location = "/actions/download.aspx?path="+root+"&id="+name;
           }
        }
        else
            getElement('browseFile').value = name;
    }
    return false;
}

function menuBarSearch(inputId,optionId)
{
    if (getElement(inputId) && getElement(optionId))
    {
        try {
            searchValue = getElement(inputId).value;
            whatValue = getElement(optionId).value;
            sendAndForget('/actions/savesearch.aspx?s='+searchValue+'&w='+whatValue);
            if (whatValue == '0')
                top.location='/calls/oneCall.aspx?call='+searchValue;
            else if (whatValue == '1')
                top.location='/sourcecontrol/legacyrecord.aspx?record='+searchValue;
            else if (whatValue == '2')
                top.location='/sourcecontrol/legacymodule.aspx?module='+searchValue;
            else if (whatValue == '3')
                top.location='/sourcecontrol/javamodule.aspx?module='+searchValue;
            else if (whatValue == '7')
                top.location='/calls/testRequest.aspx?id='+searchValue;
            else if (whatValue == '8')
                top.location='/sourcecontrol/guimodule.aspx?module='+searchValue;
            else
                alert('Search type not implemented ('+whatValue+')');
        }
        catch (e)
        {
            alert('Search operation failed\n'+e);
        }
    }
    return false;
}

function fieldError(id)
{
    alert('There is an error in field '+id);
	var df = getElement(id);
	if (df)
	{
	    df.focus();
	}
}

function rosterTabNavigation(id)
{
    var tn = getElement(id)
    if (tn)
    {
    	var ils = tn.childNodes;
        for (u=0; u<ils.length; u++) 
            ils[u].onclick = new Function("rosterTabClicked('"+id+"','"+ils[u].firstChild.rel+"')");
    }
}
function rosterTabClicked(id,tab)
{
    var tn = getElement(id)
    if (tn)
    {
    	var ils = tn.childNodes;
        for (u=0; u<ils.length; u++) 
	    {
	        rel = ils[u].firstChild.rel;
	        div = getElement(rel);
	        if (div)
	        {
	            div.style.display = rel==tab?"block":"none";
	            ils[u].className = rel==tab?"selected":"normal";
	        }
	    }
    }
}

function expandCollapse(control,id)
{
    div = getElement(id);
    if (div)
    {
        img = control.firstChild;
        if (img.src.indexOf('minus') != -1)
        {
            img.src = img.src.replace('minus','plus');
            div.style.display="none";
        }
        else if (img.src.indexOf('plus') != -1)
        {
            img.src = img.src.replace('plus','minus');
            div.style.display="block";
        }
    }
}