﻿/*
* File Name    : common.js
* Description  : Implements the commonly used javascripts in the application.
* Created By   : Susantha Soysa
* Created Date : 15/08/2007
* (C) Copyright id Database Marketing Pty Ltd.
*/

//***************************************browser detect***************************************
var dom = (document.getElementById) ? true : false;
var ns5 = (!document.all && dom || window.opera) ? true: false;
var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
var ie4 = (document.all && !dom) ? true : false;
var nodyn = (!ns5 && !ie4 && !ie5 && !dom) ? true : false;
var isIE = ie4 || ie5;
var isNS = ns5;
		    
var standardbody = (document.compatMode=="CSS1Compat")? document.documentElement : document.body;
var _docWidth = function() { return (document.body.clientWidth)? document.body.clientWidth : 0; }
var _docHeight = function() { return (document.body.clientHeight)? document.body.clientHeight: standardbody.offsetHeight; }
var _winWidth = function() { var n =  (document.documentElement)? document.documentElement.clientWidth : 0; return n; }
var _winHeight = function() { var n =  (document.documentElement)? document.documentElement.clientHeight: 0; return n; }
var _scrollX = function() { var n = typeof(window.pageXOffset)=='number' ?  window.pageXOffset : document.documentElement.scrollLeft; return n; }
var _scrollY = function() { var n = typeof(window.pageYOffset)=='number' ?  window.pageYOffset : document.documentElement.scrollTop; return n; }
var _scrollWidth = function() { var n =  (document.body.scrollWidth)? document.body.scrollWidth: 0; return n; }
var _scrollHeight = function() { var n =  (document.body.scrollHeight)? document.body.scrollHeight: 0; return n; }
var _mouseX = function(evt) { return isIE? window.event.clientX + standardbody.scrollLeft : evt.pageX; }
var _mouseY = function(evt) { return isIE? window.event.clientY + standardbody.scrollTop : evt.pageY; }

var activeHtmlEditor;
//***************************************end browser detect***************************************
//***************************************general functions****************************************
String.prototype.replaceAll = function(stringToFind,stringToReplace)
{
    var s = this.toString();
    while (s.indexOf(stringToFind) >= 0)
        s = s.replace(stringToFind, stringToReplace);
    return s;
}

String.prototype.trim = function()
{
    return this.replace(/^\s+|\s+$/g, '');
}

function setEditorValue(command,params)
{
    if (activeHtmlEditor)
        activeHtmlEditor.ExecuteCommand(command,params);
}

function getProperty(obj,prop)
{
    var val = "";
    if (obj != null)
    {
        if (obj.getAttribute)
            val = obj.getAttribute(prop);
        else
            val = eval("obj." + prop);
    }
    
    if (val)
        return val;
    else
        return "";
}

function setProperty(id, property, compareTo, assignTo)
{
    var propValue ;
    eval("propValue = getElement('" + id + "')." + property);
    if (propValue == compareTo)
        eval("getElement('" + id + "')." + property + " = \"" + assignTo + "\";");
    else
        eval("getElement('" + id + "')." + property + " = \"" + compareTo + "\";");
} 
function setFocus(obj)
{
    if (!obj.focus())
        obj.scrollIntoView(); 
}
//***************************************end general functions****************************************
//***************************************cms Footer***************************************
// This code handles the bottom footer div       
function MoveFooter()
{
    footer_div = this.document.getElementById("cmsFooter");
    myY = document.documentElement.clientHeight;
    myScroll = document.documentElement.scrollTop;
    myY = myY - 21 + myScroll;

    footer_div.style.visibility = "hidden";
    footer_div.style.position="absolute";
    footer_div.style.top=myY + "px";
    footer_div.style.visibility = "visible";
}
//***************************************end cms footer***************************************

//***************************************image preloader***************************************
var images = new Hashtable();

function getImage(url)
{
    if (images.get(url))
        return url;
    else
    {
        var img = new Image();
        img.src = url;
        images.put(url,img);
        return url;
    }
}
//***************************************end image preloader***************************************

