/*----------------------------------------------------------------------------------------------------------------------

:: Copyright Notice ::

The following code is the intellectual property and copyright of Ayrmer Software, 2007.  All Rights Reserved.
All code in whole or part is protected under international copryright legislation and will ber enforced within 
the United Kingdom Courts.

:: website :: http://www.ayrmer.co.uk :: email :: sales@ayrmer.co.uk :: telephone (uk) :: 0845 003 1356 ::

------------------------------------------------------------------------------------------------------------------------*/

/*
AJAX Functions
*/
var requester;
var moveWindows;

function switchEnable(fieldName,dateField,timeField)
{
   //alert ("fieldName = " + fieldName);  
   //alert ("dateField = " + dateField);  
   //alert ("time = " + timeField);  
   if(document.getElementById(fieldName + "_hr").disabled == true)
   {
      document.getElementById(fieldName + "date").value = dateField.substring(8,10) + "-" + dateField.substring(5,7) + "-" + dateField.substring(0,4);
      document.getElementById(fieldName + "date").disabled = false;   
      document.getElementById(fieldName + "date").style.background = "#fff";   
      document.getElementById(fieldName + "_hr").disabled = false;   
      if(parseInt(timeField.substring(0,2)) == 0)
      {
         document.getElementById(fieldName + "_hr").selectedIndex = parseInt(timeField.substring(1,2)) + 1;
      }
      else
      {
         document.getElementById(fieldName + "_hr").selectedIndex = parseInt(timeField.substring(0,2)) + 1;
      }
      document.getElementById(fieldName + "_mi").disabled = false;   
      minutes = timeField.substring(3,5);
      minutes = parseInt(minutes / 15);
      document.getElementById(fieldName + "_mi").selectedIndex = (minutes + 1);
   }
   else
   {
      document.getElementById(fieldName + "date").value = "";
      document.getElementById(fieldName + "date").disabled = true;   
      document.getElementById(fieldName + "date").style.background = "#eee";   
      document.getElementById(fieldName + "_hr").disabled = true;   
      document.getElementById(fieldName + "_hr").selectedIndex = 0;      
      document.getElementById(fieldName + "_mi").disabled = true;   
      document.getElementById(fieldName + "_mi").selectedIndex = 0;
   }
}

function switchStartDate(chosen)
{
   fieldName = "start-";
   if(chosen == "task")
   {
      document.getElementById("startdiv").style.visibility = "hidden";      
      document.getElementById("startdiv1").style.visibility = "hidden";      
      document.getElementById("startdiv2").style.visibility = "hidden";      
   }
   else
   {
      document.getElementById("startdiv").style.visibility = "visible";      
      document.getElementById("startdiv1").style.visibility = "visible";      
      document.getElementById("startdiv2").style.visibility = "visible";      
   }
}

function getScrollY() {
  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 scrOfY;
}

function set_sop(sect,name)
{
   sectName = 'sector' + sect;
   document.forms['content'].ajaxBox.value = name;   
}

function publishPage(pass)
{
   if(pass > 0)
   {
      var publish = confirm("Do you really want to publish this page to the live site?");     
      if (publish == true)
      {
         window.location="preview.php?page=" + pass + "&publish=" + pass;
      }      
   }
}

function deletePage(pass)
{
   if(pass > 0)
   {
      var publish = confirm("Do you really want to delete this page? \nThe page will be completely removed");     
      if (publish == true)
      {
         window.location="preview.php?page=" + pass + "&delete=" + pass;
      }      
   }
}

function unpublishPage(pass)
{
   if(pass > 0)
   {
      var publish = confirm("Do you really want to unpublish this page? \nThe page will be removed from the live site until republished");     
      if (publish == true)
      {
         window.location="preview.php?page=" + pass + "&unpublish=" + pass;
      }      
   }
}

function update_dashboard(script,targetDiv) {
	document.getElementById("dashboardDiv").value = targetDiv;
	if(!requester)
      requester = new Requester();
   
   if(document.getElementById(document.getElementById("dashboardDiv").value).innerHTML.length < 20)
   {
      document.getElementById(document.getElementById("dashboardDiv").value).style.height = "";
      document.getElementById(document.getElementById("dashboardDiv").value).style.visibility = "visible";
      requester.setAction(set_dashboard_ajax);
      requester.loadURL(script,'target='+targetDiv);
   }
   else
   {
      document.getElementById(document.getElementById("dashboardDiv").value).innerHTML = "";
      document.getElementById(document.getElementById("dashboardDiv").value).style.visibility = "hidden";
      document.getElementById(document.getElementById("dashboardDiv").value).style.height = "0px";
   }
}

