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];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

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 setPageHeight(){
  //workaround for div height=100% behavior in Firefox and Safari
  //alert(document.body.clientHeight);
  //alert(document.getElementById('maincontent').clientHeight);
  if(document.body.clientHeight < (document.getElementById('maincontent').clientHeight)+310)
      document.getElementById('mainbody').style.height = document.getElementById('maincontent').clientHeight+310;
}

/*dynamic gradient*/
  var setGradient = (function(){ 
      //private variables; 
      var p_dCanvas = document.createElement('canvas'); 
      var p_useCanvas = !!( typeof(p_dCanvas.getContext) == 'function'); 
      var p_dCtx = p_useCanvas?p_dCanvas.getContext('2d'):null; 
      var p_isIE = /*@cc_on!@*/false; 
      //test if toDataURL() is supported by Canvas since Safari may not support it 
      try{ 
	      p_dCtx.canvas.toDataURL() 
	  }
      catch(err){ 
	      p_useCanvas = false ; 
	  }; 
      if(p_useCanvas){ 
	      return function (dEl , sColor1 , sColor2 , bRepeatY ){ 
		      if(typeof(dEl) == 'string') 
			      dEl = document.getElementById(dEl); 
			  if(!dEl) 
			      return false; 
			  var nW = dEl.offsetWidth; 
			  var nH = dEl.offsetHeight; 
			  p_dCanvas.width = nW; 
			  p_dCanvas.height = nH; 
			  var dGradient; 
			  var sRepeat; 
			  
			  // Create gradients 
              if(bRepeatY){ 
			      dGradient = p_dCtx.createLinearGradient(0,0,nW,0); 
				  sRepeat = 'repeat-y'; 
			  }
			  else{ 
			      dGradient = p_dCtx.createLinearGradient(0,0,0,nH); 
				  sRepeat = 'repeat-x'; 
			  } 
			  dGradient.addColorStop(0,sColor1); 
			  dGradient.addColorStop(1,sColor2); 
			  p_dCtx.fillStyle = dGradient ; 
			  p_dCtx.fillRect(0,0,nW,nH); 
			  var sDataUrl = p_dCtx.canvas.toDataURL('image/png'); 
			  with(dEl.style){ 
			      backgroundRepeat = sRepeat; 
				  backgroundImage = 'url(' + sDataUrl + ')'; 
				  backgroundColor = sColor2; }; 
			  } 
		 }
		 else if(p_isIE){ 
		     p_dCanvas = p_useCanvas = p_dCtx = null; 
			 return function (dEl , sColor1 , sColor2 , bRepeatY){ 
			     if(typeof(dEl) == 'string') 
				     dEl = document.getElementById(dEl); 
				 if(!dEl) 
				     return false; 
				 dEl.style.zoom = 1; 
				 var sF = dEl.currentStyle.filter; 
				 dEl.style.filter += ' ' + ['progid:DXImageTransform.Microsoft.gradient( GradientType=', +(!!bRepeatY ),',enabled=true,startColorstr=',sColor1,', endColorstr=',sColor2,')'].join(''); }; 
			 }
			 else{ 
			     p_dCanvas = p_useCanvas = p_dCtx = null; 
				 return function(dEl , sColor1 , sColor2 ){ 
				     if(typeof(dEl) == 'string') 
					     dEl = document.getElementById(dEl); 
					 if(!dEl) 
					     return false; 
					 with(dEl.style){ 
					     backgroundColor = sColor2; 
					 }; 
					 //alert('your browser does not support gradient effet'); 
      			 } 
			 } 
		  })(); 