//***************************************HashTable implementation***************************************
function Hashtable(){
	this.hash = new Array();
	this.keys = new Array();

	this.location = 0;
}

Hashtable.prototype.get = function (key)
{
	return this.hash[key];
}

Hashtable.prototype.put = function (key, value)
{
	if (value == null)
		return null;

	if (this.hash[key] == null)
		this.keys[this.keys.length] = key;

	this.hash[key] = value;
}
//***************************************End HashTable implementation***************************************

function addListener(element, event, listener, bubble) {
  if(element.addEventListener) {
    if(typeof(bubble) == "undefined") bubble = false;
    element.addEventListener(event, listener, bubble);
  } else if(this.attachEvent) {
    element.attachEvent("on" + event, listener);
  }
}

function getElement(elementId)
{
    return (ie4)? document.all[elementId]: (ie5||ns5)? document.getElementById(elementId): null;
}

function getElementWidth(elementId)
{	
    var elm = getElement(elementId);
    return (ie4||ie5)? elm.clientWidth: elm.offsetWidth;
}

function getElementHeight(elementId)
{	
    var elm = getElement(elementId);
    return (ie4||ie5)? elm.clientHeight: elm.offsetHeight;
}

function disableAnchor(id, disable){
  var obj = document.getElementById(id);
  if(disable)
  {
    var href = obj.getAttribute("href");
    if(href && href != "" && href != null)
    {
       obj.setAttribute('href_bak', href);
       obj.setAttribute('disabled', true);
    }
    obj.removeAttribute('href');
    obj.style.color= "#cccccc";
  }
  else if (obj.getAttribute('disabled'))
  {
    obj.setAttribute('href', obj.getAttribute('href_bak'));
    obj.setAttribute('disabled', false);
    obj.style.color = "";
  }
}

function navigate(url, target)
{
    if (url && url != "")
        if (target == "_blank")
            window.open(url,'','');
        else
            window.location.href = url;
}

var formString;
function windowOpen(url,width,height, scroll)
{
    if (scroll == null || scroll != 'yes') 
        scroll = 'no';
        
    window.open(url,'popupWindow','left=50,top=50,toolbars=0,scrollbars=' + scroll + ',location=0,statusbars=1,menubars=0,resizable=1,width=' + width + ',height=' + height);
    return false;
}

function strictToNumbers(eve, con, maxLengthAllowed)
{
    switch (eve.keyCode)
    {
        case 8: // backspace
        case 9: // tab
        case 37: // left 
        case 39: // right
        case 46: // delete
            return true;
            break;
        case 48:
        case 49:
        case 50:
        case 51:
        case 52:
        case 53:
        case 54:
        case 55:
        case 56:
        case 57:
	    case 96:
	    case 97:
	    case 98:
	    case 99:
	    case 100:
	    case 101:
	    case 102:
	    case 103:
	    case 104:
	    case 105:
            return con.value.length < maxLengthAllowed;
            break;
        default:
            return false;
    }
    return false;
}

function strictToNumbersAndSpaces(eve, con, maxLengthAllowed)
{
    switch (eve.keyCode)
    {
        case 8: // backspace
        case 9: // tab
        case 37: // left 
        case 39: // right
        case 46: // delete
            return true;        
            break;
        case 32:
        case 48:
        case 49:
        case 50:
        case 51:
        case 52:
        case 53:
        case 54:
        case 55:
        case 56:
        case 57:
	    case 96:
	    case 97:
	    case 98:
	    case 99:
	    case 100:
	    case 101:
	    case 102:
	    case 103:
	    case 104:
	    case 105:
            return con.value.length < maxLengthAllowed;
            break;
        default:
            return false;
    }
    return false;
}

function showHint(divId)
{
    var elm = document.getElementById(divId);
    if (elm)
    if (elm.hintVisible)
    {
        //elm.style.position = "absolute";
        //elm.style.visibility = "hidden";
        elm.hintVisible = false;
        elm.style.display = "none";
    }
    else
    {
        //elm.style.position = "relative";
        //elm.style.visibility = "visible";
        elm.hintVisible = true;
        elm.style.display = "";
    }
    return false;
}
    

