




<!-- Breadcrumb trail support ->

var tree = null;
var rootDir = "Mobile Partner Program";

buildTree();

function createBcTrail() {
	var result = tree.findByPath(document.location.href);
	var text;
	var trailHTML;
	if(result == null)
		trailHTML = "Mobile Partner";
	else
		trailHTML = result.getBcHtml(false);
	var bcDiv = document.getElementById("bcTrail");
	if(bcDiv)
		bcDiv.innerHTML = trailHTML;
}


// class TreeNode
//
//   A TreeNode represents a node in the navigation tree for a site.  Each
//   node has a name and path as well as a link to its parent (if not root)
//   and each child (through the "children" array).
//
//   constructor TreeNode(TreeNode parent, String name, String path)
//     "parent" should be null for the root node
//     "name" is the *unique* name for the page
//     "path" is the *absolute* path to the page (just the path, not a full URL)

function TreeNode(parent, name, path) {
	this.name = name;
	this.path = path;
	this.parent = parent;
	this.children = new Array();
	this.hidden = false;
	
	if(parent != null)
		parent.add(this);

		
	// setHidden(boolean hidden)
	//   If "hidden" is true, hides a TreeNode so that it will not display itself
	//   when calling getBcHtml().  This is especially useful when several
	//   top-level TreeNodes exist.  They can be created as children of a
	//   hidden root node so all reside in the same tree.
	
	this.setHidden = setHidden;
	function setHidden(hidden) {
		this.hidden = hidden;
	}
	
	
	// add(TreeNode)
	//   You'll have to figure this one out on your own.
	
	this.add = add;
	function add(node) {
		this.children[this.children.length] = node;
	}
	
	
	// toString(String prefix)
	//   Return a textual representation of the tree structure beneath
	//   this node.  "prefix" specifies any characters that should be
	//   prepended to each line of output.  It is used for indentation
	//   while recursing.
	//
	//   This method is useful for debugging purposes, as it can be used to
	//   ensure the entire tree structure is correct.
	
	this.toString = toString;
	function toString(prefix) {
		if(prefix==null)
			prefix = "";
		text = prefix + this.name + ":  " + this.path + "\n";
		for(var i=0; i<this.children.length; i++) {
			text += this.children[i].toString(prefix+"   ");
		}
		return text;
	}
	
	
	// findByName(String name)
	//   Recursively searches for a node with a name matching the "name"
	//   parameter.  Each node will simply return itself if its name matches.
	//   Otherwise, it asks each child to do the same.  (Hence, "recursively".)
	
	this.findByName = findByName;
	function findByName(name) {
		if(this.name == name)
			return this;
		var result;
		for(var i=0; i<this.children.length; i++) {
			result = this.children[i].findByName(name);
			if(result != null)
				return result;
		}
		return null;
	}

	
	// findByPath(String path)
	//   Recursively searches for a node with a path matching the "fullPath"
	//   parameter.  A match occurs when all of the following apply:
	//
	//     1) The node's path exists in fullPath in its entirety.
	//     2) No characters exist in fullPath after the node's path. (The last
	//        character of the node's path must be the last character of fullPath.)
	//
	//   Each node will simply return itself if its path matches.
	//   Otherwise, it asks each child to do the same.  (Hence, "recursively".)
	
	this.findByPath = findByPath;
	function findByPath(fullPath) {
		if( ! this.hidden ) {
			var shortPath =this.path;
			if( (shortPath == fullPath) ||
				( fullPath.indexOf(shortPath) >= 0  &&  (shortPath.length + fullPath.indexOf(shortPath)) == fullPath.length) ) {
				return this;
			}
		}
		var result;
		for(var i=0; i<this.children.length; i++) {
			result = this.children[i].findByPath(fullPath);
			if(result != null)
				return result;
		}
		return null;
	}


	// getBcHtml(boolean createLink)
	//   Using recursion, generate and return a string containing the HTML
	//   required to render the breadcrumb trail.  "createLink" specifies whether
	//   a link should be created for the TreeNode on which the method is invoked.
  //   Subsequent (recursive) calls to a parent always pass "true".
	
	this.getBcHtml = getBcHtml;
	function getBcHtml(createLink) {
		if(this.hidden)
					return null;
		var bc;
		if(createLink)
			bc = "<a href=\"" + relative(this.path,glbBaseURL) + "\">" + this.name + "</a>";
		else
			bc = this.name;
		if(this.parent != null) {
			var pPath = this.parent.getBcHtml(true);
			if(pPath != null)
				bc = this.parent.getBcHtml(true) + " &gt; " + bc;
		}
		return bc;
	}
}


