/**
 * Replaces one image with another by appending/removing _o to the main filename.
 *
 * @param el	The element being rolled over
 */
function imageRollover(el, img) {
	el = el.getElementsByTagName("img")[0]; //Grab the element we really want, the image
	// If the image is active, leave it alone
	if(el.className == "active") {
		return;
	}
	
	// Second image wasn't specified
	if(!img) {
		if(el.src.indexOf("_o") == -1) {
			img=el.src.replace(/(.*)(\.(gif|jpe?g|png))/gi, "$1_o$2");
		}
		else {
			img=el.src.replace(/(.*)_o(\.(gif|jpe?g|png))/gi, "$1$2");
		}
	}
	
	// If the image isn't already over
	el.src=img;
}

function toggleActive(el) {
	if(el.className != "active") {
		el.className = "active";
	}
	else {
		el.className = "";
	}
}

function clearField(el) {
	el.value='';
	el.className='';
}


var currentFlashObj;
var currentNavObj;

$(function() {
  $('.nav_dropdown').hover(function(){}, function() {
    killMenu();
  });
});

function menuDisplay(obj) {
	var el;
	// Flash element
	if(obj.getFlashElement) {
		el = obj.getFlashElement();
		if(obj != currentFlashObj) {
			killMenu();
		}
		// Already have a menu for this item
		else {
			return;
		}
		currentFlashObj = obj;
		obj.changeCSS([
	      '.sIFR-root { background-color: #000000; font-size: 16px;}'
	      ,'a { text-decoration: none; }'
	      ,'a:link { color: #FF0000; letter-spacing: .75; }'
		  ,'.active_item { color: #FF0000; letter-spacing: .75; }' 
	      ,'a:hover { color: #FF0000; }'
	    ]);
	}
	// Link element
	else if(obj.href) {
		el = obj;
		el.className = "active";
		if(el != currentNavObj) {
			killMenu();
		}
		// Already have a menu for this item
		else {
			return;
		}
		currentNavObj = obj;
	}
	else {
		return;
	}
	
	document.getElementById("nav").className = "active";
	
	var x = el.offsetLeft;
	
	var menu = $(el).parents('li').children('ul');
	menu.show();
	menu.css("left", x+"px")
}

function killMenu() {
	$('.nav_dropdown').hide();
  $('#nav').removeClass('active');
	
	if(currentFlashObj) {
		currentFlashObj.changeCSS([
      	'.sIFR-root { background-color: #000000; font-size: 16px;}'
      	,'a { text-decoration: none; }'
      	,'a:link { color: #a7a9ac; letter-spacing: .75; }'
		,'.active_item { color: #FF0000; letter-spacing: .75; }'
      	,'a:hover { color: #FF0000; }'
    	]);
		currentFlashObj = null;
	}
	else if(currentNavObj) {
		currentNavObj.className = "";
		currentNavObj = null;
	}
}

function swapMapImage(region) {
	switch(language) {
		case 1:
			var short_lang = 'en';
		break;
		case 2:
			var short_lang = 'fr';
		break;
		case 3:
			var short_lang = 'du';
		break;
		case 4:
			var short_lang = 'jp';
		break;
		case 5:
			var short_lang = 'de';
		break;
		default:
			var short_lang = 'en';
	}
	
	var map = document.getElementById('locationsmap');
	switch(region) {
		case 'eu':
			map.src = '/equinix/images/template/map_eu_'+short_lang+'.gif'
		break;
		case 'ap':
			map.src = '/equinix/images/template/map_ap_'+short_lang+'.gif'
		break;
		case 'na':
			map.src = '/equinix/images/template/map_na_'+short_lang+'.gif'
		break;
		case 'all':
		default:
			map.src = '/equinix/images/template/map_all.gif'
		break;
	}
}

