//this JS file contains large data arrays which include instructions for page layouts and functions for displaying, editing, collecting, uploading and deleting site content
//it is organized into scenes, which correspond to "pages" in the super admin UI. In order, the scenes are: ACCOUNT, STORY, and PROFILE PREVIW
//MODPOINT: this entire page can be modified to affect the layout and contents of various consumer admin scenes. systems are logical and consistent enough to allow modification, 
//but the process is not trivial. always save a copy before working on this page

// ========================================================== ACCOUNT SCENE

var accountsSrc=accountsBlank;
var profilesSrc=profilesBlank;

var preservedUserName="";//this is used to prevent users from changing their user name
var unverified=false;//profiles don't show until they are verified

var storedBannerFile="";
var storedThumbnailFile="";

function setupAccountEdit(){
	var res=hiliteUserTabs(0);
	profilesSrc=profDat;//this came down from server, for this account only
	accountsSrc=acctDat;//this came down from server, for this account only
	var res=loadAccountWorkspace('old');
}

function loadAccountWorkspace(mod){
	if(mod=="old"){
		acctMgr.entries[acctMgr.entries.length-1][2]="update";
		acctMgr.entries[acctMgr.entries.length-1][8]="old";
	}
	if(mod=="new"){//this kode is not actually used on consumer side?
		accountsSrc=accountsBlank;
		profilesSrc=profilesBlank;
		acctMgr.entries[acctMgr.entries.length-1][2]="save";
		acctMgr.entries[acctMgr.entries.length-1][8]="new";
	}
	acctMgr.dataSrc=acctMgr.prepDataForDisplay();
	for(var ad=0;ad<acctMgr.dataSrc.length;ad++){
		acctMgr.entries[ad][8]=acctMgr.dataSrc[ad];
	}
	var ttl=grab("mainTitle");
	ttl.innerHTML="edit profile";
	var txt="<br><table width=850 cellpadding=0 cellspacing=0 border=0><tr><td align=right><div id=accountSpaceTitle style=position:relative;width:835 class=spacetitle>My Profile Information</td></tr></table></div><p>";
	txt+=acctMgr.drawEntries();
	txt+=getFileUploadHTML("editSpaceUploader","<b>Add images to the text editor to be displayed on your profile page.</b><br>Upload an image. Maximum image size 250k.",15,965,600,50,23,"images/blank.gif","''","");
	var disp=grab("mainDisplay");
	disp.style.height=1400;
	disp.innerHTML=txt;
	if(sf)setTimeout("initializeEditSpace()",500);
	else var res=initializeEditSpace();
}

