// ------------
// Tony's Code

// Global Variables
var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
var vmp;		//This global variable is for the VET content 
var pack = "infinitypackfinalfix_Scene.Cvt4823_Root.Pack.";
var partyStripes = 0;
var vmpLoaded = 0;
var hotKeysEnabled = false;
var loadTimer;
var flash;
var arModelData = {	'tgPartyStripe': "0",
										'ContainerPanel1': 'Red',
										'ContainerPanel2': 'Silver',
										'ContainerPanel3': "Black",
										'ContainerPanel4': "Black",
										'ContainerPanel5': "Red",
										'CenterFlapA': "Red",
										'CenterFlapB': "White",
										'CenterFlapC': "Black",
										'CenterFlapD': "White",
										'CenterFlapE': "Red",
										'Piping1': "Black",
										'Piping2': "Red",
										'Piping3': "Red",
										'Piping4': "Black",
										'BackPad': "Red",
										'InnerLeg': "Red",
										'LegPads': "Red",
										'RingCover': "Red",
										'CutAway': "Red",
										'Reserve': "Red",
										'BindingTape': "Black",
										'Risers': "Red",
										'Webbing': "Red",
										'PartyStripe': "Black",
										'PartyPinStripe1': "Silver",
										'PartyPinStripe2': "Silver",
										'flap1LogoFill': "Silver",
										'flap1LogoOutline': "Gold",
										'ringCoverLogoFill': "Silver",
										'ringCoverLogoOutline': "Gold",
										'ringCoverTextFill': "Gold",
										'ringCoverTextOutline': "Silver",
										'sideBodyLogoFill': "Silver",
										'sideBodyLogoOutline': "Gold",
										'sideBodyTextFill': "Gold",
										'sideBodyTextOutline': "Silver"};

var arInputData = {	'inOptMaterials': "Cordura",
										'inOptMainDeployment': "BOC",
										'inOptReserveHandle': "SoftPillow",
										'inOptHarness': "ThreadThru",
										'inOptHarWideLegStraps': "false",
										'inOptHarStainlessSteel': "false",
										'inOptHarArticulation': "false",
										'inOptHarFloatingLats': "false",
										'inOptRisers': "Type17",
										'inOpt3Ring': "Mini",
										'inOptMainPilotChute': "Hackey",
										'inOptMpcHandleColor': "Black",
										'inOptMpcHandleColor2': "Black",
										'inOptMpcPilotChuteColor': "Black",
										'inOptHookKnife': "Plastic",
										'inCanMainCanopy': "",
										'inCanMainSize': "",
										'inCanReserveCanopy': "",
										'inCanReserveSize': "",
										'inCanHeight': "",
										'inCanChest': "",
										'inCanHips': "",
										'inCanInseam': "",
										'inCanThigh': "",
										'inCanWeight': "",
										'inCanWaist': "",
										'inCanBack': "",
										'inCanTorso': "",
										'btnCanMale': "false",
										'btnCanFemale': "false",
										'inConSpecialInstructions': ""};

// Hook for Internet Explorer.
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 rig3_FSCommand(ByVal command, ByVal args)\n');
	document.write('	Call rig3_DoFSCommand(command, args)\n');
	document.write('End Sub\n');
	document.write('</script\>\n');
}

function fnInitialize(){
	// Position Flash Layer
	var yReferenceerence = document.getElementById('yReference');
	yReference.style.position = "absolute";
	yReference.style.zIndex = "1";
	yReference.style.top = "0px";
	yReference.style.left = "0px";
	
	
	// X Coord
	if(yReference.offsetLeft == 0) {  // Address a problem with Safari
		var velX = yReference.offsetParent.offsetLeft;
	} else {
		var velX = yReference.offsetLeft;
	}
	
	// Y Coord
	if(yReference.offsetTop == 0) {  // Address a problem with Safari
		var velY = yReference.offsetParent.offsetTop;
	} else {
		var velY = yReference.offsetTop;
	}
	
	// Position the 3d Model
	var renderObject = document.getElementById("renderWindow");
	renderObject.style.position = "absolute";
	renderObject.style.zIndex = "2";
	renderObject.style.top = parseInt(velY + 12) + "px";
	renderObject.style.left = parseInt(velX + 421) + "px";
}

