﻿function $(id)
{
    return document.getElementById(id);
}

var lightboxBackground;
var lightboxImage;
var previousDocumentOnclick;
function viewImage(imageUrl)
{	

/*	
	lightboxBackground = document.createElement("div");
	lightboxBackground.className="lightboxBackground";
	
	lightboxImage=document.createElement("img");
	lightboxImage.className = "lightboxImage";
	lightboxImage.src=imageUrl;
    
	document.body.appendChild(lightboxBackground);
	document.body.appendChild(lightboxImage);
	
	previousDocumentOnclick = document.body.onclick;
	
	document.body.onclick=closeImage;
	*/
	
	//window.open(imageUrl, '_image', 'width=500,height=500,status=no');
}
function closeImage()
{
	document.body.onclick = previousDocumentOnclick;
	document.body.removeChild(lightboxBackground);
	document.body.removeChild(lightboxImage);
}

function openWindow(url,title, w, h, center) {
    var options = "width=" + w + ",height=" + h + ",";
    options += "resizable=yes,scrollbars=yes,status=yes,";
    options += "menubar=no,toolbar=no,location=no,directories=no";
    var newWin = window.open(url, 'newWin', options);
    newWin.focus();
 }
 
 
 
 
  
 /**
 *  author:		Timothy Groves - http://www.brandspankingnew.net
 *	version:	1.3 - 2006-11-02
 *				1.2 - 2006-11-01
 *				1.1 - 2006-09-29
 *				1.0 - 2006-09-25
 *
 *	requires:	nothing
 *
 */

var useBSNns;

if (useBSNns)
{
	if (typeof(bsn) == "undefined")
		bsn = {}
	var _bsn = bsn;
}
else
{
	var _bsn = this;
}

_bsn.Crossfader = function (divs, fadetime, delay )
{	
	this.nAct = -1;
	this.aDivs = divs;
	
	for (var i=0;i<divs.length;i++)
	{
		document.getElementById(divs[i]).style.opacity = 0;
		document.getElementById(divs[i]).style.position = "absolute";
		document.getElementById(divs[i]).style.filter = "alpha(opacity=0)";
		document.getElementById(divs[i]).style.visibility = "hidden";
	}
	
	this.nDur = fadetime;
	this.nDelay = delay;
		
	this._newfade();
}


_bsn.Crossfader.prototype._newfade = function()
{
	if (this.nID1)
		clearInterval(this.nID1);
	
	this.nOldAct = this.nAct;
	this.nAct++;
	if (!this.aDivs[this.nAct])	this.nAct = 0;
	
	if (this.nAct == this.nOldAct)
		return false;
	
	document.getElementById( this.aDivs[this.nAct] ).style.visibility = "visible";
	
	this.nInt = 50;
	this.nTime = 0;
	
	var p=this;
	this.nID2 = setInterval(function() { p._fade() }, this.nInt);
}


_bsn.Crossfader.prototype._fade = function()
{
	this.nTime += this.nInt;
	
	var ieop = Math.round( this._easeInOut(this.nTime, 0, 1, this.nDur) * 100 );
	var op = ieop / 100;
	document.getElementById( this.aDivs[this.nAct] ).style.opacity = op;
	document.getElementById( this.aDivs[this.nAct] ).style.filter = "alpha(opacity="+ieop+")";
	
	if (this.nOldAct > -1)
	{
		document.getElementById( this.aDivs[this.nOldAct] ).style.opacity = 1 - op;
		document.getElementById( this.aDivs[this.nOldAct] ).style.filter = "alpha(opacity="+(100 - ieop)+")";
	}
	
	if (this.nTime == this.nDur)
	{
		clearInterval( this.nID2 );
		
		if (this.nOldAct > -1)
			document.getElementById( this.aDivs[this.nOldAct] ).style.visibility = "hidden";	
		
		var p=this;
		this.nID1 = setInterval(function() { p._newfade() }, this.nDelay);
	}
}

_bsn.Crossfader.prototype._easeInOut = function(t,b,c,d)
{
	return c/2 * (1 - Math.cos(Math.PI*t/d)) + b;
}


if (typeof Ext != "undefined") 
{
    Ext.tree.AjaxProTreeLoader = function(config){
        Ext.tree.AjaxProTreeLoader.superclass.constructor.call(this, config);
    };
    Ext.extend(Ext.tree.AjaxProTreeLoader, Ext.tree.TreeLoader, {
        load : function(node, callback){
            if(this.clearOnLoad){
                while(node.firstChild){
                    node.removeChild(node.firstChild);
                }
            }
            if(node.attributes.children){ // preloaded json children
                var cs = node.attributes.children;
                for(var i = 0, len = cs.length; i < len; i++){
                    node.appendChild(this.createNode(cs[i]));
                }
                if(typeof callback == "function"){
                    callback();
                }
            }else if(node.attributes.ajaxProCall || this.ajaxProCall){
                this.requestData(node, callback);
            }
        },
        requestData : function(node, callback){
            if(this.fireEvent("beforeload", this, node, callback) !== false){
              var argument = {callback: callback, node: node};
              var loader = this;
              var ajaxProCallback = function(response) {
                response.argument = argument;
                if(response.error) {
                  return loader.handleFailure(response);
                }
                return loader.handleResponse(response);
              };
              if(node.attributes.ajaxProCall) {
                //root node has a ajaxProCall that gets data for direct children
                this.transId = true;
                node.attributes.ajaxProCall(ajaxProCallback);
              }
              else if(this.ajaxProCall){
                //non-root node uses the predefined ajaxProCall in the TreeLoader
                this.transId  = true;
                this.ajaxProCall(node.id, ajaxProCallback);
              }
              else {
                this.fireEvent('loadexception', this, node, 'no ajaxProCall configured.');
              }
            }else{
                // if the load is cancelled, make sure we notify 
                // the node that we are done
                if(typeof callback == "function"){
                    callback();
                }
            }
        },
        processResponse : function(response, node, callback){
            try {
                var o = response.value;
	            for(var i = 0, len = o.length; i < len; i++){
                    var n = this.createNode(o[i]);
                    if(n){
                        node.appendChild(n); 
                    }
	            }
	            if(typeof callback == "function"){
                    callback(this, node);
                }
            }catch(e){
                this.handleFailure(response);
            }
        }
    });
}