﻿		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: "OmniWeb",
                    versionSearch: "OmniWeb/",
                    identity: "OmniWeb"
                },
                {
                    string: navigator.vendor,
                    subString: "Apple",
                    identity: "Safari"
                },
                {
                    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"
                }
            ]
        };

        function rnd_() {
            var x = Math.random();
            return x;
        }
	    function rnd_i(v) {
	       var i = Math.floor ( v * Math.random() );
	       return i;
	    }
        function rnd_b(v) {
            var d = ( v - Math.random() );
            var bool = ( d > 0 );
            return bool;
        }
	    function rnd_array(m,a) {
	       var i,j;
	       var st;
	       var n = a.length;
	       if ( n < 2 || m < 1 ) return;
	       for ( var k = 0; k < m; k++ ) {
	           i = rnd_i(n);    
	           j = rnd_i(n);
	           if ( i == j ) j = i + 1 + rnd_i(n-2);
	           if ( j >= n ) j -= n;
                st = a[i];    
	            a[i] = a[j]
                a[j] = st;
	       }       
	    }

        function roman_(number) {
 
            var letter = new Array('O','I','V','X','L','C','D','M','W','Y');

            var id = new Array();	
		
	        if (number == 0) return letter[0];
			
    	    var roman = '';
    	    var n = number;
				
		    if (n < 0) { 
		        roman = '-';
		        n = Math.abs(n);
		    }
      
            id[4] = Math.floor( n / 10000 ) ;
            id[3] = Math.floor( (n - 10000*id[4]) / 1000 );
            id[2] = Math.floor( (n - 10000*id[4] - 1000*id[3]) / 100 );
            id[1] = Math.floor( (n - 10000*id[4] - 1000*id[3] - 100*id[2] ) / 10);
            id[0] = Math.floor(  n - 10000*id[4] - 1000*id[3] - 100*id[2] - 10*id[1] );

            if (id[4] > 0) {
                roman = letter[9];
                for (var i=1; i<=id[4]-1; i++) roman += letter[9];
            }
            
            for (var k = 1; k>=0; k--) {
                var idk = id[k];
                if (idk == 1) roman += letter[2*k+1];
                if (idk == 2) roman += letter[2*k+1]+letter[2*k+1];
                if (idk == 3) roman += letter[2*k+1]+letter[2*k+1]+letter[2*k+1];
                if (idk == 4) roman += letter[2*k+1]+letter[2*k+2];
                if (idk == 5) roman += letter[2*k+2];
                if (idk == 6) roman += letter[2*k+2]+letter[2*k+1];
                if (idk == 7) roman += letter[2*k+2]+letter[2*k+1]+letter[2*k+1];
                if (idk == 8) roman += letter[2*k+2]+letter[2*k+1]+letter[2*k+1]+letter[2*k+1];
                if (idk == 9) roman += letter[2*k+1]+letter[2*k+3];
            }
		    return roman;		
        }
        function decimal_(x,n) {

            var xa = Math.abs(x);
            var d = Math.pow(10,n);
            var y = Math.round ( xa * d) / d;
            if ( x < 0 ) y = -y;

            return y;
        
        }
        function greek_( CODE , str ) {
            
            var letter = new Array ( 'alp' , 'bet' , 'gam'  , 'del'   , 'eps'   , 'zet'   , 'eta'   , 'the'   , 'iot'   , 'kap'   , 'lam'   , 'mu '   , 'nu '   , 'xi '   , 'omi'   , 'pi '   , 'rho'   , 'sig'   , 'tau'   , 'ups'   , 'phi'   , 'chi'   , 'psi'   , 'ome' );  
            var names = new Array ( 'Alpha' , 'Beta' , 'Gamma' , 'Delta' , 'Epsilon' , 'Zeta' , 'Eta' , 'Theta' , 'Iota' , 'Kappa' , 'Lambda', 'Mu' ,'Nu' , 'Ksi' , 'Omikron' , 'Pi' , 'Rho' , 'Sigma' , 'Tau' , 'Upsilon' , 'Phi' , 'Khi' , 'Psi' , 'Omega'  );
            var U0 = new Array ( '\u0391', '\u0392','\u0393', '\u0394', '\u0395', '\u0396', '\u0397', '\u0398', '\u0399', '\u039A', '\u039B', '\u039C', '\u039D', '\u039E', '\u039F', '\u03A0', '\u03A1', '\u03A3', '\u03A4', '\u03A5', '\u03A6', '\u03A7', '\u03A8', '\u03A9' );
            var U1 = new Array ( '\u03B1', '\u03B2','\u03B3', '\u03B4', '\u03B5', '\u03B6', '\u03B7', '\u03B8', '\u03B9', '\u03BA', '\u03BB', '\u03BC', '\u03BD', '\u03BE', '\u03BF', '\u03C0', '\u03C1', '\u03C3', '\u03C4', '\u03C5', '\u03C6', '\u03C7', '\u03C8', '\u03C9' );       
            
            if ( typeof(str) == 'string' ) {
                var i = 0;
                while ( ( i < letter.length ) && ( letter[i] != str.toLowerCase() ) ) i++;                    

	            var code = str;
    	        if ( (i >= 0) && (i < letter.length) ) {
        	        if (CODE == 0) code = U0[i];
            	    if (CODE == 1) code = U1[i];
                	if (CODE == 2) code = names[i];
            	}

            }       
            else if ( typeof(str) == 'number' ) {
            
	            var NN = new Array( U0.length , U1.length , names.length );
            	var Ni = Math.ceil(str / NN[CODE]);
            	var code = "";

				for ( var j = 0; j < Ni; j++ ) {
	            	var i = (str % NN[CODE]); 
               		if (CODE == 0) code += U0[i];
               		if (CODE == 1) code += U1[i];
               		if (CODE == 2) code += names[i] + ' ';
					str -= NN[CODE];               		
               	
               	}
        
        	}
            
            return code;
        
        }

	    function st_opacity(e,opc) {
	        e.style.opacity = opc/10;
	        e.style.filter = 'alpha(opacity=' + opc*10 + ')';
        }
        function st_box( e , x , y , w , h ) {
            e.style.position = 'absolute';
            e.style.left = x + 'px';
            e.style.top = y + 'px';
            if ( w > 0 ) e.style.width = w + 'px';
            if ( h > 0 ) e.style.height = h + 'px';
        }
        function st_data_( POS , UW , UY , text , css , SC , pE ) {
        
            var e;
            var SP = '*';
            
            var O = document.createElement('div');
            O.style.width = (UW*pE.offsetWidth) + 'px';
            O.style.position = 'absolute';
            if (POS  > 0) O.style.left = (POS-1) + 'px';
            if (POS  < 0) O.style.left = ( pE.offsetWidth*(1 - UW) + POS ) + 'px';
            if (POS == 0) O.style.left = ( 0.5*pE.offsetWidth*(1 - UW) ) + 'px';
            O.style.top = UY + 'px';
            pE.appendChild(O);

            for ( var n = 0; n < text.length; n++ ) {
            
                if ( text[n] != '' ) {
                
                    var title = text[n].split(SP)[0];
                    var data = text[n].split(SP)[1];
                            
                    if ( data != undefined ) {
                        if ( title != undefined ) {                            
							var e = document.createElement('div');
							e.className = css[0];
							O.appendChild(e);
                            e.style.marginTop = '0.6em';
                            if (title == '' ) e.style.marginTop = '0em';   
							e.appendChild( document.createTextNode( title ) );
                        }
						var e = document.createElement('div');
						e.className = css[1];
						e.appendChild( document.createTextNode( data ) );
						O.appendChild(e);
                    }    
                    else {
						var e = document.createElement('div');
						e.className = css[2];
						O.appendChild(e);
                        e.style.marginTop = '1em';
                        e.style.marginBottom = '1em';
                        if (SC) e.style.fontVariant = 'small-caps';
						e.appendChild( document.createTextNode( title ) );
                    }
            
                }

            }            
            return O;
        }

        function offsetXY(E) {
            var eXY = new Array(2);
            var ei = E;
            eXY[0] = ei.offsetLeft;
            eXY[1] = ei.offsetTop;
            while (ei != document.body) {
            	ei = ei.offsetParent;
            	eXY[0] += ei.offsetLeft;
            	eXY[1] += ei.offsetTop;               	
            }
        	return eXY;        
        }
		function evPositionCursor(evt) {
		// Return cursor position
		
			evt = (evt) ? evt : ((window.event) ? window.event : null);

 			var pxy = new Array(0,0);

			getScrollingPosition = function() {
 				var spxy = new Array(0,0);
 				if (typeof window.pageYOffset != 'undefined'){ 
 					spxy[0] = window.pageXOffset;
 					spxy[1] = window.pageYOffset; 
 				}
				else if (typeof document.documentElement.scrollTop != 'undefined' && document.documentElement.scrollTop > 0){
   					spxy[0] = document.documentElement.scrollLeft;
   					spxy[1] = document.documentElement.scrollTop;
 				}
				else if (typeof document.body.scrollTop != 'undefined'){
   					spxy[0] = document.body.scrollLeft;
   					spxy[1] = document.body.scrollTop;
 				}
				return spxy;
			}

 			var sPos = getScrollingPosition();

 			if (typeof evt.pageX != "undefined" && typeof evt.x != "undefined") {
   				pxy[0] = evt.pageX;
				pxy[1] = evt.pageY;
			} 
			else {
   				pxy[0] = evt.clientX + sPos[0];
   				pxy[1] = evt.clientY + sPos[1];
 			} 
			return pxy;
		}

        function cookieSave(name,SET,DATA) {

			// delete previous cookie
			var xdate = new Date("January 1, 2000");
			xdate = xdate.toGMTString();
			document.cookie = encodeURI(name) + "=" + DATA + ";expires=" + xdate;

			if (SET) {
				// write new cookie
				var xdate = new Date("January 1, 2012");
				xdate = xdate.toGMTString();
				document.cookie = encodeURI(name) + "=" + DATA + ";expires=" + xdate;
			}
		
		}
		function cookieLoad() {
		
			if (!document.cookie) return ("");
			
			var i = 0;
			while (document.cookie.charAt(i) != '=') i++;
			var name = decodeURIComponent(document.cookie.substring(0,i));
			var DATA = document.cookie.substring(i+1,document.cookie.length);
			
			return DATA;

		}
        
        function moveWithDualOpacity( id , bmp0 , bmp1 , vpx , vpy , interval , init , MoveX , MoveY ) {

			var element = document.getElementById(id);

			if (init < 0) {
				
				if ( element.movement ) clearTimeout( element.movement );

				return true;
			
			}

			if (init == 0) {
                
                if ( element.movement ) clearTimeout( element.movement );
                
                var Bmp = new Array( bmp0 , bmp1 );
                
                element.wx = vpx - element.offsetWidth;
   	            element.wy = vpy - element.offsetHeight;

                element.imag = new Array(2);

                while ( element.childNodes.length > 0 ) {
                	element.removeChild( element.childNodes[0] );
                }

                for ( k = 0; k < 2; k++ ) {
                
	                element.imag[k] = document.createElement( 'div' );
    	            element.appendChild( element.imag[k] );
        	        st_box ( element.imag[k] , 0 , 0 , element.offsetWidth , element.offsetHeight );              

            	    element.imag[k].style.backgroundImage = 'url(' + Bmp[k] + ')'; ;  

                    if ( k == 0 ) element.imag[0].dt = -4/interval;
                    if ( k == 1 ) element.imag[1].dt =  4/interval;
                    
                    element.imag[k].opc = 0.5;
                    element.imag[k].style.opacity = element.imag[k].opc;
 
                    element.imag[k].posx = -rnd_i( element.wx );	
                    element.imag[k].posy = -rnd_i( element.wy );
    
                    element.imag[k].style.backgroundPosition = element.imag[k].posx + 'px ' +  element.imag[k].posy + 'px';

                    element.imag[k].dx = MoveX;
                    element.imag[k].dy = MoveY;

				}
				
				return true;
			}

            for ( k = 0; k < 2; k++ ) {

                var xx = element.imag[k].posx;
                var yy = element.imag[k].posy;
                
                if ( MoveX != 0 ) {
               
					xx -= element.imag[k].dx; 
					if ( ( xx > 0 ) || ( xx < -element.wx-1 ) ) element.imag[k].dx = -element.imag[k].dx; 
					element.imag[k].posx = xx;

                }

                if ( MoveY != 0 ) {
 
					yy -= element.imag[k].dy;
					if ( ( yy > 0 ) || ( yy < -element.wy-1 ) ) element.imag[k].dy = -element.imag[k].dy;
					element.imag[k].posy = yy;

                }
				
				element.imag[k].style.backgroundPosition = xx + 'px ' + yy + 'px';

                element.imag[k].opc += element.imag[k].dt;               

                if ( (element.imag[k].opc < 0) || (element.imag[k].opc > 1)  ) {
                    element.imag[k].dt = -element.imag[k].dt;
                }
                element.imag[k].style.opacity = element.imag[k].opc;

            }
			
			var repeat = "moveWithDualOpacity('" + id + "','" + bmp0 + "','" + bmp1 + "'," + vpx + "," + vpy + "," + interval + ",1," + MoveX + "," + MoveY + ")";
			
			element.movement = setTimeout(repeat,interval);

		}

        function Canvas_cell ( x , y , w , h , O ) {
            var C = document.createElement('canvas');
            if (!C) return;
            C.setAttribute( 'width'  , Math.floor(w) );
            C.setAttribute( 'height' , Math.floor(h) );
            C.style.position = 'absolute';
            C.style.left = x + 'px';
            C.style.top =  y + 'px';
            O.appendChild(C);
            return C;        
        }
        function Canvas_stella ( CIRC , M , tw , th0 , rd , col , C ) {
        
            var nx = new Array();
            var ny = new Array();

            var n;
            var N = Math.abs(M);
            var dth = 2*Math.PI / N;
            var th = th0;
            for ( var i = 0; i < N; i++ ) {
                th += dth; 
                nx[i] = rd + rd*Math.cos(th) + tw;
                ny[i] = rd - rd*Math.sin(th) + tw;
            }
          
            var CT = C.getContext('2d');
            
            CT.strokeStyle = col;
            CT.lineWidth = tw;
            CT.beginPath();

            if ( M > 2 ) {
                if ( N % 2 == 0 ) {
                    CT.moveTo ( nx[0] , ny[0] );
                    for ( i = 2; i <= N; i+=2 ) {
                        n = i % N;
                        CT.lineTo ( nx[n] , ny[n] );
                    }
                    CT.moveTo ( nx[1] , ny[1] );
                    for ( i = 3; i <= N+1; i+=2 ) {
                        n = i % N;
                        CT.lineTo ( nx[n] , ny[n] );
                    }                
                }
                if ( N % 2 == 1 ) {
                    CT.moveTo ( nx[0] , ny[0] );
                    for ( i = 2; i < 2*N+2; i+=2 ) {
                        n = i % N;
                        CT.lineTo ( nx[n] , ny[n] );
                    }
                }
            }
            else {
                if ( M == 1 ) {
                    CT.arc ( rd+tw , rd+tw , 2*tw , 0 , 2*Math.PI , true );
                }
                if ( M == 2 || M < 0 ) {
                    CT.moveTo ( nx[0] , ny[0] );
                    for ( i = 1; i <= N; i++ ) {
                        n = i % N;
                        CT.lineTo ( nx[n] , ny[n] );
                    }            
                }
            }
            CT.stroke();
            CT.closePath();            

            if (CIRC) {
                CT.beginPath();
                CT.arc ( rd+tw , rd+tw , rd , 0 , 2*Math.PI , true );
                CT.stroke();
            }

            return C;
        }
        function Canvas_luna ( CIRC , phase , rd , moonRGB , C ) {
        
            var tw = 1;
            var costheta , cosi , x0 , x1;
            var posx = new Array();
            var posy = new Array();

            var N = Math.round(2*rd);
            var y = 1;
            for (var j = 0; j < N; j++) {
        
                costheta = Math.cos(Math.asin(y));
                            
                if ( phase > 0 ) {
                    cosi = 1 - 2*Math.abs(phase);
                    x0 = costheta * cosi;
                    x1 = x0;
                    posx[j] = rd*( 1 + x1);           
                    posx[2*N-j-1] = posx[j] + rd * ( costheta - x0 );
                }
                if ( phase < 0 ) {
                    cosi =  2*Math.abs(phase) - 1;   
                    x0 = costheta * cosi;
                    x1 = -costheta;
                    posx[j] = rd*( 1 + x1);           
                    posx[2*N-j-1] = posx[j] + rd * ( x0 + costheta );
                }
                posy[j] = j;
                posy[2*N-j-1] = j;

                y -= 1/rd;
                
            }
            
            var CT = C.getContext('2d');
            CT.strokeStyle = moonRGB;
            CT.fillStyle = moonRGB;
            CT.lineWidth = 1;

            CT.beginPath();
            CT.moveTo( posx[0] , posy[0] );
			for ( var i = 1; i < 2*N; i++ ) CT.lineTo( posx[i] , posy[i] );		
			CT.closePath();
			CT.stroke();
			CT.fill();

            if (CIRC) {
	            CT.lineWidth = tw;
                CT.beginPath();
                CT.arc ( rd , rd , rd , 0 , 2*Math.PI , true );
                CT.stroke();
            }

            return C;     
        }
        function Canvas_hora ( N , n0 , r1 , rh , tb , ux , uy , col0 , col1 , tw , FILL , theta0 , C ) {

            var x0a, x1a , y0a , y1a, tha;                       
            var x0b, x1b , y0b , y1b, thb;
            var col;

            var P = Math.ceil(2*Math.PI*r1);
            var uvx = 2*r1 + 2*tw;
            var uvy = uvx;
            var cenx = 0.5*uvx + ux;
            var ceny = cenx + uy;
            var r0 = rh*r1;
            var r0sq = r0*r0;
            var r1sq = r1*r1;
            var dth = 2*Math.PI / N;
            var bth0 = Math.atan(0.5*tb/r0);
            var bth1 = Math.atan(0.5*tb/r1);

            var CT = C.getContext('2d');
            CT.lineWidth = tw;

            // Draw divided circle
            for ( var i = 0; i < N; i++ ) {
                tha = bth0 + i*dth + theta0;
                thb = (i+1)*dth - bth0 + theta0;
                var costha = Math.cos(tha);
                var sintha = Math.sin(tha);
                var costhb = Math.cos(thb);
                var sinthb = Math.sin(thb);
                x0a = cenx + r0*costha;
                y0a = ceny + r0*sintha;
                x0b = cenx + r0*costhb;
                y0b = ceny + r0*sinthb;
                x1a = cenx + r1*costha;
                y1a = ceny + r1*sintha;
                x1b = cenx + r1*costhb;
                y1b = ceny + r1*sinthb;

                CT.beginPath();
                if ( tb > 0 || i == n0 ) {
                    CT.moveTo ( x0a , y0a );
                    CT.lineTo ( x1a , y1a );
                }
                CT.arc ( cenx , ceny , r1 , tha , thb , false );
                if ( i < N-1 ) {
                    CT.moveTo ( x1b , y1b );
                    CT.lineTo ( x0b , y0b );
                }
                CT.arc ( cenx , ceny , r0 , thb , tha , true );
                
                if ( i == n0 ) col = col1; else col = col0;
                
                CT.strokeStyle = col;
                if ( FILL || (i == n0) ) {
                    CT.fillStyle = col;
                    CT.fill();
                }

                if ( i == N-1 ) CT.closePath();
                CT.stroke();
                
            }
            
            return C;

        }
        function Canvas_acula ( id , N , A , a , phi , gamma , b , rd , ux , uy , THETA0 , col , FILL , CIRC , pE ) {
            //RD: integer!!!!
                
            f_pattern = function() {
            
                var x,f;
                var y = new Array();
                 
                for ( var i = 0; i <= RD; i++ ) {
                    
                    x = Math.PI * ( 1 - i / RD );
                    
                    f = Math.abs ( Math.sin ( x * Math.sin ( a*x+phi ) ) );
                    f = A * Math.pow ( f , gamma ) * Math.cos(0.5*x) + b*x;

                    y[i] = f * RD / Math.PI;
                
                }
                return y;
            
            }
        
            if ( document.getElementById(id) ) pE.removeChild( document.getElementById(id) );
 
            var RD = Math.floor(rd);
            
            var C = Canvas_cell ( ux , uy , 2*RD , 2*RD , pE );
            C.setAttribute( 'id' , id );
            
            var CT = C.getContext('2d');
            if ( FILL < 0 ) CT.lineWidth = -FILL;
            else CT.lineWidth = 1;
            CT.strokeStyle = col;

            for ( var n = 0; n < N; n++ ) {
            
                var THETA = (Math.PI/180)*THETA0 + 2*n*Math.PI/N;

                var cosTH = Math.cos(THETA);
                var sinTH = Math.sin(THETA);
                var Y = f_pattern();
                var XP = 0;
                var YP = -Y[0];
                var XP1 =  XP*cosTH - YP*sinTH + RD;
                var YP1 = -XP*sinTH - YP*cosTH + RD;
    
                CT.beginPath();
                CT.moveTo ( XP1 , YP1 );
                for ( var k = 0; k <= RD; k++ ) {            
                    XP = k;
                    YP = -Y[k];
                    XP1 =  XP*cosTH - YP*sinTH + RD;
                    YP1 = -XP*sinTH - YP*cosTH + RD;
                    CT.lineTo ( XP1 , YP1);
                }
                for ( var k = RD; k >= 0; k-- ) {
                    XP = k;
                    YP = Y[k];
                    XP1 =  XP*cosTH - YP*sinTH + RD;
                    YP1 = -XP*sinTH - YP*cosTH + RD;
                    CT.lineTo ( XP1 , YP1 );
                }
                CT.closePath();
                CT.stroke();
               
                if ( FILL >= 0 ) {
                    CT.fillStyle = col;
                    CT.fill();            
                }
            
                if ( CIRC ) {
                    CT.beginPath();
                    CT.arc ( RD , RD , RD , 0 , 2*Math.PI , true );
                    CT.stroke();
                    if ( FILL >= 0) {
                        CT.fillStyle() = '#000';
                        CT.fill();
                    }
               }
            
            }

            return C;

        }
        function Canvas_imag1 ( uvx , uvy , THETA , C , img ) {
                    
           var th = Math.PI * THETA / 180.0;
           var size = Math.min ( uvx , uvy );
           var cx = 0.5*uvx;
           var cy = 0.5*uvy;
	       
		   var CT = C.getContext('2d');
		   CT.save();
		   CT.translate( cx , cy );
		   CT.rotate ( th );
	       CT.drawImage( img , -size/2, -size/2 , size , size );
		   CT.restore();
       }
        
        
        
