/*
Avatar scripts for Project Zero
Create Date:	2005-12-9
Author:			Marila
Last Modified:	Marila @ 2005-12-11
*/

var CLS_ID = "clsid:54515250-473C-413E-8194-A18D367E8936";

var DEFAULT_IMG = "images/0.gif";

//提示语
var MSG1 = "动感形象尚未完全激活，请刷新您的动感形象以确保正确激活。";
var MSG4 = "您的动感形象没有正确安装或者配置。";


function _gel(a){return document.getElementById?document.getElementById(a):null}

//Avatar形象
var AvaObject = null;

//获取形象
// obj: 装载Avatar的容器
// width, height: Avatar的高度和宽度, 未指定去缺省值，如果设置为半身， 则height 会自动除以2
// AId: 圈圈号
// aScale: 全身(1)/半身(2)
function GetAvatar(obj,imgUrl,width,height,AId,aScale)
{
	
	//设定AvrtarID
	if(typeof AId == "undefined") AId = "-1";

	//创建Avatar对象
	AvaObject = CreateAva(obj,width,height,AId,aScale);
	
	
	//将AvaObject添加到obj的子元素
	_gel(obj).appendChild(AvaObject);
	
	
	
	//添加OnSystemState事件函数
	AvaObject.attachEvent("OnSystemState",function(w,l){ AvaChange(w,obj,imgUrl,width,height,AId,aScale) });
	
	//显示预览窗口
	//Preview
	AvaObject.OpenPreview = function(x, y)
	{
		if(CheckAvatar() < 0){alert(MSG1 + "xxx");return;}
		try
		{
			this.Preview(parseInt(x), parseInt(y));
		}
		catch(e)
		{
			alert(MSG1 + "yyy");
		}
	}

	//旋转
	//Rotate
	AvaObject.SetRotate = function(fAngle)
	{
		if(CheckAvatar() < 0)return;
		try
		{
			this.Rotate(parseInt(fAngle));
		}
		catch(e)
		{
			alert(MSG4);
		}
	}

	//设定全/半身
	//WholePortrait(1) 默认值，显示全身
	//HalfPortrait(2) 显示上半身
	AvaObject.ChangeAvatarScale = function()
	{
		if(CheckAvatar() < 0){alert(MSG1 + "zzz");return;}
		try
		{
			this.AvatarScale = (this.AvatarScale == 1)? 2 : 1;
		}
		catch(e)
		{
			alert(MSG1 + "aaa");
		}
	}
	
	//Avatar是否存在
	AvaObject.isHaveAvatar = false;
	
    //是否成功创建Avatar
	AvaObject.IsCreateSuccess = false;
	
	return AvaObject.id;
}


//创建Avatar对象
function CreateAva(obj,width,height,avatarId, scale)
{
	try
	{
		var a = document.createElement("OBJECT");
		a.classid="clsid:54515250-473C-413E-8194-A18D367E8936";
		if(typeof scale == "undefined")
		    a.AvatarScale = 1;
		else
		    a.AvatarScale = scale;

		a.width = width?width:200;
		a.height = (height?height:274) / a.AvatarScale;
		a.ShowFacePanel = "1";
		a.ButtonsVisible = "0";
		a.Stand = "1";
		
		a.CreateAvatar(avatarId,1,0);

		a.id=obj + "_" + avatarId;
		a.name = obj + "_" + avatarId;
		
		return a;
	}
	catch(e)
	{
		alert(MSG1);
	}
}

function GetAvatarJsId(avatarId)
{
	
}


function CreateAvaImg(obj, imgUrl,width,height,AId, aScale)
{
	var a = document.createElement("IMG");
	a.src = imgUrl;
	a.id = obj + "_" + AId;
	a.Style = "width:" + width + ";height:" + (height / 2);
	a.onerror = function(){this.src=DEFAULT_IMG}
	return a;
}


