// Browser Detect  v2.1.6
// documentation: http://www.dithered.com/javascript/browser_detect/index.html
// license: http://creativecommons.org/licenses/by/1.0/
// code by Chris Nott (chris[at]dithered[dot]com)


function BrowserDetect() {
   var ua = navigator.userAgent.toLowerCase(); 

   // browser engine name
   this.isGecko       = (ua.indexOf('gecko') != -1 && ua.indexOf('safari') == -1);
   this.isAppleWebKit = (ua.indexOf('applewebkit') != -1);

   // browser name
   this.isKonqueror   = (ua.indexOf('konqueror') != -1); 
   this.isSafari      = (ua.indexOf('safari') != - 1);
   this.isOmniweb     = (ua.indexOf('omniweb') != - 1);
   this.isOpera       = (ua.indexOf('opera') != -1); 
   this.isIcab        = (ua.indexOf('icab') != -1); 
   this.isAol         = (ua.indexOf('aol') != -1); 
   this.isIE          = (ua.indexOf('msie') != -1 && !this.isOpera && (ua.indexOf('webtv') == -1) ); 
   this.isMozilla     = (this.isGecko && ua.indexOf('gecko/') + 14 == ua.length);
   this.isFirefox     = (ua.indexOf('firefox/') != -1 || ua.indexOf('firebird/') != -1);
   this.isNS          = ( (this.isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && !this.isOpera && !this.isSafari && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) );
   
   // spoofing and compatible browsers
   this.isIECompatible = ( (ua.indexOf('msie') != -1) && !this.isIE);
   this.isNSCompatible = ( (ua.indexOf('mozilla') != -1) && !this.isNS && !this.isMozilla);
   
   // rendering engine versions
   this.geckoVersion = ( (this.isGecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 );
   this.equivalentMozilla = ( (this.isGecko) ? parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) ) : -1 );
   this.appleWebKitVersion = ( (this.isAppleWebKit) ? parseFloat( ua.substring( ua.indexOf('applewebkit/') + 12) ) : -1 );
   
   // browser version
   this.versionMinor = parseFloat(navigator.appVersion); 
   
   // correct version number
   if (this.isGecko && !this.isMozilla) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('/', ua.indexOf('gecko/') + 6) + 1 ) );
   }
   else if (this.isMozilla) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) );
   }
   else if (this.isIE && this.versionMinor >= 4) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) );
   }
   else if (this.isKonqueror) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('konqueror/') + 10 ) );
   }
   else if (this.isSafari) {
      this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('safari/') + 7 ) );
   }
   else if (this.isOmniweb) {
      this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('omniweb/') + 8 ) );
   }
   else if (this.isOpera) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera') + 6 ) );
   }
   else if (this.isIcab) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab') + 5 ) );
   }
   
   this.versionMajor = parseInt(this.versionMinor); 
   
   // dom support
   this.isDOM1 = (document.getElementById);
   this.isDOM2Event = (document.addEventListener && document.removeEventListener);
   
   // css compatibility mode
   this.mode = document.compatMode ? document.compatMode : 'BackCompat';

   // platform
   this.isWin    = (ua.indexOf('win') != -1);
   this.isWin32  = (this.isWin && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1 || ua.indexOf('xp') != -1) );
   this.isMac    = (ua.indexOf('mac') != -1);
   this.isUnix   = (ua.indexOf('unix') != -1 || ua.indexOf('sunos') != -1 || ua.indexOf('bsd') != -1 || ua.indexOf('x11') != -1)
   this.isLinux  = (ua.indexOf('linux') != -1);
   
   // specific browser shortcuts
   this.isNS4x = (this.isNS && this.versionMajor == 4);
   this.isNS40x = (this.isNS4x && this.versionMinor < 4.5);
   this.isNS47x = (this.isNS4x && this.versionMinor >= 4.7);
   this.isNS4up = (this.isNS && this.versionMinor >= 4);
   this.isNS6x = (this.isNS && this.versionMajor == 6);
   this.isNS6up = (this.isNS && this.versionMajor >= 6);
   this.isNS7x = (this.isNS && this.versionMajor == 7);
   this.isNS7up = (this.isNS && this.versionMajor >= 7);
   
   this.isIE4x = (this.isIE && this.versionMajor == 4);
   this.isIE4up = (this.isIE && this.versionMajor >= 4);
   this.isIE5x = (this.isIE && this.versionMajor == 5);
   this.isIE55 = (this.isIE && this.versionMinor == 5.5);
   this.isIE5up = (this.isIE && this.versionMajor >= 5);
   this.isIE6x = (this.isIE && this.versionMajor == 6);
   this.isIE6up = (this.isIE && this.versionMajor >= 6);
   
   this.isIE4xMac = (this.isIE4x && this.isMac);
}
var browser = new BrowserDetect();
var messageArray = "";
function validateContact(theForm)
{
	this.messageArray = "";
	$("errorMessageBox").innerHTML = "";
	var validationStatus = true;
	if(theForm.name.value == "")
	{
		this.messageArray += "<li>Please provide a name.</li>"
		validationStatus = false;
	}
	if(!validateEmail(theForm.email.value))
	{
		this.messageArray += "<li>Please provide a valid email address.</li>"
		validationStatus = false;
	}
	// Then Submit it if valid	
	if(validationStatus)
		return true;
	else
	{
		var messageBox = $('errorMessageBox');
		messageBox.style.display = "block";
		messageBox.innerHTML = "<ul>"+this.messageArray+"</ul>";
		document.location.href = "#errorMessageAnchor";
		return false;
	}
}

