function findElements(name,tag){
	e=new Array();
	if (tag) e=(document.getElementsByTagName)?document.getElementsByTagName(name):null;
	else e=(document.getElementsByName)?document.getElementsByName(name):null;
	return e;
}
function findElement(id){
	e=(document.getElementById)?document.getElementById(id):(document.all)?document.all[id]:(document.layers)?document.layers[id]:null;
	if (!e) e=findElements(id,true)[0];
	if (!e) e=findElements(id)[0];
	if (e) e.css=(e.style)?e.style:e;
	return e;
}
function writeLayer(id,data){
	obj=findElement(id);
	if (obj&&typeof obj.innerHTML!="undefined") obj.innerHTML=data;
}
var onloadArray=new Array();
var bodyOnload=false;
var bodyLoaded=false;
function add_onload(functionName){
	if (bodyOnload!=true){
		if (findElements('BODY',true)[0]!=null){
			var doc_body=findElements('BODY',true)[0];
			if (typeof(doc_body.onload)=="function"&&doc_body.onload.toString().indexOf('executeFunctions')==-1) onloadArray[onloadArray.length]=doc_body.onload;
			bodyOnload=true;
		}
	}
	onloadArray[onloadArray.length]=functionName;
	window.onload=executeFunctions;
}
function executeFunctions(){
	for (var i in onloadArray){
		if (typeof(onloadArray[i])=="function") onloadArray[i].apply();
		else eval(onloadArray[i]);
	}
	bodyLoaded=true;
}
function randomString(){
	var chars="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
	var string_length=8;
	var randomstr='';
	for (var i=0; i<string_length; i++){
		var rnum=Math.floor(Math.random() * chars.length);
		randomstr += chars.substring(rnum,rnum+1);
	}
	return randomstr;
}
function testSessionCookie(){
	var rndStr=randomString();
	document.cookie="testSessionCookie=Enabled"+rndStr;
	if (getCookieValue("testSessionCookie")==("Enabled"+rndStr)) return true;
	else return false;
}
function writeSessionCookie(cookieName,cookieValue){
	if (testSessionCookie()){
		document.cookie=escape(cookieName)+"="+escape(cookieValue)+"; path=/";
		return true;
	}else return false;
}
function getCookieValue(cookieName){
	var exp=new RegExp(escape(cookieName)+"=([^;]+)");
	if (exp.test(document.cookie+";")){
		exp.exec(document.cookie+";");
		return unescape(RegExp.$1);
	}else return false;
}
/*****************************************************************************************************************************************************************************************************************************/
//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated.	All rights reserved.
var isIE	= (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion(){
	var version;
	var axo;
	var e;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision){
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray				 = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString				= tempArray[1];			// "2,0,0,11"
			versionArray			= tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray			= versionStr.split(".");
		}
		var versionMajor			= versionArray[0];
		var versionMinor			= versionArray[1];
		var versionRevision	 = versionArray[2];

					// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}
/*****************************************************************************************************************************************************************************************************************************/
function findFlash(v){
	if (DetectFlashVer(v)>=v) return true;
	else return false;
}
function createFlash(width,height,loc,majorVersion){
	l=location.href;
	p=(l.indexOf('?')>-1)?l.substring(l.indexOf('?')+1,l.length):"";
	if (getCookieValue("bb_smb_home")==false){
		h="";
		writeSessionCookie("bb_smb_home",1);
	}else h=1;
	if (DetectFlashVer(majorVersion)){
		flashObject=""+
		"<OBJECT WIDTH="+width+" HEIGHT="+height+" CLASSID=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" CODEBASE=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version="+majorVersion+",0,0,0\">\r"+
		"	<PARAM NAME=movie VALUE="+loc+"?"+randomString()+"&"+p+"&h="+h+">\r"+
		"	<PARAM NAME=wmode VALUE=transparent>\r"+
		"	<PARAM NAME=quality VALUE=high>\r"+
		"	<PARAM NAME=scale VALUE=exactfit>\r"+
		"	<PARAM NAME=allowscriptaccess VALUE=always>\r"+
		"	<EMBED SRC="+loc+"?"+randomString()+"&"+p+"&h="+h+" WIDTH="+width+" HEIGHT="+height+" ALLOWSCRIPTACCESS=always WMODE=transparent SCALE=exactfit QUALITY=high TYPE=\"application/x-shockwave-flash\" PLUGINSPAGE=\"http://www.macromedia.com/go/getflashplayer\"></EMBED>\r"+
		"</OBJECT>";
		return flashObject;
	}else return "To view this content you need the latest version of Flash. <A HREF=http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash TARGET=_blank HIDEFOCUS>Download it here</A>.";
}
function popupWindow(location,width,height,fullscreen,resizable,scrollbars,status){
	if (width==null||width==undefined) width=913;
	if (height==null||height==undefined) height=570;
	if (fullscreen==null||fullscreen==undefined) fullscreen='no';
	if (resizable==null||resizable==undefined) resizable='yes';
	if (scrollbars==null||scrollbars==undefined) scrollbars='yes';
	if (status==null||status==undefined) status='yes';
	var rndStr=randomString();
	new_window=window.open(location,rndStr,"fullscreen="+fullscreen+",width="+width+",height="+height+",top="+Math.round((screen.availHeight/2)-(height/2))+",left="+Math.round((screen.availWidth/2)-(width/2))+",resizable="+resizable+",scrollbars="+scrollbars+",status="+status+",location=no,toolbar=no,menubar=no,directories=no,titlebar=no,personalbar=no");
	if (new_window) return false;
	else return true;
}
function launchEvent(x){
	pop=(x==""||x==undefined)?popupWindow('https://www.blackberry.com/handmark'):popupWindow(x);
}
var zipcode=/^\d{5}$/;
function validate(){
	z=findElement('zipcode');
	v=z.value;
	if (zipcode.test(v)){
		z.className="";
		pop=popupWindow("http://www.blackberry.com/SOHOStoreLocator/locator.do?zipcode="+v+"&radius=2&layout=smb",1000);
	}else{
		z.className="error";
	}
	return false;
}
function blurred(x){
	if (x.value==''){
		x.maxlength=14;
		x.value='Enter ZIP Code';
	}
}
function clicked(x){
	x.value='';
	x.className='';
	x.maxlength=5;
}
var pngArray=new Array();
var blank="img/!.gif";
function addPngImage(e){
	fixPNG(e);
	e.attachEvent("onpropertychange",function(){propertyChanged();});
}
function fixPNG(e){
	e.runtimeStyle.behavior="none";
	e.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+e.src+"')";
	e.PSRC=e.src;
	e.src=blank;
}
function propertyChanged(){
	var e=event.srcElement;
	var pName=event.propertyName;
	if (pName!=="src"||RegExp(blank).test(e.src)) return;
	else fixPNG(e);
}
function preloadImages(img){
	preload=new Array();
	for (var i=0; i<img.length; i++){
		preload[i]=new Image();
		preload[i].src=img[i];
	}
}
var imgArray=new Array();
function setupHSRC(){
	if (!document.getElementById) return;
	var images=findElements('IMG',true);
	for (var i=0; i<images.length; i++){
		if (images[i].getAttribute('psrc')) images[i].setAttribute('src',images[i].getAttribute('psrc'));
		if (images[i].getAttribute('hsrc')){
			imgArray.push(images[i].getAttribute('hsrc'));
			images[i].onmouseover=function(){
				this.oSRC=this.getAttribute('src');
				if (this.oSRC.indexOf("!.gif")>-1) this.oSRC=this.getAttribute('psrc');
				this.setAttribute('src',this.getAttribute('hsrc'));
			};
			images[i].onmouseout=function(){
				if (this.oSRC) this.setAttribute('src',this.oSRC);
			};
		}
	}
	preloadImages(imgArray);
}
function setupImages(){
	var preImg=new Array();
	preImg.push('img/nav_1_ovr.gif');
	preImg.push('img/nav_2_ovr.gif');
	preImg.push('img/nav_3_ovr.gif');
	preImg.push('img/nav_4_ovr.gif');
	preloadImages(preImg);
	setupHSRC();
}
add_onload('setupImages()');
