var ie;
var ie9;
var opera;

	var menuStartColor = '#ec1846';
	var menuStopColor = '#ec1846';

        var menuNewStartColor = '#cc1039';
	var menuNewStopColor = '#cc1039';


	var splashStartColor = '#A42C05';
	var splashStopColor = '#cc1039';
	var headStartColor = '#FFFFFF';
	var headStopColor = '#FFFFFF';
	var head2StartColor = '#A62D05';
	var head2StopColor = '#841D23';
	var taxonomygStartColor = '#ec1846';
	var taxonomygStopColor = '#ec1846';
	var activeTaxonomygStartColor = '#FFEBE8';
	var activeTaxonomygStopColor = '#FFEBE8';
	var taxonomyStartColor = '#9cdbf7';
	var taxonomyStopColor = '#9cdbf7';
	var activeTaxonomyStartColor = '#00aeef';
	var activeTaxonomyStopColor = '#00aeef';

	var yellowBlockStartColor = '#FEFDFB';
	var yellowBlockStopColor = '#FFD042';
	var brownBlockStartColor = '#FEFEFE';
	var brownBlockStopColor = '#885880';

	var orangeBlockStartColor = '#f58220';
	var orangeBlockStopColor = '#f58220';

        var orange2BlockStartColor = '#f58220';
	var orange2BlockStopColor = '#f58220';

	var whiteBlockStartColor = '#F2F2F2';
	var whiteBlockStopColor = '#F2F2F2';
	var crimeBlockStartColor = '#ec008c';
	var crimeBlockStopColor = '#ec008c';
	var pinkBlockStartColor = '#FFEBE8';
	var pinkBlockStopColor = '#FFEBE8';
        

	var greenBlockStartColor = '#D3F89E';
	var greenBlockStopColor = '#B0E650';

    var shadowColor = [0, 0, 0];
    var borderColor = [240, 240, 240, 1];