buildTree()
//   Generated by navigation.tpl

function buildTree() {

	var tempNode, tempNode2, tempNode3, tempNode4;

	
	
	
	
		
		
				
				
					var root = new TreeNode(null, "MasterCard OnLine", "http://www.mastercardonline.com");
				
			
	
		
		
			tempNode = new TreeNode(root, "Overview", "/index.html");
				
			
	
		
		
			tempNode = new TreeNode(root, "Partner Directory", "/partner_directory.html");
				
			
	
		
		
			tempNode = new TreeNode(root, "Mobile MasterCard PayPass", "/mobile_mastercard_paypass.html");
				
			
	
		
		
			tempNode = new TreeNode(root, "Mobile MasterCard PayPass Tags", "/mobile_mastercard_paypass_tags.html");
				
			
	
		
		
			tempNode = new TreeNode(root, "Mobile Provisioning", "/mobile_provisioning.html");
				
			
	
		
		
			tempNode = new TreeNode(root, "Mobile MasterCard Moneysend", "/mobile_mastercard_moneysend.html");
				
			
	
		
		
			tempNode = new TreeNode(root, "Documentation", "/documentation.html");
				
			
	
		
		
			tempNode = new TreeNode(root, "Approvals", "/approvals.html");
				
			
	
		
		
			tempNode = new TreeNode(root, "Contact Us", "/contact_us.html");
				
			
	
	

	tree = root;
}


<!-- Menu Generation -->

/***********************************************************************************
*	(c) Ger Versluis 2000 version 5.411 24 December 2001 (updated Jan 31st, 2003 by Dynamic Drive for Opera7)
*	For info write to menus@burmees.nl		          *
*	You may remove all comments for faster loading	          *		
***********************************************************************************/