var shareMessageArray = "";
function validateShare()
{
	var shareName = $('shareName').value;
	var shareEmail = $('shareEmail').value;
	var shareFriendEmails = $('shareFriendEmails').value;
	var shareMessage = $('shareMessage').value;
	
	this.shareMessageArray = "";
	$("shareErrorMessageBox").innerHTML = "";
	var validationStatus = true;
	if(shareName == "")
	{
		this.shareMessageArray += "<li>Please provide a name.</li>"
		validationStatus = false;
	}
	if(!validateEmail(shareEmail))
	{
		this.shareMessageArray += "<li>Please provide a valid email address.</li>"
		validationStatus = false;
	}
	if(!validateEmail(shareFriendEmails))
	{
		this.shareMessageArray += "<li>Please provide a valid friend's email address.</li>"
		validationStatus = false;
	}
	// Then Submit it if valid	
	if(validationStatus)
	{	
		var ajaxParams = "shareName="+shareName+"&shareEmail="+shareEmail+"&shareFriendEmails="+shareFriendEmails+"&shareMessage="+escape(shareMessage);
		var pageUpdate = sbbAjaxUpdater('popOverContent','web/home/shareController.php',{params:ajaxParams});
	}
	else
	{
		var shareMessageBox = $('shareErrorMessageBox');
		shareMessageBox.style.display = "block";
		shareMessageBox.innerHTML = "<ul>"+this.shareMessageArray+"</ul>";
		return false;
	}
}

function validateEmail(emails)
{	
	var emailArray = emails.split(",");
	for(i=0; i< emailArray.length; i++)
	{
		var str = emailArray[i];
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		// Conditionals
		if (str.indexOf(at)==-1)
			return false;	
		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
			return false;		
		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
			return false;		
		if (str.indexOf(at,(lat+1))!=-1)
			return false;		
		if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
			return false;		
		if (str.indexOf(dot,(lat+2))==-1)
			return false;		
		if (str.indexOf(" ")!=-1)
			return false;
		
		return true;
	}
}function login(keypress, type, event)
{
	if ((keypress == 1 && event.keyCode == 13) || keypress == 0)
	{
		displayPopover('loginPopover');
		var username = $('username').value;
		var password = $('password').value;
		var rememberme = $('rememberme').value;
		if (rememberme == '')
		{
			rememberme = 0;
		}
		else
		{
			rememberme = 1;
		}
		requestParams = 'a=login&u=' + username + '&p=' + password + '&r=' + rememberme;

		if (type == 1)
		{
			var ajax = new Ajax.Request(requestURL+'/login/controller/loginController.php',
				{                
					method:'get',parameters:requestParams,onSuccess:processLogin
				});
		}
		else if (type == 2)
		{
			var ajax = new Ajax.Request(requestURL+'/login/controller/loginController.php',
				{                
					method:'get',parameters:requestParams,onSuccess:processLoginScreen
				});
		}
	}
}

