if(snowsrc!=""){
	
function getDocHeight() {
    var D = document;
    return Math.max(
        Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
        Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
        Math.max(D.body.clientHeight, D.documentElement.clientHeight)
    );
}

function addEveList(el, ev, fun){
	if (el.addEventListener) {
		el.addEventListener (ev,fun,false);
	} else if (el.attachEvent) {
		el.attachEvent ("on"+ev,fun);
	}
}

/******************************************
* Snow Effect Script- By Altan d.o.o. (http://www.altan.hr/snow/index.html)
* Visit Dynamic Drive DHTML code library (http://www.dynamicdrive.com/) for full source code
* Last updated Nov 9th, 05' by DD. This notice must stay intact for use
******************************************/
 
 	  //Configure below to change URL path to the snow image
	  //var snowsrc="/js/snow.gif"
	  // Configure below to change number of snow to render
	  var no = 10;
	  // Configure whether snow should disappear after x seconds (0=never):
	  var hidesnowtime = 0;
	  // Configure how much snow should drop down before fading ("windowheight" or "pageheight")
	  var snowdistance = "pageheight";
	
	///////////Stop Config//////////////////////////////////
	
	
 	  var ie4up = (document.all) ? 1 : 0;
	  var ns6up = (document.getElementById&&!document.all) ? 1 : 0;
 
 
	
	  var dx, xp, yp;    // coordinate and position variables
	  var am, stx, sty;  // amplitude and step variables
	  var i, doc_width = 800, doc_height =600;
	
	
	
	
 function iecompattest(){
		return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
		}
		
 function snowIE_NS6() {  // IE and NS6 main animation function
		doc_width = ns6up?window.innerWidth-10 : iecompattest().clientWidth-10;
			
			doc_height=getDocHeight();
			//(window.innerHeight && snowdistance=="windowheight")? window.innerHeight : (ie4up && snowdistance=="windowheight")?  iecompattest().clientHeight : (ie4up && !window.opera && snowdistance=="pageheight")? iecompattest().scrollHeight : iecompattest().offsetHeight;
			
			
		for (i = 0; i < no; ++ i) {  // iterate for every dot
		  yp[i] += sty[i];
		  if (yp[i] > doc_height-50) {
			xp[i] = Math.random()*(doc_width-am[i]-30);
			yp[i] = 0;
			stx[i] = 0.02 + Math.random()/10;
			sty[i] = 0.7 + Math.random();
		  }
		  dx[i] += stx[i];
		  document.getElementById("dot"+i).style.top=yp[i]+"px";
		  document.getElementById("dot"+i).style.left=xp[i] + am[i]*Math.sin(dx[i])+"px";  
		}
		snowtimer=setTimeout("snowIE_NS6()", 10);
	  }
	
		function hidesnow(){
			if (window.snowtimer) clearTimeout(snowtimer)
			for (i=0; i<no; i++) document.getElementById("dot"+i).style.visibility="hidden"
		}
		
function dsSnow(){		
	  
	  no = Math.round(getDocHeight()/90);
	  
	  if (ns6up) {
		doc_width = self.innerWidth;
		doc_height = self.innerHeight;
	  } else if (ie4up) {
		doc_width = iecompattest().clientWidth;
		doc_height = iecompattest().clientHeight;
	  }
	
	
	doc_height = getDocHeight();
	
	  dx = new Array();
	  xp = new Array();
	  yp = new Array();
	  am = new Array();
	  stx = new Array();
	  sty = new Array();
	  snowsrc=(snowsrc.indexOf("dynamicdrive.com")!=-1)? "snow.gif" : snowsrc
	  for (i = 0; i < no; ++ i) {  
		dx[i] = 0;                        // set coordinate variables
		xp[i] = Math.random()*(doc_width-50);  // set position variables
		yp[i] = Math.random()*doc_height;
		am[i] = Math.random()*20;         // set amplitude variables
		stx[i] = 0.02 + Math.random()/10; // set step variables
		sty[i] = 0.7 + Math.random();     // set step variables
			if (ie4up||ns6up) {

			 var d = document.createElement("div");
			 d.id = "dot"+i;
			 d.style.position =  "absolute"; 
			 d.style.zIndex = i; 
			 d.style.visibility = "visible"; 
			 d.style.top = "15px"; 
			 d.style.left = "15px";
			 d.innerHTML = "<img src='"+snowsrc+"' border=\"0\">";
			document.body.appendChild(d);
			
		  
		}
	  }
	
	  
			
	
	if (ie4up||ns6up){
		snowIE_NS6();
			if (hidesnowtime>0)
				setTimeout("hidesnow()", hidesnowtime*1000)
			}

}


addEveList(window, "load", function(){dsSnow();});
}