var LowBgColor='#E5E5CD';				// Background color when mouse is not over
var LowSubBgColor='#E5E5CD';		// Background color when mouse is not over on subs
var HighBgColor='#ffcc33';			// Background color when mouse is over
var HighSubBgColor='#ffcc33';		// Background color when mouse is over on subs
var FontLowColor='black';				// Font color when mouse is not over
var FontSubLowColor='black';		// Font color subs when mouse is not over
var FontHighColor='black';			// Font color when mouse is over
var FontSubHighColor='black';		// Font color subs when mouse is over
var BorderColor='#999966';			// Border color
var BorderSubColor='#999966';		// Border color for subs
var BorderWidth=1;							// Border width
var BorderBtwnElmnts=1;					// Border between elements 1 or 0
var FontFamily="verdana"				// Font family menu items
var FontSize=7.5;								// Font size menu items
var FontBold=1;									// Bold menu items 1 or 0
var FontItalic=0;								// Italic menu items 1 or 0
var MenuTextCentered='left';		// Item text position 'left', 'center' or 'right'
var MenuCentered='left';				// Menu horizontal position 'left', 'center' or 'right'
var MenuVerticalCentered='top';	// Menu vertical position 'top', 'middle','bottom' or static
var ChildOverlap=0;							// horizontal overlap child/ parent
var ChildVerticalOverlap=0;			// vertical overlap child/ parent
var StartTop=120;								// Menu offset x coordinate
var StartLeft=5;								// Menu offset y coordinate
var VerCorrect=0;								// Multiple frames y correction
var HorCorrect=0;								// Multiple frames x correction
var LeftPaddng=3;								// Left padding
var TopPaddng=2;								// Top padding
var FirstLineHorizontal=0;			// SET TO 1 FOR HORIZONTAL MENU, 0 FOR VERTICAL
var MenuFramesVertical=1;				// Frames in cols or rows 1 or 0
var DissapearDelay=1000;				// delay before menu folds in
var TakeOverBgColor=1;					// Menu frame takes over background color subitem frame
var FirstLineFrame='navig';			// Frame where first level appears
var SecLineFrame='space';				// Frame where sub levels appear
var DocTargetFrame='space';			// Frame where target documents appear
var TargetLoc='';								// span id for relative positioning
var HideTop=0;									// Hide first level when loading new document 1 or 0
var MenuWrap=1;									// enables/ disables menu wrap 1 or 0
var RightToLeft=0;							// enables/ disables right to left unfold 1 or 0
var UnfoldsOnClick=0;						// Level 1 unfolds onclick/ onmouseover
var WebMasterCheck=0;						// menu tree checking on or off 1 or 0
var ShowArrow=1;								// Uses arrow gifs when 1
var KeepHilite=1;								// Keep selected path highligthed
//var Arrws=[relative("/mobile_partner/images/grx_navtri-cascade.gif", glbBaseURL),7,9];	// Arrow source, width and height
var Arrws=[relative("/mobile_partner/images/grx_navtri-cascade.gif", glbBaseURL),7,9];	// Arrow source, width and height
var NoOffFirstLineMenus=11;

function BeforeStart(){return}
function AfterBuild(){return}
function BeforeFirstOpen(){return}
function AfterCloseAll(){return}

// Menu tree
//	MenuX=new Array(Text to show, Link, background image (optional), number of sub elements, height, width);
//	For rollover images set "Text to show" to:  "rollover:Image1.jpg:Image2.jpg"

//relative("/mobile_partner/images/nav_rule.gif", this.baseURL)
//Menu1=new Array("","",relative("/mobile_partner/images/red_top.gif", glbBaseURL),0,19,150);
Menu1=new Array("","",relative("/mobile_partner/images/info_top.gif", glbBaseURL),0,18,195);




				
			

Menu2 = new Array("MasterCard OnLine", relative("http://www.mastercardonline.com",glbBaseURL), "", 0, 17, 195);
	
	

				
			

Menu3 = new Array("Overview", relative("/index.html",glbBaseURL), "", 0, 17, 195);
	
	

				
			

Menu4 = new Array("Partner Directory", relative("/partner_directory.html",glbBaseURL), "", 0, 17, 195);
	
	

				
			

Menu5 = new Array("Mobile MasterCard PayPass", relative("/mobile_mastercard_paypass.html",glbBaseURL), "", 0, 17, 195);
	
	

				
			

Menu6 = new Array("Mobile MasterCard PayPass Tags", relative("/mobile_mastercard_paypass_tags.html",glbBaseURL), "", 0, 17, 195);
	
	

				
			

Menu7 = new Array("Mobile Provisioning", relative("/mobile_provisioning.html",glbBaseURL), "", 0, 17, 195);
	
	

				
			

Menu8 = new Array("Mobile MasterCard Moneysend", relative("/mobile_mastercard_moneysend.html",glbBaseURL), "", 0, 17, 195);
	
	

				
			

Menu9 = new Array("Documentation", relative("/documentation.html",glbBaseURL), "", 0, 17, 195);
	
	

				
			

Menu10 = new Array("Approvals", relative("/approvals.html",glbBaseURL), "", 0, 17, 195);
	
	

				
			

Menu11 = new Array("Contact Us", relative("/contact_us.html",glbBaseURL), "", 0, 17, 195);
	
	





//////////////////////////////////////////////////////////