function set_dashboard_ajax() {
	document.getElementById(document.getElementById("dashboardDiv").value).innerHTML = requester.getText();
}

function ajax_load(search_string,script,postString) {
	if(search_string.length > 2)
	{
   	if(!requester)
   		requester = new Requester();
   	
   	requester.setAction(set_ajax);
   	
   	requester.loadURL(script + '.php','search_string='+search_string+postString);
   	document.forms['content'].ajaxBox.focus();
   	document.getElementById('sector').style.visibility = "visible"
   }	
}


function ajax_search(fieldName,lookupFieldLink,lookupFieldDesc,lookupTable,lookupWhere,lookupFurtherLeftJoins)
{
   searchTerm = document.getElementById(fieldName + "-selectbox").value;
   if(searchTerm.length > 1)
   {
      document.getElementById("ajaxLookupDiv").value = fieldName + "-div";
      if(!requester)
   	{
         requester = new Requester();
      }
      requester.setAction(set_lookup_ajax);
      requester.loadURL('ajax.lookup.php','searchTerm='+searchTerm+'&fieldName='+fieldName+'&lookupFieldLink='+lookupFieldLink+'&lookupFieldDesc='+lookupFieldDesc+'&lookupTable='+lookupTable+'&lookupWhere='+lookupWhere+'&lookupFurtherLeftJoins='+lookupFurtherLeftJoins);
   }
   else
   {
      document.getElementById("ajaxLookupDiv").value = fieldName + "-div";
   }
}

function clearBox(pass)
{
   document.getElementById(document.getElementById("ajaxLookupDiv").value.substr(0,(document.getElementById("ajaxLookupDiv").value.length  - 4))).value = 0
   document.getElementById(document.getElementById("ajaxLookupDiv").value.substr(0,(document.getElementById("ajaxLookupDiv").value.length  - 4)) + "-selectbox").value = ""
   document.getElementById(document.getElementById("ajaxLookupDiv").value).innerHTML = "";
   document.getElementById(pass).value = "";
}

function set_ajaxlookup(pass,choice)
{
   //alert(document.getElementById("ajaxLookupDiv").value.substr(0,(document.getElementById("ajaxLookupDiv").value.length  - 4)));
   document.getElementById(document.getElementById("ajaxLookupDiv").value.substr(0,(document.getElementById("ajaxLookupDiv").value.length  - 4))).value = pass
   document.getElementById(document.getElementById("ajaxLookupDiv").value.substr(0,(document.getElementById("ajaxLookupDiv").value.length  - 4)) + "-selectbox").value = choice
   document.getElementById(document.getElementById("ajaxLookupDiv").value).innerHTML = "";
   //document.getElementById().value = "";
   updateLookup(pass);
}

function set_select_ajax()
{
  document.getElementById(document.getElementById("ajaxLookupDiv").value.substr(0,(document.getElementById("ajaxLookupDiv").value.length  - 4)) + "-prefill").innerHTML = requester.getText();
}

function updateLookup(pass)
{
   if(document.getElementById("prefill" + document.getElementById("ajaxLookupDiv").value.substr(0,(document.getElementById("ajaxLookupDiv").value.length  - 4))))
   {
      requester.setAction(set_select_ajax);
      //document.getElementById(document.getElementById("ajaxLookupDiv").value.substr(0,(document.getElementById("ajaxLookupDiv").value.length  - 4)) + "-prefill").innerHTML = "hello";
      requester.loadURL('ajax.fill_select.php','id='+pass+'&field='+document.getElementById("ajaxLookupDiv").value.substr(0,(document.getElementById("ajaxLookupDiv").value.length  - 4)));
   }   
}

function center(object)
{
   //object.style.marginLeft = "-" + parseInt(object.offsetWidth / 2) + "px";   
   left1 = (screen.width / 2) - (parseInt(object.style.width)/2);
   top1 = (screen.height / 2) - (parseInt(object.offsetHeight)) - 200;
    
   object.style.left = left1 + "px";      
   object.style.top = (getScrollY() + 10) + "px";   
   //object.style.top = top1 + "px";      
}

function positionHelp(object,leftOffset)
{
   left1 = (screen.width / 2) - (parseInt(object.style.width)/2);   
   if(leftOffset > 0)
   {
      left1 = left1 + leftOffset  
   }
   object.style.left = left1 + "px";
}