function processLoginScreen(req)
{
	var returnString = req.responseText.split("^");
	// Login successful
	if (returnString[0] == 2)
	{
		var personID = returnString[1];
		var rememberMe = returnString[2];			
		var adminType = returnString[3];	
		var firstName = returnString[4];
		// Store personID in hidden field
		$('personID').value = personID;
		// If remember me, store in resident cookie
		if (rememberMe == 1)
		{
			// Set the personID
			setCookie("kwiry_personID", personID);
			// Store the user first name
			setCookie("kwiry_name", firstName);	
			// Store the admin type of the user
			setCookie("kwiry_adminType", adminType);				
		}
		// If not remember me, store in an expiring cookie
		else
		{
			// Store the personID
			setExpiringCookie("kwiry_personID", personID, 12);	
			// Store the user first name
			setExpiringCookie("kwiry_name", firstName, 12);	
			// Store the admin type of the user
			setExpiringCookie("kwiry_adminType", adminType, 12);				
		}
		
		document.loginForm.submit();
	}
	else if (returnString[0] == 1)
	{
		$('loginFieldFrame').innerHTML = returnString[2];
		// Populate the username field since it is valid 
		// This must occur after innerHTML is populated for loginFieldFrame
		$('username').value = returnString[1];			
	}
	else if (returnString[0] == 0)
	{
		$('loginFieldFrame').innerHTML = returnString[1];
	}	
}

function processLogin(req)
{	
	hidePopover('loginPopover');
	var returnString = req.responseText.split("^");
	// Login successful
	if (returnString[0] == 0)
	{
		var personID = returnString[1];
		var rememberMe = returnString[2];			
		var adminType = returnString[3];	
		var firstName = returnString[4];
		var userCode = returnString[5];
		var enabled = returnString[6];
		var blocked = returnString[7];
		if (blocked == 0)
		{
			// Store personID in hidden field
			$('personID').value = personID;
			// If remember me, store in resident cookie
			if (rememberMe == 1)
			{
				// Set the personID
				setCookie("kwiry_personID", personID);
				// Store the user first name
				setCookie("kwiry_name", firstName);	
				// Store the admin type of the user
				setCookie("kwiry_adminType", adminType);				
			}
			// If not remember me, store in an expiring cookie
			else
			{
				// Store the personID
				setExpiringCookie("kwiry_personID", personID, 12);	
				// Store the user first name
				setExpiringCookie("kwiry_name", firstName, 12);	
				// Store the admin type of the user
				setExpiringCookie("kwiry_adminType", adminType, 12);				
			}
			$('homePortlet01UserConsole').innerHTML = '<a href="page.php?page=friends&fid='+personID+'" class="kwiryCodeLineItem" title="View Your Profile"><span>'+userCode+'</span></a><br>' +
				'Hello '+firstName+'<br />';
			
			$('logoutLink').style.display = "block";
			$('homePortlet01LoginReg').style.display = "none";
			$('homePortlet01UserConsole').style.display = "block";
			// If the user has not enabled their account yet, then redirect them to the new user workflow
			if (enabled == 0)
			{
				window.location="http://www.kwiry.com/page.php?page=workflow";
			}
			// User has deactivated their account
			else if (enabled == 2)
			{
				$('loginPopoverText').innerHTML= returnString[8];
			}
			// Otherwise, show them their mykwiry page
			else
			{
				window.location="http://www.kwiry.com/page.php?page=mykwiry";
				window.setTimeout("$('loginPopoverText').innerHTML='Login Successful!'",200);					
			}
		}
		// If the user is blocked return them to the home page
		else if (blocked == 1)
		{
			window.location="http://www.kwiry.com/page.php?page=home";
		}
	}
	else if (returnString[0] == 1)
	{
		$('loginFieldFrame').innerHTML = returnString[2];
		// Populate the username field since it is valid 
		// This must occur after innerHTML is populated for loginFieldFrame
		$('username').value = returnString[1];			
	}
	else if (returnString[0] == 2)
	{
		$('homeLoginError').style.display = "block";
	}		
}

function logout()
{
	deleteCookie("kwiry_personID");
	window.location="http://www.kwiry.com/page.php?page=home";
}