//entries schema: [0] mode name; [1] id name; [2] public name; [3] left; [4] top; [5] width; [6] height; [7] tab index; [8] default value; [9] array of static data; [10] command literal
var acctMgr=new dataManagementObject();
acctMgr.entries[0]=new Array("TextEntry","profName","Profile Name (Profile names can not be changed)",15,50,300,21,1,"","''","");
acctMgr.entries[1]=new Array("TextEntry","govtName","First and Last Name",15,90,300,21,3,"","''","");
acctMgr.entries[2]=new Array("TextEntry","address","Address",15,130,300,21,5,"","''","");
acctMgr.entries[3]=new Array("TextEntry","city","City",15,170,300,21,7,"","''","");
acctMgr.entries[4]=new Array("TextEntry","phone","Phone Number",15,210,300,21,9,"","''","");
acctMgr.entries[5]=new Array("TextEntry","website0","My Website(s)",15,250,300,21,11,"","''","");
acctMgr.entries[6]=new Array("TextEntry","website1","",15,290,300,21,12,"","''","");
acctMgr.entries[7]=new Array("TextEntry","website2","",15,318,300,21,13,"","''","");
acctMgr.entries[8]=new Array("TextEntry","contactemail","Contact Email",330,50,300,21,2,"","''","");
acctMgr.entries[9]=new Array("Password","newpassword","Enter New Password (optional)",330,90,300,21,4,"","''","");
acctMgr.entries[10]=new Array("Dropdown","state","State / Province",330,130,300,21,6,"","states","");
acctMgr.entries[11]=new Array("TextEntry","postal","Postal Code",330,170,300,21,8,"","''","");
acctMgr.entries[12]=new Array("Dropdown","country","Country",330,210,300,21,10,"","countries","");
acctMgr.entries[13]=new Array("ListBuilder","classA","Add the tour dates you will be attending",15,365,250,50,6,"classA","''","");
acctMgr.entries[14]=new Array("ListBuilder","classB","Add the bands you want to see",275,365,250,50,6,"classB","''","");
acctMgr.entries[15]=new Array("WideFileUpload","bannerUploader","<b>Banner image (optional)</b><br>Upload an image for your profile banner. Size must be 785x75 or your image will be stretched and funky looking.",15,485,750,50,23,"","''","");
acctMgr.entries[16]=new Array("TextEditor","editSpace","",15,575,600,375,20,"","''","");
acctMgr.entries[17]=new Array("FileUpload","imgUploader","<b>Select a Profile image</b><br>Maximum image size must be 100x100 or your image will be stretched and funky looking",15,1050,600,50,23,"black.gif","''","");
acctMgr.entries[18]=new Array("Essay","profileKeywords","Your Profile Keywords<br><span class=copy>Enter keywords separated by commas.</span>",15,1135,600,100,24,"","''","");
acctMgr.entries[19]=new Array("SingleCheckbox","searchPreference","Check if you want your profile listed in searches:<br><span class=copy>&nbsp;Determines if you are listed in searches on this site</span>",15,1255,600,60,25,1,"''","");
acctMgr.entries[20]=new Array("SingleCheckbox","discussionPreference","Check if you want members to add comments to your profile:<br><span class=copy>&nbsp;Determines if visitors can leave comments on your profile.</span>",15,1295,600,60,26,1,"''","");
acctMgr.entries[acctMgr.entries.length]=new Array("SaveButton","saveAccountButton","save",15,1350,62,16,27,"new","''","");

function prepAccountDataForDisplay(){
	var txt="";
	if(!accountsSrc)accountsSrc=accountsBlank;
	if(!profilesSrc)profilesSrc=profilesBlank;
	for(var p=0;p<accountsProps.length;p++){
		eval("var tc0_"+accountsProps[p]+"=\""+accountsSrc[p]+"\"");
	}
	for(var p=0;p<profilesProps.length;p++){
		if(typeof(profilesSrc[p])=="undefined")profilesSrc[p]="";
		eval("var tc1_"+profilesProps[p]+"=\""+profilesSrc[p]+"\"");
	}
	tc1_accessLevel=integerDecode(tc1_accessLevel);
	tc1_profileType=integerDecode(tc1_profileType);
	var websites=tc1_websites.split(",");
	if(tc1_linkedTo=="X")unverified=true;
	var tc_website0=websites[0];
	var tc_website1=websites[1];
	var tc_website2=websites[2];
	if(!tc_website0||typeof(tc_website0)=="undefined")tc_website0="";
	if(!tc_website1||typeof(tc_website1)=="undefined")tc_website1="";
	if(!tc_website2||typeof(tc_website2)=="undefined")tc_website2="";
	var brands=tc1_brands.split(",");
	var tc_brand0="";
	var tc_brand1="";
	var tc_brand2="";
	var tc_mCont=tc1_maincontent;
	tc_mCont=replacer(tc_mCont,"\\","%5C");
	tc_mCont=replacer(tc_mCont,"\"","%22");
	tc_mCont=replacer(tc_mCont,"'","%27");
	var xc_imgDirs="";
	var ok_imgGallery="";
	var ok_blankPass="";
	var tc1_region=tc1_flags;
	uniqueID=tc1_storyKeys;//this is blank if new, otherwise it is a uniqueID that is generated on the server with every save
	storedBannerFile=tc1_imgKeys;
	storedThumbnailFile=tc1_thumbnail;
	preservedUserName=tc0_userName;
	var arr=new Array(tc0_userName,tc1_conFirstName,tc1_conAddress,tc1_conCity,tc1_conPhone,tc_website0,tc_website1,tc_website2,tc1_conEmail,ok_blankPass,tc1_conState,tc1_conZip,tc1_conCountry,tc1_catA,tc1_catB,tc1_imgKeys,tc_mCont,tc1_thumbnail,tc1_keywords,tc1_searchPerm,tc1_commentPerm);
	return arr;
}
acctMgr.prepDataForDisplay=prepAccountDataForDisplay;