function fnLoadModel(){
	// Somehow load the model here and avoid the race condition.
	loadTimer = setTimeout("fnFlashInitialize()",100);
}

function fnFlashInitialize(){
	if(vmpLoaded == 1){
		clearTimeout(loadTimer);
		
		var yReferenceerence = document.getElementById('yReference');
		// X Coord
		if(yReference.offsetLeft == 0) {  // Address a problem with Safari
			var velX = yReference.offsetParent.offsetLeft;
		} else {
			var velX = yReference.offsetLeft;
		}
		
		// Y Coord
		if(yReference.offsetTop == 0) {  // Address a problem with Safari
			var velY = yReference.offsetParent.offsetTop;
		} else {
			var velY = yReference.offsetTop;
		}
		
		// Position the 3d Model
		var renderObject = document.getElementById("renderWindow");
		renderObject.style.position = "absolute";
		renderObject.style.zIndex = "2";
		renderObject.style.top = parseInt(velY + 12) + "px";
		renderObject.style.left = parseInt(velX + 421) + "px";
		
		if(navigator.appName.indexOf("Microsoft") != -1) {
			flash = window.rig3;
		} else {
			flash = document.rig3;
		}
		
		// Initialize Party Stripes as Invisible
		flash.flPartyStripeAlpha('0');
		
		// Is there cookie data stored?
		if(readCookie('stCookieData') != null){
			// Parse and Load Values
			fnParseCookie(readCookie('stCookieData'));
		}
		fnToggleModelCollapse(0);
	}
}

function fnToggleModelCollapse(val){
	if(val == 1){
		if(navigator.appName.indexOf("Microsoft") == -1) {
			document.getElementById('renderWindow').style.zIndex = "-2";
			vmp.SetProperty("infinitypackfinalfix_Scene.Cvt4823_Root.Pack", "clps", "1");
			vmp.SetProperty("btn_Hyperview", "visb", "0");
			vmp.SetProperty("btn_PartyStripes", "visb", "0");
			vmp.SetProperty("widget_LegendSmall", "visb", "0");
		} else {
			vmp.SetProperty("infinitypackfinalfix_Scene.Cvt4823_Root.Pack", "clps", "1");
			vmp.SetProperty("btn_Hyperview", "visb", "0");
			vmp.SetProperty("btn_PartyStripes", "visb", "0");
			vmp.SetProperty("widget_LegendSmall", "visb", "0");
			document.getElementById('renderWindow').style.display = "none";
		}
		hotKeysEnabled = false;
	} else {
		if(navigator.appName.indexOf("Microsoft") == -1) {
			document.getElementById('renderWindow').style.zIndex = "2";
			vmp.SetProperty("infinitypackfinalfix_Scene.Cvt4823_Root.Pack", "clps", "0");
			vmp.SetProperty("btn_Hyperview", "visb", "1");
			vmp.SetProperty("btn_PartyStripes", "visb", "1");
			vmp.SetProperty("widget_LegendSmall", "visb", "1");
		} else {
			vmp.SetProperty("infinitypackfinalfix_Scene.Cvt4823_Root.Pack", "clps", "0");
			vmp.SetProperty("btn_Hyperview", "visb", "1");
			vmp.SetProperty("btn_PartyStripes", "visb", "1");
			vmp.SetProperty("widget_LegendSmall", "visb", "1");
			document.getElementById('renderWindow').style.display = "";
		}
		hotKeysEnabled = true;
	}
}