function cancelLogin()
{
	new Effect.Fade('loginFieldFrame');
	new Effect.Appear('lockerFrame');
}

function showForgotPassword()
{
	var header = 'Forgot My Password';
	var message = 'Enter the email address you registered with and we\'ll send you your password.<p/><input type="text" name="passwordEmail" id="passwordEmail" size="15" />';
	var buttons = '<a href="javascript:sendPassword()" class="button"><span>send my password</span></a>&nbsp;&nbsp;<a href="javascript:hidePopover(\'popoverBox\')" class="button"><span>nevermind</span></a>';
	displayMessage(header, message, buttons);
}

function sendPassword()
{
	var email = $F('passwordEmail');
	if (isEmailValid(email))
	{
		email = encodeURIComponent(email);
		var params = 'a=sendPassword&e='+email;
		var ajax = new Ajax.Request(requestURL+'/login/controller/loginController.php',
			{method:'get',parameters: params,onSuccess: sendPasswordResponse});
	}
	else
	{
		alert('The email you provided is invalid.  Please check the format.');
	}
}

function sendPasswordResponse(req)
{
	// If the email address was correct
	if (req.responseText == 0)
	{
		var header = 'Forgot My Password';
		var message = 'Success! We\'ve sent your login information to the email you registered with.';
		var buttons = '<a href="javascript:hidePopover(\'popoverBox\')" class="button"><span>back to kwiry</span></a>';
		displayMessage(header, message, buttons);	
	}
	// Email address is not registered
	else if (req.responseText == 1)
	{
		var header = 'Forgot My Password';
		var message = 'We could not find a user with the email address you enter. You might want to check that you gave us the right one.<p/><input type="text" name="passwordEmail" id="passwordEmail" size="15" />';
		var buttons = '<a href="javascript:sendPassword()" class="button"><span>send my password</span></a>&nbsp;&nbsp;<a href="javascript:hidePopover(\'popoverBox\')" class="button"><span>nevermind</span></a>';
		displayMessage(header, message, buttons);			
	}
}

function showForgotEmail()
{
	var header = 'Forgot My Email';
	var message = 'Please enter your mobile number.<p/>(<input type="text" name="areacode" id="areacode" size="3"  maxlength="3"/>) <input type="text" name="prefix" id="prefix" size="3"  maxlength="3"/> <input type="text" name="suffix" id="suffix" size="4" maxlength="4"/>';
	var buttons = '<a href="javascript:showEmail()" class="button"><span>show me my email</span></a>&nbsp;&nbsp;<a href="javascript:hidePopover(\'popoverBox\')" class="button"><span>nevermind</span></a>';
	displayMessage(header, message, buttons);
}

function showEmail()
{
	var ani = $F('areacode') + $F('prefix') + $F('suffix');
	if (isNumber(ani))
	{
		var params = 'a=showEmail&ani='+ani;
		var ajax = new Ajax.Request(requestURL+'/login/controller/loginController.php',
			{method:'get',parameters: params,onSuccess: showEmailResponse});	
	}
	else
	{
		alert('The number you entered was invalid.  Please make sure you entered it correctly.');
	}
}

