/*--------------------------------------------------------------------------
	大航海時代Online - 造船シミュレータ
	Original script by Blade @ 倫敦第三造船所
	Script changed by high-low @ めもりあのーと
--------------------------------------------------------------------------*/

// 船只数据:ShipData
document.write('<script type="text/javascript" src="./ship_data.js" charset="GB2312"></script>');
// 材质数据:MaterialData
document.write('<script type="text/javascript" src="./material_data.js" charset="GB2312"></script>');
// 船部件数据:PartsData各种
document.write('<script type="text/javascript" src="./parts_data.js" charset="GB2312"></script>');


// right菜单数据
document.write('<script type="text/javascript" charset="GB2312" src="right0.js"></script>');
document.write('<script type="text/javascript" charset="GB2312" src="right1.js"></script>');
document.write('<script type="text/javascript" charset="GB2312" src="right2.js"></script>');
document.write('<script type="text/javascript" charset="GB2312" src="right3.js"></script>');

var material_num;
var OB_flg = false;
var left_num  = 0;
var right_num = 0;

// 船数据获得
function getShipData()
{

	//一览获得
	var	url = window.location.search;
	if( !NullCheck( url ) ){
		Default_ShipID = 1;
	} else {
		var	getData = url.substring(1);
		var	getID = getData.split("=");
		Default_ShipID = eval(getID[1]);
	}

	createShipSelect();
	createPartsSelect();
//	createShipInfo();
/*	setShipData( Default_ShipID );
*/
	return true;
}
// 船select作成
function createShipSelect()
{
	var Array_Select = ShipData;
	Array_Select = ShipData_Filter( Array_Select );
	Array_Select = ShipData_Search( Array_Select );
	Array_Select = ShipData_Search_Class( Array_Select );
	Array_Select = ShipData_Search_BuildUp( Array_Select );
	Array_Select = ShipData_Search_Lv( Array_Select );
	Array_Select = ShipData_Sort( Array_Select );

	var flg = 0;

	if( Array_Select.length != 0 )
		var id = Array_Select[0].ID;
	var str = "<select class=\"id\" name=\"id\" onChange=\"setShipData( this.value )\">";	//>
	for( i = 0; i < Array_Select.length; i++ )		//>
	{
		flg = 1;
		str += "<option value=\""+ Array_Select[i].ID +"\"";	//">
		if( Array_Select[i].ID == Default_ShipID )
		{
			str += " selected=\"selected\"";
			id = Default_ShipID;
		}
		if ( Array_Select[i].ShopFlag == 3 )
			str += " class=\"ex_ship\"";

		str += ">" + Array_Select[i].Name + "</option>";
	}
	if(!flg)	str = "<select><option value=\"1\">没有符合的船</option>";
				str += "</select>";
	
	Print_innerHTML("ship_select_HTML", str );
	
	if(document.getElementById("Ship_Name_HTML").innerHTML != ShipData[id - 1].Name)
		setShipData(id);


	return true;
}
// 船选择
function setShipData( id )
{
	var flg;

	for( var i=0; i < ShipData.length; i++ )	//>
	{
		if( ShipData[i] != undefined && ShipData[i].ID == id )
		{
			if( ShipData[i].ShopFlag != 3 )
					Sel = clearShipData( ShipData[i] );
			else	Sel = clearShipData( ShipData[ShipData[i].build_up_num] );

			Default_ShipID = id;
			flg = 1;
			break;
		}
	}

	if( !flg )	Sel	= ShipData[0];

	DataRefresh();
}
// 船数据（変更数据保持领域）初期化
function clearShipData( Array_ShipData )
{
	Array_ShipData.NormalPrice			= "-";

	Array_ShipData.Tateho_Now			= Array_ShipData.Tateho;
	Array_ShipData.Yokoho_Now			= Array_ShipData.Yokoho;
//	Array_ShipData.Souryoku_Now			= Array_ShipData.Souryoku;
	Array_ShipData.Senkai_Now			= Array_ShipData.Senkai;
	Array_ShipData.Taiha_Now			= Array_ShipData.Taiha;
	Array_ShipData.Soukou_Now			= Array_ShipData.Soukou;
	Array_ShipData.Speed_Now			= 1;
	Array_ShipData.Room_Crew_Now		= Array_ShipData.Room_Crew;
	Array_ShipData.Room_Cannon_Now		= Array_ShipData.Room_Cannon;
	Array_ShipData.Room_Souko_Now		= Array_ShipData.Room_Souko;
	Array_ShipData.Normal_Capacity_Now	= Array_ShipData.Normal_Capacity;
	Array_ShipData.Min_Capacity			= Array_ShipData.Normal_Capacity;
	Array_ShipData.Max_Capacity			= Array_ShipData.Normal_Capacity;

	return Array_ShipData;
}
// 过滤器
function ShipData_Filter( Array_ShipData )
{
	var filter_adv		= document.ship_select.adventure.checked;
	var filter_tra		= document.ship_select.trade.checked;
	var filter_com		= document.ship_select.combat.checked;
	var Array_Filter = new Array();
	var j=0;
	var ship_type, ship1, ship2, ship3, flag;

	for( var i=0; i < Array_ShipData.length; i++ )	//>
	{
		if( Array_ShipData[i] != undefined )
		{
			ship1 = Array_ShipData[i].Adventure_LV;
			ship2 = Array_ShipData[i].Trade_LV;
			ship3 = Array_ShipData[i].Combat_LV;
			ship_type = ShipType( ship1, ship2, ship3 );
			flag = 0;
	
			if( filter_adv && ship_type == 1 )	flag=1;
			if( filter_tra && ship_type == 2 )	flag=1;
			if( filter_com && ship_type == 3 )	flag=1;
			if( !ship_type )	flag=1;
	
			if( flag == 1 )
			{
				Array_Filter[j] = Array_ShipData[i];
				j++;
			}
		}
	}
	return Array_Filter;
}
// 船类型判定
function ShipType( ship1, ship2, ship3 )
{
	if( ship1 >= ship2 && ship1 > ship3 )
	{
		return 1;
	}
	else if( ship2 > ship1 && ship2 > ship3 )
	{
		return 2;
	}
	else if( ship3 > ship1 && ship3 > ship2 )
	{
		return 3;
	}
	return false;
}
// 输入检索：船种名（部分一致）
function ShipData_Search( Array_Select )
{
	var str = document.ship_select.search_txt.value;

	if( str != "" )
	{
	var Array_Search = new Array();
	var i, j=0;
		for( var i=0; i < Array_Select.length; i++ )	//>
		{
			if( Array_Select[i].Name.indexOf( str ) != -1)
			{
				Array_Search[j] = Array_Select[i];
				j++;
			}
		}
		return Array_Search;
	}
	return Array_Select;
}
// 输入检索：船只等级(型)
function ShipData_Search_Class( Array_Select )
{
	var str = document.ship_select.search_class.value;

	if( str != "" )
	{
	var Array_Search = new Array();
	var j=0;	
		for ( var i=0; i < Array_Select.length; i++ )		//>
		{
			if( !Array_Select[i].ShipClass.indexOf( str ) )
			{
				Array_Search[j] = Array_Select[i];
				j++;
			}
		}
		return Array_Search;
	}
	return Array_Select;
}
// 输入条件：判定强化可能
function ShipData_Search_BuildUp( Array_ShipData )
{
	var ptn = document.ship_select.select_buildUp.value;
	if( ptn != "" )
	{
		var Array_Search = new Array();
		var j=0;

		if( ptn == "skill+" )
		{
			for ( var i=0; i < Array_ShipData.length; i++ )	//>
			{
				if( Array_ShipData[i].build_up2 != "-" )
				{
					Array_Search[j] = Array_ShipData[i];
					j++;
				}
			}
		}
		else if( ptn == "2or3" )
		{
			for ( var i=0; i < Array_ShipData.length; i++ )	//>
			{
			  if( Array_ShipData[i].ShopFlag == 2 || Array_ShipData[i].ShopFlag == 3 )
				{
					Array_Search[j] = Array_ShipData[i];
					j++;
				}
			}
		}
		else if( ptn == "skill-" )
		{
			for ( var i=0; i < Array_ShipData.length; i++ )	//>
			{
				if( Array_ShipData[i].build_up2 == "-" )
				{
					Array_Search[j] = Array_ShipData[i];
					j++;
				}
			}
		}
		else if( ptn == "0or1" )
		{
			for ( var i=0; i < Array_ShipData.length; i++ )	//>
			{
			  if( Array_ShipData[i].ShopFlag == 0 || Array_ShipData[i].ShopFlag == 1 )
				{
					Array_Search[j] = Array_ShipData[i];
					j++;
				}
			}
		}
		return Array_Search;
	}

	return Array_ShipData;

}
// 输入检索：驾船条件
function Input_Lv_Chk( Form, Num )
{
	if( Num.match("[^0-9]") )
	{
		alert( "包含着半角数字以外的文字。" );
		Form.value = "";
		Form.focus();
		Form.select();
		return false;
	}
	else
		createShipSelect();
}
function ShipData_Search_Lv( Array_Select )
{
	var Array_Search = new Array();
	var Lv1a = document.ship_select.search_lv1a.value;
	var Lv1b = document.ship_select.search_lv1b.value;
	var Lv2a = document.ship_select.search_lv2a.value;
	var Lv2b = document.ship_select.search_lv2b.value;
	var Lv3a = document.ship_select.search_lv3a.value;
	var Lv3b = document.ship_select.search_lv3b.value;
	var Lv4a = document.ship_select.search_lv4a.value;
	var Lv4b = document.ship_select.search_lv4b.value;

	var j=0;
	for( var i=0; i < Array_Select.length; i++ )		//>
	{
		if(
			Filter_Lv( Array_Select[i].Adventure_LV, Lv1a, Lv1b )
			&& Filter_Lv( Array_Select[i].Trade_LV, Lv2a, Lv2b )
			&& Filter_Lv( Array_Select[i].Combat_LV, Lv3a, Lv3b )
			&& Filter_Lv( Array_Select[i].Necessary_Rank, Lv4a, Lv4b )
		)
		{
			Array_Search[j] = Array_Select[i];
			j++;
		}
	}
	return Array_Search;
}
function Filter_Lv( Lv, Lv1, Lv2 )
{
	if( Lv1 != "" )
	{
		if( Lv2 != "" )
		{
			if( Lv1 <= Lv && Lv <= Lv2 )	return true;
		}
		else
		{
			if( Lv1 <= Lv )	return true;	//>
		}
	}
	else
	{
		if( Lv2 != "" )
		{
			if( Lv <= Lv2 )	return true;	//>
		}
		else
		{
			return true;
		}
	}
	return false;
}
// 分类
function ShipData_Sort( Array_ShipData )
{
	Array_ShipData.sort( SortQuery );

	return Array_ShipData;
}
// 分类条件
function SortQuery( a, b )
{
	return a.Price - b.Price;
}
// 各项目初期状态表示
function DataRefresh()
{
	ShipData_Refresh();
	Add_Parts_Refresh();
	ShipBuild_Refresh();
	Build_Up_Refresh();

	FullFire();
	FreightCalculation_Refresh();

	document.chval.capacity.value		= Sel.Normal_Capacity;
	document.chval.capacity.style.color = "#ffffff";
	document.chval.cannon.value			= Sel.Room_Cannon;
	document.chval.cannon.style.color	= "#ffffff";
	document.chval.crew.value			= Sel.Room_Crew;
	document.chval.crew.style.color 	= "#ffffff";

	BuildSimu_Refresh();

	MaxCapacity();
	MaxCannon();
	MaxCrew();

	Estimate();
}
function ShipData_Refresh()
{
	Print_innerHTML( "Ship_Name_HTML", Sel.Name );

	Print_innerHTML( "Ship_Tateho_HTML", Sel.Tateho );
	Print_innerHTML( "Ship_Yokoho_HTML", Sel.Yokoho );
	Print_innerHTML( "Ship_Souryoku_HTML", Sel.Souryoku );
	Print_innerHTML( "Ship_Senkai_HTML", Sel.Senkai );
	Print_innerHTML( "Ship_Taiha_HTML", Sel.Taiha );
	Print_innerHTML( "Ship_Soukou_HTML", Sel.Soukou );
	Print_innerHTML( "Ship_Speed_HTML", "±0" );

	Print_innerHTML( "Ship_ShipClass_HTML", Sel.ShipClass + "型");
	switch( Sel.ShopFlag )
	{
		case 0: Print_innerHTML( "Ship_ShopFlag_HTML", "&nbsp;/&nbsp;造船专用" ); break;
		case 1: Print_innerHTML( "Ship_ShopFlag_HTML", "" ); break;
		case 2: Print_innerHTML( "Ship_ShopFlag_HTML", "&nbsp;/&nbsp;特殊船只" ); break;
		case 3: Print_innerHTML( "Ship_ShopFlag_HTML", "&nbsp;/&nbsp;强化船只" ); break;
	}

	Print_innerHTML( "Ship_Taikyu_HTML", Math.ceil(Sel.Taikyu/2) + "&nbsp;/&nbsp;" + Sel.Taikyu );
	Print_innerHTML( "Ship_Min_Crew_HTML", Sel.Min_Crew );
	Print_innerHTML( "Ship_Room_Crew_HTML", Sel.Room_Crew );
	document.getElementById("crew").style.width = "50px";
	Print_innerHTML( "Ship_Room_Cannon_HTML", Sel.Room_Cannon );
	document.getElementById("cannon").style.width = "50px";
	Print_innerHTML( "Ship_Room_Souko_HTML", Sel.Room_Souko );
	document.getElementById("cargo").style.width = "100px";
	Print_innerHTML( "Ship_Room_All_HTML", Sel.Room_Crew + Sel.Room_Cannon + Sel.Room_Souko );

	Print_innerHTML( "Ship_Adventure_LV_HTML", Sel.Adventure_LV );
	Print_innerHTML( "Ship_Trade_LV_HTML", Sel.Trade_LV );
	Print_innerHTML( "Ship_Combat_LV_HTML", Sel.Combat_LV );

	Print_innerHTML( "ShipBuild_Necessary_Days_HTML", Sel.Necessary_Days );
	Print_innerHTML( "ShipBuild_Base_Material_HTML", "<img src=\"./materia/img/icon_"+ material[Sel.Material][0] + ".gif\" onmouseover=\"cmtShow(\'" + material[Sel.Material][0] + "\',true)\" onmouseout=\"cmtShow(\'\', false)\" />&nbsp;" + material[Sel.Material][1] );
	Print_innerHTML( "Ship_BuildPrice_HTML", FormatNumber(Sel.Price * 0.6) + "<img src=\"./materia/img/ducart.gif\" class=\"icon-ducart\" />");
	if( Sel.ShopFlag == 1 )
		Print_innerHTML( "Ship_Price_HTML", FormatNumber(Sel.Price) + "<img src=\"./materia/img/ducart.gif\" class=\"icon-ducart\" />");
	else
		Print_innerHTML( "Ship_Price_HTML", "---<img src=\"./materia/img/ducart.gif\" class=\"icon-ducart\" />" );

	Print_innerHTML( "Ship_Side_Cannon_HTML", Sel.Side_Cannon );
	Print_innerHTML( "Ship_Prow_Cannon_HTML", Sel.Prow_Cannon );
	Print_innerHTML( "Ship_Stern_Cannon_HTML", Sel.Stern_Cannon );
	Print_innerHTML( "Ship_Assist_Sail_HTML", Sel.Assist_Sail );
//	Print_innerHTML( "Ship_Figure_Head_HTML", Sel.Figure_Head );
	Print_innerHTML( "Ship_Figure_Head_HTML", 1 );
//	Print_innerHTML( "Ship_Crest_HTML", Sel.Crest );
	Print_innerHTML( "Ship_Crest_HTML", 1 );
	Print_innerHTML( "Ship_Special_Weapon_HTML", Sel.Special_Weapon );
	Print_innerHTML( "Ship_Additional_Armor_HTML", Sel.Additional_Armor );
	Print_innerHTML( "Ship_Blow_HTML", "-" );
	Print_innerHTML( "Ship_Run_On_HTML", 0 );
	Print_innerHTML( "Ship_Duel_HTML", 0 );



	Print_innerHTML( "Ship_Memo_HTML", Sel.Memo );

	Print_innerHTML( "Ship_Necessary_Rank_HTML", Sel.Necessary_Rank );

	document.getElementById("endure").style.width	= 80 * material[Sel.Material][4] + "px";
	document.getElementById("crew-min").style.width = Math.ceil(50 * Sel.Min_Crew / Sel.Room_Crew) + "px";

	material_num = Sel.Material;

}
function BuildSimu_Refresh()
{
	if( Sel.Necessary_Rank > 5 )
	{
		if( Default_ShipID == Sel.ID )
			document.ship_customize.skill_lv.selectedIndex = Sel.Necessary_Rank - 5;
		else
			document.ship_customize.skill_lv.selectedIndex = Sel.Necessary_Rank - 3;
	}
	else
		document.ship_customize.skill_lv.selectedIndex = 0;

	MaterialList_input_Refresh();
	MaterialList_value_Refresh();
	editMaterial(material_num);
}
// 造船等级変更
function SkillRefresh()
{
	if( material[material_num][2] > document.ship_customize.skill_lv.selectedIndex + 5 ){
		if( (Sel.ShopFlag < 2) && (document.ship_customize.skill_lv.selectedIndex + 5 < material[Sel.Material][2]) ){	//>
			document.ship_customize.skill_lv.selectedIndex = material[Sel.Material][2] - 5;
		}
		material_num = Sel.Material;
		editMaterial( material_num );
	}
	MaxCapacity();
	MaterialList_input_Refresh();
}
// 纵帆·横帆性能调整
function TateYoko_Adjustment()
{
	var Tateho_Adjust = Math.round(eval(Sel.Tateho_Now) * Sel.Speed_Now);
	var Yokoho_Adjust = Math.round(eval(Sel.Yokoho_Now) * Sel.Speed_Now);

	for(var i = 0; i < Sel.Assist_Sail; i++){	//>
		Tateho_Adjust += SailData[document.chval["ShipParts_Sail"+i].value][2];
		Yokoho_Adjust += SailData[document.chval["ShipParts_Sail"+i].value][3];
	}

	for( i = 0; i < Sel.Special_Weapon; i++){	//>
		Tateho_Adjust += WeaponData[document.chval["ShipParts_Weapon"+i].value][1];
		Yokoho_Adjust += WeaponData[document.chval["ShipParts_Weapon"+i].value][2];
	}

	Print_innerHTML( "Ship_Tateho_HTML", FormatNumber( Tateho_Adjust, Sel.Tateho ) );
	Print_innerHTML( "Ship_Yokoho_HTML", FormatNumber( Yokoho_Adjust, Sel.Yokoho ) );
}
// 转向性能调整
function Senkai_Adjustment()
{
	var Senkai_Adjust = Sel.Senkai_Now;
	var point = Math.ceil( Sel.Normal_Capacity * 1.02 );

	for(var i = 0; i < Sel.Assist_Sail; i++)	//>
		Senkai_Adjust += SailData[document.chval["ShipParts_Sail"+i].value][4];

	if( Sel.Normal_Capacity_Now >= point )	Senkai_Adjust--;
	Print_innerHTML( "Ship_Senkai_HTML", FormatNumber( Senkai_Adjust, Sel.Senkai ) );
}
// 装甲性能调整
function Soukou_Adjustment()
{
	var Soukou_Adjust = Sel.Soukou_Now;
	for( var i = 0; i < Sel.Additional_Armor; i++ ){	//>
		Soukou_Adjust += ArmorData[document.chval["ShipParts_Armor"+i].value][1];
	}

	Print_innerHTML( "Ship_Soukou_HTML", FormatNumber( Soukou_Adjust, Sel.Soukou ) );
}
// 右菜单切换
function chRight( master, left, right )
{
	if( right != right_num )
	{
		if( master )
			document.getElementById("rightMaster").style.display 	= "block";
		else
			document.getElementById("rightMaster").style.display 	= "none";

		document.getElementById("chSelect" + right_num ).style.borderColor	= "#789";
		document.getElementById("rightL" + left_num ).style.display			= "none";
		document.getElementById("rightR" + right_num ).style.display		= "none";
		document.getElementById("chSelect" + right ).style.borderColor		= "#fff";
		if( left != -1 ){
		document.getElementById("rightL" + left ).style.display				= "block";
		left_num  = left;
		}
		document.getElementById("rightR" + right ).style.display			= "block";
		right_num = right;
	}
}
// 估计计算
function Estimate()
{
	var build_price = Sel.Price * 0.6;
	var price		= Math.ceil(Sel.Price * 0.6 / material[Sel.Material][3] * material[material_num][3]);
	var price2		= "";
	var price3		= "";

	price	+= CapacityPrice( price );
	price	+= BuildUpPrice( price );
	if(OB_flg)	price += Sel.Price * 0.6;
	price	 = editPrice( 1, price );
	price	 = editPrice( 2, price );
	price	 = editPrice( 3, price );

	var parcent2 = Math.ceil((price * 500) / (Sel.Price * 3));
	var parcent3 = Math.ceil( price / Sel.Price * 100);

	if( price > Sel.Price )
			price3	= "(+" + FormatNumber( Math.floor( price - Sel.Price ) ) + ") [" + parcent3 + " %]";
	else if( price < Sel.Price )	//>
			price3	= "(-" + FormatNumber( Math.floor( Sel.Price - price ) ) + ") [" + parcent3 + " %]";
	else
			price3	= "(±0) [" + parcent3 + " %]";

	if( price > build_price ){
			price2	= "(+" + FormatNumber( Math.floor( price - build_price ) ) + ") [" + parcent2 + " %]";
	}
	else if( price < build_price ){	//>
			price2	= "(-" + FormatNumber( Math.floor( build_price - price ) ) + ") [" + parcent2 + " %]";
	}
	else{
			price2	= "(±0) [" + parcent2 + " %]";
	}

	price 	= FormatNumber( price, build_price );

	Print_innerHTML( "BuildSimu_Estimate_HTML", price );
	Print_innerHTML( "BuildSimu_Estimate2_HTML", price2 );
	Print_innerHTML( "BuildSimu_Estimate3_HTML", price3 );
}
// 计算材质变更后的价格
function MaterialPrice( normal_price )
{
	var rate = material[ material_num ][3];

	var price = Math.ceil( normal_price * rate );

	price = price - normal_price;

//	alert( normal_price +" + "+ price +"["+rate+"]" );
	return price;
}
// 计算容量增减后的价格
function CapacityPrice( normal_price )
{
	var percent = 0;
	var price = 0;

	percent = ( Sel.Normal_Capacity_Now - Sel.Normal_Capacity ) / Sel.Normal_Capacity * 100;

	if( Sel.Normal_Capacity_Now > Sel.Normal_Capacity )
	{
		percent = Math.floor( percent );
	}
	else if( Sel.Normal_Capacity_Now < Sel.Normal_Capacity )	//>
	{
		percent = Math.ceil( percent * -1 );
	}

	price = Math.floor( normal_price * percent / 100 );

	return price;
}
// 价格修正
function editPrice( formNum, price )
{
	var editForm = document.chval["editPrice" + formNum];
	var editPrice = editForm.value;

	if( editPrice == "" )
	{
		editForm.value = 0;
		return price;
	}
	var firstByte = editPrice.substr( 0, 1 );
	if( firstByte == "+" || firstByte == "-" )
	{
		editPrice = editPrice.substr( 1 );
		if( editPrice.match("[^0-9]") )
		{
			alert( "包含着半角数字以外的文字。" );
			editForm.focus();
			editForm.select();
		}
		else
		{
			if( firstByte == "+" )
				price = eval( price ) + eval(editPrice);
			else
				price = eval( price ) - eval(editPrice);
			return price;
		}
	}
	else
	{
		if( editPrice.match("[^0-9]") )
		{
			alert( "包含着半角数字以外的文字。" );
			editForm.focus();
			editForm.select();
		}
		else
		{
			price = eval( price ) + eval(editPrice);
			return price;
		}
	}

	return price;
}