function collectAndUploadAccount(){
	var txt="";
	var arr=this.entries;
	var resArr=new Array;
	for(var a=0;a<arr.length-1;a++){//built with the assumption that last item in entries is the save button
		var comStr="var ts_"+arr[a][1]+"=get"+arr[a][0]+"Value('"+arr[a][1]+"')";
		res=eval(comStr);
	}
	var ts_accessLevel="";
	if(typeof(idArr)=="object")ts_accessLevel=idArr[6];
	var ts_profileTypes="";
	var ts_id=accountsSrc[0];
	var xs_time="";
	var xs_sessID="";
	var xs_expire=" ";//this may be used to indicate a new account, set it to empty once updated
	var xs_profID="";
	var xs_created="";
	var xs_ipSrc="";
	var xs_flags=" ";//this may be used to indicate a new account, set it to empty once updated
	if(ts_profName!=preservedUserName&&preservedUserName!=""){
		ts_profName=preservedUserName;
	}
	var acctStr=ts_id+"~|~"+xs_time+"~|~"+ts_profName+"~|~"+ts_newpassword+"~|~"+xs_sessID+"~|~"+ts_accessLevel+"~|~"+xs_expire+"~|~"+xs_profID+"~|~"+xs_created+"~|~"+xs_ipSrc+"~|~"+xs_flags;
	var ts_id=profilesSrc[0];
	var ts_catBVars="";
	var ts_urlKeysVars=ts_website0+","+ts_website1+","+ts_website2;
	var xs_time="";
	var xs_acctKey="";
	var xs_govtLastName="";
	var xs_zipExt="";
	var xs_linkedTo="";
	if(unverified){
		var now=new Date();
		now=now.getTime()
		now=Math.round(now/1000);
		xs_linkedTo=now;
		unverified=false;
	}
	var xs_linkedFrom="";
	var xs_commentKeys="";
	var xs_storyKeys="";
	var xs_eventKeys="";
	var xs_imgKeys="";
	var xs_contactPerm="";
	var xs_language="";
	var xs_flags="";
	var ok_billFirstName="";
	var ok_billLastName="";
	var ok_billEmail="";
	var ok_billAddress="";
	var ok_billCity="";
	var ok_billState="";
	var ok_billZip="";
	var ok_billZipExt="";
	var ok_billCountry="";
	var ok_billPhone="";
	var ok_classC="";
	var ok_classD="";
	var ok_classE="";
	var ok_classF="";
	var ok_classG="";
	var ok_classH="";
	xs_accountIDcode="";
	ts_editSpace=cleanEditSpace(ts_editSpace);
	ts_editSpace=escape(ts_editSpace);
	var ts_profileTypes="";//whatever it is, don;t change it;
	var ts_siteLevels=defVer;//the only site level included is current one
	var ts_storyKeys=uniqueID;//this creates a single unique account
	var ts_regions="";//whatever it is, don't change it
	if(storedBannerFile.indexOf(ts_bannerUploader)!=-1)ts_bannerUploader="";
	if(storedThumbnailFile.indexOf(ts_imgUploader)!=-1)ts_imgUploader="";
	var ok_userName="";
	var profStr=ts_id+"~|~"+xs_time+"~|~"+xs_acctKey+"~|~"+ok_userName+"~|~"+ts_govtName+"~|~"+xs_govtLastName+"~|~"+ts_contactemail+"~|~"+ts_address+"~|~"+ts_city+"~|~"+ts_state+"~|~"+ts_postal+"~|~"+xs_zipExt+"~|~"+ts_country+"~|~"+ts_phone+"~|~"+ok_billFirstName+"~|~"+ok_billLastName+"~|~"+ok_billEmail+"~|~"+ok_billAddress+"~|~"+ok_billCity+"~|~"+ok_billState+"~|~"+ok_billZip+"~|~"+ok_billZipExt+"~|~"+ok_billCountry+"~|~"+ok_billPhone+"~|~"+ts_profileTypes+"~|~"+ts_classA+"~|~"+ts_classB+"~|~"+ok_classC+"~|~"+ok_classD+"~|~"+ok_classE+"~|~"+ok_classF+"~|~"+ok_classG+"~|~"+ok_classH+"~|~"+ts_accessLevel+"~|~"+ts_siteLevels+"~|~"+xs_linkedTo+"~|~"+xs_linkedFrom+"~|~"+ts_profileKeywords+"~|~"+ts_imgUploader+"~|~"+ts_urlKeysVars+"~|~"+ts_catBVars+"~|~"+xs_accountIDcode+"~|~"+ts_bannerUploader+"~|~"+xs_commentKeys+"~|~"+ts_storyKeys+"~|~"+xs_eventKeys+"~|~"+ts_editSpace+"~|~"+xs_contactPerm+"~|~"+ts_discussionPreference+"~|~"+ts_searchPreference+"~|~"+xs_language+"~|~"+ts_regions;
	var paramStr=acctStr+"@|@"+profStr;
	var res=doAjax("uploadConsumerAccountData.php",paramStr,finishConsumerAccountDataUpload);
	accountsSrc=accountsBlank;
	profilesSrc=profilesBlank;
	return resArr;
}
acctMgr.collectAndUpload=collectAndUploadAccount;