function showEmailResponse(req)
{
	// ANI was not found
	if (req.responseText == '')
	{
		var header = 'Forgot My Email';
		var message = '<font color="red">We did not find any users registered with this mobile number. Please make sure you enter the mobile number you registered with.</font><p/>(<input type="text" name="areacode" id="areacode" size="3"  maxlength="3"/>) <input type="text" name="prefix" id="prefix" size="3"  maxlength="3"/> <input type="text" name="suffix" id="suffix" size="4" maxlength="4"/>';
		var buttons = '<a href="javascript:showEmail()" class="button"><span>show me my email</span></a>&nbsp;&nbsp;<a href="javascript:hidePopover(\'popoverBox\')" class="button"><span>nevermind</span></a>';
		displayMessage(header, message, buttons);	
	}
	// Found the email address
	else 
	{
		var email = req.responseText;
		var header = 'Forgot My Email';
		var message = 'We found your email! You registered with ' + email + '.';
		var buttons = '<a href="javascript:hidePopover(\'popoverBox\')" class="button"><span>back to kwiry</span></a>';
		displayMessage(header, message, buttons);			
	}
}
function displayPopover(popOver)
{
	var popOverTitle = "";
	var contentUrl = "";
	var ajaxParams = "";
	var width = "";
	var height = "";
	
	// attributes	
	if(arguments[1])
	{
		var namedArgs = arguments[1];
		//popover title
		popOverTitle = typeof namedArgs.title != "undefined" ? namedArgs.title : "";
		$('popOverHeaderLabel').innerHTML = popOverTitle;
		//popover width
		if (typeof namedArgs.width != "undefined")
			Element.setStyle(popOver,{width:namedArgs.width});
		//content file
		contentUrl = typeof namedArgs.contentUrl != "undefined" ? namedArgs.contentUrl : "";
		ajaxParams = typeof namedArgs.params != "undefined" ? namedArgs.params : "";
		width = typeof namedArgs.width != "undefined" ? namedArgs.width : "";
		height = typeof namedArgs.height != "undefined" ? namedArgs.height : "";
		//var ajaxOnComplete = typeof namedArgs.onComplete != "undefined" ? namedArgs.onComplete : "";
	}
	//browser detect and dimensions
	var ie=document.all && !window.opera;
	var dom=document.getElementById;
	iebody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body;
	var scrollTop=(ie)? iebody.scrollTop : window.pageYOffset;
	var docwidth=(ie)? iebody.clientWidth : window.innerWidth;
	var docheight=(ie)? iebody.clientHeight: window.innerHeight;
	var scrollHeight = (ie)? iebody.scrollHeight: document.body.scrollHeight;
	//transparent mask
	var maskElement = Builder.node('div', {id:'popOverMask',className:'popOverMask'});	
	document.body.appendChild(maskElement);
	var popOverMask = $("popOverMask");	
	popOverMask.style.height = scrollHeight+"px";
	$(popOver).style.display = "block";
	popOverMask.style.display = "block";
	//divshim: necessary to cover select lists which tracitionally appear over div layers
	var divShimElement = Builder.node('iframe', {id:'divShim',src:'javascript:false;',scrolling:'no',frameborder:'0'});	
	document.body.appendChild(divShimElement);
	var divShim = $("divShim");
    divShim.style.width = popOverMask.offsetWidth;
    divShim.style.height = popOverMask.offsetHeight;
    divShim.style.top = popOverMask.style.top;
    divShim.style.left = popOverMask.style.left;
    divShim.style.zIndex = "400";
    divShim.style.display = "block";
	//popover
	holderOpacity = Element.getStyle(popOver, 'opacity');
	var popOverDimensions = Element.getDimensions(popOver);
	var popOverWidth = (width.length == 0) ? popOverDimensions.width : width;
	var popOverHeight = (height.length == 0) ? popOverDimensions.height : height;
	//loadContentPage
	if(contentUrl != "undefined")
		sbbAjaxUpdater('popOverContent',contentUrl,{params:ajaxParams});
    var divObj = $(popOver);
    divObj.style.left = docwidth/2-popOverWidth/2+"px";
	var newPopOverHeight = popOverHeight;
	divObj.style.top = scrollTop+docheight/2-newPopOverHeight/2+"px";
	divObj.style.width = popOverWidth+"px";
	divObj.style.height = popOverHeight+"px";
	new Effect.Appear(popOver);	
	new Draggable(popOver,{handle:'popOverHeader'});
}

function hidePopover(popOver)
{	
	new Effect.Fade(popOver,{afterFinish: 
			function(effect) 
			{ 							
				document.body.removeChild($("popOverMask"))
				document.body.removeChild($("divShim"))
			}
		});	
}// ---------------------------------
//  ptvGuy catchall JavaScript file
// ---------------------------------

/*
Sweet Titles addEvent.js 
Author: Dustin Diaz
Site: http://www.dustindiaz.com
*/

Array.prototype.inArray = function (value) {
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};

function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}
	
var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();
addEvent(window,'unload',EventCache.flush);