function updateLookupFromList(pass,field)
{
   document.getElementById("listLookup").value = field;
   requester.setAction(set_list_ajax);
   //document.getElementById(document.getElementById("ajaxLookupDiv").value.substr(0,(document.getElementById("ajaxLookupDiv").value.length  - 4)) + "-prefill").innerHTML = "hello";
   requester.loadURL('ajax.fill_select.php','id='+pass+'&field='+field);
}

function set_list_ajax()
{
  document.getElementById(document.getElementById("listLookup").value + "-prefill").innerHTML = requester.getText();
}

function set_lookup_ajax() {
	//document.getElementById("comm_company_fk-div").innerHTML = requester.getText();
	document.getElementById(document.getElementById("ajaxLookupDiv").value).innerHTML = requester.getText();
}


function applyQuickSearch(searchTerm)
{
   document.forms['content'].ajaxBox.value = searchTerm;   
   document.getElementById('sector').style.visibility = "hidden";
   document.forms['content'].submit();
}

function set_ajax() {
	document.getElementById('sector').innerHTML = requester.getText();	
}



//Some reason put the pots here as we dont have anywhere else currently to put it
function selectAllPots() {	
	for (i=0; i<document.content.elements.length; i++) { 
		el = document.content.elements[i];
		if (el.type=="checkbox"){
			nameOfEl = String(el.name);
			if(nameOfEl.substr(0,3) == "pot")
			{
			   el.checked=true;			
			}
		} 
	}		
}
function deselectAllPots() {	
	for (i=0; i<document.content.elements.length; i++) { 
		el = document.content.elements[i];
		if (el.type=="checkbox"){
			nameOfEl = String(el.name);
			if(nameOfEl.substr(0,3) == "pot")
			{
			   el.checked=false;			
			}
		} 
	}		
}

function popColorPicker(path,ele)
{
	//preload should contain '#' hash, followed by 6 digit hex color code
	preload = '#' + document.getElementById(ele).value;
	
	//detail factor, see class.TrueColorPicker.php
	df = 64;
	//Modify these
		//Where to pop the color picker window
		_top = 230;
		_left = 220;
		//Where the index.php exists		
	if(preload != ''){
		preload = encodeURIComponent(preload);
	}
	document.getElementById("colorHidden").value = ele;
	window.open(path + 'index.php?df='+df+'&preload=' + preload, null,'width=420, height=290, top='+_top+', left='+_left+', help=no, status=no, scrollbars=no, resizable=no, dependent=yes,status=no', true);
}
function passColorCode(clr)
{
   document.getElementById(document.getElementById("colorHidden").value).value = clr;
}

function showHelpDiv(title1,text1)
{
   moveWindow = '';
   if (window.attachEvent)
   {
       document.attachEvent("onmousemove",MouseMv);
   }
   else
   {
       document.addEventListener("mousemove",MouseMv,false);
   }
   if (document.forms.length > 0)
   {
		if (document.forms[0].elements.length > 0)
		{
   		for(i = 0; i < document.forms[0].elements.length; i++)
   		{
   			if (document.forms[0].elements[i].type == "select-one"){
   				//document.forms[0].elements[i].style.visibility = "hidden";
   		   }
   		}
   	}
	}   
   document.getElementById('helpText').style.visibility = "visible";
   document.getElementById('helpText').innerHTML = "<h2>" + title1 + "</h2><p>" + text1 + "</p>";   
   positionHelp(document.getElementById('helpText'));
}

function showToolbarHelp()
{
   document.getElementById('helpContainer').style.visibility = "visible";   
}
function showToolbarSitemap()
{
   document.getElementById('sitemapContainer').style.visibility = "visible";   
}
function hideToolbarHelp()
{
   document.getElementById('helpContainer').style.visibility = "hidden";   
}
function hideToolbarSitemap()
{
   document.getElementById('sitemapContainer').style.visibility = "hidden";   
}