function deleteAccount(num){
	var res=confirm("Delete account id "+num+"?");
	var res=doAjax("deleteAccount.php",num,finishAccountDelete);
}


// ========================================================== STORY SCENE

var storiesSrc=storiesBlank;//this should come down from server for this account only

function loadStoryMenu(){
	var res=hiliteUserTabs(2);
	var ttl=grab("mainTitle");
	ttl.innerHTML="";
	var disp=grab("mainDisplay");
	disp.style.height=600;
	disp.innerHTML=getStoryMenuHTML();
}

function getStoryMenuHTML(){
	var txt="<div id=storyMenuHolder class=bigcopy style=width:950;height:570><br><br>";
	uniSort=18;
	if(typeof(relStories)=="object")relStories=relStories.sort(reverseUniSort);
	for(var r=0;r<relStories.length;r++){
		var curStory=relStories[r];
		var ttl=curStory[7];
		var dat=secsToMidStr(curStory[18]);
		var num=curStory[0];
		if(typeof(ttl)!="undefined"&&ttl!="undefined")txt+="&nbsp; &nbsp; "+ttl+" "+dat+"<b style=color:red;> <span onclick=editConsumerStory("+num+") style=cursor:pointer>EDIT</span> | <span onclick=previewConsumerStory("+num+") style=cursor:pointer>PREVIEW</span> | <span onclick=deleteConsumerStory("+num+") style=cursor:pointer>DELETE</span></b><p>";
	}
	txt+="</div>";
	var txt=drawHeaderBox("My Journal Entries:<div id=newStoryBtn style=position:absolute;left:700;top:5;cursor:pointer;color:red onclick=loadStoryWorkspace('new')>New Journal Entry</div>",txt,800,575);
	return txt;
}

function editConsumerStory(num){
	var ret=setupStoryEdit(num);
}

function previewConsumerStory(num){
	var ret=setupStoryPreview(num);
}

function deleteConsumerStory(num){
	var ret=deleteStory(num,idArr[1]);
}

function deleteStory(num,pID){
	var res=confirm("Delete story?");
	var dat=num+"~|~"+pID;
	var res=doAjax("deleteConsumerStory.php",dat,finishConsumerStoryDelete);
}

var storyDat="";

function setupStoryPreview(num){
	for(var r=0;r<relStories.length;r++){
		if(relStories[r][0]==num){
			storyDat=new Array();
			for(var s=0;s<relStories[r].length;s++){
				storyDat[s]=relStories[r][s];
			}
			break;
		}
	}
	var res=hiliteUserTabs(2);
	var disp=grab("mainDisplay");
	disp.style.height=1200;
	disp.innerHTML=drawStoryPreview();
}

function setupStoryEdit(num){
	var res=hiliteUserTabs(2);
	storiesSrc=storiesBlank;
	for(var r=0;r<relStories.length;r++){
		if(relStories[r][0]==num){
			storiesSrc=relStories[r];
			break;
		}
	}
	var res=loadStoryWorkspace('old');
}