/*
Sweet Titles (c) Creative Commons 2005
http://creativecommons.org/licenses/by-sa/2.5/
Author: Dustin Diaz | http://www.dustindiaz.com
*/
var sweetTitles = { 
	xCord : 0,				                    // @Number: x pixel value of current cursor position
	yCord : 0,				                    // @Number: y pixel value of current cursor position
	tipElements : ['a','span','acronym'],		// @Array: Allowable elements that can have the toolTip
	tipClasses : ['tooltip','help'],	// @Array: Allowable elements that can have the toolTip
	obj : Object,			                    // @Element: That of which you're hovering over
	tip : Object,			                    // @Element: The actual toolTip itself
	active : 0,				                    // @Number: 0: Not Active || 1: Active
	init : function() {
		if ( !document.getElementById ||
			!document.createElement ||
			!document.getElementsByTagName ) {
			return;
		}
		var i,j,x;
		// Create Tip
		this.tip = document.createElement('div');
		this.tip.id = 'toolTip';
		document.getElementsByTagName('body')[0].appendChild(this.tip);
		this.tip.style.top = '0';
		this.tip.style.visibility = 'hidden';
		addEvent(document,'mousemove',this.updateXY);
		if ( document.captureEvents ) {
				document.captureEvents(Event.MOUSEMOVE);
		}
		// Add it
		var tipLen = this.tipElements.length;
		var classLen = this.tipClasses.length;
		// Loop over valid elements
		for ( i=0; i<tipLen; i++ ) 
		{
			var current = document.getElementsByTagName(this.tipElements[i]);
			var curLen = current.length;
			for ( j=0; j<curLen; j++ ) 
			{
				for (x=0; x<classLen; x++)
				{
					// Make sure the classes are valid
					if(current[j].className.indexOf(this.tipClasses[x]) >= 0)
					{
						if (current[j].getAttribute('title') != null && current[j].getAttribute('title') != "") 
						{
						addEvent(current[j],'mouseover',this.tipOver);
						addEvent(current[j],'focus',this.tipOver);
						addEvent(current[j],'mouseout',this.tipOut);
						addEvent(current[j],'blur',this.tipOut);
						current[j].setAttribute('tip',current[j].title);
						current[j].removeAttribute('title');
						}
					}
				}
			}
		}
	},
	updateXY : function(e) {
		if ( document.captureEvents ) {
			sweetTitles.xCord = e.pageX;
			sweetTitles.yCord = e.pageY;
		} else if ( window.event.clientX ) {
			sweetTitles.xCord = window.event.clientX+document.documentElement.scrollLeft;
			sweetTitles.yCord = window.event.clientY+document.documentElement.scrollTop;
		}
	},
	tipOut: function() {
		if ( window.tID ) {
			clearTimeout(tID);
		}
		if ( window.opacityID ) {
			clearTimeout(opacityID);
		}
		sweetTitles.tip.style.visibility = 'hidden';
	},
	checkNode : function() {
		var trueObj = this.obj;
		if ( this.tipElements.inArray(trueObj.nodeName.toLowerCase()) ) {
			return trueObj;
		} else {
			return trueObj.parentNode;
		}
	},
	tipOver : function() {
		sweetTitles.obj = this;
		tID = window.setTimeout("sweetTitles.tipShow()",500)
	},
	tipShow : function() {		
		var scrX = Number(this.xCord);
		var scrY = Number(this.yCord);
		var tp = parseInt(scrY+15);
		var lt = parseInt(scrX+10);
		var anch = this.checkNode();
		var addy = '';
		var access = '';
		if ( anch.nodeName.toLowerCase() == 'a' ) {
			addy = (anch.href.length > 25 ? anch.href.toString().substring(0,25)+"..." : anch.href);
			var access = ( anch.accessKey ? ' <span>Access key: ['+anch.accessKey+']</span> ' : '' );
		} else {
			addy = anch.firstChild.nodeValue;
		}
		if (addy.indexOf(window.location.hostname) == -1) {
		//this.tip.innerHTML = "<p>"+anch.getAttribute('tip')+"<em>"+access+addy+"</em></p>";
		this.tip.innerHTML = "<p>"+anch.getAttribute('tip')+"</p>";
		}
		else {
			//this.tip.innerHTML = "<p>"+anch.getAttribute('tip')+"<em>"+access+addy+"</em></p>";
			this.tip.innerHTML = "<p>"+anch.getAttribute('tip')+"</p>";
		}
		if ( parseInt(document.documentElement.clientWidth+document.documentElement.scrollLeft) < parseInt(this.tip.offsetWidth+lt) ) {
			this.tip.style.left = parseInt(lt-(this.tip.offsetWidth+10))+'px';
		} else {
			this.tip.style.left = lt+'px';
		}
		if ( parseInt(document.documentElement.clientHeight+document.documentElement.scrollTop) < parseInt(this.tip.offsetHeight+tp) ) {
			this.tip.style.top = parseInt(tp-(this.tip.offsetHeight+10))+'px';
		} else {
			this.tip.style.top = tp+'px';
		}
		if (((anch.getAttribute('tip') || access) != "") || (addy.indexOf(window.location.hostname) == -1)) {
			this.tip.style.visibility = 'visible';
			this.tip.style.opacity = '.1';
			this.tipFade(10);	
		}
	},
	tipFade: function(opac) {
		var passed = parseInt(opac);
		var newOpac = parseInt(passed+10);
		if ( newOpac < 100 ) {
			this.tip.style.opacity = '.'+newOpac;
			this.tip.filter = "alpha(opacity:"+newOpac+")";
			opacityID = window.setTimeout("sweetTitles.tipFade('"+newOpac+"')",20);
		}
		else { 
			this.tip.style.opacity = '1';
			this.tip.style.filter = "alpha(opacity:100)";
		}
	}
};
function pageLoader() {
	sweetTitles.init();
}