function ssFishEyeButton(btnId, width,height,maxWidth, maxHeight, buttonAlign)
{
	var div1 = document.getElementById(btnId);
	if (buttonAlign.toLowerCase() == "right")
	    div1.className = "sstoolbtnRight";
	else
	    div1.className = "sstoolbtnLeft";
	this.imgId = btnId + "_img";
	this.img = div1.getElementsByTagName("img")[0];
	this.img.id = this.imgId;
	this.img.width = width;
	this.img.height = height;
	this.img.minwidth = width;
	this.img.minheight = height;
	this.img.maxwidth = maxWidth;
	this.img.maxheight = maxHeight;
	this.img.allowScaleDown = true;
	this.img.lbl = div1.getElementsByTagName('span')[0];
	this.img.lbl.style.display = "none";
	this.anc = div1.getElementsByTagName("a")[0];
	this.anc.onmouseover = function () { this.btn.img.scallingDown = false; this.btn.img.scallingUp = true; scaleUp(this.btn.imgId); };
	this.anc.onmouseleave = function () { this.btn.img.scallingUp = false; this.btn.img.scallingDown = true; scaleDown(this.btn.imgId); };
	this.anc.onmouseout = function () { this.btn.img.scallingUp = false; this.btn.img.scallingDown = true; scaleDown(this.btn.imgId); };
	this.anc.btn = this;

	
}

function scaleUp(objId)
{
		var img = document.getElementById(objId);
		if (img.width < img.maxwidth && img.scallingUp)
		{
			img.width += 1;
			img.height += 1;
			window.setTimeout("scaleUp('" + objId + "');", 10);
		}
		else if (img.scallingUp)
		{
			img.lbl.style.display = "";	
		}
		return true;
}


function scaleDown(objId)
{
		var img = document.getElementById(objId);

		if (img.width > img.minwidth && img.scallingDown)
		{
			img.width -= 1;
			img.height -= 1;
			img.lbl.style.display = "none";
		window.setTimeout("scaleDown('" + objId + "');", 20);
		}
		else if (img.scallingDown)
		{
    img.lbl.style.display = "none";
		}
		return true;
}

// top tool bar functions
  var selected = null;
  try { document.execCommand('BackgroundImageCache', false, true);} catch(e) {}
  
  function btnOver(btn) // li
  {
    var tds = btn.getElementsByTagName("span");
    if (tds.length > 0)
      if (tds[0].className == "topMenuSELeft")
        selected = btn;
    for(i=0, x = tds.length; i<x; i++){
      if (i==0)
        tds[0].className = "topMenuMOLeft";
      if (i==1)
        tds[1].className = "topMenuMOMid";
      if (i==2)
        tds[2].className = "topMenuMORight";
    }
  }
  
  function btnLeave(btn) // li
  {
    var classPrefix = "";
    if (selected)
      classPrefix = "topMenuSE";
    else
      classPrefix = "topMenuMI";

    var tds = btn.getElementsByTagName("span");
    for(i=0, x = tds.length; i<x; i++){
      if (i==0)
        tds[0].className = classPrefix + "Left";
      if (i==1)
        tds[1].className = classPrefix + "Mid";
      if (i==2)
        tds[2].className = classPrefix + "Right";
        
     selected = null;
    }
  }  
  
// end top tool bar functions  

// fade in/Out
var tm=5; var sp=10; var fading = false;
function fadeInOut(con, f)
{
    if (fading)
        return;
    fading = true;
    con = document.getElementById(con);
    if (f == 1)
    {
            con.style.opacity = 0;
            con.style.filter = 'alpha(opacity=' + con.style.opacity + ')';
 	        con.style.visibility='visible'; 
 	}
    con.timer = setInterval(function(){ doFadeInOut(con,f)},tm)
}