function rig3_DoFSCommand(command, args) {
	var rig3Obj = isInternetExplorer ? document.all.rig3 : document.rig3;
	switch(command){
		case 'alert':
			alert(args);
			break;
		case 'chooseColor':
			fnColorChange(args);
			break;
		case 'fnCollapseModel':
			fnToggleModelCollapse(args);
			break;
		case 'fnCreateCookie':
			// Parse args apart
			var comma = args.indexOf(",");
			var cName = args.slice(0,comma);
			var subArgs = args.slice((comma + 1),args.length);
				comma = subArgs.indexOf(",");
			var cValue = subArgs.slice(0,comma);
			var cDays = subArgs.slice((comma + 1),subArgs.length);
			createCookie(cName,cValue,cDays);
			break;
		case 'fnHyperview':
			fnHyperview();
			break;
		case 'flashInitialize':
			fnFlashInitialize();
			break;
		case 'fnLoadModel':
			fnLoadModel();
			break;
		case 'fnOrderForm':
			fnOrderForm(args);
			break;
		case 'fnPartyStripes':
			fnPartyStripes();
			break;
		case 'fnReset':
			fnReset();
			break;
		case 'fnSetCookie':
			fnSetCookie(args);
			break;
		case 'fnUpdateCookie':
			var comma = args.indexOf(",");
			var cName = args.slice(0,comma);
			var cValue = args.slice((comma + 1),args.length);
			arInputData[cName] = cValue;
			createCookie('','',90);
			break;
	}
}

function fnReset(){
	if(hotKeysEnabled == true){
		// Turn Party Stripes Off
			partyStripes = 1;
			fnPartyStripes();
			
		// Clear Color Values of the Model
			arModelData['tgPartyStripe'] = "0";
			arModelData['ContainerPanel1'] = "Red";
			arModelData['ContainerPanel2'] = "Silver";
			arModelData['ContainerPanel3'] = "Black";
			arModelData['ContainerPanel4'] = "Black";
			arModelData['ContainerPanel5'] = "Red";
			arModelData['CenterFlapA'] = "Red";
			arModelData['CenterFlapB'] = "White";
			arModelData['CenterFlapC'] = "Black";
			arModelData['CenterFlapD'] = "White";
			arModelData['CenterFlapE'] = "Red";
			arModelData['Piping1'] = "Black";
			arModelData['Piping2'] = "Red";
			arModelData['Piping3'] = "Red";
			arModelData['Piping4'] = "Black";
			arModelData['BackPad'] = "Red";
			arModelData['InnerLeg'] = "Red";
			arModelData['LegPads'] = "Red";
			arModelData['RingCover'] = "Red";
			arModelData['CutAway'] = "Red";
			arModelData['Reserve'] = "Red";
			arModelData['BindingTape'] = "Black";
			arModelData['Risers'] = "Red";
			arModelData['Webbing'] = "Red";
			arModelData['PartyStripe'] = "Black";
			arModelData['PartyPinStripe1'] = "Silver";
			arModelData['PartyPinStripe2'] = "Silver";
			arModelData['flap1LogoFill'] = "Silver";
			arModelData['flap1LogoOutline'] = "Gold";
			arModelData['ringCoverLogoFill'] = "Silver";
			arModelData['ringCoverLogoOutline'] = "Gold";
			arModelData['ringCoverTextFill'] = "Gold";
			arModelData['ringCoverTextOutline'] = "Silver";
			arModelData['sideBodyLogoFill'] = "Silver";
			arModelData['sideBodyLogoOutline'] = "Gold";
			arModelData['sideBodyTextFill'] = "Gold";
			arModelData['sideBodyTextOutline'] = "Silver";
		
		// Clear Input Data from the forms
			arInputData['inOptMaterials'] = "Cordura";
			arInputData['inOptMainDeployment'] = "BOC";
			arInputData['inOptReserveHandle'] = "MetalD";
			arInputData['inOptHarness'] = "ThreadThru";
			arInputData['inOptHarWideLegStraps'] = "false";
			arInputData['inOptHarStainlessSteel'] = "false";
			arInputData['inOptHarArticulation'] = "false";
			arInputData['inOptHarFloatingLats'] = "false";
			arInputData['inOptRisers'] = "Type17";
			arInputData['inOpt3Ring'] = "Mini";
			arInputData['inOptMainPilotChute'] = "Hackey";
			arInputData['inOptMpcHandleColor'] = "Black";
			arInputData['inOptMpcHandleColor2'] = "Black";
			arInputData['inOptMpcPilotChuteColor'] = "Black";
			arInputData['inOptHookKnife'] = "Plastic";
			arInputData['inCanMainCanopy'] = "";
			arInputData['inCanMainSize'] = "";
			arInputData['inCanReserveCanopy'] = "";
			arInputData['inCanReserveSize'] = "";
			arInputData['inCanHeight'] = "";
			arInputData['inCanChest'] = "";
			arInputData['inCanHips'] = "";
			arInputData['inCanInseam'] = "";
			arInputData['inCanThigh'] = "";
			arInputData['inCanWeight'] = "";
			arInputData['inCanWaist'] = "";
			arInputData['inCanBack'] = "";
			arInputData['inCanTorso'] = "";
			arInputData['btnCanMale'] = "";
			arInputData['btnCanFemale'] = "";
			arInputData['inConSpecialInstructions'] = "";
		
		// Delete the Personal Information in the Form
			flash.flResetContactInfo();
		
		// Update the Cookie to the Reset Values
			createCookie('','',90);
		
		// Reload the Model With Reset Colors
			fnLoadModel();
	}
}