/*
externalLink window handler 
Author: Paul Boag
Site: http://www.boagworld.com
*/

function doPopups() {
  if (!document.getElementsByTagName) return false;
  var links = document.getElementsByTagName("a");
  for (var i=0; i < links.length; i++) {
    if (links[i].className.match("externalLink")) {
		 links[i].className = links[i].className + " newWinIcon";
		if (links[i].title == "") {
		links[i].title = "(new window)";
		}
		else {
		links[i].title = links[i].title + " (new window)";	
		}
	 	links[i].onclick = function(e) {
			if(!e)e=window.event;
			if(e.shiftKey || e.ctrlKey || e.altKey) return;
			window.open(this.href);
			return false;
			}
      }
    }
}
Event.observe(window, 'load', pageLoader)

//TABS

// Just change the tabs up top.
function tabOnlyToggle(selectedTab)
{
	var parentUL = $(selectedTab).parentNode;
	//get all the tabs into an array
	var tabArray = parentUL.getElementsByTagName("li");
    for (d=0; d<tabArray.length; d++) 
	{
		tabArray[d].className = '';
    }
	$(selectedTab).className = "tabSelected";	
}

// Completely Static, No AJAX Updates
function tabToggleStatic(selectedTab,contentContainer)
{
	tabOnlyToggle(selectedTab);
	var contentArray = $(contentContainer).getElementsByTagName("div");
    for (i = 0; i < contentArray.length; i++) 
	{
		if (contentArray[i].className == 'tabContent') {
            contentArray[i].style.display = 'none';
        }
    }
	$(selectedTab+"Content").style.display = "block";
}

function tabToggleAjax(selectedTab,contentContainer,filePath)
{
	tabOnlyToggle(selectedTab);
	kwiryAjaxUpdater(contentContainer,filePath,arguments[3]);
}var topShelfDisplay = false;
function toggleTopShelf(selectedTab)
{
	if(!this.topShelfDisplay)
	{
		Effect.SlideDown('topShelf', {scaleFrom:0,scaleTo:100,duration:.7});
		this.topShelfDisplay = true;
	}
	else
	{
		Effect.SlideUp('topShelf',{scaleFrom:100,scaleTo:0,duration:.7});
		this.topShelfDisplay = false;
	}
}

function topShelfUpdater(targetId,fileURL,selectedTab,personID,topShelfDescript)
{
	var params = 'pid=' + personID;
	var myAjax = new Ajax.Updater(targetId, fileURL,
		{
			method: 'get', 
			parameters: params,
			evalScripts:true,
			asynchronous:true,
			onComplete: function()
			{
				Effect.BlindDown('topShelf', 
				{								
					//duration:1,
					afterFinish: function()
					{
						$('closeTopShelfDescript').innerHTML = topShelfDescript;
						$('topShelfControls').style.display = "none";
						$('topShelfControlCloser').style.display = "block";
					}
				});
		
				tabOnlyToggle(selectedTab);				
			}
		}
	);
}
//CORE UI JS
function displayLoader(targetObjId)
{
	var targetObj = $(targetObjId);
	targetObj.innerHTML = '<div id=\"statusLoader\"><img src="framework/skins/images/ui/status.gif"/></div>';
}