/* Circling text trail- Tim Tilton
   Website: http://www.tempermedia.com/
   Visit: http://www.dynamicdrive.com/ for Original Source and tons of scripts
   Modified Here for more flexibility and modern browser support
   Modifications as first seen in http://www.dynamicdrive.com/forums/
   username:jscheuer1 - This notice must remain for legal use
   */

;(function(){

// Your message here (QUOTED STRING)
var msg = CURSOR_MESSAGE;

/* THE REST OF THE EDITABLE VALUES BELOW ARE ALL UNQUOTED NUMBERS */

// Set font's style size for calculating dimensions
// Set to number of desired pixels font size (decimal and negative numbers not allowed)
var size = 24;

// Set both to 1 for plain circle, set one of them to 2 for oval
// Other numbers & decimals can have interesting effects, keep these low (0 to 3)
var circleY = 0.75; var circleX = 2;

// The larger this divisor, the smaller the spaces between letters
// (decimals allowed, not negative numbers)
var letter_spacing = 5;

// The larger this multiplier, the bigger the circle/oval
// (decimals allowed, not negative numbers, some rounding is applied)
var diameter = 10;

// Rotation speed, set it negative if you want it to spin clockwise (decimals allowed)
var rotation = 0.4;

// This is not the rotation speed, its the reaction speed, keep low!
// Set this to 1 or a decimal less than one (decimals allowed, not negative numbers)
var speed = 0.3;

////////////////////// Stop Editing //////////////////////

if (!window.addEventListener && !window.attachEvent || !document.createElement) return;

msg = msg.split('');
var n = msg.length - 1, a = Math.round(size * diameter * 0.208333), currStep = 20,
ymouse = a * circleY + 20, xmouse = a * circleX + 20, y = [], x = [], Y = [], X = [],
o = document.createElement('div'), oi = document.createElement('div'),
b = document.compatMode && document.compatMode != "BackCompat"? document.documentElement : document.body,

mouse = function(e){
 e = e || window.event;
 ymouse = !isNaN(e.pageY)? e.pageY : e.clientY; // y-position
 xmouse = !isNaN(e.pageX)? e.pageX : e.clientX; // x-position
},

makecircle = function(){ // rotation/positioning
 if(init.nopy){
  o.style.top = (b || document.body).scrollTop + 'px';
  o.style.left = (b || document.body).scrollLeft + 'px';
 };
 currStep -= rotation;
 for (var d, i = n; i > -1; --i){ // makes the circle
  d = document.getElementById('iemsg' + i).style;
  d.top = Math.round(y[i] + a * Math.sin((currStep + i) / letter_spacing) * circleY - 15) + 'px';
  d.left = Math.round(x[i] + a * Math.cos((currStep + i) / letter_spacing) * circleX) + 'px';
 };
},

drag = function(){ // makes the resistance
 y[0] = Y[0] += (ymouse - Y[0]) * speed;
 x[0] = X[0] += (xmouse - 20 - X[0]) * speed;
 for (var i = n; i > 0; --i){
  y[i] = Y[i] += (y[i-1] - Y[i]) * speed;
  x[i] = X[i] += (x[i-1] - X[i]) * speed;
 };
 makecircle();
},

init = function(){ // appends message divs, & sets initial values for positioning arrays
 if(!isNaN(window.pageYOffset)){
  ymouse += window.pageYOffset;
  xmouse += window.pageXOffset;
 } else init.nopy = true;
 for (var d, i = n; i > -1; --i){
  d = document.createElement('div'); d.id = 'iemsg' + i;
  d.style.height = d.style.width = a + 'px';
  d.appendChild(document.createTextNode(msg[i]));
  oi.appendChild(d); y[i] = x[i] = Y[i] = X[i] = 0;
 };
 o.appendChild(oi); document.body.appendChild(o);
 setInterval(drag, 25);
},

ascroll = function(){
 ymouse += window.pageYOffset;
 xmouse += window.pageXOffset;
 window.removeEventListener('scroll', ascroll, false);
};

o.id = 'outerCircleText'; o.style.fontSize = size + 'px';

if (window.addEventListener){
 window.addEventListener('load', init, false);
 document.addEventListener('mouseover', mouse, false);
 document.addEventListener('mousemove', mouse, false);
  if (/Apple/.test(navigator.vendor))
   window.addEventListener('scroll', ascroll, false);
}
else if (window.attachEvent){
 window.attachEvent('onload', init);
 document.attachEvent('onmousemove', mouse);
};

})();