function swapMapImageOld(region) {
	switch(language) {
  		case 1:
  			var short_lang = 'en';
  		break;
  		case 2:
  			var short_lang = 'fr';
  		break;
  		case 3:
  			var short_lang = 'du';
  		break;
  		case 4:
  			var short_lang = 'jp';
  		break;
  		case 5:
  			var short_lang = 'de';
  		break;
  		default:
  			var short_lang = 'en';
  	}

  	var map = document.getElementById('locationsmap');
  	switch(region) {
  		case 'eu':
  			map.src = '/equinix/images/template/map_eu_'+short_lang+'.jpg'
  		break;
  		case 'ap':
  			map.src = '/equinix/images/template/map_ap_'+short_lang+'.jpg'
  		break;
  		case 'na':
  			map.src = '/equinix/images/template/map_na_'+short_lang+'.jpg'
  		break;
  		case 'all':
  		default:
  			map.src = '/equinix/images/template/map_all_'+short_lang+'.jpg'
  		break;
  	}
}

function displayOLs(obj) {
	obj = obj.parentNode.getElementsByTagName('ol')[0];
	if(obj) {
		obj.style.display = (obj.style.display == 'none') ? 'block' : 'none';
	}
}

function showAdminControls(link, id, show) {
	var control = document.getElementById('controls');
	if(control) {
		control.parentNode.removeChild(control);
	}
	
	var controls = document.getElementById('controlswrapper');
	link = link.parentNode;
	
	var div = document.createElement("div");
	div.setAttribute("id", "controls");
	div.innerHTML = controls.innerHTML;
	
	div.getElementsByTagName('a')[0].href += id;
	div.getElementsByTagName('a')[1].href += id;
	div.getElementsByTagName('a')[2].href += id;
	
	var ol = link.getElementsByTagName('ol')[0];
	if(ol) {
		link.insertBefore(div, ol);
	}
	else {
		link.appendChild(div);
	}
	
	switch(show) {
		case 'add':
			div.getElementsByTagName('a')[0].className = 'hidden';
			div.getElementsByTagName('a')[2].className = 'hidden';
		break;
		case 'editdelete':
			div.getElementsByTagName('a')[1].className = 'hidden';
		break;
		case 'addedit':
			div.getElementsByTagName('a')[2].className = 'hidden';
		break;
		case 'edit':
			div.getElementsByTagName('a')[1].className = 'hidden';
			div.getElementsByTagName('a')[2].className = 'hidden';
		break;
		case 'delete':
			div.getElementsByTagName('a')[0].className = 'hidden';
			div.getElementsByTagName('a')[1].className = 'hidden';
		break;
	}
}