function doFadeInOut(c,f){
    if (isNaN(c.style.opacity))
        if (f == -1)
            c.style.opacity = 100;
        else
            c.style.opacity = 0;
            
    c.style.opacity = c.style.opacity + (f); 
    c.style.filter = 'alpha(opacity=' + c.style.opacity + ')';

    if(f==1 && c.style.opacity >= 100)
    {
        clearInterval(c.timer);
        fading = false;

    }
    else if(f!=1 && c.style.opacity==0)
    {
        c.style.visibility='hidden'; 
        clearInterval(c.timer);
        fading = false;
    }
}

function toNumber(n)
{
    return (typeof(n) == 'number') ? new Number(n) : 0;
}
    
    
// ----------------- cookie handling -------------
function _setCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toUTCString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function _getCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
function setParentUrl(url)
{
    window.opener.document.location.href = url;
    window.opener.focus();
    return false;
}

function clearCookie(name) {
	_setCookie(name,"",-1);
}
    
// ----------------- end cookie handling -------------     
// tooltip
function setShowHint(id, show)
{
	var elm = document.getElementById(id);
	if (elm)	
	if (show)
	{
		elm.style.display = 'inline';
		elm.style.position = 'absolute'
	}
	else
	{
		elm.style.display = 'none';
	}
}
// end tooltip

// processing panel

function showProcessing()
{
    var img = new Image();
    img.src = "../default/images/processing.gif";
    var proc = document.createElement("div");
    proc.className = 'processing';
    //proc.style.backgroundColor = 'yellow';
    //proc.style.background = "url('../../default/images/processing.gif') center center no-repeat";
    proc.style.position = 'absolute';
    proc.style.left = Math.ceil((_winWidth() - 150) / 2) + 'px';
    proc.innerHTML = 'Processing...';
    document.body.appendChild(proc);
}
// end processing panel
// ----------------- dragger script    
var dragger = function()
{
    var _dragObj = new Object();
    function drag()
    {
        
    }
    
    drag.prototype.dragStart = function(event, dragHandleId, dragPaneId, stopDragCallback)
    {
        if (dragPaneId) {}
        else dragPaneId = dragHandleId;

        _dragObj.dragHandle = document.getElementById(dragHandleId);
        _dragObj.dragPane = document.getElementById(dragPaneId);
        _dragObj.stopDragCallback = stopDragCallback;

        var el;
        var x, y;

        // Get cursor position with respect to the page.

        if (isIE) {
            x = window.event.clientX + document.documentElement.scrollLeft
              + document.body.scrollLeft;
            y = window.event.clientY + document.documentElement.scrollTop
              + document.body.scrollTop;
        }
        else if (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.dragPane.style.left, 0);
      _dragObj.elStartTop   = parseInt(_dragObj.dragPane.style.top,  0);

      if (isNaN(_dragObj.elStartLeft)) _dragObj.elStartLeft = 0;
      if (isNaN(_dragObj.elStartTop))  _dragObj.elStartTop  = 0;

      // Update element's z-index.
      _dragObj.zIndex = _dragObj.dragPane.style.zIndex;  
      _dragObj.dragPane.style.zIndex = 99;//++dragObj.zIndex;

      // Capture mousemove and mouseup events on the page.

      if (isIE) {
        document.attachEvent("onmousemove", dragGo);
        document.attachEvent("onmouseup",   dragStop);
        window.event.cancelBubble = true;
        window.event.returnValue = false;
      }
      if (isNS) {
        document.addEventListener("mousemove", dragGo,   true);
        document.addEventListener("mouseup",   dragStop, true);
        event.preventDefault();
      }
    }

    function dragGo(event) {

      var x, y;

      // Get cursor position with respect to the page.

      if (isIE) {
        x = window.event.clientX + document.documentElement.scrollLeft
          + document.body.scrollLeft;
        y = window.event.clientY + document.documentElement.scrollTop
          + document.body.scrollTop;
      }
      else if (isNS) {
        x = event.clientX + _scrollX();
        y = event.clientY + _scrollY();
      }

      // Move drag element by the same amount the cursor has moved.
      var posX = (_dragObj.elStartLeft + x - _dragObj.cursorStartX);
      var posY = (_dragObj.elStartTop  + y - _dragObj.cursorStartY);
      
      if (posX < 0 ) posX = 0;
      if (posY < 0 ) posY = 0;
      
      _dragObj.dragPane.style.left = posX + "px";
      _dragObj.dragPane.style.top  = posY + "px";

      if (isIE) {
        window.event.cancelBubble = true;
        window.event.returnValue = false;
      }
      if (isNS)
        event.preventDefault();
    }

    function dragStop(event) {
      // Stop capturing mousemove and mouseup events.
      if (isIE) {
        document.detachEvent("onmousemove", dragGo);
        document.detachEvent("onmouseup",   dragStop);
      }
      if (isNS) {
        document.removeEventListener("mousemove", dragGo,   true);
        document.removeEventListener("mouseup",   dragStop, true);
      }
      _dragObj.dragPane.style.zIndex = _dragObj.zIndex;//++dragObj.zIndex;

      if (_dragObj.stopDragCallback)
        eval(_dragObj.stopDragCallback + "('" + _dragObj.dragPane.id + "')" );
      
    }    
    return {drag:drag}
}();

