/*********************************************************************
VIEWER.JS | Version 1.2.01
Original author: Dave Dunn (LA Marketing)
Show: EWEC 2010
Last Modified by: Jonathan Pritchard
Last Modified on: 06/11/09

----------------------------------------------------------------------
NOTES:
- Version 1.2.01 inludes pavillion grouping in the event plan grid as featured in EOW2009
- Version 1.2.02 minor changes to wmmode="window" parameter output
----------------------------------------------------------------------
**********************************************************************/
var wdth=1003;
var hght=500;
function makeFlash(mfStands,mfZoom){

	var wmmode="window";
	var fvars="LicKey=uqtjOaVU6qy3T1oOYaIXMmIcpZMaPOGr&revealview=no&remoteplan=yes&stands="+mfStands+"&szoom="+mfZoom;
	var movid="showplan";
	var lky="V2ygJabB0NushIMQmWw1sOvHpnxOYm6y";
	var clssId="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";
	var cdeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0";
	var plugPage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash";
	var tpe="application/x-shockwave-flash";
	var wrtStrf="<object";
	wrtStrf+=" classid='"+clssId+"'";
	wrtStrf+=" codebase='"+cdeBase+"'";
	wrtStrf+=" id='"+movid+"'";
	wrtStrf+=" width='"+wdth+"'";
	wrtStrf+=" height='"+hght+"'";
	wrtStrf+=" style='width:"+wdth+";height:"+hght+"'";
	wrtStrf+=">";
	wrtStrf+="<param name='allowScriptAccess' value='sameDomain' />";
	wrtStrf+="<param name='movie' value='FLASH/showplan.swf' />";
	wrtStrf+="<param name='quality' value='high' />";
	if (wmmode!=""){
		wrtStrf+="<param name='wmode' value='" + wmmode + "' />";
	}
	if (fvars!=""){
		wrtStrf+="<param name='FlashVars' value='"+fvars+"' />";
	}
	wrtStrf+="<embed";
	wrtStrf+=" src='FLASH/showplan.swf'";
	wrtStrf+=" quality='high'";
	wrtStrf+=" pluginspage='"+plugPage+"'";
	wrtStrf+=" type='"+tpe+"'";
	wrtStrf+=" width='"+wdth+"'";
	wrtStrf+=" height='"+hght+"'";
	wrtStrf+=" swLiveConnect=true";
	wrtStrf+=" id='"+movid+"'";
	wrtStrf+=" allowScriptAccess='sameDomain'";
	wrtStrf+=" name='"+movid+"'";
	if (wmmode!=""){
            wrtStrf+=" wmode='" + wmmode + "'";
	}
	if (fvars!=""){
		wrtStrf+=" FlashVars='"+fvars+"'";
	}
	wrtStrf+="></embed>";
	wrtStrf+="</object>";
	
	$("#floorplan_insert").html(wrtStrf);
	//get_object("floorplan_insert").innerHTML = wrtStrf;
	//document.write(wrtStrf);
}
var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
var mystands=new Array();
var mypavstands=new Array();
var currSortCol=0;
var printtmr=0;
function showplan_DoFSCommand(command, args) {
	var showplanObj = isInternetExplorer ? document.all.showplan : document.showplan;
	switch (command){
		case "addStand":
			var argsplit=args.split("^^^^");
			mystands[argsplit[0]]=new Array(argsplit[1],argsplit[2],argsplit[3],argsplit[4],argsplit[5],argsplit[6]);
			window.onbeforeunload = confirmExit;
			break;
		case "addPavStand":
			var argparts=args.split("^^0^^");
			if (argparts.length>1){
				mypavstands[argparts[0]]=new Array();
				for (var tmppave=1; tmppave<argparts.length; tmppave++){
					var argsubparts=argparts[tmppave].split("^^1^^");
					mypavstands[argparts[0]][tmppave-1]=new Array(argsubparts[0],argsubparts[1],argsubparts[2],argsubparts[3],argsubparts[4],argsubparts[5]);
				}
			}
		case "delStand":
			delete mystands[args];
			delete mypavstands[args];
			break;
		case "delAllStand":
			for (var dfscTmpProp in mystands){
				delete mystands[dfscTmpProp];
			}
			for (var dfpscTmpProp in mypavstands){
				delete mypavstands[dfpscTmpProp];
			}
			break;
		case "reorder":
			reListStands();
			break;
		case "printwindow":
			printplan();
			break;
		case "hallZoomed":
			//alert("Hall Zoomed '"+args+"'");
			break;
	}
}
function printplan(){
        printtmr=setTimeout(function(){window.print();},100);
}
function removeStand(rsName){
	showplan_DoFSCommand("delStand", rsName);
	//window.document.showplan.SetVariable("javaDel",rsName);
	getFlashMovieObject("showplan").SetVariable("javaDel",rsName);
	reListStands();
}
function removeAllStands(){
	showplan_DoFSCommand("delAllStand", "");
	//window.document.showplan.SetVariable("javaDelAll","all");
	getFlashMovieObject("showplan").SetVariable("javaDelAll","all");
	reListStands();
}
function reDrawFrame(){
	getFlashMovieObject("showplan").SetVariable("javaReDraw","");
}
function exampleAddStand(){
	window.document.showplan.SetVariable("javaAdd","3226");
	window.document.showplan.SetVariable("javaAdd","3326");
}
function sortByColumn(a, b) {
    var x = a[currSortCol].toLowerCase();
    var y = b[currSortCol].toLowerCase();
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}
function doSortBy(dsbCol){
	currSortCol=dsbCol;
	reListStands();
}
function newPage(npTgt){
    window.onbeforeunload = null;
    open(npTgt, "viewertgt");
    return false;
}
function zoomHall(zhTgt){
	window.document.showplan.SetVariable("javaZoom",zhTgt);
}
function reListStands(){
	var stndarr=new Array();
	var stndarrpoint=0;
	var quotchr=String.fromCharCode(34);
	var setnumtxt="";
	var setnumnum=0;
	var setnumbegin="";
	var outhtm="<table width='" + wdth + "' class='userstand' border='0' cellpadding='10' cellspacing='0'>";
	outhtm += "<tr><th scope='col' class='userstandid'>&nbsp;</th><th scope='col' class='userstandexhibitor'><a href='javascript:doSortBy(2);'>Exhibitor</a></th><th scope='col' class='userstandstand'><a href='javascript:doSortBy(0);'>Stand</a></th><th scope='col' class='userstandsection'><a href='javascript:doSortBy(1);'>Products</a></th><th scope='col' class='userstandweb'>Website</th><th scope='col' class='userstandemail'>Profile</th><th scope='col' class='userstandremove'><input type='button' value='Remove All' onclick='removeAllStands();' /></th></tr>";
	for (var tmpProp in mystands){
		stndarr[stndarrpoint]=new Array(tmpProp,mystands[tmpProp][0],mystands[tmpProp][1],mystands[tmpProp][2],mystands[tmpProp][3],mystands[tmpProp][4],mystands[tmpProp][5]);
		stndarrpoint++;
	}
	stndarr.sort(sortByColumn);
	for (var tmpRow in stndarr){
		setnumnum++;
/*		if (setnumnum==1){
			alert(stndarr[tmpRow][3]);
		}*/
		setnumtxt+=setnumbegin+stndarr[tmpRow][0]+","+setnumnum;
		setnumbegin=",";
		outhtm+="<tr>";
		//Floorplan reference number column
		outhtm+="<td class='userstandid'>"+setnumnum+"</td>";
		//Exhibitor name column
		if ((stndarr[tmpRow][2]=="")||(stndarr[tmpRow][2]=="undefined")){
			outhtm+="<td class='userstandexhibitor'>&nbsp;</td>";
		}else{
			outhtm+="<td class='userstandexhibitor'>"+stndarr[tmpRow][2]+"</td>";
		}
		//Stand number column
		outhtm+="<td class='userstandstand'>"+stndarr[tmpRow][0]+"</td>";
		if ((stndarr[tmpRow][1]=="")||(stndarr[tmpRow][1]=="undefined")){
			outhtm+="<td class='userstandsection'>&nbsp;</td>";
		}else{
			outhtm+="<td class='userstandsection'>"+stndarr[tmpRow][1]+"</td>";
		}
		//Exhibitor website column
		if ((stndarr[tmpRow][3]=="")||(stndarr[tmpRow][3]=="undefined")){
			outhtm+="<td class='userstandweb'>&nbsp;</td>";
		}else if (stndarr[tmpRow][3]=="##book##"){
			outhtm+="<td class='userstandweb'><input type='button' value='Book Now' onclick='newPage("+quotchr+""+quotchr+"); return false;' /></td>";
		}else{
			outhtm+="<td class='userstandweb'><input type='image' src='images/Grid/website.gif' value='Website' onclick='newPage("+quotchr+"http://"+stndarr[tmpRow][3]+quotchr+"); return false;' /></td>";
		}
		//Exhibitor contact column
		if ((stndarr[tmpRow][6]=="")||(stndarr[tmpRow][6]=="undefined")){
			outhtm+="<td class='userstandemail'>&nbsp;</td>";
		}else{
                    outhtm += "<td class='userstandemail'><input type='image' src='images/Grid/contact.gif' value='Contact' onclick='newPage(" + quotchr + "http://" + stndarr[tmpRow][6] + quotchr + ");return false;' /></td>";
                }
		//Remove entry column
		outhtm+="<td class='userstandremove'><input type='image' src='images/Grid/remove.gif' value='Remove' onclick='removeStand("+quotchr+stndarr[tmpRow][0]+quotchr+"); return false;' /></td>";
		outhtm+="</tr>";
	}
	var startpav="<tr><th class='pavhead'><th colspan='6' class='pavhead'><h4>Pavilion Stands</h4></tr>";
	for (var tmppavRow in mypavstands){
		setnumnum++;
		setnumtxt+=setnumbegin+tmppavRow+","+setnumnum;
		setnumbegin=",";
		var tmprwspn=" rowspan='"+mypavstands[tmppavRow].length+"'";
		outhtm+=startpav+"<tr class='pavtop'><td"+tmprwspn+" class='userstandid'>"+setnumnum+"</td><td"+tmprwspn+" class='userstandstand'>"+tmppavRow+"</td>";
		var endrow="";
		for (var tmppavExh=0; tmppavExh<mypavstands[tmppavRow].length; tmppavExh++){
			outhtm+=endrow;
			if ((mypavstands[tmppavRow][tmppavExh][0]=="")||(mypavstands[tmppavRow][tmppavExh][0]=="undefined")){
				outhtm+="<td class='userstandexhibitor'>&nbsp;</td>";
			}else{
				outhtm+="<td class='userstandexhibitor'>"+mypavstands[tmppavRow][tmppavExh][0]+"</td>";
			}
			if ((mypavstands[tmppavRow][tmppavExh][4]=="")||(mypavstands[tmppavRow][tmppavExh][4]=="undefined")){
				outhtm+="<td class='userstandweb'>&nbsp;</td>";
			}else if (mypavstands[tmppavRow][tmppavExh][4]=="##book##"){
				outhtm+="<td class='userstandweb'><input type='button' value='Book Now' onclick='newPage("+quotchr+""+quotchr+");' /></td>";
			}else{
				outhtm+="<td class='userstandweb'><input type='image' src='images/Grid/website.gif' value='Website' onclick='newPage("+quotchr+"http://"+mypavstands[tmppavRow][tmppavExh][4]+quotchr+");return false;' /></td>";
			}
			if ((mypavstands[tmppavRow][tmppavExh][1]=="")||(mypavstands[tmppavRow][tmppavExh][1]=="undefined")){
				outhtm+="<td class='userstandweb'>&nbsp;</td>";
			}else{
				outhtm+="<td class='userstandweb'><input type='image' src='images/Grid/website.gif' value='Website' onclick='newPage("+quotchr+"http://"+mypavstands[tmppavRow][tmppavExh][1]+quotchr+"); return false;' /></td>";
}
			
			if ((mypavstands[tmppavRow][tmppavExh][5]=="")||(mypavstands[tmppavRow][tmppavExh][5]=="undefined")){
				outhtm+="<td class='userstandemail'>&nbsp;</td>";
			}else{
				//.replace('@', 'eo%%wo').replace('.', 'ae%%wt') obfuscates the email address a bit to deter malicious crawlers and aggressive marketers.
			outhtm += "<td class='userstandemail'><input type='image' src='images/Grid/contact.gif' value='Contact' onclick='newPage(" + quotchr + "http://" + mypavstands[tmppavRow][tmppavExh][5] + quotchr + "); return false;' /></td>";
}
			
			if (endrow==""){
				outhtm+="<td"+tmprwspn+" class='userstandremove'><input type='image' src='images/Grid/remove.gif' value='Remove' onclick='removeStand("+quotchr+tmppavRow+quotchr+");return false;' /></td>";
			}
			endrow="</tr><tr>";
		}
		outhtm+="</tr>";
		startpav="";
	}
	outhtm+="</table>";
	window.document.showplan.SetVariable("javaSetNum",setnumtxt);
	document.getElementById("mystandlist").innerHTML=outhtm;
}
function BuildTable(){
	document.write("<div id='mystandlist'><table width='" + wdth + "' border='0' cellpadding='10' cellspacing='0' class='userstand'>\n");
	document.write("<tr><th scope='col' class='userstandid'>&nbsp;</th><th scope='col' class='userstandexhibitor'><a href='javascript:doSortBy(2);'>Exhibitor</a></th><th scope='col' class='userstandstand'><a href='javascript:doSortBy(0);'>Stand</a></th><th scope='col' class='userstandsection'><a href='javascript:doSortBy(1);'>Products</a></th><th scope='col' class='userstandweb'>Website</th><th scope='col' class='userstandweb'>Contact</th><th scope='col' class='userstandremove'><input type='button' value='Remove All' onclick='removeAllStands();' /></th></tr>\n");
	document.write("</table></div>\n");
}
if (navigator.appName && (navigator.appName.indexOf("Microsoft") != -1) && (navigator.userAgent.indexOf("Windows") != -1) && (navigator.userAgent.indexOf("Windows 3.1") == -1)) {
	document.write('<script language=\"VBScript\"\>\n');
	document.write('On Error Resume Next\n');
	document.write('Sub showplan_FSCommand(ByVal command, ByVal args)\n');
	document.write('	Call showplan_DoFSCommand(command, args)\n');
	document.write('End Sub\n');
	document.write('</script\>\n');
}
/*function BuildTable(){
	document.write("<div id='mystandlist'><table width='880' border='0' cellpadding='10' cellspacing='0' class='userstand'>\n");
	document.write("<tr><th scope='col' class='userstandid'>&nbsp;</th><th scope='col' class='userstandexhibitor'><a href='javascript:doSortBy(2);' title='To re-order your selection by exhibitor click here'>Exhibitor</a></th><th scope='col' class='userstandstand'><a href='javascript:doSortBy(0);' title='To re-order your selection by stand number click here'>Stand</a></th><th scope='col' class='userstandsection'><a href='javascript:doSortBy(1);' title='To re-order your selection by product category click here'>Product Categories</a></th><th scope='col' class='userstandsymbols'><a href='javascript:doSortBy(3);' title='To re-order your selection by website click here'>Website</a></th></tr>\n");
	document.write("</table></div>\n");
}
if (navigator.appName && (navigator.appName.indexOf("Microsoft") != -1) && (navigator.userAgent.indexOf("Windows") != -1) && (navigator.userAgent.indexOf("Windows 3.1") == -1)) {
	document.write('<script language=\"VBScript\"\>\n');
	document.write('On Error Resume Next\n');
	document.write('Sub showplan_FSCommand(ByVal command, ByVal args)\n');
	document.write('	Call showplan_DoFSCommand(command, args)\n');
	document.write('End Sub\n');
	document.write('</script\>\n');
}*/
