var $j = jQuery.noConflict();
var expressInstallVars = "";
var embedObjectAsset = "VisaBrandSite.swf";
var embedObjectId = "VisaBrandSite";

function getBase(){
    var loc = document.location.toString().toLowerCase();
    var root = String( loc.split("?")[0] ).split("#")[0];
    var protocol = root.split("//")[0] + "//";
    var base = protocol + root.split(protocol)[1];
    return base;
}

function getFlashVars(){
	var fv = {
		base:getBase()
		,sharedDataId:"GoSharedConfig"
		,preloader:"flash/swf/VisaPreloaderVisual.swf"
		,preloadee:"flash/swf/VisaShell.swf"
		,config:"flash/xml/Config_nonav.xml"
		,locale:"en-US"
		//,mute:"true"
		,loggerMode:"1"
		,loggerLevel:"0"
		,loggerTarget:"console"
		,nonav:"true"
		//,loggerTarget:"localconnection"
		//,loggerInterval:"yes"
		//,loggerFilter:"Raybox
		//,loggerTime:"no"
		//,loggerElapse:"no"
	}
	var a = [];
	for (var i in fv){a.push(i + "=" + fv[i]);}
	var s = a.join("&");

	return s;
}

//adapted from swfobject, which for some reason doesn't work inside Visa's proxy
function detect(){
	if(navigator.plugins && navigator.mimeTypes.length){
		var x = navigator.plugins["Shockwave Flash"];
		if(x && x.description) {
			var versionNum = parseInt(x.description.split(".")[0].split(" ")[2]);
			var revision = parseInt(x.description.split(".")[1].split("r")[1]);
		}
	}else{
		var IEversion = parseInt($j.browser.version.split(".")[0]);
		if (IEversion > 6){
			// for vista express install breaks, let the browser take care of the upgrade
			return true;
		} else {
			// really don't like doing this way...
			document.write('<scr' + 'ipt language=VBScript\> \n');
			document.write('on error resume next \n');
			document.write('flash9Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.9"))) \n');
			document.write('flash10Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.10"))) \n');
			document.write('</scr' + 'ipt\> \n'); 
			
			if (window.flash9Installed || window.flash10Installed){
				return true;
			}
			
			return false;
		}
	}
	
	//express install doesn't work for browsers < 6
	if (versionNum && versionNum > 6){
		if (versionNum < 9){
			return false;
		} else if (versionNum == 9 && revision < 115){
			return false;
		}
		return true;
	} else {
		return false;
	}
	
}

$j(document)
	.ready(function()
	{
		$j("a[href=sitemap.html]").hide();
		checkDeeplink();
	});

function checkDeeplink(){
	var qStringArray = new String(location.search).substr(1).split("&");
	var i = 0;
	while (qStringArray.length > 0){
		var shiftVal = qStringArray.shift();
		if (shiftVal.indexOf("deeplink") > -1)
		{
			if(typeof pageTracker!="undefined"){
				pageTracker._trackPageview( "/?"+shiftVal);
			}
			var loc = shiftVal.split("=")[1];
			document.location = "#/"+loc;
			break;
		}
	}
}

function writeEmbed(){
	var qString = new String(location.search).substr(1) + expressInstallVars;
	
	var eString = '';
	// object
	eString += '<object ';
	eString += 'id="'+embedObjectId+'" ';
	eString += 'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
	eString += 'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" ';
	eString += 'width="100%" ';
	eString += 'height="100%" ';
	eString += 'align="middle" ';
	eString += '>';
	//params
	eString += '<param name="movie" value="'+embedObjectAsset+'" />';
	eString += '<param name="base" value="'+getBase()+'" />';
	eString += '<param name="flashVars" value="'+getFlashVars()+'" />';
	eString += '<param name="allowFullScreen" value="true" />';
	eString += '<param name="allowNetworking" value="all" />';
	eString += '<param name="allowScriptAccess" value="always" />';
	eString += '<param name="bgcolor" value="#FFFFFF" />';
	eString += '<param name="wmode" value="opaque" />';
	eString += '<param name="quality" value="high" />';
	// embed
	eString += '<embed ';
	eString += 'id="'+embedObjectId+'" ';
	eString += 'name="'+embedObjectId+'" ';
	eString += 'src="'+embedObjectAsset+'" ';
	eString += 'base="'+getBase()+'" ';
	eString += 'flashVars="'+getFlashVars()+'" ';
	eString += 'allowFullScreen="true" ';
	eString += 'allowNetworking="all" ';
	eString += 'allowScriptAccess="always" ';
	eString += 'bgcolor="#FFFFFF" ';
	eString += 'width="100%" ';
	eString += 'height="100%" ';
	eString += 'quality="high" ';
	eString += 'wmode="opaque" ';
	eString += 'type="application/x-shockwave-flash" ';
	eString += 'pluginspage="http://www.macromedia.com/go/getflashplayer" ';
	eString += '/>';
	eString += '</object>';
	document.write(eString);
}


function writeNoFlash(){
	var noFlashString = '<table width="100%" height="550" border="0" cellpadding="0" cellspacing="0">';
	noFlashString += '       <tr>';
	noFlashString += '           <td class="content" valign="middle" align="center" style="font-family: Arial, Helvetica, sans-serif; color:#999;">';
	noFlashString += '           <img src="images/noflash.jpg" width="423" height="128"/>';
	noFlashString += '               <p>This site makes use of Adobe Flash software. To experience it the way we intended,<br />you need the latest Adobe Flash Player, a plug-in for your Web Browser that can play the content we\'ve created.</p>';
	noFlashString += '               <p><a href="http://adobe.com/go/getflashplayer">Click here</a> to get/upgrade Flash now.</p>';
	noFlashString += '           </td>';
	noFlashString += '       </tr>';
	noFlashString +='    </table>';
	
	document.write(noFlashString);
}

// detect iphone
var iphone = navigator.userAgent.toLowerCase().indexOf('iphone') > -1;

if (iphone){
	document.location = "iphone.html";
} else {
	if (detect()){  
		writeEmbed();
	} else {
		writeNoFlash();
	}
}