function init_canvas()
{
        ie = navigator.appVersion.match(/MSIE ((\d)\.\d)/);
	opera = (navigator.userAgent.toLowerCase().indexOf("opera") != -1);

	var cnv;

	var nav_div = document.getElementById('nav');
	cnv=create_canvas_round(nav_div.offsetWidth,nav_div.offsetHeight,menuStopColor,menuStartColor,1,new Array(5,5,5,5));
	position_canvas_with_obj(cnv,nav_div,6);
        cnv.id='navbg';


	var uls=new Array();
	var nav_ul=document.getElementById('nav_ul');
	var local_div;
	for (i = 0; i < nav_ul.childNodes.length; i++)
	{
		if (nav_ul.childNodes[i].nodeName == 'LI')
		{
			local_div = nav_ul.childNodes[i].getElementsByTagName("div")[0];
			cnv=create_canvas_round(nav_ul.childNodes[i].offsetWidth,nav_ul.childNodes[i].offsetHeight,splashStopColor,splashStopColor,1,new Array(5,5,0,0),local_div);
			cnv.style.left='0px';
			cnv.style.top='0px';
			cnv.style.position='absolute';
            cnv.style.display='block';
            cnv.style.zIndex=10;

			uls=nav_ul.childNodes[i].getElementsByTagName("ul");
			if (uls.length > 0)
			{       var div_height=uls[0].offsetHeight+7;
				cnv=create_canvas_round(nav_ul.childNodes[i].offsetWidth,div_height,menuNewStartColor,menuNewStopColor,1,new Array(0,0,5,5),local_div);
				cnv.style.left='0px';
				cnv.style.top=nav_ul.childNodes[i].offsetHeight+'px';
				cnv.style.position='absolute';
                cnv.style.display='block';
			}
		}
	}

    var dls=document.getElementsByTagName('DL');
    for (i=0;i<dls.length;i++){
        if (dls[i].id == 'portlet-navigation-tree'){
            var navtree = document.getElementById('portlet-navigation-tree');
            cnv=create_canvas_round(navtree.offsetWidth,navtree.offsetHeight,taxonomyStartColor,taxonomyStopColor,1,new Array(5,5,0,0));
            position_canvas_with_obj(cnv,navtree,3);
            cnv.id='navigation-tree';

                var navtree_lis = navtree.getElementsByTagName('LI');
                for (var i=0;i<navtree_lis.length;i++)
                {
                    if (navtree_lis[i].className == 'active')
                    {
                        var par=navtree_lis[i].getElementsByTagName('DIV')[0];
                        cnv=create_canvas_round(par.offsetWidth,par.offsetHeight,activeTaxonomyStartColor,activeTaxonomyStopColor,1,new Array(0,0,0,0),par);
                        //position_canvas_with_obj(cnv,navtree_lis[i],4);
                        cnv.style.left='0px';
                        if (navigator.appVersion.match(/MSIE 6/))
                        {
                            cnv.style.top='1px';
                        }
                        else
                        {
                            cnv.style.top='0px';
                        }
                        cnv.style.position='absolute';
                        cnv.style.display='block';
                        cnv.style.zIndex=-1;
                        cnv.id='bgnavtree';
                    }
                }
            break;
        }
    }

    var dblocks = document.getElementsByTagName('DIV');
    for (i=0;i<dblocks.length;i++){
        if (dblocks[i].className == 'blockyellow'){
            cnv=create_canvas_round_with_shadow(2,0,dblocks[i].offsetWidth,dblocks[i].offsetHeight,yellowBlockStartColor,yellowBlockStopColor,1,new Array(5,5,5,5));
            position_canvas_with_obj(cnv,dblocks[i],7);
            cnv.id='bgyellow';
        }
        else if (dblocks[i].className == 'blockbrown'){
            cnv=create_canvas_round_with_shadow(2,0,dblocks[i].offsetWidth,dblocks[i].offsetHeight,brownBlockStartColor,brownBlockStopColor,1,new Array(5,5,5,5));
            position_canvas_with_obj(cnv,dblocks[i],7);
            cnv.id='bgbrown';
        }
        else if (dblocks[i].className == 'blockorange'){
            cnv=create_canvas_round_with_shadow(0,0,dblocks[i].offsetWidth,dblocks[i].offsetHeight,orangeBlockStartColor,orangeBlockStopColor,1,new Array(5,5,5,5));
            position_canvas_with_obj(cnv,dblocks[i],7);
            cnv.id='bgorange';
        }
        else if (dblocks[i].className == 'blockwhite'){
            cnv=create_canvas_round_with_shadow(0,0,dblocks[i].offsetWidth,dblocks[i].offsetHeight,whiteBlockStartColor,whiteBlockStopColor,1,new Array(5,5,5,5));
            position_canvas_with_obj(cnv,dblocks[i],7);
            cnv.id='bgwhite';
        }
        else if (dblocks[i].className == 'blockcrime'){
            cnv=create_canvas_round_with_shadow(0,0,dblocks[i].offsetWidth,dblocks[i].offsetHeight,crimeBlockStartColor,crimeBlockStopColor,1,new Array(5,5,5,5));
            position_canvas_with_obj(cnv,dblocks[i],7);
            cnv.id='bgcrime';
        }       
        else if (dblocks[i].className == 'blockpink'){
            cnv=create_canvas_round_with_shadow(2,0,dblocks[i].offsetWidth,dblocks[i].offsetHeight,pinkBlockStartColor,pinkBlockStopColor,1,new Array(5,5,5,5));
            position_canvas_with_obj(cnv,dblocks[i],7);
            cnv.id='bgpink';
        }
        else if (dblocks[i].className == 'blockgreen'){
            cnv=create_canvas_round_with_shadow(2,0,dblocks[i].offsetWidth,dblocks[i].offsetHeight,greenBlockStartColor,greenBlockStopColor,1,new Array(5,5,5,5));
            position_canvas_with_obj(cnv,dblocks[i],7);
            cnv.id='bggreen';
        }
        else if (dblocks[i].className == 'block-sep yellow'){
            local_div = document.getElementById('blocks');
            cnv=create_canvas_round_with_shadow(2,0,4,local_div.offsetHeight,yellowBlockStartColor,yellowBlockStopColor,1,new Array(0,0,0,0),dblocks[i]);
            cnv.style.position='relative';
            cnv.style.top='0px';
            cnv.style.display='block';
        }
        else if (dblocks[i].className == 'block-sep brown'){
            local_div = document.getElementById('blocks');
            cnv=create_canvas_round_with_shadow(2,0,4,local_div.offsetHeight,brownBlockStartColor,brownBlockStopColor,1,new Array(0,0,0,0),dblocks[i]);
            cnv.style.position='relative';
            cnv.style.top='0px';
            cnv.style.display='block';
        }
        else if (dblocks[i].className == 'block-sep wite'){
            local_div = document.getElementById('blocks');
            cnv=create_canvas_round_with_shadow(2,1,4,local_div.offsetHeight,whiteBlockStartColor,whiteBlockStopColor,1,new Array(0,0,0,0),dblocks[i]);
            cnv.style.position='relative';
            cnv.style.top='0px';
            cnv.style.display='block';
        }
        else if (dblocks[i].id == 'lside-gala'){
            var lsidegala=dblocks[i];
            cnv=create_canvas_round_with_shadow(0,0,lsidegala.offsetWidth,lsidegala.offsetHeight-2,taxonomygStartColor,taxonomygStopColor,1,new Array(5,0,0,5));
            position_canvas_with_obj(cnv,lsidegala,0);
            cnv.id='bggala';
        }
    }

    
/*
    var ulblocks = document.getElementsByTagName('UL');
    for (i=0;i<ulblocks.length;i++){
        if (ulblocks[i].id == 'taxonomyg'){
            cnv=create_canvas_round_with_shadow(1,0,ulblocks[i].offsetWidth,ulblocks[i].offsetHeight,taxonomygStartColor,taxonomygStopColor,1,new Array(5,0,0,5));
            position_canvas_with_obj(cnv,ulblocks[i],0);
            break;
        }
    }
*/
}

//-----------------------------------------------------------------------------