// innerHTML
function Print_innerHTML( id, value )
{
	document.getElementById( id ).innerHTML = value;

	return true;
}
// 船画像用OpenWin
function ImgView( no, name )
{
	var url = 'img_view.html?' + no;
	window.open(url, 'Img'+no,'width=380,height=380,status=no,scrollbars=no,directories=no,menubar=no,resizable=no,toolbar=no');
}
// undefined, null值检查
function NullCheck( str )
{
	if( typeof str == 'undefined' || str == "" || str == null )
		return false;
	else
		return true;
}
// カンマ区切り
function FormatNumber(x,y)
{
	var s = "" + x;
	var p = s.indexOf(".");
	if (p < 0) {
		p = s.length;
	}
	var r = s.substring(p, s.length);
	var i;
	for (var i = 0; i < p; i++) {		//>
		var c = s.substring(p - 1 - i, p - 1 - i + 1);
		if (c < "0" || c > "9") {
			r = s.substring(0, p - i) + r;
			break;
		}
		if (i > 0 && i % 3 == 0) {
			r = "," + r;
		}
		r = c + r;
	}
	
	if( typeof y != 'undefined' ){
	if( x > y )			r = r.bold().fontcolor("#33ccff");
	else if( x < y )	r = r.bold().fontcolor("#ff9933");	//>
	}

	return r;
}
