var os=opensocial.Container.get();var g_param;var g_excludeIds=new Array();var g_rootUrl="http://www.gangsterwargame.net/gwms/";var g_appUrl="http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=136888";var g_cookieName="gangsterwargame.net/gwms";var g_selectedIds=new Array();var g_nickName="";var g_requesting=false;var g_timerInfo=null;var g_firstNameTree=null;var g_lastNameTree=null;var g_fullNameTree=null;var g_inviteUserArray=new Array();var g_currentFriendPage=1;var g_currentFriendCount=0;var g_currentSelectedFriends=0;var g_activityContent="";var g_appParams="";var g_activityImg="";var g_templateId="TemplateVP";var g_activityAssociatedId="";var g_jobImageArray=new Array();var g_target=null;var g_recipientId=null;var g_invitedCount=0;var g_memberIds=new Array();var g_requestedIds=new Array();var g_incomingIds=new Array();var g_blockedIds=new Array();var g_sendEmailIds=new Array();var g_successIds=new Array();var g_failureIds=new Array();var refBulletin=1;var refNotification=2;var refComment=3;var Url={encode:function(string){return escape(this._utf8_encode(string));},decode:function(string){return this._utf8_decode(unescape(string));},_utf8_encode:function(string){string=string.replace(/\r\n/g,"\n");var utftext="";for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128){utftext+=String.fromCharCode(c);}
else if((c>127)&&(c<2048)){utftext+=String.fromCharCode((c>>6)|192);utftext+=String.fromCharCode((c&63)|128);}
else{utftext+=String.fromCharCode((c>>12)|224);utftext+=String.fromCharCode(((c>>6)&63)|128);utftext+=String.fromCharCode((c&63)|128);}}
return utftext;},_utf8_decode:function(utftext){var string="";var i=0;var c=c1=c2=0;while(i<utftext.length){c=utftext.charCodeAt(i);if(c<128){string+=String.fromCharCode(c);i++;}
else if((c>191)&&(c<224)){c2=utftext.charCodeAt(i+1);string+=String.fromCharCode(((c&31)<<6)|(c2&63));i+=2;}
else{c2=utftext.charCodeAt(i+1);c3=utftext.charCodeAt(i+2);string+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));i+=3;}}
return string;}}
function doAction(param)
{clearTrace();MYOS_TRACE=true;g_param=param;getUserInfo();}
function getAddContent(){var content="<div style='background:black;width:960px;height:800px'>"+"<div style='position:absolute;left:360px;top:10px;z-index:2;background:transparent;'>"+"<img src='"+g_rootUrl+"images/mix/top_arrow.gif' style='border:none'>"+"</div>"+"<div style='position:absolute;left:290px;top:90px;z-index:2;background:transparent;'>"+"<span style='color:red;font-weight:bold;font-size:17px'>You must add this application to continue</span>"+"<div style='height:232px'> </div>"+"<div style='color:white'>"+"If you already added the app, try the followings:"+"<ul>"+"<li>If you're not logged into MySpace, please log in first.</li>"+"<li>If you're already logged in, try to <a href='http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=136888' target='_top' style='color:gold'>Refresh</a> the page.</li>"+"</ul>"+"</div>"+"</div>"+"<div style='position:absolute;left:270px;top:115px;z-index:1;background:transparent;'>"+"<img src='"+g_rootUrl+"images/mix/ms_profile_bg.png' style='border:none'>"+"</div>"+"</div>";return content;}
function getErrorContent(){var content="<div style='background:black;width:960px;height:800px'>"+"<div style='position:absolute;left:290px;top:105px;z-index:2;background:transparent;'>"+"<div style='height:232px'> </div>"+"<div style='color:white'>"+"Error occurred! Try to <a href='http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=136888' target='_top' style='color:gold'>Refresh</a> the page."+"</div>"+"</div>"+"<div style='position:absolute;left:270px;top:115px;z-index:1;background:transparent;'>"+"<img src='"+g_rootUrl+"images/mix/ms_profile_bg.png' style='border:none'>"+"</div>"+"</div>";return content;}
function isDefined(object,variable)
{return(typeof(eval(object)[variable])!="undefined");}
function handleException(e){var messageDisplay="Error occurred: "+e.message+".";var messageLog=messageDisplay+" Line: "+e.lineNumber+". File: "+e.fileName;document.write(messageDisplay);requestLogError(messageLog)}
function requestLogError(content){content=Url.encode(content);var qryString=os.getQueryString();var url=g_rootUrl+"gwservice.php "+qryString+"&action=log_error&error_content="+content;makeSignedRequest(url,requestLogError_cb);}
function requestLogError_cb(obj){g_requesting=false;showLoadingImage(false);}
function gwErrorHandler(msg,url,lineNum){var errorMsgLog="Error occurred: "+msg+". Url: "+url+". Line number: "+lineNum;var errorMsgDisplay="Error occurred: "+msg;document.write(errorMsgDisplay);return true;}
function getUserInfo(){var cookieValue=getSessionCookie(g_cookieName);if(cookieValue==""){var dataReqObj=os.newDataRequest();var viewerReq=os.newFetchPersonRequest(opensocial.IdSpec.PersonId.VIEWER);dataReqObj.add(viewerReq);dataReqObj.send(getUserInfo_cb);}
else{requestMainContent();}}
function getUserInfo_cb(data){if(data.hadError()){content=getAddContent();document.getElementById("mainContent").innerHTML=content;return;}
else{setSessionCookie(g_cookieName,"1");requestMainContent();}}
function makeSignedRequest(url,callback){var params={};params[gadgets.io.RequestParameters.CONTENT_TYPE]=gadgets.io.ContentType.HTML;params[gadgets.io.RequestParameters.METHOD]=gadgets.io.MethodType.GET;params[gadgets.io.RequestParameters.AUTHORIZATION]=gadgets.io.AuthorizationType.SIGNED;g_requesting=true;setTimeout(function(){showLoadingImage(true)},0);gadgets.io.makeRequest(url,callback,params);}
function requestMainContent(){try{var qryString=os.getQueryString();if(g_param==null){g_param="target=index";var paramValue=gadgets.views.getParams();if(paramValue.to_page!=null){qryString+="&to_page="+paramValue.to_page;}
if(paramValue.view_profile!=null){qryString+="&view_profile="+paramValue.view_profile;}
if(paramValue.support_id!=null){qryString+="&support_id="+paramValue.support_id;}
if(paramValue.mp!=null){qryString+="&mp="+paramValue.mp;}}
g_currentFriendPage=1;resetAllVariables();var url=g_rootUrl+"process.php?"+qryString+"&"+g_param;makeSignedRequest(url,requestMainContent_cb);document.getElementById('heading').innerHTML="";}
catch(e){handleException(e);}}
function requestMainContent_cb(obj){try{g_requesting=false;showLoadingImage(false);if(obj==undefined||obj==null||obj.text==undefined){document.getElementById("mainContent").innerHTML=getErrorContent();return;}
if(isDefined(obj,"errors")&&obj.errors.length>0){document.getElementById("mainContent").innerHTML=getErrorContent();return;}
document.getElementById("mainContent").innerHTML=obj.text;var header="";var headerElement=document.getElementById("header_params");if(headerElement!=null){header=headerElement.value;}
parseHeaderParams(header);initInviteControl();fillMSNames();}
catch(e){handleException(e);}};function parseHeaderParams(header){var paramArray=header.split(";");for(var i=0;i<paramArray.length;i++){var param=paramArray[i];var paramKeyVal=param.split("==");var key=paramKeyVal[0];var val=paramKeyVal[1];if(key=="member_ids"){g_memberIds=val.split(",");g_memberIds=convertToAssociatedArray(g_memberIds);}
else if(key=="requested_ids"){g_requestedIds=val.split(",");g_requestedIds=convertToAssociatedArray(g_requestedIds);}
else if(key=="incoming_ids"){g_incomingIds=val.split(",");g_incomingIds=convertToAssociatedArray(g_incomingIds);}
else if(key=="blocked_ids"){g_blockedIds=val.split(",");g_blockedIds=convertToAssociatedArray(g_blockedIds);}
else if(key=="timer_info"){var info=val.split(",");g_timerInfo=info;}
else if(key=="activity_content"){g_activityContent=val;}
else if(key=="first_name"){g_nickName=val;}
else if(key=="app_params"){g_appParams=val;}
else if(key=="activity_img"){g_activityImg=val;}
else if(key=="activity_associated_id"){g_activityAssociatedId=val;}
else if(key=="template_id"){g_templateId=val;}}
initTimers();}
function convertToAssociatedArray(inputArr){var result=new Array();for(var i=0;i<inputArr.length;i++){var id=inputArr[i];result[id]=true;}
return result;}
function trace(msg){document.getElementById('debug').innerHTML+=msg+" | ";}
function clearTrace(){document.getElementById('debug').innerHTML="";}
function queryString(key)
{var re=new RegExp("[?&]"+key+"=([^&$]*)","i");var offset=location.search.search(re);if(offset==-1)return null;return RegExp.$1;}
function init(){doAction();}
function User(id,nickName,profileUrl,imgUrl){this.id=id;this.nickName=nickName;this.profileUrl=profileUrl;this.imgUrl=imgUrl;this.selected=false;this.status=0;}
UserNode=function(key,person){this.key=key;this.person=person;this.leftNode=null;this.rightNode=null;this.parentNode=null;this.subNodeCount=0;this.addPerson=function(key,person){if(!key){return;}
this.subNodeCount++;if(this.compareTwoPartialKeys_(this.key,key)<0){if(this.rightNode==null){this.rightNode=new UserNode(key,person);}
else{this.rightNode.addPerson(key,person);}}
else{if(this.leftNode==null){this.leftNode=new UserNode(key,person);}
else{this.leftNode.addPerson(key,person);}}};this.compareTo=function(node){if(node==null){return 1;}
return this.compareTwoPartialKeys_(this.key,node.key);};this.compareTwoPartialKeys_=function(mainKey,testKey){var a=mainKey.toLowerCase();var b=testKey.toLowerCase();if(a.length>b.length){a=a.substr(0,b.length)}
if(a<b){return-1;}
else if(a==b){return 0;}
else{return 1;}};this.findLike=function(partialKey){var results=new Array();if(partialKey==null||partialKey.length==0){return results;}
var keyTest=this.compareTwoPartialKeys_(this.key,partialKey);if(keyTest==0){results.push(this.person);}
if(this.subNodeCount>0){if(keyTest==-1){if(this.rightNode!=null){results=results.concat(this.rightNode.findLike(partialKey));}}
else if(keyTest==0){if(this.leftNode!=null){results=results.concat(this.leftNode.findLike(partialKey));}
if(this.rightNode!=null){results=results.concat(this.rightNode.findLike(partialKey));}}
else{if(this.leftNode!=null){results=results.concat(this.leftNode.findLike(partialKey));}}}
return results;}}
function addToTree(userInfo){var name=userInfo.nickName;if(name!=null&&name.length>0){var parts=name.split(" ");if(g_firstNameTree==null){g_firstNameTree=new UserNode(parts[0],userInfo);}
else{g_firstNameTree.addPerson(parts[0],userInfo);}
if(parts.length>1){var lname=parts[parts.length-1];if(g_lastNameTree==null){g_lastNameTree=new UserNode(lname,userInfo);}
else{g_lastNameTree.addPerson(lname,userInfo);}}
if(g_fullNameTree==null){g_fullNameTree=new UserNode(name,userInfo);}
else{g_fullNameTree.addPerson(name,userInfo);}}}
function searchUserTree(input){if(input==""){return g_inviteUserArray;}
var results=new Array();if(g_firstNameTree!=null){results=g_firstNameTree.findLike(input);}
if(g_lastNameTree!=null){if(!results){results=new Array();}
results=results.concat(g_lastNameTree.findLike(input));}
if(!results||results.length==0){results=g_fullNameTree.findLike(input);}
var resultConverted=new Array();for(i=0;i<results.length;i++){var id=results[i].id;var person=g_inviteUserArray[id];resultConverted[id]=person;}
return resultConverted;}
function resetAllVariables(){initJobImageArray();g_firstNameTree=null;g_lastNameTree=null;g_fullNameTree=null;g_inviteUserArray=new Array();g_currentFriendCount=0;g_currentSelectedFriends=0;g_activityContent="";g_target=null;g_recipientId=null;g_invitedCount=0;g_sendEmailIds=new Array();g_successIds=new Array();g_failureIds=new Array();}
function initJobImageArray(){g_jobImageArray[1]=20171506;g_jobImageArray[2]=20171509;g_jobImageArray[3]=20171510;g_jobImageArray[4]=20171511;g_jobImageArray[5]=20171521;g_jobImageArray[6]=20171514;g_jobImageArray[7]=20171508;g_jobImageArray[8]=20171518;g_jobImageArray[9]=20171513;g_jobImageArray[10]=20171516;g_jobImageArray[11]=20171512;g_jobImageArray[12]=20171507;}
function initInviteControl(){var container=document.getElementById("inviteControl");if(container==null){return;}
displayInviteControl();var innerContainer=document.getElementById("inviteControlInner");innerContainer.innerHTML="<table border='0' cellpadding='0' cellspacing='0' width='900' height='170'><tr><td align='center'>"+"Loading friends...<br/><img src='"+g_rootUrl+"images/mix/loader.gif' style='border:none'/></td></tr></table>";resetAllVariables();var dataReqObj=os.newDataRequest();var is=os.newIdSpec();is.setField(opensocial.IdSpec.Field.USER_ID,opensocial.IdSpec.PersonId.VIEWER);is.setField(opensocial.IdSpec.Field.NETWORK_DISTANCE,1);var friendPerPage=100;var first=(g_currentFriendPage-1)*friendPerPage+1;var pagedParams={};pagedParams[opensocial.DataRequest.PeopleRequestFields.FIRST]=first;pagedParams[opensocial.DataRequest.PeopleRequestFields.MAX]=friendPerPage;var reqItem=os.newFetchPeopleRequest(is,pagedParams);dataReqObj.add(reqItem);dataReqObj.send(initInviteControl_cb);}
function initInviteControl_cb(dataResponse){var userArray=dataResponse.get('FETCH_PEOPLE').getData().asArray();var idArray=new Array();for(i=0;i<userArray.length;i++){var user=userArray[i];var id=user.getField(opensocial.Person.Field.ID);id=id.split(":")[1];idArray.push(id);var nickName=user.getField(opensocial.Person.Field.NICKNAME);var profileUrl=user.getField(opensocial.Person.Field.PROFILE_URL);var imgUrl=user.getField(opensocial.Person.Field.THUMBNAIL_URL);var userInfo=new User(id,nickName,profileUrl,imgUrl);processStatus(userInfo);g_inviteUserArray[id]=userInfo;addToTree(userInfo);g_currentFriendCount++;}
displayUsersToInvite(g_inviteUserArray);}
function processStatus(userInfo){var id=userInfo.id;if(g_memberIds[id]==true){userInfo.status=3;}
else if(g_incomingIds[id]==true){userInfo.status=2;}
else if(g_requestedIds[id]==true){userInfo.status=1;}
else if(g_blockedIds[id]==true){userInfo.status=4;}}
function displayInviteControl(){var buttonContent="<table border='0' cellpadding='0' cellspacing='0' width='100%'><tr>"+"<td width='33%'> </td>"+"<td width='33%' class='ha_center' style='color:black'><a href='javascript:doSendInvites()' class='btnLink'>Send Invites</a></td>"+"<td width='33%' style='color:black;font-weight:bold;text-align:right'><a href='javascript:changePage(\"prev\")' class='btnLink'><</a> "+"<span style='color:red'> Page "+g_currentFriendPage+" </span>"+"<a href='javascript:changePage(\"next\")' class='btnLink'>></a></td>"+"</tr></table>";var tableContent="<table border='1' cellpadding='4' cellspacing='0' width='900' color='#CCC' bgcolor='white' style='border-collapse:collapse; border: 1px solid #CCCCCC'>";tableContent+="<tr><td style='color:black;border:1px solid #CCCCCC'>Find Friends: <input id='find_friends_textbox' type='text' style='width:150px' onkeyup='findFriends(this)'/></td></tr>";tableContent+="<tr><td style='border:1px solid #CCCCCC'><div id='inviteControlInner' style='border:1px;height:315px;width:900px'></div></td></tr>";tableContent+="<tr><td style='border:1px solid #CCCCCC'>"+buttonContent+"</td></tr></table>";var container=document.getElementById("inviteControl");container.innerHTML=tableContent;}
function changePage(direction){if(direction=="next"){if(g_currentFriendCount==0){return;}
g_currentFriendPage++;}
else{g_currentFriendPage--;}
if(g_currentFriendPage<1){g_currentFriendPage=1;return;}
initInviteControl();}
function compareUser(user1,user2){return user1.status-user2.status;}
function displayUsersToInvite(input){var sortArray=new Array();for(var key in input){var userInfo=input[key];sortArray.push(userInfo);}
sortArray.sort(compareUser);var divContent="<div style='height:314px;width:900px;border:1px; background-color: white; overflow: auto' onselectstart='return false'>";divContent+="<table border='0' cellpadding='0' cellspacing='0'>";var userPerRow=5;var counter=0;for(i=0;i<sortArray.length;i++){var userInfo=sortArray[i];if(counter%userPerRow==0){divContent+="<tr>";}
divContent+=buildCell(userInfo);if(counter%userPerRow==userPerRow-1){divContent+="</tr>";}
counter++;}
cellLeft=userPerRow-counter%userPerRow;if(cellLeft>0){for(i=0;i<cellLeft;i++){divContent+="<td> </td>";}
divContent+="</tr>";}
divContent+="</table></div>";var innerContainer=document.getElementById("inviteControlInner");innerContainer.innerHTML=divContent;}
function findFriends(textbox){var input=textbox.value;var result=searchUserTree(input);displayUsersToInvite(result);}
function buildCell(user){var imgCode="<img src='"+user.imgUrl+"' class='avatar2' />";var nickName;if(user.nickName.length>25){nickName=trim(user.nickName.substr(0,25))+"...";}
else{nickName=user.nickName;}
var headerText="";if(user.status==3){headerText="<b><i>Member</i></b><br/>";}
else if(user.status==2){headerText="<b><i>Incoming</i></b><br/>";}
else if(user.status==1){headerText="<b><i>Requested</i></b><br/>";}
else if(user.status==4){headerText="<b><i>Blocked</i></b><br/>";}
var subTable="<table cellpadding='3' width='140'><tr><td>"+imgCode+"</td><td style='color:black; font-size:12px; vertical-align:top' width='90%'>"+
headerText+nickName+"</td></tr></table>";var background="white";if(user.status>1){background="#CCCCCC";}
if(user.selected){background="#526ea6";}
var cellCode="<td><div style='margin: 2px; cursor:pointer;background:"+background+"'' onmouseover='switchColorHover(this, true)' onmouseout='switchColorHover(this, false)' "+"onclick='switchColorClick(this)'"+"id='"+user.id+"'>"+subTable+"</div></td>";return cellCode;}
function switchColorClick(cell){id=cell.id;var user=g_inviteUserArray[id];if(user.status>1){return;}
if(user.selected==false){if(g_currentSelectedFriends<20){user.selected=true;g_currentSelectedFriends++;cell.style.background="#526ea6";}}
else{user.selected=false;g_currentSelectedFriends--;cell.style.background="#e7ebf5";}}
function switchColorHover(cell,over){id=cell.id;var user=g_inviteUserArray[id];if(user.status>1){return;}
var active;var inactive;if(user.selected==false){active="#e7ebf5";inactive="white";}
else{active="#526ea6";inactive="#526ea6";}
if(over){cell.style.background=active;}
else{cell.style.background=inactive;}}
function getSelectedIds(){var selectedIds=new Array();for(key in g_inviteUserArray){var user=g_inviteUserArray[key];if(user.selected==true&&user.status<2){selectedIds.push(user.id);}}
return selectedIds;}
function clearSelectedIds(){for(key in g_inviteUserArray){var user=g_inviteUserArray[key];user.selected=false;}}
function doSendInvites(){g_selectedIds=getSelectedIds();var content="[recipient], come join my gang in [app], it's a very fun and addictive game!";var postTypeInvite="SHARE_APP";var messageInvite=opensocial.newMessage(content);messageInvite.setField(opensocial.Message.Field.TITLE,"Hello");messageInvite.setField(opensocial.Message.Field.TYPE,postTypeInvite);showInviteMessage("Sending...");opensocial.requestShareApp(g_selectedIds,messageInvite,doSendInvites_cb);}
function doSendInvites_cb(response){var data=response.getData();if(data==0){showInviteMessage("Cancelled.");return;}
var responseValues=response.responseValues;g_successIds=responseValues.success;g_failureIds=responseValues.failure;g_sendEmailIds=new Array();for(i=0;i<g_selectedIds.length;i++){var found=false;var id=g_selectedIds[i];for(j=0;j<g_successIds.length;j++){if(g_selectedIds[i]==g_successIds[j]){found=true;break;}}
if(!found){for(k=0;k<g_failureIds.length;k++){if(g_selectedIds[i]==g_failureIds[k]){found=true;break;}}}
if(!found){g_sendEmailIds.push(id);}}
doSendEmailMessages();}
function doSendEmailMessages(){if(g_sendEmailIds.length==0){handleEmailMessageCb(0);return;}
g_recipientId=g_sendEmailIds.shift();var subjectArray=new Array("Hi","Hello","Play Gangster War","Join my gang");var rand=Math.floor(Math.random()*subjectArray.length);var subject=subjectArray[rand];var content=getInviteContent();sendEmailMessage(subject,content);}
function sendEmailMessage(subject,content){var message;postType=opensocial.Message.Type.PRIVATE_MESSAGE;message=opensocial.newMessage(content);message.setField(opensocial.Message.Field.TITLE,subject);message.setField(opensocial.Message.Field.TYPE,postType);opensocial.requestSendMessage(g_recipientId,message,sendEmailMessage_cb);}
function sendEmailMessage_cb(response){if(response.getData()==0){handleEmailMessageCb(3);}
else if(response.getData()==1){handleEmailMessageCb(1);}
else if(response.getErrorCode()=="internalError"){handleEmailMessageCb(2);}}
function handleEmailMessageCb(emailStatus){if(emailStatus==1){g_successIds.push(g_recipientId);}
else if(emailStatus==2){g_failureIds.push(g_recipientId);}
if(g_sendEmailIds.length>0){doSendEmailMessages();}
else{requestRecordInvite();}}
function requestRecordInvite(){if(g_successIds.length==0&&g_failureIds.length==0){handleRequestRecordInviteCb();return;}
var successIdString=g_successIds.join(",");var failureIdString=g_failureIds.join(",");var inviteMsg="You have invited "+g_successIds.length+" of your friends to join your gang.";showInviteMessage(inviteMsg);var qryString=os.getQueryString();var url=g_rootUrl+"gwservice.php?"+qryString+"&action=record_invite&invited_ids="+successIdString+"&blocked_ids="+failureIdString;makeSignedRequest(url,requestRecordInvite_cb);}
function requestRecordInvite_cb(obj){g_requesting=false;showLoadingImage(false);var result=obj.text;handleRequestRecordInviteCb();}
function handleRequestRecordInviteCb(){for(i=0;i<g_successIds.length;i++){var id=g_successIds[i];sendInviteNotification(id);var user=g_inviteUserArray[id];user.status=1;}
for(i=0;i<g_failureIds.length;i++){var id=g_failureIds[i];var user=g_inviteUserArray[id];user.status=4;}
clearSelectedIds();textbox=document.getElementById("find_friends_textbox");findFriends(textbox);g_currentSelectedFriends=0;postToRecruit("bulletin");}
function showInviteMessage(message,append){var inviteMsgDiv=document.getElementById("invite_message");var output=message;if(append==true){output=inviteMsgDiv.innerHTML+"<br/>"+message;}
inviteMsgDiv.style.display="block";inviteMsgDiv.innerHTML=output;}
function getInviteContent(){var content="Hey, come join my gang in Gangster War, it's a very fun and addictive game!<br/><br/><br/>"+"<a href='"+g_appUrl+"' target='_blank'>"+"<img src='"+g_rootUrl+"images/mix/ms_invite_pic.png' style='border:none'/>"+"</a>";return content;}
function trim(str,chars){return ltrim(rtrim(str,chars),chars);}
function ltrim(str,chars){chars=chars||"\\s";return str.replace(new RegExp("^["+chars+"]+","g"),"");}
function rtrim(str,chars){chars=chars||"\\s";return str.replace(new RegExp("["+chars+"]+$","g"),"");}
function doActionPref(target){var ddTitle=document.getElementById("title_id");var titleValue=ddTitle.options[ddTitle.selectedIndex].value;var showLink=document.getElementById("show_link");var showLinkValue="off";if(showLink.checked){showLinkValue="on";}
var param=target+"&title_id="+titleValue+"&show_link="+showLinkValue;doAction(param);}
function doActionConfirm(target,confirmMsg){g_target=target;$result=showConfirmDialog(confirmMsg,showConfirmDialog_cb);}
function doActionAuctionFilter(target){var txtFilter=document.getElementById("au_filter");var ddSort=document.getElementById("au_sort");var filterValue=txtFilter.value;var sortValue=ddSort.value;var param=target+"&au_filter="+filterValue+"&au_sort="+sortValue;doAction(param);}
function doActionAuction(target){var hidItemId=document.getElementById("auc_item_id");var hidQuantity=document.getElementById("auc_quantity");var txtStartBid=document.getElementById("auc_start_bid");var txtBuyNow=document.getElementById("auc_buy_now");var ddDuration=document.getElementById("auc_duration");var itemIdValue=hidItemId.value;var quantityValue=hidQuantity.value;var startBidValue=txtStartBid.value;var buyNowValue=txtBuyNow.value;var durationValue=ddDuration.options[ddDuration.selectedIndex].value;var param=target+"&itemId="+itemIdValue+"&quantity="+quantityValue+"&start_bid="+startBidValue+"&buy_now="+buyNowValue+"&duration="+durationValue;doAction(param);}
function doActionIds(target){var ids=document.getElementsByName("ids[]");var idParams="";for(i=0;i<ids.length;i++){var checkbox=ids[i];if(checkbox.checked){idParams+="&ids[]="+checkbox.value;}}
var param=target+idParams;doAction(param);}
function changeBracket(target,bracketId,leftId,rightId){var bracketDD=document.getElementById(bracketId);var leftDD=null;var rightDD=null;if(leftId&&rightId){leftDD=document.getElementById(leftId);rightDD=document.getElementById(rightId);}
var bracketValue=bracketDD.options[bracketDD.selectedIndex].value;var param="target="+target+"&bracket="+bracketValue;if(leftDD!=null&&rightDD!=null){var leftValue=leftDD.options[leftDD.selectedIndex].value;var rightValue=rightDD.options[rightDD.selectedIndex].value;param+="&left_type="+leftValue+"&right_type="+rightValue;}
doAction(param);}
function changeBracketRareOptions(bracketId){var bracketDD=document.getElementById(bracketId);var bracketValue=bracketDD.options[bracketDD.selectedIndex].value;var param="target=inventory&display=rare&rare_option="+bracketValue;doAction(param);}
function doActionCaptcha(target){var captchaId="captcha_input";var text=document.getElementById(captchaId);var value=text.value;var param=target+"&"+captchaId+"="+value;doAction(param);}
var DEBUG=true;function debug(obj){if(DEBUG&&typeof console!='undefined'){console.log(obj);}}
function timerInfo(){this.current=0;this.full=0;this.income=0;this.rate=0;this.counter=0;this.timerId="";this.valueId="";}
function broadcastControlsInfo(){this.textId="";this.countdownId="";}
var g_cashTimerInfo=new timerInfo();var g_healthTimerInfo=new timerInfo();var g_energyTimerInfo=new timerInfo();var g_staminaTimerInfo=new timerInfo();function initTimers(){if(g_timerInfo==null){return;}
g_cashTimerInfo.current=parseInt(g_timerInfo[0]);g_cashTimerInfo.income=parseInt(g_timerInfo[1]);g_cashTimerInfo.rate=parseInt(g_timerInfo[2]);g_cashTimerInfo.counter=parseInt(g_timerInfo[3]);g_cashTimerInfo.timerId="timer_cash";g_cashTimerInfo.valueId="value_cash";g_healthTimerInfo.current=parseInt(g_timerInfo[4]);g_healthTimerInfo.full=parseInt(g_timerInfo[5]);g_healthTimerInfo.rate=parseInt(g_timerInfo[6]);g_healthTimerInfo.counter=parseInt(g_timerInfo[7]);g_healthTimerInfo.timerId="timer_health";g_healthTimerInfo.valueId="value_health";g_energyTimerInfo.current=parseInt(g_timerInfo[8]);g_energyTimerInfo.full=parseInt(g_timerInfo[9]);g_energyTimerInfo.rate=parseInt(g_timerInfo[10]);g_energyTimerInfo.counter=parseInt(g_timerInfo[11]);g_energyTimerInfo.timerId="timer_energy";g_energyTimerInfo.valueId="value_energy";g_staminaTimerInfo.current=parseInt(g_timerInfo[12]);g_staminaTimerInfo.full=parseInt(g_timerInfo[13]);g_staminaTimerInfo.rate=parseInt(g_timerInfo[14]);g_staminaTimerInfo.counter=parseInt(g_timerInfo[15]);g_staminaTimerInfo.timerId="timer_stamina";g_staminaTimerInfo.valueId="value_stamina";}
function zeroPad(num,count)
{var numZeropad=num+'';while(numZeropad.length<count){numZeropad="0"+numZeropad;}
return numZeropad;}
function addCommas(nStr)
{nStr+='';x=nStr.split('.');x1=x[0];x2=x.length>1?'.'+x[1]:'';var rgx=/(\d+)(\d{3})/;while(rgx.test(x1)){x1=x1.replace(rgx,'$1'+','+'$2');}
return x1+x2;}
function convertTime(timestamp)
{var hours=Math.floor(timestamp/3600);var secsLeft=timestamp%3600;var minutes=Math.floor(secsLeft/60);var seconds=secsLeft%60;if(hours>0){result=zeroPad(hours,2)+":"+zeroPad(minutes,2)+":"+zeroPad(seconds,2);}
else{result=zeroPad(minutes,2)+":"+zeroPad(seconds,2);}
return result;}
function updateTimer(timerInfo)
{var timer=document.getElementById(timerInfo.timerId);if(timer==null){return;}
if(timerInfo.current<timerInfo.full){timerInfo.counter--;timer.firstChild.nodeValue="More in "+convertTime(timerInfo.counter);if(timerInfo.counter<=0){timerInfo.counter=timerInfo.rate;timerInfo.current++;var valueToUpdate=document.getElementById(timerInfo.valueId);valueToUpdate.firstChild.nodeValue=timerInfo.current+"/"+timerInfo.full;if(timerInfo.current>=timerInfo.full){timer.firstChild.nodeValue="";}}}
else{timer.firstChild.nodeValue="";}}
function updateTimerCash(timerInfo){var timer=document.getElementById(timerInfo.timerId);if(timer==null){return;}
timerInfo.counter--;timer.firstChild.nodeValue="More in "+convertTime(timerInfo.counter);if(timerInfo.counter<=0){timerInfo.counter=timerInfo.rate;timerInfo.current+=timerInfo.income;var valueToUpdate=document.getElementById(timerInfo.valueId);valueToUpdate.firstChild.nodeValue=formatMoney(addCommas(timerInfo.current));}}
function updateTimers(){updateTimerCash(g_cashTimerInfo);updateTimer(g_healthTimerInfo);updateTimer(g_energyTimerInfo);updateTimer(g_staminaTimerInfo);}
function limitText(limitNum){var limitField=document.getElementById(bcInfo.textId);var limitCount=document.getElementById(bcInfo.countdownId);if(limitField==null||limitCount==null){return;}
if(limitField.value.length>limitNum){limitField.value=limitField.value.substring(0,limitNum);}else{limitCount.firstChild.nodeValue=limitNum-limitField.value.length;}}
var bcInfo=new broadcastControlsInfo();bcInfo.textId="broadcast_text";bcInfo.countdownId="broadcast_countdown";function formatMoney(amount){return"$"+amount;}
function doActionDD(target,dropdownId){var dd=document.getElementById(dropdownId);var value=dd.options[dd.selectedIndex].value;var param=target+"&value="+value;doAction(param);}
function doActionInput(target,inputId){var text=document.getElementById(inputId);var value=text.value;value=Url.encode(value);var param=target+"&value="+value;doAction(param);}
function fetchPeopeName(idArray){var result=new Array();var dataReqObj=os.newDataRequest();for(i=0;i<idArray.length;i++){var id=idArray[i];var is=os.newIdSpec();is.setField(opensocial.IdSpec.Field.USER_ID,id);var reqItem=os.newFetchPeopleRequest(is);dataReqObj.add(reqItem);}
dataReqObj.send(fetchPeopeName_cb);return result;}
function fetchPeopeName_cb(dataResponse){var userArray=dataResponse.get('FETCH_PEOPLE').getData().asArray();var names=new Array();for(i=0;i<userArray.length;i++){var user=userArray[i];var id=user.getField(opensocial.Person.Field.ID);var nickName=user.getField(opensocial.Person.Field.NICKNAME);names[id]=nickName;}
var spans=document.getElementsByName("ms_name");for(i=0;i<spans.length;i++){var span=spans[i];var id=getId(span.id);span.innerHTML=names[id];}}
function fillMSNames(){var spans=document.getElementsByName("ms_name");if(spans.length==0){return;}
var idArray=new Array();for(i=0;i<spans.length;i++){var id=getId(spans[i].id);idArray[i]=id;}
fetchPeopeName(idArray);}
function getId(idString){id=idString.split("_")[1];return id;}
function showLoadingImage(on){var loadingDiv=document.getElementById("loading_img");if(on==true&&g_requesting){loadingDiv.style.display="block";}
else{loadingDiv.style.display="none";}}
function createNotificationButton(buttonText,appParams){var button=MyOpenSpace.newNotificationButton(MyOpenSpace.NotificationButton.UrlTypes.CANVAS,buttonText,appParams);return button;}
function sendNotification(targetId,bodyText,buttons){var param={};param[MyOpenSpace.Notification.Field.BODY]=bodyText;param[MyOpenSpace.Notification.Field.BUTTONS]=buttons;var notification=MyOpenSpace.newNotification(param);var mediaItemArray=[];mediaItemArray.push(opensocial.newMediaItem("",MyOpenSpace.MediaItemHelper.PROFILE_PICTURE));param[MyOpenSpace.Notification.Field.MEDIA_ITEMS]=mediaItemArray;MyOpenSpace.requestCreateNotification(targetId,notification,sendNotification_cb);}
function sendNotification_cb(response){if(response.getErrorCode()==opensocial.ResponseItem.Error.UNAUTHORIZED){}
if(!response.hadError()){}}
function sendInviteNotification(targetId){var appParams={"to_page":"party"};var btnJoin=createNotificationButton("Join "+g_nickName+"'s Gang",appParams);appParams={"to_page":"index"};var btnPlay=createNotificationButton("Play Now",appParams);buttons=[btnJoin,btnPlay];var bodyText=g_nickName+" wants you to join their gang in Gangster War, a feature-rich role playing game played with your friends.";sendNotification(targetId,bodyText,buttons);}
function postToProfile(subject,content){var message;postType="PROFILE";message=opensocial.newMessage(content);message.setField(opensocial.Message.Field.TITLE,subject);message.setField(opensocial.Message.Field.TYPE,postType);opensocial.requestSendMessage(0,message,postToProfile_cb);}
function postToProfile_cb(response){if(!response.hadError()&&response.getData()==1){showInviteMessage("Profile posted!");}
else{var errorMsg=response.getErrorMessage();if(errorMsg!=""){showInviteMessage("Error: "+errorMsg);}
else{showInviteMessage("Cancelled.");}}}
function postToBulletin(subject,content){var message;postType=opensocial.Message.Type.NOTIFICATION;message=opensocial.newMessage(content);message.setField(opensocial.Message.Field.TITLE,subject);message.setField(opensocial.Message.Field.TYPE,postType);opensocial.requestSendMessage(0,message,postToBulletin_cb);}
function postToBulletin_cb(response){if(!response.hadError()&&response.getData()==1){showInviteMessage("Bulletin posted!",true);}
else{var errorMsg=response.getErrorMessage();if(errorMsg!=""){showInviteMessage("Error: "+errorMsg,true);}
else{showInviteMessage("Bulletin post cancelled.",true);}}}
function postToRecruit(type){var subjectArray=new Array("Hey","Try this app","Play Gangster War","Join my gang");var content=getInviteContent();var rand=Math.floor(Math.random()*subjectArray.length);var subject=subjectArray[rand];if(type=="profile"){postToProfile(subject,content);}
else if(type=="bulletin"){postToBulletin(subject,content);}}
function postActivity(id,content,callback){var params={};params[opensocial.Activity.Field.TITLE_ID]=id;params[opensocial.Activity.Field.TEMPLATE_PARAMS]={"content":content,"params":g_appParams,"firstName":g_nickName};var mediaItemArray=[];var jobId=g_activityAssociatedId;var jobImgId=g_jobImageArray[jobId];var activityImageUrl="http://api.myspace.com/v1/users/446831993/albums/1494694/photos/"+jobImgId;mediaItemArray.push(opensocial.newMediaItem("",activityImageUrl));params[opensocial.Activity.Field.MEDIA_ITEMS]=mediaItemArray;var activity=opensocial.newActivity(params);opensocial.requestCreateActivity(activity,opensocial.CreateActivityPriority.HIGH,callback);}
function jobCFH_cb(response){var data=response.getData();if(data==0||data==null){return;}
var qryString=os.getQueryString();var url=g_rootUrl+"gwservice.php?"+qryString+"&action=call_job&jobId="+g_activityAssociatedId;makeSignedRequest(url,jobCFHService_cb);}
function jobCFHService_cb(){g_requesting=false;showLoadingImage(false);}
function displayJobCallDialog(){if(g_activityContent!=""){postActivity(g_templateId,g_activityContent,jobCFH_cb);}}
function showInfoDialog(target,content){var message=document.getElementById("message_content");message.innerHTML=content;var overlay=document.getElementById("message_overlay");overlay.style.visibility="visible";}
function hideInfoDialog(){var overlay=document.getElementById("message_overlay");overlay.style.visibility="hidden";}
function showConfirmDialog(content,callback){g_dialogCallback=callback;var confirm=document.getElementById("confirm_content");confirm.firstChild.nodeValue=content;var overlay=document.getElementById("confirm_overlay");overlay.style.visibility="visible";}
function showConfirmDialogUp(target,content,callback,subAction,droQuantityId,upCost,price,itemLevel,upgradeMat,upgradeMatPlural){g_dialogCallback=callback;var droQuantity=document.getElementById(droQuantityId);var quantity=droQuantity.value;var platinumWordP=upgradeMatPlural;var platinumWordS=upgradeMat;if(subAction!="Sell"){var platQuantity=quantity*upCost;var platinumWord=platinumWordP;if(platQuantity==1){platinumWord=platinumWordS;}
content=content.replace("[x1]",platQuantity+" "+platinumWord);content=content.replace("[x2]",quantity);}
else{sellPrice=formatMoney(addCommas(price*(itemLevel+1)*quantity));content=content.replace("[x1]",quantity);content=content.replace("[x2]","$"+sellPrice);}
g_target=target+"&subAction="+subAction+"&quantity="+quantity;var confirm=document.getElementById("confirm_content");confirm.innerHTML=content;var overlay=document.getElementById("confirm_overlay");overlay.style.visibility="visible";}
function showConfirmDialogAu(target,content,callback,subAction,textBidId,upgradeMat,upgradeMatPlural){g_dialogCallback=callback;var bidParam="";if(subAction=="Bid"){var textBid=document.getElementById(textBidId);var yourBidValue=textBid.value;var platinumWord=upgradeMatPlural;if(yourBidValue==1){platinumWord=upgradeMat;}
content=content.replace("[xx]",yourBidValue+" "+platinumWord);bidParam="&bid_amount="+yourBidValue;}
g_target=target+"&subAction="+subAction+bidParam;var confirm=document.getElementById("confirm_content");confirm.innerHTML=content;var overlay=document.getElementById("confirm_overlay");overlay.style.visibility="visible";}
function showConfirmDialog_cb(result){if(result&&g_target!=null){doAction(g_target);}}
function hideConfirmDialog(result){var overlay=document.getElementById("confirm_overlay");overlay.style.visibility="hidden";g_dialogCallback(result);}
function setSessionCookie(name,value){document.cookie=name+"="+value;}
function getSessionCookie(name){var search=name+"="
var returnvalue="";if(document.cookie.length>0){offset=document.cookie.indexOf(search)
if(offset!=-1){offset+=search.length
end=document.cookie.indexOf(";",offset);if(end==-1)end=document.cookie.length;returnvalue=unescape(document.cookie.substring(offset,end))}}
return returnvalue;}
init();setInterval(function(){updateTimers()},1000);