function showCMSSection(div) {
	document.getElementById('div_fr').className = 'hidden';
	document.getElementById('div_du').className = 'hidden';
	document.getElementById('div_jp').className = 'hidden';
	document.getElementById('div_de').className = 'hidden';
	
	document.getElementById(div).className = 'visible';
}

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 = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function verifyForm(type) {
	var form = document.getElementsByTagName('form')[1];
	var valid = true;
	switch(type) {
	  case 'salesforce':
			if(form.first_name.value == '') {
				valid = false;
				break;
			}
			if(form.last_name.value == '') {
				valid = false;
				break;
			}
			if(form.email.value == '') {
				valid = false;
				break;
			}
			if(form.phone.value == '') {
				valid = false;
				break;
			}
			if(form.company.value == '') {
				valid = false;
				break;
			}
			if(document.getElementById('URL').value == '') {
				valid = false;
				break;
			}
			if(document.getElementById('00N80000002oo6O').selectedIndex == 0) {
				valid = false;
				break;
			}
			if(document.getElementById('00N800000041sp3').selectedIndex == 0) {
				valid = false;
				break;
			}
			if(document.getElementById('00N80000003JJcq').selectedIndex == 0) {
				valid = false;
				break;
			}
			if(document.getElementById('00N800000041spN').selectedIndex == 0) {
				valid = false;
				break;
			}
			if(document.getElementById('00N800000041sot').value == '') {
				valid = false;
				break;
			}
			if(document.getElementById('00N800000041spY').selectedIndex == 0) {
				valid = false;
				break;
			}
		break;
		case 'sales':
			if(form.firstname.value == '') {
				valid = false;
				break;
			}
			if(form.lastname.value == '') {
				valid = false;
				break;
			}
			if(form.company.value == '') {
				valid = false;
				break;
			}
			if(form.companyurl2.value == '') {
				valid = false;
				break;
			}
			if(form.hq.selectedIndex == 0) {
				valid = false;
				break;
			}
			if(form.email.value == '') {
				valid = false;
				break;
			}
			if(form.region.selectedIndex == 0) {
				valid = false;
				break;
			}
			if(form.market.selectedIndex == 0) {
				valid = false;
				break;
			}
			if(form.requirements.value == '') {
				valid = false;
				break;
			}
			if(form.space.selectedIndex == 0) {
				valid = false;
				break;
			}
		break;
		case 'contact':
			if(form.firstname.value == '') {
				valid = false;
				break;
			}
			if(form.lastname.value == '') {
				valid = false;
				break;
			}
			if(form.company.value == '') {
				valid = false;
				break;
			}
			if(form.title.value == '') {
				valid = false;
				break;
			}
			if(form.phone.value == '') {
				valid = false;
				break;
			}
			if(form.email.value == '') {
				valid = false;
				break;
			}
			if(form.address1.value == '') {
				valid = false;
				break;
			}
			if(form.address2.value == '') {
				valid = false;
				break;
			}
			if(form.request.selectedIndex == 0) {
				valid = false;
				break;
			}
			if(form.region.selectedIndex == 0) {
				valid = false;
				break;
			}
			if(form.requirements.value == '') {
				valid = false;
				break;
			}
		break;
		case 'event':
			if(form.firstname.value == '') {
				valid = false;
				break;
			}
			if(form.lastname.value == '') {
				valid = false;
				break;
			}
			if(field_options[document.getElementById('event').selectedIndex].company_row == 1) {
  			if(form.company.value == '') {
  				valid = false;
  				break;
  			}
  			if(form.title.value == '') {
  				valid = false;
  				break;
  			}
		  }
			if(form.email.value == '') {
				valid = false;
				break;
			}
			if(form.num_guests.value >= 1) {
				if(form.guest1_firstname.value == '') {
					valid = false;
					break;
				}
				if(form.guest1_lastname.value == '') {
					valid = false;
					break;
				}
				if(field_options[document.getElementById('event').selectedIndex].company_row == 1) {
				  if(form.guest1_company.value == '') {
  					valid = false;
  					break;
  				}
  				if(form.guest1_title.value == '') {
  					valid = false;
  					break;
  				}
				}
			}
			if(form.num_guests.value >= 2) {
				if(form.guest2_firstname.value == '') {
					valid = false;
					break;
				}
				if(form.guest2_lastname.value == '') {
					valid = false;
					break;
				}
				if(field_options[document.getElementById('event').selectedIndex].company_row == 1) {
				  if(form.guest2_company.value == '') {
  					valid = false;
  					break;
  				}
  				if(form.guest2_title.value == '') {
  					valid = false;
  					break;
  				}
				}
			}
			if(form.num_guests.value >= 3) {
				if(form.guest3_firstname.value == '') {
					valid = false;
					break;
				}
				if(form.guest3_lastname.value == '') {
					valid = false;
					break;
				}
				if(field_options[document.getElementById('event').selectedIndex].company_row == 1) {
				  if(form.guest3_company.value == '') {
  					valid = false;
  					break;
  				}
  				if(form.guest3_title.value == '') {
  					valid = false;
  					break;
  				}
				}
			}
			if(form.num_guests.value >= 4) {
				if(form.guest4_firstname.value == '') {
					valid = false;
					break;
				}
				if(form.guest4_lastname.value == '') {
					valid = false;
					break;
				}
				if(field_options[document.getElementById('event').selectedIndex].company_row == 1) {
				  if(form.guest4_company.value == '') {
  					valid = false;
  					break;
  				}
  				if(form.guest4_title.value == '') {
  					valid = false;
  					break;
  				}
				}
			}
			if(form.num_guests.value >= 5) {
				if(form.guest5_firstname.value == '') {
					valid = false;
					break;
				}
				if(form.guest5_lastname.value == '') {
					valid = false;
					break;
				}
				if(field_options[document.getElementById('event').selectedIndex].company_row == 1) {
				  if(form.guest5_company.value == '') {
  					valid = false;
  					break;
  				}
  				if(form.guest5_title.value == '') {
  					valid = false;
  					break;
  				}
				}
			}
		break;
	}
	
	if(!valid) {
		var error = '';
		switch(language) {
			case 2:
				error = "Veuillez compléter tous les champs obligatoires avant envoi. L'astérisque (*) indique que le champ doit obligatoirement être renseigné.";
			break;
			case 3:
				error = "Gelieve te vullen alle vereiste gebieden in alvorens voor te leggen. Velden met een sterretje (*) zijn verplicht.";
			break;
			case 4:
				error = "堤出する前にすべての必須分野に記入しなさい。*は入力必須項目です。";
			break;
			case 5:
				error = "Vor der Unterbreitung ergänzen Sie bitte alle erforderlichen Felder. Mit * gekennzeichnete Felder müssen ausgefüllt werden.";
			break;
			default:
			case 1:
				error = "Please fill out all required fields before submitting. An asterisk (*) indicates a required field.";
			break;
		}
		
		document.getElementById('description').innerHTML = "<div class='alert'>"+error+"</div><br/>";
		
		window.location = '#';
	}
	
	return valid;
}