//OnSystemState事件函数
function AvaChange(w, obj,imgUrl,width,height,AId, aScale)
{
	/*
	SSST_LOAD_RESOURCE = 0,	//装载资源
	SSST_LOAD_RESOURCE_OVER = 1, //装载资源结束
	SSST_LOAD_RESOURCE_ERROR = 2, //装载资源失败
	SSST_SYS_ERROR_AVATAR = 3, //系统错误，avatar错误
	SSST_SYS_ERROR_WINDOW = 4, //系统错误，窗体错误
	SSST_SYS_ERROR_RESTORE = 5,	//系统从错误状态中恢复
	SSST_SYS_AVATAR_ID_ERROR = 6, //Avatar Id错误
	SSST_SYS_AVATAR_INVALID = 7, //没有Avatar形象
	SSST_SYS_AVATAR_VALID = 8, //有Avatar形象
	SSST_UPDATE_AVATAR_ERROR = 9, //更新avatar形象是发生错误
	WM_SDO_AVATAR_CREATED = 4036, 1024 + 3012
	WM_SDO_AVATAR_EQUIPMENTUPDATED = 4037, 1024 + 3013
	*/
	//判断是否有Avatar形象
	switch(w)
	{
	    case 1:
	        if(AvaObject.IsCreateSuccess == false)
	        {
	            // Avatar初始化成功信号量
		        AvaObject.IsCreateSuccess = true;
	        }
	        break;
		case 7:
			var v = _gel(obj + "_" + AId);
			_gel(obj).removeChild(v);
			v = null;
			v = CreateAvaImg(obj,imgUrl,width,height,AId, aScale);
			
			_gel(obj).appendChild(v);
			AvaObject.isHaveAvatar = false;
			break;
	}
}


function CheckInstall()
{
 try
 {
  var o = new ActiveXObject("SAVCTRL.SAVCtrlCtrl.1");
  o = null;
  return true;
 }
 catch(e)
 {
  //alert('请先安装带动感派对的圈圈版本,方能正常使用商城!');
  return false;
 }
}

//检查Avatar形象
function CheckAvatar()
{
	return 1;
}

function CheckObject(oid)
{
    if(typeof _gel(oid).Rotate != "undefined")
    	return true;
	    
    if(typeof _gel(oid).src != "undefined")
    {
    	alert("没有动感形象");
    	return false;
    }
}
    
    
function btnChangeAvatarScale(idx)
{
	var imgName = _gel("btn"+idx+"ALL").src;
	imgName = imgName.substring(imgName.lastIndexOf('/')+1,imgName.length);
	if(imgName == "btn_whole.gif") 
	{
		btnImg(idx);
		imgName = _gel("btn"+idx+"ALL").src;
		imgName = imgName.substring(imgName.lastIndexOf('/')+1,imgName.length);
	}
	if(imgName == "btn_whole_hover.gif")
	{
		_gel("btn"+idx+"ALL").src = "images\\button\\btn_half_hover.gif";
	}	
	if(imgName == "btn_half_hover.gif")
	{
		_gel("btn"+idx+"ALL").src = "images\\button\\btn_whole_hover.gif";
	}
}

function btn3Dopen(btnObj)
{
	var imgName = btnObj.src;
	imgName = imgName.substring(imgName.lastIndexOf('/')+1,imgName.length);
	if(imgName == "btn_3Dclose.gif")
	{
	//	btnObj.src = "images\\button\\btn_3Dopen.gif";
		return false;
	}	
	else
	{
	//	btnObj.src = "images\\button\\btn_3Dclose.gif";
		return true;
	}
}

function btnBlowup(idx)
{
	var imgName = _gel("btn"+idx+"Blowup").src;
	imgName = imgName.substring(imgName.lastIndexOf('/')+1,imgName.length);
	if(imgName == "btn_zoomin.gif") 
	{
		btnImg(idx);
	}
}

function btnImg(idx)
{
	var imgName = _gel("btn"+idx).src;
	imgName = imgName.substring(imgName.lastIndexOf('/')+1,imgName.length);
	if(imgName == "btn_3Dopen.gif")
	{
		_gel("btn"+idx).src = "images\\button\\btn_3Dclose.gif";
		_gel("btn"+idx+"ALL").src = "images\\button\\btn_whole_hover.gif";
		_gel("btn"+idx+"Blowup").src = "images\\button\\btn_zoomin_hover.gif";
		return false;
	}	
	else
	{
		_gel("btn"+idx).src = "images\\button\\btn_3Dopen.gif";
		_gel("btn"+idx+"ALL").src = "images\\button\\btn_whole.gif";
		_gel("btn"+idx+"Blowup").src = "images\\button\\btn_zoomin.gif";
		return true;
	}
}