function Mission(cntrl)
{
	var mission = {};
	mission = new NET(cntrl);// inherit net class
	
	/* Attributes */
	mission.loaded = false;
	mission.missionArr=new Array();
	mission.mission_interval1=new Array();
	mission.mission_interval2=new Array();
	mission.mission_interval3=new Array();
	mission.mission_interval4=new Array();
	mission.mission_interval5=new Array();
	//mission.mission_interval6=new Array();
	
	mission.str_interval1="";
	mission.str_interval2="";
	mission.str_interval3="";
	mission.str_interval4="";
	mission.str_interval5="";
	//mission.str_interval6="";
	
	mission.total_interval=6;
	
	/* EOF Attributes */
	
	/* Function Declaration */
	
	mission.getMissions = getMissions;
	mission.getMissionsCallback = getMissionsCallback;
	mission.loadPage = loadPage;
	mission.loadSubPage = loadSubPage;
	mission.doMission=doMission;
	mission.doMissionCallback=doMissionCallback;
	mission.buyWeapon=buyWeapon;
	mission.buyWeaponCallback=buyWeaponCallback;
	mission.buyProperties=buyProperties;
	mission.buyPropertiesCallback=buyPropertiesCallback;
	mission.refresh=refresh;
	mission.publishFeed=publishFeed;
	
	/* EOF Function Declaration */
	
	/* Function Definition */
	
	/* EOF Function Definition */
	
		
	function getMissions()
	{
			mission.makeRequest();
	};
	
	function getMissionsCallback(xml)
	{
		mission.loaded = true;
		mission.clearMessage();
		var str = "";
		$('#next_mission').show();
		$('#mission_list').show();
		$('#mission_title_list').show();
		var nxtLevel= $(xml).find('next_level').text();
		var err=$(xml).find('errMsg').text();
		
		if(err=="")
		{
			$('mission', xml).each(function(){
				
				var str1="";
				var id=$(this).attr('id');
				var title=$(this).find('mtitle').text();
				var exp=parseInt($(this).find('minExp').text());
				var maxCash=parseInt($(this).find('maxCash').text());
				var minCash=parseInt($(this).find('minCash').text());
				var reqGangSize=parseInt($(this).find('reqGangSize').text());
				var reqEnergy=parseInt($(this).find('reqEnergy').text());
				var minLevel=parseInt($(this).find('min_level').text());
				var description=$(this).find('desc').text();
				
				mission.missionArr[id] = {'title': title, 'req_gang_size': reqGangSize};	
				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\" 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\">"+title+"</span></div>"+
											"</div>";
													}
											});
										str+="</div>"+
										"<div class=\"mission_require\">"+
											"<div class=\"mission_title\">Require Stats,</div>"+
											"<div class=\"item_name\">Energy: "+reqEnergy+"</div>"+
											"<div class=\"item_name\" id=\"gang"+id+"\">Clan size: "+reqGangSize+"</div>"+
										"</div>";
										
										var stat=0;
										$('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+"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+"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+"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:mission.doMission("+id+")\"><div class=\"button_new\">Do Quest</div></div>"+
									"</div><!--mission_info_box starts-->"+
									"<div class=\"clear\"></div><br /><br /><br /><br />"+
								"<div class=\"clear\"></div>"+
								"</div>"+
								"<div class=\"clear\"></div>";
								
										
					switch(true)
					{
						case minLevel>=0 && minLevel<=25:
							mission.mission_interval1.push(id);
							mission.str_interval1+=str;
							break;
						case minLevel>=26 && minLevel<=50:
							mission.mission_interval2.push(id);
							mission.str_interval2+=str;
							break;
						case minLevel>=51 && minLevel<=75:
							mission.mission_interval3.push(id);
							mission.str_interval3+=str;
							break;
						case minLevel>=76 && minLevel<=100:
							mission.mission_interval4.push(id);
							mission.str_interval4+=str;
							break;
						case minLevel>=101 && minLevel<=125:
							mission.mission_interval5.push(id);
							mission.str_interval5+=str;
							break;
						}
				
			});
		}
		else
		{
			mission.outputMessage(err,'w');
		}
		$('#mission_interval1').html(mission.str_interval1);
		$('#mission_interval2').html(mission.str_interval2);
		$('#mission_interval3').html(mission.str_interval3);
		$('#mission_interval4').html(mission.str_interval4);
		$('#mission_interval5').html(mission.str_interval5);
		
		
		var level = owner.level;
		var interval=1;
		switch(true)
		{
			case level>=0 && level<=25:
					interval=1;
					break;
				case level>=26 && level<=50:
					if(mission.str_interval2 == "")
					{
						interval=1;
					}
					else
					{
						
						interval=2;
					}
					break;
				case level>=51 && level<=75:
					if(mission.str_interval3 == "")
					{
						
						interval=2;
					}
					else
					{
						
						interval=3;
					}
					break;
				case level>=76 && level<=100:
					if(mission.str_interval4 == "")
					{
						
						interval=3;
					}
					else
					{
						
						interval=4;
					}
					
					break;
				case level>=101 && level<=125:
					if(mission.str_interval5 == "")
					{
						
						interval=4;
					}
					else
					{
						
						interval=5;
					}
					break;
				
				default: 
					interval=5;
					break;	
		}
		i=1;
		$('#mission_sub_menu .level_frame_mid').each(function(){
														if(i==interval)
															$(this).addClass('level_frame_mid_selected');
														i++;
														});
		for(i=interval+1;i<=mission.total_interval;i++)
		{
			$('#mission_level_name'+i).addClass("level_name_locked");
			$('#mission_level'+i).addClass('locked');
		}
			
			mission.loadSubPage("interval"+interval);
			if(nxtLevel=="")
			{
			$('#next_mission').hide();
			}
			else
			{
				$('#next_mission').show();
				$('#nextlevel').html(nxtLevel);
			}
			//hover();
		
	};
	
	function loadPage()
	{	
		mission.adjustWindowHeight();
		
		mission.clearMessage();
		if(!mission.loaded)
		{
			$('#next_mission').hide();
			$('#mission_title_list').hide();
	
		$('#mission_list').hide();
			mission.getMissions();
			
		}
		
		$('.level_frame_mid').click(function(){
												$('.level_frame_mid').removeClass('level_frame_mid_selected');
												$(this).addClass('level_frame_mid_selected');
									});
		
		
	};
	function loadSubPage(sub_page)
	{ 
		
		$('#next_mission > div').hide();
		$('#mission_list > div').hide();
		$('#mission_'+sub_page).show();
		$('#next_mission > div').show();
	
	};
	function doMission(id)
	{
	 	mission.makeRequest();
	};
	function doMissionCallback(xml)
	{
		var success=$('data',xml).find('success').text(); 
		var str="";
		var type=parseInt($(xml).find('type').text());
		var gang=parseInt($(xml).find('gang').text());
		
		if(success)
		{
			var id=$(xml).find('success').find('missionId').text();
			var energy=parseInt($(xml).find('success').find('energySpent').text());
			var cash=$(xml).find('success').find('cashGained').text();
			var exp=parseInt($(xml).find('success').find('expGained').text());
			var level=parseInt($(xml).find('success').find('levelReached').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=\"float_right\"><div class=\"mission_do_quest\"  "+config.hoverEffect+" onclick=\"javascript:mission.doMission("+id+")\" style=\"margin-top:5px;\" ><div class=\"button_new\">Do Again</div></div></div>"+
						 "<div class=\"clear\"></div>";
						// if(level!=1)
					//{
					//	mission.publishFeed(id,cash,exp);
				//	}
					str+="<div class=\"clear\"></div>";
							
			var rclass=parseInt($(xml).find('success').find('recruiterClass').text());
			if(level == 1)
			{
				var skills=parseInt($(xml).find('success').find('skillsGained').text());
				var favpoint=parseInt($(xml).find('success').find('favGained').text());
			 
				str+="<div class=\"mission_msg\" >"+
								  "<div><span class=\"txt_orng\">Congratulations ! </span>You have made it to level "+owner.level+". Your advancement has gained you <span class=\"green_bold\"> "+skills+" Skill Points</span><a href=\"javascript:app.loadPage('skill')\"> (Upgrade Skills ?)</a></div>";
								if(favpoint>0)
								{
							 		 str+="<div>You also earned <span class=\"coin\">"+favpoint+" Coin</span>, <a href=\"javascript:app.loadPage('godfather') class=\"godfather_link\" \">Pay tribute to Elder ?</a></div>";
								}
							 str+="</div>"+
							 "<div class=\"clear\"></div>";
							
							var message=" is gaining respect in his clan.He just advanced to level "+owner.level;
							var text="Find what happens at level "+owner.level;
							var link=config.appUrl;
							var template_data={"images":[{"src":config.timg['logo'] ,
									 "href":link},
									 {"src":config.userImgUrl+owner.id,
									 "href":link},
									 {"src":getRaceImage(owner.race),
									 "href":link}],
									"message":message,
									"action_text":text,
									"link":link};
							//publishStory(config.templateBundleId,template_data);
							mission.str_interval1="";
							mission.str_interval2="";
							mission.str_interval3="";
							mission.str_interval4="";
							mission.str_interval5="";
							mission.str_interval6="";
							mission.getMissionsCallback(xml);
								
			}
			var loot=$(xml).find('success').find('loot').attr('id');
			if(loot)
			{
				var qty=parseInt($(xml).find('success').find('loot').attr('qty'));
				var title=$(xml).find('success').find('loot').find('title').text();
				var image=$(xml).find('success').find('loot').find('imgU').text();
				
				str+="<div>"+
						"<div class=\"reward_item\">"+
												"<div>You found "+qty+" "+title+"</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\">"+title+"</span></div>"+
								  "</div>"+
									"<div class=\"clear\"></div>"+
								"</div>";	
			}
			if(type==3)
			{
				$('#gang' +id).html("Clan Size:"+(gang+1));
			}
		}
		else //for required items case
		{
			
			items=$('item',xml).length;
			props=$('prop',xml).length;
			str+="<div><span class=\"result_red_msg_big\">Sorry, you were unable to complete quest </span> </div>";
					if(items || props)
					{
						str+="<div class=\"result_red_msg\">you need following items to complete mission</div>";
					}
									 
			$('item', xml).each(function(){
				var id=$(this).attr('id');
				var qty=parseInt($(this).attr('qty'));
				var title=$(this).find('title').text();
				var imgU=$(this).find('imageU').text();
				var type=$(this).find('type').text();
				str+="<div>" +
						"<div class=\"float_left\" style=\"padding-top:2px; margin-top:15px;\">" +
							"<div style=\"float:left; width:100px; \"><img src=\""+config.shopIMGurl+imgU+"\" width=\"75\"/></div>" +
							"<div style=\"float:left; width:600px; \">" +
								"You need <span class=\"red_bold\">"+qty+"</span> more <span class=\"green\">"+title+"</span> .<br /><br />";
								if(type!=6)
								{
									str+="<div><span class=\"button_new_buy\" "+config.hoverEffect+" onclick=\"javascript:mission.buyWeapon("+id+","+qty+") \">Buy</span></div>";
								}
							str+="</div>" +
						"<div class=\"clear\" ></div>" +
					"</div>" +
					"<div class=\"clear\"></div>" +
				"</div>";						
			
			});
			
			$('prop', xml).each(function(){
				
				var id=$(this).attr('id');
				var qty=parseInt($(this).attr('qty'));
				var title=$(this).find('title').text();
				var imgU=$(this).find('imageU').text();
				
				str+="<div>" +
						"<div class=\"float_left\" style=\"padding-top:2px; margin-top:15px;\">" +
							"<div style=\"float:left; width:100px; \"><img src=\""+config.shopIMGurl+imgU+"\" width=\"75\"/></div>" +
							"<div style=\"float:left; width:600px; \">" +
								"You need <span class=\"red_bold\">"+qty+"</span> more <span class=\"green\">"+title+"</span> .<br /><br />" +
							"<div><span class=\"button_new_buy\" "+config.hoverEffect+" onclick=\"javascript:mission.buyProperties("+id+","+qty+") \">Buy</span></div>" +
							"</div>" +
						"<div class=\"clear\" ></div>" +
					"</div>" +
					"<div class=\"clear\"></div>" +
				"</div>";						
			});
		
			
			var reqlevel=parseInt($(xml).find('reqLevel').text());
			if(reqlevel)
			{
				str+="You must reach level"+reqlevel+" to do this Quest<br>";
			}
			
			var reqGang=parseInt($(xml).find('reqGang').text());
			if(reqGang)
			{
				//str+="You must have "+reqGang+" more members to do this Quest";
				str+="<div style=\"line-height:18px;\">You must have "+reqGang+" more member to attempt this Quest. Invite some new friends to join your <a href=\"javascript:app.loadPage('gang')\">Clan</a>.</div>";
			}
			var reqEnergy=parseInt($(xml).find('reqEnergy').text());
			if(reqEnergy)
			{
				//str+="You still need "+reqEnergy+" energy to do this Quest<br>";
				str+="<div>You still need "+reqEnergy+" more energy to attempt this Quest. Wait a while or visit <a href=\"javascript:app.loadPage('godfather')\" class=\"godfather_link\">Elder Spirit</a>.</div>";
				
			}
			
		}
		mission.outputMessage('<div class="content_box">'+str+'</div>','m');
		//hover();
				
	};
	function publishFeed(id,cash,exp)
	{		
			
			var message1="has completed \""+mission.missionArr[id].title+"\"  and gained <span class=\"gold\">"+numberFormat(cash)+" g</span> 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);
	};
	
	function buyWeapon()
	{
		mission.makeRequest();
	};
	
	function buyWeaponCallback(xml)
	{		
		var message=$(xml).find('message').text(); 
		//mission.outputMessage('<div class="content_box">'+message+'</div>','s');
		mission.refresh();
		
		//mission.getMissions();
		
	};
	function buyProperties()
	{
		mission.makeRequest();
	};
	function buyPropertiesCallback(xml)
	{
		var message=$(xml).find('message').text(); 
		//mission.outputMessage('<div class="content_box">'+message+'</div>','s');
		mission.refresh();
		mission.getMissions();
	};
	
	function refresh()
	{
		mission.loaded = false;
		mission.missionArr=new Array();
		mission.mission_interval1=new Array();
		mission.mission_interval2=new Array();
		mission.mission_interval3=new Array();
		mission.mission_interval4=new Array();
		mission.mission_interval5=new Array();
		mission.mission_interval6=new Array();
		mission.str_interval1="";
		mission.str_interval2="";
		mission.str_interval3="";
		mission.str_interval4="";
		mission.str_interval5="";
		mission.str_interval6="";
		mission.loadPage();
	};
	
	return mission;
}