function MouseMv(e) 
{
   if (!e) e = window.event;
   var topPos
   if (typeof e.pageY == "number"){
     topPos =  e.pageY         
   }
   else{
     topPos =  e.clientY  
   }   
   
   if(document.documentElement.scrollTop > 0)
   {
      if (/MSIE (\d+\.\d+);/.test(navigator.userAgent))
      {
         topPos = topPos + (document.documentElement.scrollTop);
      }
      else
      {
         topPos = topPos + (document.documentElement.scrollTop / 10);
      }
   }
   
   
   topPos = Math.floor((topPos / 100)) * 100;
   
   if(moveWindows == 'no')
   {
      document.getElementById('helpText').style.top = topPos + "px";     
      document.getElementById('eventInfo').style.top = topPos + "px";     
   }
   else
   {
      document.getElementById('helpText').style.top = topPos + "px";     
      document.getElementById('eventInfo').style.top = topPos + "px";     
      moveWindows = 'no';
   }
   
   
}

function hideEventDiv(eid)
{   
   document.getElementById("event" + eid).style.background = "#F5F5F6";   
   document.getElementById('eventInfo').innerHTML = "&nbsp;";   
}

function switchMaintenanceTickets()
{
   if(!requester)
      requester = new Requester();
   requester.setAction(set_ajax_switchtickets);
   requester.loadURL('ajax.cal_tickets.php');   
}
function set_ajax_switchtickets() 
{
	document.getElementById('calTickets').innerHTML = requester.getText();	
}

function setAndExecute(divId,innerHTML)  
{  
   var div = document.getElementById(divId);  
   div.innerHTML = innerHTML;
   var x = div.getElementsByTagName("script");
   for(var i=0;i<x.length;i++)
   {         
       eval(x[i].text);       
   }
}  

function switchOutstandingTasks()
{
   if(!requester)
      requester = new Requester();
   requester.setAction(set_ajax_switchtasks);
   requester.loadURL('ajax.cal_tasks.php');   
}
function set_ajax_switchtasks() 
{
	document.getElementById('outTickets').innerHTML = requester.getText();	
}

function switchSalesTasks()
{
   if(!requester)
      requester = new Requester();
   requester.setAction(set_ajax_switchsales);
   requester.loadURL('ajax.sales_tasks.php');   
}
function set_ajax_switchsales() 
{
	document.getElementById('salesTasks').innerHTML = requester.getText();	
}

function showEventDiv(eid,what)
{   
   if(!requester)
      requester = new Requester();
   if(what != "task")
   {
      document.getElementById("event" + eid).style.background = "#AEA5B4";   
   }
   document.getElementById('eventInfo').style.visibility = "visible";   
   requester.setAction(set_ajax_eventinfo);
   requester.loadURL('ajax.eventinfo.php','id='+eid+'&what='+what);   
}

function set_ajax_eventinfo() 
{
	document.getElementById('eventInfo').innerHTML = requester.getText();	
}

function hideHelpDiv()
{   
   document.getElementById('helpText').style.visibility = "hidden";   
   if (document.forms.length > 0)
   {
		if (document.forms[0].elements.length > 0)
		{
   		for(i = 0; i < document.forms[0].elements.length; i++)
   		{
   			if (document.forms[0].elements[i].type == "select-one"){
   				document.forms[0].elements[i].style.visibility = "visible";
   		   }
   		}
   	}
	}
}

function confirmBox(txt1,critValue,criteria)
{
   if(criteria == 'notnull')
   {
      if (critValue != '')
      {
         var answer = confirm (txt1)
         if (answer)
         {
            document.content.update.value = 'update';
            document.content.submit();         
         }
      }
      else
      {
         document.content.update.value = 'update';
         document.content.submit();         
      }
   }
   else
   {
      var answer = confirm (txt1)
      if (answer)
      document.content.update.value = 'update';
      document.content.submit();         
   }
}

function closePopup() 
{
   document.getElementById('popupText').style.visibility = "hidden";   
   document.getElementById('popupTextBackground').style.visibility = "hidden";   
   document.getElementById('popupTextBackground').style.height = "1px";   
}

function set_popup_ajax() {
	//document.getElementById('popupText').innerHTML = requester.getText();
	setAndExecute('popupText',requester.getText());
}

function updatePopup(script,recordid)
{
   fieldValue = escape(document.popupForm.field.value);
   if(!requester)
	{
      requester = new Requester();
   }
   requester.setAction(set_popup_ajax);
   requester.loadURL(script,'id='+recordid+'&field='+fieldValue);
   document.getElementById('popupText').style.visibility = "visible";   
}

function updateDeveloperDetails(recordid)
{
   if(!requester)
	{
      requester = new Requester();
   }
   requester.setAction(set_developer_ajax);
   requester.loadURL("ajax.developer_details.php",'id='+recordid);   
}