var _dragger = new dragger.drag();

function initTracking(rootUrl)
{
    var _objs = document.getElementsByTagName('A');
    var l = _objs.length;
    var i; 
    var _img = null;
    var _obj = null;
    var _imgPreview = false;
    
     for( i=0; i < l; i++)
     {
        _obj = _objs[i];
        _imgPreview = false;
        if (_obj.href)
        {
            if (( img = _obj.getElementsByTagName("IMG")) != null) // set inplace viewing details
            if (img && getProperty(_obj, "displayInplace") == "1")
            {
                _obj.url = _obj.href;
                _imgPreview = true;
            }
            if (_obj.href.toLowerCase().indexOf('http') == 0)
            if (_obj.href.toLowerCase().indexOf(rootUrl.toLowerCase()) != 0)
            {
                if (_obj.onclick)
                {
                     var fnc = _obj.onclick;
                     _obj.fnc = fnc;
                     if (_imgPreview)
                        _obj.onclick = function (){ if (trackView) trackView('outbound:' + this.href) ; this.fnc(); showInplaceImage(this); return false};
                     else
                        _obj.onclick = function (){ if (trackView) trackView('outbound:' + this.href) ; this.fnc(); };
                }
                else 
                {
                     if (_imgPreview)
                         _obj.onclick = function (){  if (trackView) trackView('outbound:' + this.href); showInplaceImage(this); return false; };
                     else
                        _obj.onclick = function (){ if (trackView) trackView('outbound:' + this.href) };
                }
            }
            else if (_imgPreview)
            {
                _obj.onclick = function (){ showInplaceImage(this); return false};
            }
        }
     }
     
}

var transObject = null;
function showInplaceImage(anc)
{
    if (anc.url)
    {
    
        var adiv = document.createElement('div');
        adiv.style.position = 'absolute';
        adiv.style.display = '';

        adiv.style.border = "1px #888888 solid";
        adiv.style.backgroundColor = "#444444";
        adiv.style.width = "auto";
        adiv.style.height = "auto";
        adiv.style.padding = "8px";
        var aanc = document.createElement('A');
        aanc.onblur = function (){ document.body.removeChild(this.parentNode);}
        aanc.onclick = function (){ document.body.removeChild(this.parentNode);}
        aanc.href = 'javascript:void(0);';
        
        var aimg = document.createElement('img');
        aimg.style.border = "0px";
        aimg.style.position = "relative";
        aimg.src = anc.url;
        
        aanc.appendChild(aimg);
        adiv.appendChild(aanc);
        document.body.appendChild(adiv);
        
        adiv.style.left = (50 + _scrollX()) + "px";
        adiv.style.top = (50 + _scrollY()) + "px";
        adiv.zIndex = 999;
        
        var effectDiv = document.createElement('div');
        effectDiv.style.backgroundColor = "transparent";
        effectDiv.style.position = "absolute";
        effectDiv.style.left = _scrollX() + "px";
        effectDiv.style.top = _scrollY() + "px";
        effectDiv.style.width = "0px";
        effectDiv.style.height = "0px";
        
        effectDiv.style.border = "1px solid #666666";
        effectDiv.zIndex = 999;
        
        var w = adiv.offsetWidth;
        var h = adiv.offsetHeight;
        adiv.style.display = 'none';
        
        document.body.appendChild(effectDiv);
        
        transObject = new Object();
        transObject.imageDiv = adiv;
        transObject.imageAnc = aanc;
        transObject.transDiv = effectDiv;
        transObject.currentX = _scrollX();
        transObject.currentY = _scrollY();
        transObject.currentWidth = 0;
        transObject.currentHeight = 0;
        transObject.targetX = ((_winWidth() - w)) / 2 + _scrollX() ;
        transObject.targetY = ((_winHeight() - h)) / 2 + _scrollY() ;

        transObject.targetWidth = w;
        transObject.targetHeight = h;
        transObject.steps = 40;
        transObject.speed = 4;
        transObject.anc = anc;
        
        showMoveTransition();
    }
}

