
function supports_canvas() {
  return !!document.createElement('canvas').getContext;
}

function is_ie() {
  var rv = -1; // Return value assumes failure.
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
    rv = parseFloat( RegExp.$1 );
  }

  var isie = false;    
  if (rv >= 0) {
    isie = true;
  }  
  return isie;
}


function tiltImage(control,xsize,xid,xix,deg) {
  
    var ie = is_ie();
    var cvs = supports_canvas();

    var divOuter = document.getElementById('tiltOuterWrapper_x_' + xid + '_' + xix);	    
    var divInner = document.getElementById('tiltInnerWrapper_x_' + xid + '_' + xix);	    
    var canvas = document.getElementById('tiltCanvas_x_' + xid + '_' + xix);
 
    var imageFull = document.getElementById('tiltImageFull_x_' + xid + '_' + xix);
    var imgW = imageFull.width;
    var imgH = imageFull.height;

//  alert(ie);
 
    if (cvs == true && ie != true) {

//  alert('tiltOuterWrapper_x_' + xid + '_' + xix);

    	

 	    var canvasContext = canvas.getContext('2d');
            
	    var imageShadow1 = document.getElementById('tiltImageShadow1_x_' + xid + '_' + xix);
	    var imageShadow2 = document.getElementById('tiltImageShadow2_x_' + xid + '_' + xix);
	    var imageShadow3 = document.getElementById('tiltImageShadow3_x_' + xid + '_' + xix);
	    var imageShadow4 = document.getElementById('tiltImageShadow4_x_' + xid + '_' + xix);
	    var imageShadow5 = document.getElementById('tiltImageShadow5_x_' + xid + '_' + xix);

        var AngleD = deg;
        var SideAh = imgH;
        var newH = SideAh * (.99-Math.tan(AngleD)) ;
        var newH = newH * (Math.cos(AngleD)); 
        var SideAw = imgW;
        var newW = SideAw * (.99-Math.tan(AngleD));
        var newW = newW * (Math.cos(AngleD)); 

        canvas.setAttribute('width', imgW + 75);
	    canvas.setAttribute('height', imgH + 50);
	    canvasContext.rotate(deg * Math.PI / 180);
     
        for (var s2=3;s2<imgW;s2++){
            var shadowLeft = (newH * 2)  + s2;
 	 	    canvasContext.drawImage(imageShadow2, shadowLeft, imgH - 5);
        }
        for (var s4=3;s4<imgH;s4++){
            var shadowTop = s4;
 	 	    canvasContext.drawImage(imageShadow4, imgW + (newH * 2) - 2   , shadowTop);
        }
 	    canvasContext.drawImage(imageShadow1, (newH * 2) , imgH - 5);
 	    canvasContext.drawImage(imageShadow3, imgW + (newH * 2) - 2 , imgH - 5);
	    canvasContext.drawImage(imageShadow5, imgW + (newH * 2) - 2   , 2);
 	    canvasContext.drawImage(imageFull, newH * 2, 0);

        divOuter.style.width = Math.floor(imgW + (newH * 2) + 11) + 'px' ;
        divOuter.style.height = Math.floor(imgH + (newW * 2) + 12) + 'px' ; 

    } else {

        $(divOuter).innerHTML = $(divInner).innerHTML; 
        
        divOuter.style.width = imgW + 'px' ;
        divOuter.style.height = imgH + 'px' ; 
        divOuter.style.marginTop = '7px' ;
        divOuter.style.marginLeft = '7px' ;
    
    
    }


}
   
 





