/*  ContentFlowAddOn_gallery, version 3.0 
 *  (c) 2008 - 2010 Sebastian Kutsch
 *  <http://www.jacksasylum.eu/ContentFlow/>
 *
 *  This file is distributed under the terms of the MIT license.
 *  (see http://www.jacksasylum.eu/ContentFlow/LICENSE)
 */

new ContentFlowAddOn ('gallery', {

	//参数会以HTML中设置的数值为优先
	ContentFlowConf: {
        //maxItemHeight: 0,
        //visibleItems:20,
		
		//参数relativeItemPosition中的定位方式不同，都会影响一些效果：
        //relativeItemPosition: "top center", //默认参数
		relativeItemPosition: "left",         // top, bottom, left, right, center
		
		//【重要】chenxy:
		//注释掉以下函数，则是直接不用修改原版org_contentflow_src.js，就能实现XBOX360之前版本形式UI(近大远小)，
		//若不注释掉，则是2010版For Kinect UI
		/*
        calcSize: function ( item) {
            var rP = item.relativePosition;
            //var rPN = relativePositionNormed;
            //var vI = rPN != 0 ? rP/rPN : 0 ; visible Items

            var h = 0.9;

            var s = 0.2;
            var dH = 3;
            h *= (Math.normDist(rP,s)+dH)/(Math.normDist(0,s)+dH);
            
            var w = h;

            return {width: w, height: h};
        },
		/******************************************************************/
		
		
		calcSize: function (item) {
            var rP = item.relativePosition;
            //var rPN = relativePositionNormed;
            //var vI = this.conf.visibleItems; 
			var h = 1/(Math.abs(rP)+1);
			
			//■■chenxy[重要:调整当前item右边的尺寸]
			//var w = h; //org
            var w = h*1.4; //调整当前item右边的尺寸
			
            return {width: w, height: h};
        },
		

        calcCoordinates: function (item) {
            var rP = item.relativePosition;
            var rPN = item.relativePositionNormed;
            var vI = rPN != 0 ? rP/rPN : 0 ;
			//■chenxy:尾部/4 也会影响右边第1个ITEM间距
            //var z  = item.side * (1 - Math.normedNormDist(rP, 0.5))/4; // runs from -0.25 ... 0 ... 0.25 
			var z  = item.side * (1 - Math.normedNormDist(rP, 0.5))/6; // runs from -0.25 ... 0 ... 0.25 
			
			
			/********************************************/
            //Chenxy[重要：产生类似XBOX360 UI]，影响尺寸和左边间距：
			//var f = Math.sqrt(Math.erf2(rP)) *0.5;
            //var x =  rP/(vI+1) * f + z; // normalized to (vI+1) //org原始的参数,// var x =  (rP/(vI+1) * f + z)/1; // 会导致各ITEM间距更加紧，类似iPhone Coverflow的原效果

			//Chenxy[重要：影响重叠参数]产生XBOX360原ITEM近大远小UI最佳方式，方式2：
			//以下3行参数是来自原单独修改contentflow_xbox360.js中对应calcCoordinates: function (item)内的修改方法
			//效果更接近真实的XBOX360主机上的UI了，若要使用以下2行，则要将contentFlowAddOn_gallery_chenxy.js中的var x 注释掉。
			// 其中 z/2 可以影响右边第1个ITEM的往左距离
			//var f = 1 - 1/Math.exp( Math.abs(rP)/2.5 * 0.4);
            //var x =  (item.side * vI/(vI-1.5)* f + z)*1.3; 
			
			//chenxy 目前所用1：
			//var f = 1 - 1/Math.exp( Math.abs(rP)/3.5 * 0.75);
            //var x =  (item.side * vI/(vI-1.5)* f + z) * 1.10; 
			
			//chenxy 目前所用2：
			//var f = 1 - 1/Math.exp( Math.abs(rP)/3.5 * 0.75);
            //var x =  (item.side * vI/(vI-1.5)* f + z) * 1.10; 
			
			//■chenxy：修改ITEM默认数量时用：for (var i=1; i <= this.conf.visibleItems && i++ < this.items.length ; i++) { //chenxy mod，修改后会导致一点其它问题，如不平滑移动，但可以默认多显示一些ITEM
			//var f = 1 - 1/Math.exp( Math.abs(rP)/4.5 * 0.75);
            //var x =  (item.side * vI/(vI-1.5)* f + z/3) * 1.30; 
			
			var f = 1 - 1/Math.exp( Math.abs(rP)/3.9 * 0.70);
            //var x =  (item.side * vI/(vI-1.5)* f + z/2) * 1.20; 
			var x =  (item.side * vI/(vI-1)* f + z) * 1.2; 
			
			/********************************************/

			var y = 1;
            return {x: x, y: y};
        }

	}

});

