/*********************************************************************
VIEWER.JS | Version 1.2.5
Original author: Dave Dunn (LA Marketing)
Show: IPEX 2010
Last Modified by: Jonathan Pritchard
Last Modified on: 23/11/09

----------------------------------------------------------------------
NOTES:
- Version 1.2.02 inludes pavillion grouping in the event plan grid as featured in EOW2009. Implemented independently of version 1.2.01 for EWEC2010.
- Version 1.2.5 implements parts of the conference system pre-release (release will be 1.3)
----------------------------------------------------------------------
**********************************************************************/
function makeFlash(mfStands,mfZoom){
	var wdth=857;
	var hght=494;
	var wmmode="";
	var fvars="LicKey=V2ygJabB0NushIMQmWw1sOvHpnxOYm6y&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=="transparent"){
		wrtStrf+="<param name='wmode' value='transparent' />";
	}
	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=="transparent"){
		wrtStrf+=" wmode='transparent'";
	}
	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^^");
					//alert(argsubparts[0] + "\n" + argsubparts[1] + "\n" + argsubparts[2] + "\n" + argsubparts[3] + "\n" + argsubparts[4] + "\n" + argsubparts[5]);
					mypavstands[argparts[0]][tmppave-1]=new Array(argsubparts[0],argsubparts[1],argsubparts[2],argsubparts[3],argsubparts[4],argsubparts[5]);
				}
			}
			break;
		case "delStand":
			delete mystands[args];
			delete mypavstands[args];
                        conf_remove_stand(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":
			printtmr=setTimeout("printplan();",100);
			break;
		case "hallZoomed":
			//alert("Hall Zoomed '"+args+"'");
			break;
	}
}
function printplan(){
	window.print();
}
function removeStand(rsName){
	showplan_DoFSCommand("delStand", rsName);
	//window.document.showplan.SetVariable("javaDel",rsName);
	getFlashMovieObject("showplan").SetVariable("javaDel",rsName);
        removeConf(rsName);
}
function removeAllStands(){
	showplan_DoFSCommand("delAllStand", "");
	//window.document.showplan.SetVariable("javaDelAll","all");
	getFlashMovieObject("showplan").SetVariable("javaDelAll","all");
	removeAllConf();
}


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='1024' 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);' 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 pruduct category click here'>Product Categories</a></th><th scope='col' class='userstandsymbols'><a href='javascript:doSortBy(3);' title='To re-order your selection by enhanced entries click here'>Enhanced Entries</a></th><th scope='col' class='userstandweb'>&nbsp;</th><th scope='col' class='userstandremove'><input type='image' src='images/grid_removeall.jpg' 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++;
                //check for conference references to this stand:
                check_conf_assoc(stndarr[tmpRow][0], setnumnum)

		setnumtxt+=setnumbegin+stndarr[tmpRow][0]+","+setnumnum;
		setnumbegin=",";
		outhtm+="<tr>";
		outhtm+="<td class='userstandid'>"+setnumnum+"</td>";
		if ((stndarr[tmpRow][2]=="")||(stndarr[tmpRow][2]=="undefined")){
			outhtm+="<td class='userstandexhibitor'>&nbsp;</td>";
		}else{
			outhtm+="<td class='userstandexhibitor'>"+stndarr[tmpRow][2]+"</td>";
		}
		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>";
		}
		
		if ((stndarr[tmpRow][3]=="")||(stndarr[tmpRow][3]=="undefined")){
			//there is no data so output blank symbol:
			outhtm+="<td class='userstandsymbols'>&nbsp</td>";
		}else{
			outhtm+="<td class='userstandsymbols'>" + stndarr[tmpRow][3] + "";
		}
		
		
		if ((stndarr[tmpRow][6]=="")||(stndarr[tmpRow][6]=="undefined")){
			outhtm+="<td class='userstandweb'>&nbsp;</td>";
		}else if (stndarr[tmpRow][6]=="##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_profile.jpg' value='Profile' onclick='newPage(" + quotchr + "http://" + stndarr[tmpRow][6] + quotchr + ");return false;' /></td>";
		}
		//if ((stndarr[tmpRow][4]=="")||(stndarr[tmpRow][4]=="undefined")){
		//	outhtm+="<td class='userstandemail'>&nbsp;</td>";
		//}else{
		//	outhtm+="<td class='userstandemail'><input type='image' src='images/grid_email.jpg' value='Email' onclick='newPage("+quotchr+"mailto:"+stndarr[tmpRow][4]+quotchr+");' /></td>";
		//}
		outhtm+="<td class='userstandremove'><input type='image' src='images/grid_remove.jpg' value='Remove' onclick='removeStand("+quotchr+stndarr[tmpRow][0]+quotchr+");' /></td>";
		outhtm+="</tr>\r\n";
	}
	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="";
		var userstandpavClass = "";
		for (var tmppavExh=0; tmppavExh<mypavstands[tmppavRow].length; tmppavExh++){
			outhtm+=endrow;
			
			if (endrow==""){
				//outhtm+=startpav;
				outhtm+="<tr class='pavtop'><td"+tmprwspn+" class='userstandid " + userstandpavClass + "'>"+setnumnum+"</td>";
				
				if ((mypavstands[tmppavRow][tmppavExh][0]=="")||(mypavstands[tmppavRow][tmppavExh][0]=="undefined")){
					outhtm+="<td class='userstandexhibitor " + userstandpavClass + "'>&nbsp;</td>";
				}else{
					outhtm+="<td class='userstandexhibitor " + userstandpavClass + "'>"+mypavstands[tmppavRow][tmppavExh][0]+"</td>";
				}
				
				outhtm+="<td"+tmprwspn+" class='userstandstand " + userstandpavClass + "'>"+tmppavRow+"</td>";
				
			} else {
				if ((mypavstands[tmppavRow][tmppavExh][0]=="")||(mypavstands[tmppavRow][tmppavExh][0]=="undefined")){
					outhtm+="<td class='userstandexhibitor " + userstandpavClass + "'>&nbsp;</td>";
				}else{
					outhtm+="<td class='userstandexhibitor " + userstandpavClass + "'>"+mypavstands[tmppavRow][tmppavExh][0]+"</td>";
				}
			}
			
			//pavillion product categories (only displayed for the first in the pavillion list)
                        if ((mypavstands[tmppavRow][tmppavExh][1]=="")||(mypavstands[tmppavRow][tmppavExh][1]=="undefined")||endrow!=""){
                                outhtm+="<td class='userstandsection'>&nbsp;</td>";
                        }else{
                                outhtm+="<td class='userstandsection'>"+mypavstands[tmppavRow][tmppavExh][1]+"</td>";
                        }

			//Create enhanced cell
			if ((mypavstands[tmppavRow][tmppavExh][2]=="")||(mypavstands[tmppavRow][tmppavExh][2]=="undefined")){
				outhtm+="<td class='userstandsymbols " + userstandpavClass + "'>&nbsp;</td>";
			}else{
				outhtm+="<td class='userstandsymbols " + userstandpavClass + "'>"+mypavstands[tmppavRow][tmppavExh][2]+"</td>";
}
			
			if ((mypavstands[tmppavRow][tmppavExh][5]=="")||(mypavstands[tmppavRow][tmppavExh][5]=="undefined")){
				outhtm+="<td class='userstandweb " + userstandpavClass + "'>&nbsp;</td>";
			}else if (mypavstands[tmppavRow][tmppavExh][5]=="##book##"){
				outhtm+="<td class='userstandweb " + userstandpavClass + "'><input type='button' value='Book Now' onclick='newPage("+quotchr+""+quotchr+");' /></td>";
			}else{
				outhtm += "<td class='userstandweb " + userstandpavClass + "'><input type='image' src='images/grid_profile.jpg' value='Profile' onclick='newPage(" + quotchr + "http://" + mypavstands[tmppavRow][tmppavExh][5] + quotchr + ");return false;' /></td>";
			}
			if (endrow==""){
				
				outhtm+="<td"+tmprwspn+" class='userstandremove " + userstandpavClass + "'><input type='image' src='images/grid_remove.jpg' value='Remove' onclick='removeStand("+quotchr+tmppavRow+quotchr+");' /></td>";
				userstandpavClass = "userstandpav";
			}
			endrow="</tr><tr>";
		}
		outhtm+="</tr><tr>\r\n";
		startpav="";
	}

        //generate conference row elements and add to outhtm:
	outhtm += generate_conf_grid();
        
	outhtm+="</table>";
	//window.document.showplan.SetVariable("javaSetNum",setnumtxt);
	getFlashMovieObject("showplan").SetVariable("javaSetNum",setnumtxt);
	document.getElementById("mystandlist").innerHTML=outhtm;
}
function BuildTable(){
	document.write("<div id='mystandlist'><table width='1024' 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 enhanced entries click here'>Enhanced Entries</a></th><th scope='col' class='userstandweb'>&nbsp;</th><th scope='col' class='userstandremove'><input type='image' src='images/grid_removeall.jpg' 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');
}