function fnHyperview(){
	if(hotKeysEnabled == true){
		var hyperView = vmp.GetProperty('MTSBaseComponent','smod','mts_int');
		
		if(hyperView == 1) {
			vmp.SetProperty('MTSBaseComponent','smod','0','mts_int');
			vmp.SetProperty("hypv_widget_hyperview", "visb", "0");
			vmp.SetProperty("hypv_btn_Hyperview", "visb", "0");
			
			vmp.SetProperty("btn_Hyperview", "visb", "1");
			vmp.SetProperty("btn_PartyStripes", "visb", "1");
			vmp.SetProperty("widget_LegendSmall", "visb", "1");
		} else {
			vmp.SetProperty("btn_Hyperview", "visb", "0");
			vmp.SetProperty("btn_PartyStripes", "visb", "0");
			vmp.SetProperty("widget_LegendSmall", "visb", "0");
			vmp.SetProperty('MTSBaseComponent','smod','1','mts_int');
			vmp.SetProperty("hypv_widget_hyperview", "visb", "1");
			vmp.SetProperty("hypv_btn_Hyperview", "visb", "1");
		}
	}
}

function fnHideHyperviewBackdrop(){
	vmp.SetProperty("hypv_widget_hyperview", "visb", "0");
	vmp.SetProperty("hypv_btn_Hyperview", "visb", "0");
	vmp.SetProperty("hypv_btn_PartyStripes", "visb", "0");
	
	vmp.SetProperty("btn_Hyperview", "visb", "1");
	vmp.SetProperty("btn_PartyStripes", "visb", "1");
	vmp.SetProperty("widget_LegendSmall", "visb", "1");
}

function fnColorChange(args){
	var comma = args.indexOf(",");
	var part = args.slice(0,comma);
	var stTempString = args.slice((comma + 1),args.length);
	var comma = stTempString.indexOf(",");
	var rgb = stTempString.slice(0,comma);
	var colorName = stTempString.slice((comma + 1),stTempString.length);
	
	if(colorName != 'None'){
		if(part == 'ContainerPanel1a' || part == 'ContainerPanel1c'){
			arModelData['ContainerPanel1'] = colorName;
		} else if(part == 'ContainerPanel1b' && arModelData['tgPartyStripe'] == 1){
				arModelData['PartyStripe'] = colorName;
		} else {
			arModelData[part] = colorName;
		}
	} else {
		switch(part){
			case 'Piping1':
				rgb = vmp.GetProperty(pack + 'CenterFlapB', "difc");
				break;
			case 'Piping2':
				rgb = vmp.GetProperty(pack + 'CenterFlapC', "difc");
				break;
			case 'Piping3':
				rgb = vmp.GetProperty(pack + 'CenterFlapC', "difc");
				break;
			case 'Piping4':
				rgb = vmp.GetProperty(pack + 'CenterFlapD', "difc");
				break;
			case 'PartyPinStripe1':
			case 'PartyPinStripe2':
				rgb = vmp.GetProperty(pack + 'ContainerPanel1a', "difc");
				break;
		}
		arModelData[part] = colorName;
	}
	createCookie('','',90);

	vmp.SetProperty(pack + part, "difc", rgb);
	vmp.Render();
}

