﻿//////////////////////////////////////////////////////////
// Common
// Handles common operations
//////////////////////////////////////////////////////////
var Common = {

	refreshMe: function() {
		var url = document.location.href;
		goTo(url);
	} // End refreshMe()
	,
	
	scrollToElement: function(elem) {
	  var selectedPosX = 0;
	  var selectedPosY = 0; 
	  while(elem != null){
		 selectedPosX += elem.offsetLeft;
		 selectedPosY += elem.offsetTop;
		 elem = elem.offsetParent;
	  }
		window.scrollTo(selectedPosX,selectedPosY);
	} // End scrollToElement()
	,
	
	isNumeric: function(sText) {
		var ValidChars = "0123456789.";
		var IsNumber = true;
		var Char;
		for (i = 0; i < sText.length && IsNumber == true; i++){ 
			Char = sText.charAt(i); 
			if (ValidChars.indexOf(Char) == -1){
				IsNumber = false;
			}
		}
		return IsNumber;
	} // End isNumeric()
	,
	
	getExitLink: function(strURL, intType) {
		if (!strURL || !intType) { return; }
		var strSiteExitUrl = '/system_pages/SiteExit.aspx';
		var urlEsc = escape(strURL);
		Common.goTo(strSiteExitUrl + '?url=' + urlEsc + '&type=' + intType);
	} // End getExitLink()
	,
	
	//Navigates to a URL
	goTo: function(strURL) {
		window.location.href = strURL;
	} // End goTo()
	,

	getUrlPath: function() {
		return window.document.location.pathname.toLowerCase();
	}
	,	

	urlPathIs: function(localpath) {
		var pathname = window.document.location.pathname.toLowerCase();
		if (pathname == localpath) { 
			return true;
		}
		else {
			return false;
		}
	}
	,

	preloadImg: function(path, w, h) {
		if (document.images) {
			objImg = new Image(w, h); 
			objImg.src = path;
		}
	}
	,
	
	getQueryStringVal: function(param) {
	    var val = '';
		var qs = window.location.search.substring(1);
		var qstringVals = qs.split('&');
		for (var i = 0; i < qstringVals.length; i++) {
		    var pair = qstringVals[i].split('=');
            if (pair[0] == param) {
                val = pair[1];
            }
		}
		return val;
	}
	,

	enterPress: function(btnid, e) {
	
		var key;
		if (!e) var e = window.event;
		if (e.keyCode) key = e.keyCode;	//IE
		else if (e.which) key = e.which; //FF
		
		if (key == 13) { //Enter key
			document.getElementById(btnid).click(); //Click the button.
		}
		
		//Prevent propagation.
		e.cancelBubble = true;
		if (e.stopPropagation) e.stopPropagation();
		
	} // End enterPress()
};



function setXmlPath(xml, swf){
 //Set hidden input to xml path so share site control can access it
 $("input:hidden#videoFileName").val(xml);
 //Hard coded paths to the xml and swf files
 var swfpath = "/swf/"
 //if swf is not passed in then default it to sqc112c.swf
 if (arguments.length < 2){
    swf = 'sqc112c.swf'
 }
 // if the first character of the path is a hash sign, rip it out.
 // the path will have a hash sign if the path is coming from an anchor tag on the site.
 if (xml.indexOf('#') == 0){
 xml = path.substring(1, xml.length);
 }
 var flashvars = { configPath: xml };
 var params = {wmode: "opaque"};
 var attributes = {};
 swfobject.embedSWF(swfpath + swf, "video", "697", "585", "8.0.0", "", flashvars, params, attributes);
 // Below functions are for tracking purposes
 var video = xml.toLowerCase();
 var result = null;
 switch (video) {

 case '/swf/xml/caroline.xml': result = 'Caroline - Main'; break;
 case '/swf/xml/carolinehcp.xml': result = 'Caroline - Doctor'; break;
 case '/swf/xml/carolinefriend.xml': result = 'Caroline - Friend'; break;
 case '/swf/xml/kelly.xml': result = 'Kelly - Main'; break;
 case '/swf/xml/kellyhcp.xml': result = 'Kelly - Doctor'; break;
 case '/swf/xml/kellycoworker.xml': result = 'Kelly - Co-worker'; break;
 case '/swf/xml/mary.xml': result = 'Mary - Main'; break;
 case '/swf/xml/maryhcp.xml': result = 'Mary - Doctor'; break;
 case '/swf/xml/maryhusband.xml': result = 'Mary - Husband'; break;
 case '/swf/xml/maryson.xml': result = 'Mary - Son'; break;
 case '/swf/xml/patrick.xml': result = 'Patrick - Main'; break;
 case '/swf/xml/patrickhcp.xml': result = 'Patrick - Doctor'; break;
 case '/swf/xml/patrickwife.xml': result = 'Patrick - Wife'; break;
 default: result = video;

 }
 pageTracker._trackEvent('Bipolar Portraits', 'Video Loaded', result);
}