function displayHelp(obj) {
	obj = obj.parentNode.getElementsByTagName('span')[0];
	if(obj) {
		obj.style.display = (obj.style.display == 'none') ? 'block' : 'none';
	}
}


var displayMenu = true;

/**
 * Toggles an object's visibility
 *
 * @param obj	The object to toggle visibility on.
 * @param force	Boolean which, if set, will force the visibility on or off.
 *
 * @return void
 **/
function swapVisible(obj, force, display_style) {
	if(undefined === display_style) {
		display_style = 'block';
	}
	
	if(isIE7) {
		display_style = 'block';
	}
	
	if(obj && force == undefined) {
		obj.style.display = (obj.style.display == 'none') ? display_style : 'none';
	}
	else {
		if(force) {
			obj.style.display = display_style;
		}
		else {
			obj.style.display = 'none';
		}
	}
}







function highlight_div(checkbox_node)
{
    label_node = checkbox_node.parentNode;

    if (checkbox_node.checked)
	{
		label_node.style.backgroundColor='#0a246a';
		label_node.style.color='#fff';
	}
	else
	{
		label_node.style.backgroundColor='#fff';
		label_node.style.color='#000';
	}
}

//For the list collapsing
		var openLists = [], oIcount = 0;
		//*******************************************************************************
		// Nisad Sivcevic - 20050107
		var oPl = '<img src="/images/suit/plus.gif" alt="+" class="clean" border="0">'
		var oPlImg = 'plus.gif';
		var oMnImg = 'minus.gif';
		// you can also try this images
		//var oPl = '<img src="./arrow_down.gif" align="baseline" border="0" hspace="1" height="12" width="12">'
		//var oPlImg = 'arrow_down.gif';
		//var oMnImg = 'arrow_up.gif';
		//*******************************************************************************
		function compactMenu(oID,oAutoCol,oPlMn,oMinimalLink) {
			if( !document.getElementsByTagName || !document.childNodes || !document.createElement ) { return; }
			var baseElement = document.getElementById( oID ); if( !baseElement ) { return; }
			compactChildren( baseElement, 0, oID, oAutoCol, oPlMn, baseElement.tagName.toUpperCase(), oMinimalLink && oPlMn );
		}
		function compactChildren( oOb, oLev, oBsID, oCol, oPM, oT, oML ) {
			if( !oLev ) { oBsID = escape(oBsID); if( oCol ) { openLists[oBsID] = []; } }
			for( var x = 0, y = oOb.childNodes; x < y.length; x++ ) { if( y[x].tagName ) {
				//for each immediate LI child
				var theNextUL = y[x].getElementsByTagName( oT )[0];
				if( theNextUL ) {
					//collapse the first UL/OL child
					theNextUL.style.display = 'none';
					//create a link for expanding/collapsing
					var newLink = document.createElement('A');
					newLink.setAttribute( 'href', '#' );
					newLink.onclick = new Function( 'clickSmack(this,' + oLev + ',\'' + oBsID + '\',' + oCol + ',\'' + escape(oT) + '\');return false;' );
					//wrap everything upto the child U/OL in the link
					if( oML ) { var theHTML = ''; } else {
						var theT = y[x].innerHTML.toUpperCase().indexOf('<'+oT);
						var theA = y[x].innerHTML.toUpperCase().indexOf('<A');
						var theHTML = y[x].innerHTML.substr(0, ( theA + 1 && theA < theT ) ? theA : theT );
						while( !y[x].childNodes[0].tagName || ( y[x].childNodes[0].tagName.toUpperCase() != oT && y[x].childNodes[0].tagName.toUpperCase() != 'A' ) ) {
							y[x].removeChild( y[x].childNodes[0] ); }
					}
					y[x].insertBefore(newLink,y[x].childNodes[0]);
					y[x].childNodes[0].innerHTML = oPM + theHTML.replace(/^\s*|\s*$/g,'');
					theNextUL.MWJuniqueID = oIcount++;
					compactChildren( theNextUL, oLev + 1, oBsID, oCol, oPM, oT, oML );
		} } } }
		function clickSmack( oThisOb, oLevel, oBsID, oCol, oT ) {
			if( oThisOb.blur ) { oThisOb.blur(); }
			oThisOb = oThisOb.parentNode.getElementsByTagName( unescape(oT) )[0];
			if( oCol ) {
				for( var x = openLists[oBsID].length - 1; x >= oLevel; x-=1 ) { if( openLists[oBsID][x] ) {
					openLists[oBsID][x].style.display = 'none'; 
					//*******************************************************************************
					// Nisad Sivcevic - 20050107
					openLists[oBsID][x].previousSibling.innerHTML = openLists[oBsID][x].previousSibling.innerHTML.replace(oMnImg,oPlImg); 
					//*******************************************************************************
					if( oLevel != x ) { openLists[oBsID][x] = null; }
				} }
				if( oThisOb == openLists[oBsID][oLevel] ) { openLists[oBsID][oLevel] = null; }
				else {	oThisOb.style.display = 'block'; 
						//*******************************************************************************
						// Nisad Sivcevic - 20050107
						oThisOb.previousSibling.innerHTML = oThisOb.previousSibling.innerHTML.replace(oPlImg,oMnImg); 
						//*******************************************************************************
						openLists[oBsID][oLevel] = oThisOb; }
			} else { oThisOb.style.display = ( oThisOb.style.display == 'block' ) ? 'none' : 'block'; }
		}
		function stateToFromStr(oID,oFStr) {
			if( !document.getElementsByTagName || !document.childNodes || !document.createElement ) { return ''; }
			var baseElement = document.getElementById( oID ); if( !baseElement ) { return ''; }
			if( !oFStr && typeof(oFStr) != 'undefined' ) { return ''; } if( oFStr ) { oFStr = oFStr.split(':'); }
			for( var oStr = '', l = baseElement.getElementsByTagName(baseElement.tagName), x = 0; l[x]; x++ ) {
				if( oFStr && MWJisInTheArray( l[x].MWJuniqueID, oFStr ) && l[x].style.display == 'none' ) { l[x].parentNode.getElementsByTagName('a')[0].onclick(); }
				else if( l[x].style.display != 'none' ) { oStr += (oStr?':':'') + l[x].MWJuniqueID; }
			}
			return oStr;
		}
		function MWJisInTheArray(oNeed,oHay) { for( var i = 0; i < oHay.length; i++ ) { if( oNeed == oHay[i] ) { return true; } } return false; }
		function selfLink(oRootElement,oClass,oExpand) {
			if(!document.getElementsByTagName||!document.childNodes) { return; }
			oRootElement = document.getElementById(oRootElement);
			for( var x = 0, y = oRootElement.getElementsByTagName('a'); y[x]; x++ ) {
				if( y[x].getAttribute('href') && !y[x].href.match(/#$/) && getRealAddress(y[x]) == getRealAddress(location) ) {
					y[x].className = (y[x].className?(y[x].className+' '):'') + oClass;
					if( oExpand ) {
						oExpand = false;
						for( var oEl = y[x].parentNode, ulStr = ''; oEl != oRootElement && oEl != document.body; oEl = oEl.parentNode ) {
							if( oEl.tagName && oEl.tagName == oRootElement.tagName ) { ulStr = oEl.MWJuniqueID + (ulStr?(':'+ulStr):''); } }
						stateToFromStr(oRootElement.id,ulStr);
		} } } }
		function getRealAddress(oOb) { return oOb.protocol + ( ( oOb.protocol.indexOf( ':' ) + 1 ) ? '' : ':' ) + oOb.hostname + ( ( typeof(oOb.pathname) == typeof(' ') && oOb.pathname.indexOf('/') != 0 ) ? '/' : '' ) + oOb.pathname + oOb.search; }
