/*
 * Main entry point for js
 * 
 * version: 05/18/10
 * 
 */

jQuery(document).ready(function(){	
	if (getParameterByName('context') == 'print'){
		$('#print-btn').hide();
		$('#supersize').hide();
		$('#loading').hide();
		$('#header').hide();
		$('.secondary-logo').hide();
		$('.secondary-tagline').hide();
		$('#media-center').hide();
		$('#content').css('margin-top','0');
		$('#page-content').css('padding-top','0');
		$('#page-content').css('padding-bottom','0');
		$('.secondary-nav-item').css('color','#000');
		$('.inline-link').css('color','#000');
		$('body').css('background-color','#fff');
		$('.bound-content').css('margin-left','0');
		$('#content').show();
		$('<a href="javascript:history.back()" style="padding-left:24px;padding-bottom:12px;color:red;">< Back to site</a><a href="javascript:window.print()" style="padding-left:24px;padding-top:12px;"><img src="/resources/images/icons/print_icon_large.png" style="vertical-align:middle;" /></a><br/>').insertBefore('#page-content');
		$('<img src="/resources/images/matrixLogo.png" />').insertBefore('#page-content');
		$('<div style="padding-left:24px;padding-bottom:48px;margin-top:24px;color:#000;">&copy; 2010 Matrix Systems, Inc.</div>').insertAfter('#page-content');
	}
	else{		
		/* Setup content container divs */
		// <![CDATA[]]>			
		$(function(){
			setContentAndMaskDims();
		});
				
		if ($('#about').length > 0) {		
			$('#about').opaqueChildren(.90);
		}
		
		if ($('#page-content').length > 0) {		
			$('#page-content').opaqueChildren(.95);
		}
		
		$('div.secondary-nav-item').hover(
			function(){ //MouseIn
				if (!$(this).hasClass('selected-nav-item')) $(this).css('color','#464646');
			} 
			,function(){ //MouseOut
				if (!$(this).hasClass('selected-nav-item')) $(this).css('color','#787878');
			}
		);
		
		$('#product-boxes > a').hover(
			function(){ //MouseIn
				var productTitle = $(this).find('span')[0];
				productTitle.style.color = '#000';
			} 
			,function(){ //MouseOut
				var productTitle = $(this).find('span')[0];
				productTitle.style.color = '#EF1900';
			}
		);
	
		/* Setup background scaling */
		$(function(){
			$.fn.supersized.options = {  
				startwidth:1200 
				,startheight:800
				,vertical_center:1
				,slideshow:bgIsSlideShow
				,navigation:1
				,transition:1 //0-None, 1-Fade, 2-slide top, 3-slide right, 4-slide bottom, 5-slide left
				,pause_hover:0
				,slide_counter:0
				,slide_captions:0
				,slide_interval:10000  
			};
	   		$('#supersize').supersized();
		});
		
		if ($('#main').length > 0){
			setTimeout(function(){
				var path = window.location.pathname;
				if (typeof(isIndexPage) === 'undefined') $('#main').addClass('secondary-bg');
			},200)
		}
		
		if ($('#home-page-content').length > 0){		
			$('#home-page-content').opaqueChildren(.90); //Set transparency on container
		}
		
		/* Load News */
		if ($('#news-events').length > 0){		
			$('#news-events').opaqueChildren(.80); //Set transparency on container
			
			function parseUrl(text){
				//alert(text)
				var re = /(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?/g;
				var urls;
				var found = false;
				var urlText = "";
				while ((urls = re.exec (text)) != null){
					found = true;
					urlText += urls [0];
				}				
				if (found){
					//alert ("URLs:\n" + urlText);
					text = text.replace(urlText,'<a href="'+urlText+'" style="color:#ef1f00;">'+urlText+'</a>');
				}
				return text;
			}
			
			function getDate(time){
				if (isNaN(Date.parse(time))){ // must be IE, let's do something					 
					var tzRegex = /(\+[0-9]{4}\s)/ig;  
					time = time.replace(tzRegex,"");  
				}  
				var date = new Date(time);
				return (date.getMonth()+1)+'/'+date.getDate()+'/'+date.getFullYear();
			}
			
			$.ajax({
				url:'/cgi/getTweets.php'
				,dataType:'json'
				,success:function(data){						
					var twitterUl = $('#twitter-text > ul');
					for (var i=0; i < data.length; i++){
						text = (!data[i].truncated) ? parseUrl(data[i].text) : parseUrl(data[i].retweeted_status.text);
						twitterUl.append(
							'<li>'
								+text+'<span style="margin-left:5px;font-size:9px;">'+getDate(data[i].created_at)+'</span><br/>'
								/*+'<em>'
						            +'<a href="http://twitter.com/getmatrix/status/'+data[i].id_str+'" time="Wed May 25 19:26:02 +0000 2011" class="twtr-timestamp" target="_blank">49 days ago</a> · '
						            +'<a href="http://twitter.com/intent/tweet?in_reply_to='+data[i].id_str+'" class="twtr-reply" target="_blank">reply</a> · '
						            +'<a href="http://twitter.com/intent/retweet?tweet_id='+data[i].id_str+'" class="twtr-rt" target="_blank">retweet</a> · '
						            +'<a href="http://twitter.com/intent/favorite?tweet_id='+data[i].id_str+'" class="twtr-fav" target="_blank">favorite</a> '
						        +'</em>'*/
							+'</li>'
						);
					}
				}
			});
		}		
		
		/* Load Header, load menu in callback*/
		if ($('#header').length > 0){
			$('#header').load('/header.html',function(){				
				/* Setup Main Nav:
				 * Load menu html fragment, then load script after menu div has been written
				 */
				$('#menu-wrapper').load('/menu.html',function(){
					var activeItem = returnActiveItem();
					var menuAnchors = $('#menu-wrapper').find('li > a');
					menuAnchors.each(function(idx){
						if (document.location.pathname == $(this).attr('href')){
							var parent = $(this).parents('#menu-'+activeItem);
							parent.addClass('current');
							return false;
						}
					});
					loadScript('/js/menu.js')
				});
				
				$('#w').click(function(){
					$('#search-con').css('background-color','#fff');
					$('#search-con').css('border','none');
					var bgImg = $('#search-con').css('background-image');
					$('#search-con').css('background-image', bgImg.replace('.png','_on.jpg'));
				});
			
				$('#w').blur(function(){
					$('#search-con').css('background-color','transparent');
					$('#search-con').css('border','1px solid #6b6e7b');
					var bgImg = $('#search-con').css('background-image');
					$('#search-con').css('background-image', bgImg.replace('_on.jpg','.png'));
				});
			});
		}
		
		/* Load Footer and set transparency in callback */
		if ($('#footer-home').length > 0){
			$('#footer-home').load('/footer.html',function(){
				$('#footer-home').opaqueChildren(.70);
			});
		}
		else{
			$('#footer').load('/footer.html',function(){
				$('#footer').opaqueChildren(.85);
			});
		}	
	
		$(window).resize(function() {
			setContentAndMaskDims();
		});
		
		if ($('.caption-box').length > 0) {
			$.each($('.caption-box'),function(key, val){
				setTimeout(function(){
					var box = $(val);
					box.show();
					box.width(box.children('img').outerWidth());
				},500);
			})
		}
	}	
});
function setContentAndMaskDims() {
	var content = $('#content');
	var topMargin = content.css('margin-top').replace('px','') * 1;
	topMargin = topMargin + (content.css('padding-top').replace('px','') * 1);
	content.css('height',$(window).height()-topMargin);
	$('#main').css('height','100%');
	$('#main').css('width','100%');
}
//Dynamically load any javascript file
function loadScript(filename) {
	var script = document.createElement('script')
	script.setAttribute("type","text/javascript")
	script.setAttribute("src", filename)
	if (typeof script!="undefined")
	document.getElementsByTagName("head")[0].appendChild(script)
}
//Strip the first location in the pathname to get main nav item id
function returnActiveItem() {
	var path =  document.location.pathname;
	var end = (path.indexOf('?') == -1) ? path.length : path.indexOf('?');
	path = path.substring(path.indexOf('/')+1, end).replace('.html','');
	if (path.lastIndexOf('/') != -1)
		path = path.substring(0,path.lastIndexOf('/'));	
	return path;
}
function truncate(text,length){
    var ellipsis = '...';
    if (text.length < length) return text;
    for (var i = length-1; text.charAt(i) != ' '; i--) {
        length--;
    }    
    return text.substr(0, length) + ellipsis;
}
function getParameterByName(name)
{
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if( results == null )
		return "";
	else
		return decodeURIComponent(results[1].replace(/\+/g, " "));
}
function printView(){
	var location = window.location;
	window.location = location+'?context=print';
}