function loadStoryWorkspace(mod){
	if(mod=="old"){
		storyMgr.entries[storyMgr.entries.length-1][2]="update";
		storyMgr.entries[storyMgr.entries.length-1][8]="old";
	}
	if(mod=="new"){
		storiesSrc=storiesBlank
		storyMgr.entries[storyMgr.entries.length-1][2]="save";
		storyMgr.entries[storyMgr.entries.length-1][8]="new";
	}
	storyMgr.dataSrc=storyMgr.prepDataForDisplay();
	for(var pm=0;pm<storyMgr.dataSrc.length;pm++){
		storyMgr.entries[pm][8]=storyMgr.dataSrc[pm];
	}
	var ttl=grab("mainTitle");
	ttl.innerHTML="Journal";
	var disp=grab("mainDisplay");
	disp.style.height=1200;
	var txt="";
	txt+="<br><table width=850 cellpadding=0 cellspacing=0 border=0><tr><td align=right><div id=accountSpaceTitle style=position:relative;width:835 class=spacetitle>Create/Edit Journal Story</td></tr></table></div><p>";
	txt+=storyMgr.drawEntries();
	txt+=getFileUploadHTML("editSpaceUploader","<b>Add images to the text editor to be displayed in your journal story page</b><br>Upload an image. Maximum image size 250k.",15,775,600,50,23,"images/blank.gif","''","");
	disp.innerHTML=txt;
	if(sf)setTimeout("initializeEditSpace()",500);
	else var res=initializeEditSpace();
}

//entries schema: [0] mode name; [1] id name; [2] public name; [3] left; [4] top; [5] width; [6] height; [7] tab index; [8] default value; [9] array of static data; [10] command literal
var storyMgr=new dataManagementObject();

storyMgr.entries[0]=new Array("TextEntry","storyTitle","Title",15,50,460,21,1,"","''","");
storyMgr.entries[1]=new Array("TextEntry","photoCredit","Photo Credit (Optional)",15,90,300,21,3,"","''","");
storyMgr.entries[2]=new Array("Essay","storyDescription","<b>Story Description (Optional)</b><br><span class=copy>A short summary of the story.</span>",15,130,750,125,10,"","''","");
storyMgr.entries[3]=new Array("ListBuilder","classA","Add the tour date(s) this journal is about",15,290,250,50,6,"classA","''","");
storyMgr.entries[4]=new Array("ListBuilder","classB","Add the band(s) this journal is about",275,290,250,50,6,"classB","''","");
storyMgr.entries[5]=new Array("TextEditor","editSpace","",15,390,600,375,11,"","''","");
storyMgr.entries[6]=new Array("FileUpload","imgUploader","<b>Story Thumbnail Image</b><br>Upload an image for your journal story. Maximum size 100x100.",15,860,600,50,16,"black.gif","''","");
storyMgr.entries[7]=new Array("Essay","storyKeywords","Journal Story Keywords<br><span class=copy>Enter keywords separated by commas.</span>",15,935,600,100,17,"","''","");
storyMgr.entries[8]=new Array("SingleCheckbox","searchPreference","List in searches:<br><span class=copy>&nbsp;Determines if this story is listed in searches</span>",15,1070,600,60,14,18,"''","");
storyMgr.entries[9]=new Array("SingleCheckbox","discussionPreference","Allow discussion on this journal story:<br><span class=copy>&nbsp;Determines if visitors can leave comments on this story.</span>",15,1110,600,60,19,"Determines if a member can leave comments on this story","''","");
storyMgr.entries[storyMgr.entries.length]=new Array("SaveButton","saveStoryButton","save",15,1165,62,16,16,"new","''","");

function prepStoryDataForDisplay(){
	var txt="";
	if(!storiesSrc)storiesSrc=storiesBlank;
	for(var p=0;p<storiesProps.length;p++){
		eval("var tc_"+storiesProps[p]+"=\""+storiesSrc[p]+"\"");
	}
	var arr=new Array(tc_storyTitle,tc_photoCredit,tc_storySummary,tc_catA,tc_catB,tc_storyBody,tc_storyThumb,tc_keywords,tc_searchPerm,tc_commentPerm);
	return arr;
}
storyMgr.prepDataForDisplay=prepStoryDataForDisplay;