function showMoveTransition()
{
    transObject.xMovement = (transObject.targetX - transObject.currentX) / transObject.steps;
    transObject.yMovement = (transObject.targetY - transObject.currentY) / transObject.steps;
    transObject.widthChange = (transObject.targetWidth - transObject.currentHeight) / transObject.steps;
    transObject.heightChange = (transObject.targetHeight - transObject.currentHeight) / transObject.steps;
    transObject.completed = false;
    
    doShowMoveTransition()
}

function doShowMoveTransition()
{
    if (transObject.steps > 0)
    {
        transObject.transDiv.style.left = (parseInt(transObject.transDiv.style.left,0) + transObject.xMovement) + "px";
        transObject.transDiv.style.top = (parseInt(transObject.transDiv.style.top,0) + transObject.yMovement) + "px";
        transObject.transDiv.style.width = (parseInt(transObject.transDiv.style.width,0) + transObject.widthChange) + "px";
        transObject.transDiv.style.height = (parseInt(transObject.transDiv.style.height,0) + transObject.heightChange) + "px";
        transObject.steps --; 
        window.setTimeout("doShowMoveTransition();", transObject.speed);
    }
    else
    {
        transObject.imageDiv.style.left = transObject.transDiv.style.left;        
        transObject.imageDiv.style.top = transObject.transDiv.style.top;        
        document.body.removeChild(transObject.transDiv);
        transObject.imageDiv.style.display = '';        
        transObject.imageAnc.focus();    

    }
}

function setInputFocus(element, focus)
{
    if (focus)
    {
        element.bkColor = element.style.backgroundColor;
        element.style.backgroundColor = 'yellow';
    }
    else
    {
        element.style.backgroundColor = element.bkColor;
    }
}
 
function initInputElements()
{
    var _elements = document.getElementsByTagName('input');
    var l = _elements.length;
    var i; 
    var element;
    for( i=0; i < l; i++)
    {
        element = _elements[i];
        if (element.type == "text" || element.type == "select")
        {
            if (element.onfocus)
            {
                element.fncFocus = element.onfocus;
                element.onfocus = function() { setInputFocus(this, true); this.fncFocus(); };
            }
            else
            {
                element.onfocus = function() { setInputFocus(this, true); };
            }
            
            if (element.onblur)
            {        
                element.fncBlur = element.onblur;
                element.onblur = function() { setInputFocus(this, false); this.fncBlur(); };
            }
            else
            {
                element.onblur = function() { setInputFocus(this, false); };
            }
        }
    }

    _elements = document.getElementsByTagName('textarea');
    l = _elements.length;
    for( i=0; i < l; i++)
    {
        element = _elements[i];
        if (element.onfocus)
        {
            element.fncFocus = element.onfocus;
            element.onfocus = function() { setInputFocus(this, true); this.fncFocus(); };
        }
        else
        {
            element.onfocus = function() { setInputFocus(this, true); };
        }
        
        if (element.onblur)
        {        
            element.fncBlur = element.onblur;
            element.onblur = function() { setInputFocus(this, false); this.fncBlur(); };
        }
        else
        {
            element.onblur = function() { setInputFocus(this, false); };
        }    
    }
}