/*

function tiltImage(control,xsize,xid,xix,deg) {
	if(BrowserDetect.browser != 'Opera') { 
		if(BrowserDetect.browser == 'Explorer') {
    		var divOuter2 = document.getElementById('tiltOuterWrapper_x_' + xid + '_' + xix);
	    		divOuter2.style.display = 'none';
			msieRotation(xsize,xid,xix,deg);
		} else {
            var divOuter = document.getElementById('tiltOuterWrapper_ie_' + xid + '_' + xix);
	    		divOuter.style.display = 'none';
	 	 	otherRotation(xsize,xid,xix,deg);
		}
	} else {
		var divOuter = document.getElementById('tiltOuterWrapper_ie_' + xid + '_' + xix);
			divOuter.style.display = 'none';
		var divOuter2 = document.getElementById('tiltOuterWrapper_x_' + xid + '_' + xix);
			divOuter2.style.display = 'none';
		var divOpera = document.getElementById('operaWrapper_' + xid + '_' + xix);
			divOpera.style.display = 'inline';
	} 
};

function otherRotation(xsize,xid,xix,deg)
{
 
	var divOuter = document.getElementById('tiltOuterWrapper_x_' + xid + '_' + xix);
 	
	var canvas = document.getElementById('tiltCanvas_x_' + xid + '_' + xix);
	var canvasContext = canvas.getContext('2d');

	var imageFull = document.getElementById('tiltImageFull_x_' + xid + '_' + xix);
    var imgW = imageFull.width;
    var imgH = imageFull.height;

	var imageShadow1 = document.getElementById('tiltImageShadow1_x_' + xid + '_' + xix);
	var imageShadow2 = document.getElementById('tiltImageShadow2_x_' + xid + '_' + xix);
	var imageShadow3 = document.getElementById('tiltImageShadow3_x_' + xid + '_' + xix);
	var imageShadow4 = document.getElementById('tiltImageShadow4_x_' + xid + '_' + xix);
	var imageShadow5 = document.getElementById('tiltImageShadow5_x_' + xid + '_' + xix);

  
var AngleD = deg;
var SideAh = imgH;
var newH = SideAh * (.99-Math.tan(AngleD)) ;
var newH = newH * (Math.cos(AngleD)); 
var SideAw = imgW;
var newW = SideAw * (.99-Math.tan(AngleD));
var newW = newW * (Math.cos(AngleD)); 

		canvas.setAttribute('width', imgW + 300);
		canvas.setAttribute('height', imgH +  100);

 
		canvasContext.rotate(deg * Math.PI / 180);
 
        for (var s2=3;s2<imgW;s2++){
            var shadowLeft = (newH * 2)  + s2;
    	 	canvasContext.drawImage(imageShadow2, shadowLeft, imgH - 5);
        }

        for (var s4=3;s4<imgH;s4++){
            var shadowTop = s4;
    	 	canvasContext.drawImage(imageShadow4, imgW + (newH * 2) - 2   , shadowTop);
        }

	 	canvasContext.drawImage(imageShadow1, (newH * 2) , imgH - 5);
	 	canvasContext.drawImage(imageShadow3, imgW + (newH * 2) - 2 , imgH - 5);
		canvasContext.drawImage(imageShadow5, imgW + (newH * 2) - 2   , 2);
	 	
	 	canvasContext.drawImage(imageFull, newH * 2, 0);

        divOuter.style.width = imgW + (newH * 2) + 11 + 'px' ;
        divOuter.style.height = imgH + (newW * 2) + 12 + 'px' ; 
 
 
    divOuter.style.visibility = 'visible';
		
}
 
function msieRotation(xsize,xid,xix,deg)
{
 
	var divOuter = document.getElementById('tiltOuterWrapper_ie_' + xid + '_' + xix);
 	var divInner = document.getElementById('tiltInnerWrapper_ie_' + xid + '_' + xix);

 	var imgMain = document.getElementById('tiltImageFull_ie_' + xid + '_' + xix);
    var imgW = imgMain.width;
    var imgH = imgMain.height;

 	var droplg1div = document.getElementById('droplg1div_ie_' + xid + '_' + xix);
 	var droplg1main = document.getElementById('droplg1main_ie_' + xid + '_' + xix);
 	var droplg1right = document.getElementById('droplg1right_ie_' + xid + '_' + xix);
 	var droplg1bottom = document.getElementById('droplg1bottom_ie_' + xid + '_' + xix);
   
var AngleD = deg;

var SideAh = imgH;
var newH = SideAh * (.99-Math.tan(AngleD)) ;
var newH = newH * (Math.cos(AngleD)); 

var SideAw = imgW;
var newW = SideAw * (.99-Math.tan(AngleD));
var newW = newW * (Math.cos(AngleD)); 

        divOuter.style.width = imgW + (newH * 2)+ 10 ;
        divOuter.style.height = imgH + (newW * 2) + 15;
        
        divInner.style.width = imgW + (newH * 2) + 13;
        divInner.style.height = imgH + (newW * 2) + 10;

 

    droplg1div.style.width = imgW + 15;
    droplg1div.style.height = imgH;
    droplg1main.style.height = imgH;
    droplg1right.style.height = imgH;
    droplg1bottom.style.width = imgW + 15;

 
 
    var deg2rad = Math.PI * 2 / 360;
    var rad = deg * deg2rad;
    var costheta = Math.cos(rad);
    var sintheta = Math.sin(rad);
  	    divInner.filters.item(0).M11 = costheta;
  	    divInner.filters.item(0).M12 = -sintheta;
  	    divInner.filters.item(0).M21 = sintheta;
  	    divInner.filters.item(0).M22 = costheta;
 
 
    divOuter.style.visibility = 'visible';

}
  
 
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: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};

BrowserDetect.init(); 

*/