function collectAndUploadStory(){
	var txt="";
	var arr=this.entries;
	var resArr=new Array;
	for(var a=0;a<arr.length-1;a++){//built with the assumption that last item in entries is the save button
		var comStr="var ts_"+arr[a][1]+"=get"+arr[a][0]+"Value('"+arr[a][1]+"')";
		res=eval(comStr);
	}
	var xs_srcAcctKey=idArr[0];
	var xs_srcProfKey=idArr[1];//from local auth data
	var xs_srcName="";//from DB, based on auth data
	var xs_srcEmail="";//from DB, based on auth data
	var xs_srcPhone="";//from DB, based on auth data
	var ok_id=storiesSrc[0];
	var ok_time="";
	var ok_subTitle="";
	var ok_storyLegal="";
	var ok_moreInfoURL=pat+"members.php?id="+idArr[1];
	var ok_expDate="";
	var ok_classC="";
	var ok_classD="";
	var ok_classE="";
	var ok_classF="";
	var ok_classG="";
	var ok_classH="";
	var ok_linkedTo="";
	var ok_linkedFrom="";
	var ok_sortByDate="";
	var ok_commentKeys="";
	var ok_storyKeys="";
	var ok_eventKeys="";
	var ok_country="";
	ts_editSpace=cleanEditSpace(ts_editSpace);
	ts_editSpace=escape(ts_editSpace);
	var nowSecs=new Date();
	nowSecs=Math.round(nowSecs.getTime()/1000);
	var ok_storyPubDate=nowSecs;//default to now for pub date
	var ts_flags="text";//set contentType to fixed value, "text"
	var ts_siteLevels=defVer;//enforce, only site permission is current site
	var ts_accessLevels="";//this must not be changeable in this interface, make it blank
	var ts_regions="";//no change to this value
	var ts_storyAuthor=idArr[5];//set by default
	var ts_maxWidth="";//no change
	var ts_maxHeight="";//no change
	var ts_chooseImage="";
	var storyStr=ok_id+"~|~"+ok_time+"~|~"+xs_srcAcctKey+"~|~"+xs_srcProfKey+"~|~"+xs_srcName+"~|~"+xs_srcEmail+"~|~"+xs_srcPhone+"~|~"+ts_storyTitle+"~|~"+ts_storyDescription+"~|~"+ok_subTitle+"~|~"+ts_storyDescription+"~|~"+ts_editSpace+"~|~"+ts_imgUploader+"~|~"+ok_moreInfoURL+"~|~"+ts_chooseImage+"~|~"+ts_storyAuthor+"~|~"+ts_photoCredit+"~|~"+ok_storyLegal+"~|~"+ok_storyPubDate+"~|~"+ok_expDate+"~|~"+ts_classA+"~|~"+ts_classB+"~|~"+ok_classC+"~|~"+ts_classA+"~|~"+ts_classB+"~|~"+ok_classF+"~|~"+ok_classG+"~|~"+ok_classH+"~|~"+ts_accessLevels+"~|~"+ts_siteLevels+"~|~"+ok_linkedTo+"~|~"+ok_linkedFrom+"~|~"+ts_storyKeywords+"~|~"+ok_sortByDate+"~|~"+ok_commentKeys+"~|~"+ok_storyKeys+"~|~"+ok_eventKeys+"~|~"+ts_discussionPreference+"~|~"+ts_searchPreference+"~|~"+ts_regions+"~|~"+ok_country+"~|~"+ts_maxWidth+"~|~"+ts_maxHeight+"~|~"+ts_flags;
	var paramStr=storyStr;
	var res=doAjax("uploadConsumerStoryData.php",paramStr,finishConsumerStoryDataUpload);
	return resArr;
}
storyMgr.collectAndUpload=collectAndUploadStory;

// ====================================================================================== PROFILE PREVIEW

function setupProfilePreview(){
	var res=hiliteUserTabs(1);
	var disp=grab("mainDisplay");
	disp.style.height=1200;
	disp.innerHTML=drawProfilePreview();
}