function sbbAjaxUpdater(targetContainer,filePath)
{
	var params = "";
	var formMethod = "post";
	var onComp = "";
	
	if(arguments[2])
	{
		var namedArgs = arguments[2];
		params = typeof namedArgs.params != "undefined" ? namedArgs.params : params;
		formMethod = typeof namedArgs.method != "undefined" ? namedArgs.method : formMethod;	
		onComp = typeof namedArgs.onComplete != "undefined" ? namedArgs.onComplete : onComp;
	}
	displayLoader(targetContainer);
	var fileURL = filePath;
	var myAjax = new Ajax.Updater(targetContainer, fileURL,
		{
			//write attribute conditional to set get/post
			method: formMethod, 
			parameters: params,
			evalScripts:true,
			asynchronous:true,
			onComplete: function()
			{
				$(targetContainer).style.display = "block";
				ajaxTinyLoad(targetContainer);
				if(onComp.toString().length > 0)
				{					
					onComp(); // execute included onComplete Functions						
				}
		
			}
		}
	);	
}

function ajaxTinyLoad(targetContainer) 
{	
	var parentObj = document.getElementById(targetContainer);
	var textAreaArray = parentObj.getElementsByTagName('textarea');
	for(i=0; i<textAreaArray.length; i++)
	{
		//Add TinyMCE
		tinyMCE.idCounter=0;
		tinyMCE.execCommand("mceAddControl", false, textAreaArray[i].id);
		tinyMCEmode = true;
	}
}
	
function pngEnable()
{
	// if IE5.5+ on Win32, then display PNGs with AlphaImageLoader
	if ((browser.isIE55 || browser.isIE6up) && browser.isWin32) 
	{
		var pngAlpha = true;
	// else, if the browser can display PNGs normally, then do that
	} 
	else if ((browser.isGecko) || 
			  (browser.isIE5up && browser.isMac) ||
			  (browser.isOpera && browser.isWin && browser.versionMajor >= 6) || 
			  (browser.isOpera && browser.isUnix && browser.versionMajor >= 6) || 
			  (browser.isOpera && browser.isMac && browser.versionMajor >= 5) || 
			  (browser.isOmniweb && browser.versionMinor >= 3.1) || 
			  (browser.isIcab && browser.versionMinor >= 1.9) || 
			  (browser.isWebtv) || (browser.isDreamcast)) 
	{
		var pngNormal = true;
	}
	if(pngAlpha)
	{
		var pngArray = document.getElementsByClassName("png");
		for(var i=0; i<pngArray.length; i++)
		{
			var pngObj = pngArray[i];
			var bkgrndImg = pngArray[i].style.backgroundImage;
			pngArray[i].style.backgroundImage = "";
			pngArray[i].style.background = "";
			bkgrndSrc = bkgrndImg.substr(4,(bkgrndImg.length));
			pngObj.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bkgrndSrc + "',sizingMethod='crop')";
		}
	}
	
}
Event.observe(window,'load',pngEnable);

function showPopup(contentUrl)
{
	var width = "";
	var height = "";
	var windowName = "SBBPopup";
	var status = "0";
	var directory = "0";
	var scrollbars = "0";
	if(arguments[1])
	{
		var namedArgs = arguments[1];
		width = typeof namedArgs.width != "undefined" ? namedArgs.width : width;
		height = typeof namedArgs.height != "undefined" ? namedArgs.height : height;	
		windowName = typeof namedArgs.windowName != "undefined" ? namedArgs.windowName : windowName;
		status = typeof namedArgs.status != "undefined" ? namedArgs.status : status;
		directory = typeof namedArgs.directory != "undefined" ? namedArgs.directory : directory;
		scrollbars = typeof namedArgs.scrollbars != "undefined" ? namedArgs.scrollbars : scrollbars;
	}	
	window.open(contentUrl,windowName,"width="+width+",height="+height+",status="+status+",directory="+directory+",scrollbars="+scrollbars)
}