function fnSetCookie(args){
	var comma = args.indexOf(",");
	var part = args.slice(0,comma);
	var color = args.slice((comma + 1),args.length);
	
	arModelData[part] = color;
	
	createCookie('','',90);
}

function fnPartyStripes(){
	if(hotKeysEnabled == true){
		if(vmp.GetProperty('MTSBaseComponent','smod') != '1'){
			if(partyStripes == 0){
				// Toggle Flash Interface
				flash.flPartyStripeAlpha('100');
				
				// Set Party Stripe Colors
				flash.flLoadModelCookie('PartyPinStripe1',arModelData['PartyPinStripe1']);
				flash.flLoadModelCookie('PartyPinStripe2',arModelData['PartyPinStripe2']);
				flash.flLoadModelCookie('PartyStripe',arModelData['PartyStripe']);
				
				// Set Party Stripe Opacity
				vmp.SetProperty(pack + "PartyPinStripe1", "opac", "1");
				vmp.SetProperty(pack + "PartyPinStripe2", "opac", "1");
				vmp.Render();
				
				partyStripes = 1;
				arModelData['tgPartyStripe'] = 1;
				createCookie('','',90);
			} else {
				// Toggle Flash Interface
				flash.flPartyStripeAlpha('0');
				
				// Set Party Stripe Colors
				var xColor = vmp.GetProperty(pack + "ContainerPanel1a", "difc");
				vmp.SetProperty(pack + "ContainerPanel1b", "difc", xColor);
				
				// Set Party Stripe Opacity
				vmp.SetProperty(pack + "PartyPinStripe1", "opac", "0");
				vmp.SetProperty(pack + "PartyPinStripe2", "opac", "0");
				vmp.Render();
				
				partyStripes = 0;
				arModelData['tgPartyStripe'] = 0;
				createCookie('','',90);
			}
		}
	}
}

function fnOrderForm(){
	flash.flExecOrderForm();
}


// Cookie Functions
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	
	//Convert Array to String for Cookie Storage
		// Model Color Data
			var stCookieModelData = "";
			for (val in arModelData) {
				if(stCookieModelData == ""){
					stCookieModelData += val + ',' + arModelData[val];
				} else {
					stCookieModelData += "," + val + ',' + arModelData[val];
				}
			}
	
		// Form Input Data
			var stCookieInputData = "";
			for (val in arInputData) {
				if(stCookieInputData == ""){
					stCookieInputData += val + ',' + arInputData[val];
				} else {
					stCookieInputData += "," + val + ',' + arInputData[val];
				}
			}
			
	var stCookieData = stCookieModelData + "," + stCookieInputData;
	document.cookie = "stCookieData="+stCookieData+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function fnParseCookie(val){
	var arTemp = val.split(",");
	
	for (val in arModelData) {
		for(i=0;i<arTemp.length;) {
			if(val == arTemp[i]) {
				arModelData[val] = arTemp[(i+1)]; // Load in Javascript Variable
				flash.flLoadModelCookie(arTemp[i],arTemp[(i+1)]); // Load into Flash and Change Model Accordingly
				i = arTemp.length;
			}
			i += 2;
		}
	}
	
	for (val in arInputData) {
		for(i=0;i<arTemp.length;) {
			if(val == arTemp[i]) {
				arInputData[val] = arTemp[(i+1)]; // Load in Javascript Variable
				flash.flLoadInputCookie(arTemp[i],arTemp[(i+1)]); // Load into Flash and Change Model Accordingly
				i = arTemp.length;
			}
			i += 2;
		}
	}
}



// Tony's Code
// ------------