//Center DIV on the page
$.fn.center = function () {
    $(this).css("left", ( $(window).width() - $(this).width() ) / 2+$(window).scrollLeft() + "px");
	$(this).css("top", ( $(window).height() - $(this).height() ) / 2+$(window).scrollTop() + "px");
    return $(this);
}

$(document).ready(function() {
	
    // Add icons and new window function to certain links on site
	$('a[href*=".pdf"]:not(div#callouts a), a[href*=".cgi"]').after(' <img class="pdf" src="/images/icon/adobe-pdf.png" />');
	$('a[rel="external"]:not(div#callouts a,div.videos.noFlash a)').after('&nbsp;<img class="external" src="/images/icon/external.png" />');	
	
	//Add link arrow to the end of particular links
	$('#landing-callout h3 a, ul.gallery li a').append('&nbsp;<img height="10" width="8" src="/images/bullet/callout-landing.png" alt="Follow link" />');
	$('div#callouts div.info a').append('&nbsp;<img height="9" width="6" src="/images/bullet/pink-arrow.png" />');
	
	$('div#landing-callout h3 a, ul.gallery li a').hover(
		function() {
			$(this).find('img').remove();
			$(this).append('<img height="10" width="8" src="/images/bullet/callout-landing-hover.png" alt="Follow link" />');
		},
		function() {
			$(this).find('img').remove();
			$(this).append('<img height="10" width="8" src="/images/bullet/callout-landing.png" alt="Follow link" />');
		}
	);
	
	/* left nav rollover icons */
	var strText = '';
	$('div#menu ul:not(.pi,.med) li a').each(function() {
		var strTextArray = $(this).html().split(' '), strLast = strTextArray.pop();
		strText = strTextArray.join(' ') + ' <span class="icon">' + strLast + '</span>';
		$(this).html(strText);
	});
	$('div#menu ul li:not(.on) a, div.subdrill div#menu > ul > li.on > a').hover(
		function() {
			$(this).find('span.icon').append('<img height="6" width="6" src="/images/bullet/navigation-drill.png" />');
		},
		function() {
			$(this).find('img').remove();
		}
	);
	
	
	
	/* Share and Print functions */
	$('ul#utils li#email').before('<li id="print"><a href="#"><img src="/images/icon/print.png" alt="Print" /></a></li>');
	$('ul#utils li#print a').click(function () { 
	    print(); return false 
	});
    $('ul#utils li#email a').click(function () { 
	    $("#shareErrorUserEmail").css({ display: "none" });
	    $("#shareErrorFriendEmail").css({ display: "none" });
	    resetSharePage();
	    $('div#share').center().show(); 
	    return false; 
	});
	
	
	/* 2010-0414: whatever this is, it throws client errors in both registration forms in IE,
	so the following pages are excluded, so the error is not thrown. */
	
	if (!Common.getUrlPath().toLowerCase() == '/support-resources/depression-support-registration.aspx'
		&& !Common.getUrlPath().toLowerCase() == '/support-resources/thinking-forward-thank-you.aspx'
		&& !Common.getUrlPath().toLowerCase() == '/depression-support-survey.aspx'
		&& !Common.getUrlPath().toLowerCase() == '/depression-support-thank-you.aspx') {
	
		Cufon.replace('\
			div#navigation ul li a\
		');
	
	}
	Cufon.replace('div#navigation ul li a');
	$('div#navigation ul li:not(.on) a').hover(
		function() {
			$(this).parent('li').removeClass('off').addClass('over');
			Cufon.replace($(this));
		},
		function() {
			$(this).parent('li').removeClass('over').addClass('off');
			Cufon.replace($(this));
		}
	);
	
	
	/* Make entire item a clickable link: add new array item for each big link */
	var divLinks = new Array(
		'div#callouts div',
		'ul.gallery li'
	);
	jQuery.each(divLinks, function(i) { 
		if ( $(divLinks[i]).length ) {
			$(divLinks[i]).biggerlink();
		}
	});
	
	
	
	/* add "adjacent" for selectors in IE6 */
	$('div#navigation ul li.on + li').addClass('adjacent');
	
	
	    // Set up accordions
    $('div.accordion').accordion({
          header: "h2",
          animated: false,
          clearStyle: true,
          autoHeight: false,
          active: false,
          alwaysOpen: false
    });
    //Accordions are initially hidden via script on page. Show accordions.
    $('div.accordion').show(); 


});