function set_developer_ajax() {
	document.getElementById('dev-details').innerHTML = requester.getText();	
}

function updatePopupState()
{
   var addLink
   if(!requester)
	{
      requester = new Requester();
   }
   requester.setAction(set_state_ajax);
   //add in all the visible stuff we need and their locations perhaps
   
   addLink = addLink + "&sitemap=" + document.getElementById("sitemapContainer").style.visibility;
   addLink = addLink + "&sitemapX=" + findPosX(document.getElementById("sitemapContainer"));
   addLink = addLink + "&sitemapY=" + findPosY(document.getElementById("sitemapContainer"));
   addLink = addLink + "&help=" + document.getElementById("helpContainer").style.visibility;
   addLink = addLink + "&helpX=" + findPosX(document.getElementById("helpContainer"));
   addLink = addLink + "&helpY=" + findPosY(document.getElementById("helpContainer"));
   addLink = addLink + "&toolX=" + findPosX(document.getElementById("toolbarContainer"));
   addLink = addLink + "&toolY=" + findPosY(document.getElementById("toolbarContainer"));
   
   requester.loadURL("ajax.update_state.php",addLink);   
}
function set_state_ajax() {
	requester.getText();	
}

function hideButton(el)
{
   document.getElementById(el).disabled = true;
   //document.getElementById(el).style.visibility = "hidden";
}

function updateCommPopup(script,recordid,somethingelse)
{
   if ( somethingelse === undefined ) {
      somethingelse = '0';
   }
   urlString = "";
   for (i=0; i<document.popupForm.elements.length; i++) 
   { 
		el = document.popupForm.elements[i];
		nameOfEl = String(el.name);		
		if (el.type=="checkbox")
		{
			if(el.checked == true)
			{
			   urlString = urlString + '&' + nameOfEl + '=' + el.value;		   
			}
		} 
		else
		{
		   urlString = urlString + '&' + nameOfEl + '=' + nl2br(escape(el.value));		   		   
		}
	} 
   if(!requester)
	{
      requester = new Requester();
   }
   requester.setAction(set_popup_ajax);
   requester.loadURL(script,'id='+recordid+'&else='+somethingelse+urlString);
   
   document.getElementById('popupText').style.visibility = "visible";      
}

function updateCommPopupNoRequest(script,recordid,somethingelse)
{
   if ( somethingelse === undefined ) {
      somethingelse = '0';
   }
   if(!requester)
	{
      requester = new Requester();
   }
   requester.setAction(set_popup_ajax);
   requester.loadURL(script,'id='+recordid+'&else='+somethingelse);   
   document.getElementById('popupText').style.visibility = "visible";      
}

function nl2br (str) {
    breakTag = '<br />';
    return (str + '').replace(/([^>]?)\n/g, '$1'+ breakTag);
}

function getMessages()
{
   if(!requester)
	{
      requester = new Requester();
   }
   if (document.getElementById('message-system') != null) 
   {
      requester.setAction(set_messages);
      requester.loadURL('ajax.message_system_messages.php','');
      //document.getElementById('popupText').style.visibility = "visible";        
   }   
   if (document.getElementById('message-system-private') != null) 
   {
      requester.setAction(set_messages_private);
      requester.loadURL('ajax.message_system_private_messages.php','');
      //document.getElementById('popupText').style.visibility = "visible";        
   }   
}

function set_messages() {
	document.getElementById('message-system').innerHTML = requester.getText();	
}

function set_messages_private() {
	document.getElementById('message-system-private').innerHTML = requester.getText();	
}

function ajaxPopup(recordid,script) 
{
	moveWindow = '';
	if(!requester)
	{
      requester = new Requester();
   }
   requester.setAction(set_popup_ajax);
   requester.loadURL(script,'id='+recordid);
   center(document.getElementById('popupText'));
   document.getElementById('popupText').style.visibility = "visible";   
   document.getElementById('popupTextBackground').style.visibility = "visible";   
   document.getElementById('popupTextBackground').style.height = "2000px";   
}	

function taskCal(revision) 
{
	if(!requester)
	{
      requester = new Requester();
   }
   requester.setAction(set_taskcal_ajax);
   requester.loadURL("ajax.task_cal.php",'revision='+revision);   
}	

function set_taskcal_ajax() {
	document.getElementById('task-cal').innerHTML = requester.getText();	
}