function create_canvas(width,height,parent){
    //var canvasId = 'canvas'+Math.random();
	if (!parent)
	{
		parent=document.body;
	}

	var dv = document.createElement("DIV");
	dv.style.width=width+'px';
	dv.style.height=height+'px';
        dv.style.left='0px';
        dv.style.top='0px';
        dv.style.position="absolute";
	dv.style.zIndex=-1;

	parent.appendChild(dv);

	var cnv = document.createElement("CANVAS");
	if (ie && ie[2]!='9')
	{
		cnv.style.width=width+'px';
        cnv.style.height=height+'px';
	}
	else
	{
		cnv.setAttribute('width', width);
		cnv.setAttribute('height', height);
	}
	dv.appendChild(cnv);
	if (typeof G_vmlCanvasManager != "undefined") {
		G_vmlCanvasManager.initElement(cnv);
		cnv = dv.lastChild;
	}
    var ret = new Array(dv,cnv);
    return ret;
}

//------------------------------------------------------------------------------

function draw_rect(ctx,x,y,width,height,startColor,stopColor,vertical,corners,stroke){
    var gradient;
	ctx.beginPath();
	if (startColor == stopColor)
	{
        if (stroke == 1){
            ctx.strokeStyle=startColor;
        }
        else{
            ctx.fillStyle=startColor;
        }
	}
	else
	{
		if(vertical == 1)
		{
			gradient = ctx.createLinearGradient(0, 0, 0, height);
		}
		else
		{
			gradient = ctx.createLinearGradient(0, 0, width, 0);
		}
		gradient.addColorStop(0, startColor);
		gradient.addColorStop(1, stopColor);
        if (stroke == 1){
            ctx.strokeStyle=gradient;
        }
        else {
            ctx.fillStyle=gradient;
        }
	}
	ctx.moveTo(x + corners[0], y);
	ctx.lineTo(x + width - corners[1], y);
	ctx.quadraticCurveTo(x + width, y, x + width, y + corners[1]);
	ctx.lineTo(x + width, y + height - corners[2]);
	ctx.quadraticCurveTo(x + width, y + height, x + width - corners[2], y + height);
	ctx.lineTo(x + corners[3], y + height);
	ctx.quadraticCurveTo(x, y + height, x, y + height - corners[3]);
	ctx.lineTo(x, y + corners[0]);
	ctx.quadraticCurveTo(x, y, x + corners[0], y);
    if (stroke == 1){
        ctx.stroke();
    }
    else{
        ctx.fill();
    }
}

//-----------------------------------------------------------------------------

function create_canvas_round(width,height,startColor,stopColor,vertical,corners,parent)
{
    var cnvs = create_canvas(width,height,parent);
	draw_rect(cnvs[1].getContext('2d'),0,0,width,height,startColor,stopColor,vertical,corners);
	return cnvs[0];
}

//-----------------------------------------------------------------------------

function create_canvas_round_with_shadow(shadow,border,width,height,startColor,stopColor,vertical,corners,parent){
    var cnvs = create_canvas(width+shadow,height+shadow,parent);
    var ctx = cnvs[1].getContext('2d');
    if (shadow>0){
        for (var i=shadow-1;i>=0;i--){
            shadowColor[3] = 0.2 * (1 - i / shadow);
            var color = getRGBA(shadowColor);
            draw_rect(ctx,i+1,i+1,width,height,color,color,vertical,corners);
        }
    }
	draw_rect(ctx,0,0,width,height,startColor,stopColor,vertical,corners);
    if (border > 0){
        var color = getRGBA(borderColor);
        draw_rect(ctx,0,0,width,height,color,color,vertical,corners,1);
    }
	return cnvs[0];
}

//-----------------------------------------------------------------------------

function getRGBA(rgba)
{
		if(rgba.length == 3) return 'rgba(' + rgba.join(', ') + ', 1)';
		if(rgba.length == 4) return 'rgba(' + rgba.join(', ') + ')';
		return null
}

//-----------------------------------------------------------------------------

function position_canvas_with_obj(cnv,obj,zind)
{
	position_canvas_with_coords(cnv,get_x(obj),get_y(obj),zind)
}

//-----------------------------------------------------------------------------

function position_canvas_with_coords(cnv,x,y,zind)
{
	cnv.style.position="absolute";
	var parent_x=get_x(cnv.parentNode);
	var parent_y=get_y(cnv.parentNode);
	cnv.style.top=(y - parent_y)+'px';
	cnv.style.left=(x - parent_x)+'px';
	cnv.style.zIndex=zind;
        cnv.style.display='block';
}

//-----------------------------------------------------------------------------

function get_y(o){
	var y=0;
	y=o.offsetTop;
	while(o=o.offsetParent){
		y+=o.offsetTop;
	}
	return y;
}

//-----------------------------------------------------------------------------

function get_x(o){
	var x=0;
	x=o.offsetLeft;
	while(o=o.offsetParent){
		x+=o.offsetLeft;
	}
	return x;
}

//-----------------------------------------------------------------------------
function sitewide_email_this_page(){var to="";var body=document.location.href;jsessionRegExp=/\;jsession.*/ig;var body=body.replace(jsessionRegExp,"");var doc="mailto:"+to+"?"+"body="+escape(body);window.location.href=doc;}
//-----------------------------------------------------------------------------