function initHints()
{
    var _objs = document.getElementsByTagName('A');
    var l = _objs.length;
    var i; 
    var _img = null;
    var _obj = null;
    var _imgPreview = false;
    
     for( i=0; i < l; i++)
     {
        _obj = _objs[i];
        _imgPreview = false;
        if (_obj.title)
        {
            _obj.moFnc = _obj.onmousemove;
            _obj.mlFnc = _obj.onmouseout;
            _obj.moTitle = _obj.title;
            _obj.title = "";
            _obj.onmousemove = function (e) { if (showHint) showHint(e,this,true); if (this.moFnc) this.moFnc() };
            _obj.onmouseout = function (e) { if (showHint) showHint(e,this,false); if (this.mlFnc) this.mlFnc() };
        }
     }

    _objs = document.getElementsByTagName('IMG');
    l = _objs.length;
    for( i=0; i < l; i++)
    {
        _obj = _objs[i];    
        if (_obj.title)
        {
              _obj.moFnc = _obj.onmousemove;
            _obj.mlFnc = _obj.onmouseout;
            _obj.moTitle = _obj.title;
            _obj.title = "";
            _obj.onmousemove = function (e) { if (showHint) showHint(e,this,true); if (this.moFnc) this.moFnc() };
            _obj.onmouseout = function (e) { if (showHint) showHint(e,this,false); if (this.mlFnc) this.mlFnc();};
        }
     
    }

}

var _hintDiv = null;
function showHint(e,obj, show)
{
    if (!show && _hintDiv)
    {
        _hintDiv.style.display = 'none';
        document.body.removeChild(_hintDiv);
        _hintDiv = null;
    }
    else if (obj)
    {
        if (obj.parentNode)
        {
             if (!_hintDiv)
            {
                _hintDiv = document.createElement("div");
            }
            if (_hintDiv.owner != obj)
            {
                _hintDiv.style.position = 'absolute';
                _hintDiv.style.display = '';
                _hintDiv.style.fontFamily = 'Verdana';
                _hintDiv.style.fontSize = '8pt';
                _hintDiv.style.border = "1px #333333 solid";
                _hintDiv.style.backgroundColor = "#FEEB01";
                _hintDiv.style.width = "auto";
                _hintDiv.style.maxWidth = "250px";
                _hintDiv.style.height = "auto";
                _hintDiv.style.padding = "8px";
                _hintDiv.style.zIndex =  99999;
            }
//            _hintDiv.className = 'tooltip';
            _hintDiv.style.left = _mouseX(e)+ 10 + "px";
            _hintDiv.style.top = (_mouseY(e) + 20) + "px";

            _hintDiv.innerHTML = obj.moTitle;
            _hintDiv.owner = obj;
            document.body.appendChild(_hintDiv);
        }
        
    }
    else if (_hintDiv)
    {
        _hintDiv.style.display = 'none';
        document.body.removeChild(_hintDiv);
        _hintDiv = null;
    }
}


/// RESIZER Script