function ajaxCheckBox(boxVal,recordId,script,trueText,falseText) 
{
	if(!requester)
	{
      requester = new Requester();
   }
   requester.setAction(set_checkbox_ajax);
   if(boxVal == true)
   {
      requester.loadURL(script,'boxVal=-1&id='+recordId);
      //document.getElementById('checkboxUpdate').innerHTML = trueText;   
   }
   else
   {
      requester.loadURL(script,'boxVal=0&id='+recordId);
      //document.getElementById('checkboxUpdate').innerHTML = falseText;   
   }
}	
function set_checkbox_ajax() {
	document.getElementById('checkboxUpdate').innerHTML = requester.getText();	
}


function Browser() {

var ua, s, i;

this.isIE = false;
this.isNS = false;
this.version = null;

ua = navigator.userAgent;

s = "MSIE";
if ((i = ua.indexOf(s)) >= 0) {
this.isIE = true;
this.version = parseFloat(ua.substr(i + s.length));
return;
}

s = "Netscape6/";
if ((i = ua.indexOf(s)) >= 0) {
this.isNS = true;
this.version = parseFloat(ua.substr(i + s.length));
return;
}

// Treat any other "Gecko" browser as NS 6.1.

s = "Gecko";
if ((i = ua.indexOf(s)) >= 0) {
this.isNS = true;
this.version = 6.1;
return;
}
}

var browser = new Browser();

// Global object to hold drag information.

var dragObj = new Object();
dragObj.zIndex = 0;

function dragStart(event, id) {

var el;
var x, y;

// If an element id was given, find it. Otherwise use the element being
// clicked on.

if (id)
dragObj.elNode = document.getElementById(id);
else {
if (browser.isIE)
dragObj.elNode = window.event.srcElement;
if (browser.isNS)
dragObj.elNode = event.target;

// If this is a text node, use its parent element.

if (dragObj.elNode.nodeType == 3)
dragObj.elNode = dragObj.elNode.parentNode;
}

// Get cursor position with respect to the page.

if (browser.isIE) {
x = window.event.clientX + document.documentElement.scrollLeft
+ document.body.scrollLeft;
y = window.event.clientY + document.documentElement.scrollTop
+ document.body.scrollTop;
}
if (browser.isNS) {
x = event.clientX + window.scrollX;
y = event.clientY + window.scrollY;
}


// Save starting positions of cursor and element.
dragObj.cursorStartX = x;
dragObj.cursorStartY = y;

//dragObj.elStartLeft = parseInt(dragObj.elNode.style.left, 10);
//dragObj.elStartTop = parseInt(dragObj.elNode.style.top, 10);

dragObj.elStartLeft = parseInt(findPosX(dragObj.elNode));
dragObj.elStartTop = parseInt(findPosY(dragObj.elNode));

if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
if (isNaN(dragObj.elStartTop)) dragObj.elStartTop = 0;

// Update element's z-index.

//dragObj.elNode.style.zIndex = ++dragObj.zIndex;

// Capture mousemove and mouseup events on the page.

if (browser.isIE) {
document.attachEvent("onmousemove", dragGo);
document.attachEvent("onmouseup", dragStop);
window.event.cancelBubble = true;
window.event.returnValue = false;
}
if (browser.isNS) {
document.addEventListener("mousemove", dragGo, true);
document.addEventListener("mouseup", dragStop, true);
event.preventDefault();
}
}

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 dragGo(event) {

var x, y;

// Get cursor position with respect to the page.

if (browser.isIE) {
x = window.event.clientX + document.documentElement.scrollLeft
+ document.body.scrollLeft;
y = window.event.clientY + document.documentElement.scrollTop
+ document.body.scrollTop;
}
if (browser.isNS) {
x = event.clientX + window.scrollX;
y = event.clientY + window.scrollY;
}

// Move drag element by the same amount the cursor has moved.

dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
dragObj.elNode.style.top = (dragObj.elStartTop + y - dragObj.cursorStartY) + "px";

if (browser.isIE) {
window.event.cancelBubble = true;
window.event.returnValue = false;
}
if (browser.isNS)
event.preventDefault();
}

function dragStop(event) {

// Stop capturing mousemove and mouseup events.

   if (browser.isIE) {
      document.detachEvent("onmousemove", dragGo);
      document.detachEvent("onmouseup", dragStop);
   }
   if (browser.isNS) {
      document.removeEventListener("mousemove", dragGo, true);
      document.removeEventListener("mouseup", dragStop, true);
   }
   updatePopupState();
}