function MCImage(s, w, h) {
	this.src = s;
	this.width = new Number(w);
	this.height = new Number(h);	
}

function NavLink(URL, Label, base) {
	this.label = Label;
	this.key = URL;
	this.url = relative(URL, base);
	this.inPath = false;
	this.subnav = new Array();	
}

function NavSystem() {
	this.nPrimary = null;
	this.nSecondary = null;
	this.nTertiary = null;
	this.baseURL = "";
	this.subnav = new Array();
}		

function setNavPath($obj) {
		var obj = $obj;
		obj.inPath = true;
		if (obj.parent) setNavPath(obj.parent);
}			
	
function getCookie(name) {
	var allcookies = document.cookie;
	var pos = allcookies.indexOf(name+"=");
	var value = "";
	if (pos != -1) {
		var start = pos + name.length + 1;
		var end = allcookies.indexOf(";", start);
		if (end == -1) end = allcookies.length;
		var value = allcookies.substring(start, end);
		value = unescape(value);
	}
	return value;
}

function setCookie(name, value) {
	var nextyear = new Date();
	nextyear.setFullYear(nextyear.getFullYear() + 1);
	
	var sCookie = name + "=" + escape(value);
	sCookie += "; expires=" + nextyear.toGMTString();
	sCookie += "; path=/";
	//sCookie += "; domain=mastercard.com";
	
	document.cookie = sCookie;
}

function deleteCookie(name) {
	var lastyear = new Date();
	lastyear.setFullYear(lastyear.getFullYear() - 1);
	
	document.cookie = name + "=; expires=" + lastyear.toGMTString();
}

function pop(url) {

    var winwidth = 780; // width of the new window
    var winheight = 500; // height of the new window
    var winleft = 75;
    var wintop = 125;

    if(parseInt(navigator.appVersion)>=4) {

        winleft = (screen.width / 2) - (winwidth / 2); // center the window right to left
        wintop = (screen.height / 2) - (winheight / 2); // center the window top to bottom

    }

    var attrib =  'top=' + wintop + ',left=' + winleft + ',height=' + winheight + ',width=' + winwidth + ', directories=yes,location=yes,menubar=yes,scrollbars=yes,status=yes,toolbar=yes,resizable=yes';

    window.open(url, "PopUp", attrib);
    return void(null);

}

function relative(resourceURL, locationURL) {
	var relativePath = "";
	
	if (resourceURL.indexOf("http://") == 0) {
		relativePath = "javascript:pop('" + resourceURL + "')";
		return relativePath;
	}
	if (resourceURL.indexOf("https://") == 0) {
		relativePath = "javascript:navigateTo('" + resourceURL + "')";
		return relativePath;
	}

	aResource = resourceURL.substring(1, resourceURL.length).split("/");
	aLocation = locationURL.substring(1, locationURL.length).split("/");

	// first, remove anything in either path that is common
	var start = 0;
	
	for (m=0; m<aResource.length; m++) {
		if (m <= aLocation.length && aResource[m] != aLocation[m]) {
			start = m;			
			break;					
		}
	}
	
	aResource = aResource.slice(start, aResource.length);
	aLocation = aLocation.slice(start, aLocation.length);
	
	// then, get the relativePathative path from locationURL to the root
	var n = 0;
	while (n < aLocation.length-1) {
		relativePath += "../";
		n++;		
	}

	// lastly, add each remaining element of the resource path to the relativePath path.
	for (p=0; p<aResource.length; p++) {
		relativePath = (p==aResource.length-1)?relativePath + aResource[p]:relativePath + aResource[p] + "/";
	}

	return relativePath;
}

function navigateTo (urlNav) 
{ 
  if ( (urlNav.indexOf("http://") == -1) && (urlNav.indexOf("https://") == -1) ) 
  {
   var sdrelNav = relative(urlNav,glbBaseURL); 
   urlNav = sdrelNav; 
  } 
  location.href(urlNav);
 } 



