function Tutorial(cntrl)
{
	var tutorial 	= {};
	
	tutorial 		= new NET(cntrl);// inherit net class
	tutorial.missionArr=new Array();
	/* Attributes */
	
	tutorial.current_step = 1;
	
	/* EOF Attributes */
	
	/* Function Declaration */
	
	tutorial.buyWeapon										= buyWeapon;
	tutorial.buyWeaponCallback								= buyWeaponCallback;
	tutorial.doMission										= doMission;
	tutorial.doMissionCallback								= doMissionCallback;
	tutorial.getMission										= getMission;
	tutorial.getMissionCallback								= getMissionCallback;
	tutorial.getWeaponForTutorialPage						= getWeaponForTutorialPage;
	tutorial.getWeaponForTutorialPageCallback				= getWeaponForTutorialPageCallback;
	tutorial.gotoStep										= gotoStep;
	tutorial.loadPage 										= loadPage;
	tutorial.skip											= skip;
	/* EOF Function Declaration */
	
	/* Function Definition */
	
	function buyWeapon(id, qty)
	{
		tutorial.makeRequest();
	};								
	
	function buyWeaponCallback(xml)
	{
		var message = $(xml).find('message').text();
		var title=$('data',xml).find('itemTitle').text();
		tutorial.outputMessage(message, 's');
		var qty=parseInt($('data',xml).find('qty').text());
		var total=parseInt($('data',xml).find('tcost').text());
		message1="has bought "+qty+"X "+title+" for "+numberFormat(total)+" g";
		text1="Play Darkwars";
		link1=config.appUrl;
		template_data={"images":[{"src":config.timg['logo'],
								 	"href":link1},
								 	{"src":config.userImgUrl+owner.id,
								 	"href":link1},
								 	 {"src":getRaceImage(owner.race),
											 "href":link1}],
									"message":message1,
									"action_text":text1,
									"link":link1};
		publishStory(config.templateBundleId,template_data);
		var str ="";
		str +="<div id=\"info_box\"><div class=\"red_feed\">You have successfully completed first tutorial page Click below to move to next page</div>";
		str+="<div style=\"float:right; text-align:center;\">" +
				"<div class=\"top_right_info\" >" +
				"<span><input name=\"button\" type=\"button\" "+config.hoverEffect+"  class=\"button_form\" value=\"Next >>\" onClick = \"tutorial.gotoStep(2)\"/></span>" +
				"</div>" +
				"</div>"; 
			
			$('#tutorial_step1').html(str);
			//hover();
	};
	
	function doMission(id)
	{
		tutorial.makeRequest();
	};
	
	function doMissionCallback(xml)
	{
		//var success=$('data',xml).find('success').text(); 
		var str="";
		var str1="";
		var energy=$(xml).find('success').find('energySpent').text();
		var id=$(xml).find('success').find('missionId').text();
		var cash=$(xml).find('success').find('cashGained').text();
		var exp=$(xml).find('success').find('expGained').text();
		str="<div class=\"float_left\">Success !! You were rewarded <span class=\"gold\">"+numberFormat(cash)+" g</span> and <span class=\"txt_highlight\">"+exp+" EXP</span> using <span class=\"red_bold\">"+energy+" Energy.</span></div>"+
					 	  "<div class=\"clear\"></div>"+
					"<div class=\"clear\"></div>";
			 
		tutorial.outputMessage('<div class="content_box">'+str+'</div>','m');
		var message1="has completed \""+tutorial.missionArr[id].title+"\"  and gained "+numberFormat(cash)+" g and "+exp+" EXP";
			var text1="Play Darkwars";
			var link1=config.appUrl;
			var template_data1={"images":[{"src":config.timg['logo'] ,
									 "href":link1},
									 {"src":config.userImgUrl+owner.id,
									 "href":link1},
									 {"src":getRaceImage(owner.race),
									 "href":link1}],
									"message":message1,
									"action_text":text1,
									"link":link1};
	
		publishStory(config.templateBundleId,template_data1);
		
		str1 +="<div id=\"info_box\"><div class=\"red_feed\">You have successfully completed second tutorial page Click below to move to next page</div>";
		str1+="<div style=\"float:right; text-align:center;\">" +
				"<div class=\"top_right_info\" >" +
				"<span><input name=\"button\" type=\"button\" "+config.hoverEffect+" class=\"button_form\" value=\"Next >>\" onClick = \"javascript:tutorial.gotoStep(3)\"/></span>" +
				"</div>" +
				"</div>"; 
			$('#tutorial_step2').html(str1);
			//hover();
		
	};
	
	function getMission()
	{
		tutorial.makeRequest();
		
	};
	
	function getMissionCallback(xml)
	{
		var str="";
		var id=$(xml).find('mission').attr('id');
		var title=$(xml).find('mission').find('mtitle').text();
		var minCash=$(xml).find('mission').find('minCash').text();
		var maxCash=$(xml).find('mission').find('maxCash').text();
		var exp=$(xml).find('mission').find('minExp').text();
		var gang=$(xml).find('mission').find('reqGangSize').text();
		var energy=$(xml).find('mission').find('reqEnergy').text();
		var description=$(xml).find('mission').find('desc').text();
		var err=$(xml).find('errMsg').text();
		tutorial.missionArr[id] = {'title': title};
		if(id>0)
		{
					str="<div class=\"mission_div\"  ><!--mission_div starts-->"+
									"<div class=\"mission_div_title\">"+
										"<div class=\"txt_orange\" >"+uuescape(title)+"</div>"+
										"<div class=\"mission_describ\">\""+uuescape(description)+"\"</div>"+
											
										"<div class=\"clear\"></div>"+
									"</div>"+
									"<br />"+
									
									"<div class=\"mission_info_box\"><!--mission_info_box starts-->"+
										"<div class=\"mission_reward\">"+
											"<div class=\"mission_title\">Quest Rewards</div>"+
											"<div class=\"gold\" style=\" font-size:11px;\">"+numberFormat(minCash)+" g - "+numberFormat(maxCash)+" g</div>"+
											"<div class=\"item_name\">+"+exp+" EXP</div>";
											$('loot', $(this).find('loots')).each(function(){
													var image=$(this).find('imgU').text();
													var title=$(this).find('title').text();
													var id=$(this).attr('id');
													var qty=$(this).attr('qty');
													if(id>0)
													{
												
											str+="<div class=\"reward_item\">"+
												"<div class=\"txt_italic\" >Items dropped...</div>"+
												"<div><img src=\""+config.shopIMGurl+image+"\" width=\"75\" style=\"border:1px solid #6a0513;\" /></div>"+
												"<div class=\"txt_italic\">"+qty+"X <span class=\"white_bold\">Privater</span></div>"+
											"</div>";
													}
											});
										str+="</div>"+
										"<div class=\"mission_require\">"+
											"<div class=\"mission_title\">Require Stats,</div>"+
											"<div class=\"item_name\">Energy: "+energy+"</div>"+
											"<div class=\"item_name\">Clan size: "+gang+"</div>"+
										"</div>";
										
										var stat=0;
										var str1="";
										$('weapon', $(this).find('weapons')).each(function(){
													var id=$(this).attr('id');
													var image=$(this).find('imgU').text();
													var owned=parseInt($(this).find('owned').text());
													var qty=parseInt($(this).attr('qty'));
													if(id>0)
													{
														stat=1;
														if(qty>owned)
														{
														
														str1 +=	"<div style=\"float:left; \">"+
																		"<img src=\""+config.shopIMGurl+image+"\" title=\""+$(this).find('title').text()+"\" />"+
																		"<div class=\"red\">"+(qty-owned)+"x</div>"+
																"</div>";
														}
														else
														{
														
														str1 +=	"<div style=\"float:left; \">"+
																		"<img src=\""+config.shopIMGurl+image+"\" title=\""+$(this).find('title').text()+"\" />"+
																		"<div class=\"green\">"+qty+"x</div>"+
																"</div>";
																									
														}
													}
												});
												
													$('reqloot', $(this).find('reqloots')).each(function(){
													var id=$(this).attr('id');
													var image=$(this).find('imgU').text();
													var owned=parseInt($(this).find('owned').text());
													var qty=parseInt($(this).attr('qty'));
													if(id>0)
													{
														stat=1;
														if(qty>owned)
														{
														
														str1 +=	"<div style=\"float:left; \">"+
																		"<img src=\""+config.shopIMGurl+image+"\" title=\""+$(this).find('title').text()+"\" />"+
																		"<div class=\"red\">"+(qty-owned)+"x</div>"+
																"</div>";
														}
														else
														{
														
														str1 +=	"<div style=\"float:left; \">"+
																		"<img src=\""+config.shopIMGurl+image+"\" title=\""+$(this).find('title').text()+"\" />"+
																		"<div class=\"green\">"+qty+"x</div>"+
																"</div>";
																									
														}
													}
												});	
												$('prop', $(this).find('props')).each(function(){
																
															var id=$(this).attr('id');
															var image=$(this).find('imgU').text();
															var owned=parseInt($(this).find('owned').text());
															var qty=parseInt($(this).attr('qty'));
															if(id>0)
															{
																stat=1;
																if(qty>owned)
																{
																
																str1 +=	"<div style=\"float:left; \">"+
																				"<img src=\""+config.shopIMGurl+image+"\" title=\""+$(this).find('title').text()+"\" />"+
																				"<div class=\"red\">"+(qty-owned)+"x</div>"+
																		"</div>";
																}
																else
																{
																
																str1 +=	"<div style=\"float:left; \">"+
																				"<img src=\""+config.shopIMGurl+image+"\" title=\""+$(this).find('title').text()+"\" />"+
																				"<div class=\"green\">"+qty+"x</div>"+
																		"</div>";
																	}
															}
														});
										
										
										str+="<div class=\"mission_require_item\">";
											if(stat==1)
											{
												str+="<div class=\"mission_title\">Require Items,</div>";
											}
											else
											{
												str+="<div class=\"mission_title\">&nbsp;</div>";
											}
											str+="<div class=\"mission_items\">";
												str+=str1;
												str+="<div class=\"clear\"></div>"+
											"</div>"+
										"</div>"+
										"<div class=\"mission_do_quest\" "+config.hoverEffect+"  onclick=\"javascript:tutorial.doMission("+id+")\"><span class=\"button_new\">Do Quest</span></div>"+
									"</div><!--mission_info_box starts-->"+
									"<div class=\"clear\"></div><br /><br /><br /><br />"+
								"<div class=\"clear\"></div>"+
								"</div>"+
								"<div class=\"clear\"></div>";
								
					
					
					
					
					$('#tutorial_do_mission').html(str);
					
		}
		else
		{
			tutorial.outputMessage(err,'w');
			$('#tutorial_do_mission').html(err);
		}
		//hover();
	};
	
	function getWeaponForTutorialPage()
	{
		tutorial.makeRequest();
	};
	
	function getWeaponForTutorialPageCallback(xml)
	{
		var str = "";
		var wid				= parseInt($(xml).find('id').text());
		var title			= $(xml).find('title').text();
		var imgurl			= uuescape($(xml).find('imgu').text());
		var cost			= parseInt($(xml).find('cost').text());
		var attack			= parseInt($(xml).find('att').text());
		var defence			= parseInt($(xml).find('def').text());
		var err=$(xml).find('errMsg').text();
		if(wid>0)
		{	
			
			str += "<div class=\"desc_frame_box_small\" >"+
					"<div class=\"bgfix_IE8\"><img src=\""+config.imageUrl+"/top_frame.png\" /></div>"+
								"<div class=\"mid_frame_small\">"+
								  "<div class=\"mid_frame_img_small\"  >"+
										"<div class=\"items_name\">"+title+"</div>"+
										"<div class=\"weapon_img\"><img src=\""+config.shopIMGurl+imgurl+"\" /></div>"+
										"<div class=\"attk_deff\">A:"+numberFormat(attack)+" D:"+numberFormat(defence)+"</div>"+
								  "</div>"+
									
								"</div>"+
								"<div class=\"bgfix_IE8\"><img src=\""+config.imageUrl+"/mid_frame_grad.png\" /></div>"+
								"<div class=\"desc_frame_small\"  >"+
										"<span class=\"gold\">"+numberFormat(cost)+" g</span><br />"+
										
										"<div class=\"select_div\" >"+
											"<span>"+
												"<select><option>1</option></select>"+
												"<span class=\"btn_div\"><span class=\"button_new_buy\" "+config.hoverEffect+" onClick = \"tutorial.buyWeapon("+wid+", 1)\">Buy</span></span>"+
											"</span>"+
											
									"<div class=\"clear\"></div>"+
										"</div>"+
										"<div class=\"clear\"></div>"+
						      "</div>"+
							
								"<div><img src=\""+config.imageUrl+"/below_frame.png\" /></div>"+
							"</div>";
		$('#tutorial_getweapon').html(str);
		}
		else
		{
			tutorial.outputMessage(err,'w');
			$('#tutorial_getweapon').html(err);
		}
	};
	
	function gotoStep(sub_page)
	{
		tutorial.current_step = sub_page;
		$('.tutorial_step').hide();
		$('#tutorial_step'+sub_page).show();
		$('#info_box').hide();
		switch(sub_page)
		{
		case 1:
			// code 4 buy weapon tutorial
			tutorial.getWeaponForTutorialPage();
			break;
		case 2:
			// code 4 do mission tutorial
			tutorial.getMission();
			break;
		case 3:
			// code 4 invite tutorial
			app.initializePage();
			app.loadPage('gang');
			break;
		case 4:
			// code 4 attack tutorial
			break;
		}
		//hover();
	};
	
	function loadPage()
	{
		tutorial.adjustWindowHeight();
		$('#tutorial_step1').show();
		$('#tutorial_step2').hide();
		$('#tutorial_step3').hide();
		tutorial.gotoStep(1);
		//hover();
	};
	
	function skip()
	{
		app.initializePage();
		app.loadPage();
	};
	
	return tutorial;
}