var resizer = function()
{
    var obj = new Object();
    var myPopup;
    obj.zIndex = 0;
    var _disabled;
    function resize()
    {
    }
    
    resize.prototype.resizeStart = function(event, id) {

      var el;
      var x, y;

      // If an element id was given, find it. Otherwise use the element being
      // clicked on.

      if (id)
        obj.elNode = getElement(id);
      else {
        if (isIE)
          obj.elNode = window.event.srcElement;
        if (isNS)
          obj.elNode = event.target;

        // If this is a text node, use its parent element.

        if (obj.elNode.nodeType == 3)
          obj.elNode = obj.elNode.parentNode;
      }

      // Get cursor position with respect to the page.

      if (isIE) {
        x = window.event.clientX + document.documentElement.scrollLeft
          + document.body.scrollLeft;
        y = window.event.clientY + document.documentElement.scrollTop
          + document.body.scrollTop;
      }
      if (isNS) {
        x = event.clientX + window.scrollX;
        y = event.clientY + window.scrollY;
      }

      // Save starting positions of cursor and element.

      obj.cursorStartX = x;
      obj.cursorStartY = y;
      obj.elStartWidth  = parseInt(obj.elNode.style.width, 10);
      obj.elStartHeight   = parseInt(obj.elNode.style.height,  10);

      if (isNaN(obj.elStartWidth)) obj.elStartWidth = getElementWidth(id);
      if (isNaN(obj.elStartHeight))  obj.elStartHeight  = getElementHeight(id);

      // Update element's z-index.

      //obj.elNode.style.zIndex = myPopup.style.zIndex + 1;//++obj.zIndex;

      // Capture mousemove and mouseup events on the page.

      if (isIE) {
        document.attachEvent("onmousemove", resizeGo);
        document.attachEvent("onmouseup",   resizeStop);
        window.event.cancelBubble = true;
        window.event.returnValue = false;
      }
      if (isNS) {
        document.addEventListener("mousemove", resizeGo,   true);
        document.addEventListener("mouseup",   resizeStop, true);
        event.preventDefault();
      }
    }
    
    function resizeGo(event) {

      var x, y;

      // Get cursor position with respect to the page.

      if (isIE) {
        x = window.event.clientX + document.documentElement.scrollLeft
          + document.body.scrollLeft;
        y = window.event.clientY + document.documentElement.scrollTop
          + document.body.scrollTop;
      }
      if (isNS) {
        x = event.clientX + _scrollX();
        y = event.clientY + _scrollY();
      }

      // Move drag element by the same amount the cursor has moved.

      obj.elNode.style.width = (obj.elStartWidth + x - obj.cursorStartX) + "px";
      obj.elNode.style.height  = (obj.elStartHeight  + y - obj.cursorStartY) + "px";

      if (isIE) {
        window.event.cancelBubble = true;
        window.event.returnValue = false;
      }
      if (isNS)
        event.preventDefault();
    }

    resizeStop = function(event) {
      // Stop capturing mousemove and mouseup events.
      alert('stop');
      if (isIE) {
        document.detachEvent("onmousemove", resizeGo);
        document.detachEvent("onmouseup",   resizeStop);
      }
      if (isNS) {
        document.removeEventListener("mousemove", resizeGo,   true);
        document.removeEventListener("mouseup",   resizeStop, true);
      }
    }    
    return {resize:resize}
}();

var _resizer = new resizer.resize();

/// END RESIZER Script

/// STEP RESIZER Script

var stepResizer = function()
{
    var obj = new Object();
    var myPopup;
    obj.zIndex = 0;
    var _disabled;
    function resize()
    {
    }
    
    resize.prototype.resize = function(id, columnWidth, columnHeight, borderWidth, maxColumns) {

      var el;

      // If an element id was given, find it. Otherwise use the element being
      // clicked on.

      if (id)
        obj.elNode = getElement(id);
      else {
        if (isIE)
          obj.elNode = window.event.srcElement;
        if (isNS)
          obj.elNode = event.target;

        // If this is a text node, use its parent element.

        if (obj.elNode.nodeType == 3)
          obj.elNode = obj.elNode.parentNode;
      }

      // Get cursor position with respect to the page.
      var w = parseInt(obj.elNode.style.width);
        
      if (w < borderWidth + maxColumns * columnWidth - columnWidth)
      {
         var cols = (w - borderWidth) / columnWidth;
         if (cols + 1 <= maxColumns)
            obj.elNode.style.width = ((cols + 1) * columnWidth + borderWidth) + "px";
         else
            obj.elNode.style.width = (columnWidth + borderWidth) + "px";
      }
      else
      {
         obj.elNode.style.width = (borderWidth + columnWidth) + "px";
      }
       obj.elNode.style.height = columnHeight;

    }
    return {resize:resize}
}();

var _stepResizer = new stepResizer.resize();