/*
DREAMWEAVER UTILITY FUNCTIONS
*/

function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
		var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
		if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
	var p,i,x;	if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
	var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	 if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

/*
TEMPLATE FUNCTIONS
*/

function injectTemplateData(tplData)
{
    $(document).ready(function () {
        document.title = tplData.PAGE_TITLE;

        $("#tplBGSideImage").css("background-image", "url(" + tplData.BG_SIDE_IMAGE + ")")
            .css("display", "block")
            .css("width", 150)
			.css("height", 600)
            .css("margin-right", "10px")
            .html("&nbsp;");
        $("#tplHeaderTitle").html(tplData.HEADER_TITLE);
        $("#tplPageTracking").attr("src", "/ASP/PageStat.asp?VID=" + tplData.PAGE_TRACKING_VENDOR_ID + "&Page=" + escape(tplData.PAGE_TRACKING_PAGE_NAME));
        
        //document.getElementById("tplBGSideImage").setAttribute('background', tplData.BG_SIDE_IMAGE);
        //document.getElementById("tplHeaderTitle").innerHTML = tplData.HEADER_TITLE;
        //document.getElementById("tplPageTracking").src = "/ASP/PageStat.asp?VID=" + tplData.PAGE_TRACKING_VENDOR_ID + "&Page=" + escape(tplData.PAGE_TRACKING_PAGE_NAME);

        injectTemplateLeftnav(tplData.LEFT_NAV);
    });
}

function injectTemplateLeftnav(leftnav) {
    if (leftnav) {
        $.ajax({
            url: "/includes/nav/leftnav/" + leftnav + ".asp",
            cache: false,
            success: function (html) {
                $("#tplBGSideImage").html(html);
                //var ldiv = document.getElementById('tplBGSideImage');
                //ldiv.style.display = "";
                //ldiv.style.width = "150px";
                //ldiv.innerHTML = html;
            }
        });
    }
}

/*
FLOATING LAYER
*/

function FloatingLayer(el, args)
{
	var that = this;
	
	var floatX = 10;
	var floatY = 10;
	var ifloatX = 10;
	var ifloatY = 10;
	
	var lastX;
	var lastY;
	
	this.layerwidth = 100;
	this.layerheight = 130;
	
	this.halign = "center";
	this.valign = "center";
	
	this.delayspeed = 0;
	
	var IE = (document.all);
	var NS4 = (document.layers);
	var NS6 = (IE) ? false : document.getElementById;
	
	var offsetWidth;
	var offsetHeight;
	
	var pageXOffset;
	var pageYOffset;
	
	this.fLayer = (IE) ? document.all[el] : ((NS4) ? document.layers[el] : document.getElementById(el) );
	if (jQuery) var jqLayer = $(this.fLayer) // requires JQuery Library
	
	this.fLayerX = (IE) ? this.fLayer.style.posLeft : ((NS4) ? this.fLayer.pageX : this.fLayer.style.left );
	this.fLayerY = (IE) ? this.fLayer.style.posTop : ((NS4) ? this.fLayer.pageY : this.fLayer.style.top );
	
	this.args = args;
	
	// Constructor
	(function FloatingLayer()
	{
		if (NS4)
		{
			that.fLayer.pageX = that.args.floatX;
			that.fLayer.pageY = that.args.floatY;
		}
		
		if (IE || NS6)
		{
			that.fLayer.style.left = that.args.floatX;
			that.fLayer.style.top = that.args.floatY;
		}
		
		ifloatX = floatX;
		ifloatY = floatY;
		
		define();
		window.onresize = define;
		window.onscroll = define;
		
		lastX = -1;
		lastY = -1;
		
		adjust();
		
		that.layerwidth = that.args.layerwidth;
		that.layerheight = that.args.layerheight;
		
		that.fLayer.style.percentWidth = that.layerwidth;
		that.fLayer.style.height = that.layerheight;
		
		that.halign = that.args.halign;
		that.valign = that.args.valign;
		
		that.delayspeed = that.args.delayspeed;
		
		that.fLayer.style.position = "absolute";
		
		//setInterval(adjust, 1);
	})();
	
	function adjust()
	{
		pageXOffset = (IE) ? document.body.scrollLeft : window.pageXOffset;
		pageYOffset = (IE) ? document.body.scrollTop : window.pageYOffset;
		
		offsetWidth = (IE) ? document.body.offsetWidth : window.innerWidth;
		offsetHeight = (IE) ? document.body.offsetHeight : window.innerHeight;
		
		if (lastX == -1 || that.delayspeed == 0)
		{
			lastX = pageXOffset + floatX;
			lastY = pageYOffset + floatY;
		}
		else
		{
			var dx = Math.abs(pageXOffset + floatX - lastX);
			var dy = Math.abs(pageYOffset + floatY - lastY);
			var d = Math.sqrt(dx * dx + dy * dy);
			var c = Math.round(d / 10);
			
			if (pageXOffset + floatX > lastX) lastX = lastX + that.delayspeed + c;
			if (pageXOffset + floatX < lastX) lastX = lastX - that.delayspeed - c;
			if (pageYOffset + floatY > lastY) lastY = lastY + that.delayspeed + c;
			if (pageYOffset + floatY < lastY) lastY = lastY - that.delayspeed - c;
		}
		
		//that.fLayer.style.left = lastX;
		//that.fLayer.style.top = lastY;
		
		// BRUTE FORCE THIS DUE TO BUGS
		var elHeight = jqLayer.height() + ((IE) ? 4 : 0);
		
		that.fLayer.style.left = 0;
		that.fLayer.style.top = offsetHeight - elHeight + pageYOffset;
		
		jqLayer.fadeIn('slow');
	}
	
	function define()
	{
		jqLayer.hide();
		if (that.halign == "left") floatX = ifloatX;
		if (that.halign == "right") floatX = offsetWidth - ifloatX - that.layerwidth - 20;
		if (that.halign == "center") floatX = Math.round((offsetWidth - 20) / 2) - Math.round(that.layerwidth / 2);
		if (that.valign == "top") floatY = ifloatY;
		if (that.valign == "bottom") floatY = offsetHeight - ifloatY - that.layerheight;
		if (that.valign == "center") floatY = Math.round((offsetHeight - 20) / 2) - Math.round(that.layerheight / 2);
		adjust();
	}
}
