/********************************************
 *
 * Copyright (c) 2003-2010 XML-INTL Ltd.
 *
 * All Rights Reserved
 *
 ********************************************/

var notloadedImagesList = new Array();

var _gaq = _gaq || [];
 
$(document).ready(function()
{
	fillLanguageSelect();
	
	convertMainNavigation();
	
	if($('#editModeOn').length == 0)
	{
		convertPanelHeadersToImages();
		convertTextToImages("convert-page-header", "MyriadPro-Semibold.ttf");
	}
	
	prepareSubscriptionButtons();
	
	marqueeTwitter();
	
	appendIE6PNGFilter();
	
	hideTopBar();
	
	initializeGoogleAnalitics();
});


function marqueeTwitter()
{
	$.getJSON('http://twitter.com/statuses/user_timeline/xtmintl.json?count=1&callback=?', function(data) { 
		$.each(data, function(entryIndex, entry)
		{
			$('#last-twitt').empty().append(entry['text'] + " <a href='#' style='font-size: 90%' >(" + $('#read-more-twitter').text() + ")</a>");
		});
	});
	$('#last-twitt').show();
	
	$('marquee').marquee('pointer').mouseover(function () 
	{
	   $(this).trigger('stop');
	}).mouseout(function () 
	{
	   $(this).trigger('start');
	}).mousemove(function (event) 
	{
        if ($(this).data('drag') == true) 
        {
            this.scrollLeft = $(this).data('scrollX') + ($(this).data('x') - event.clientX);
        }
    }).mousedown(function (event) 
    {
        $(this).data('drag', true).data('x', event.clientX).data('scrollX', this.scrollLeft);
    }).mouseup(function () 
    {
        $(this).data('drag', false);
    });

	 $('#twitter-feed').click(function()
                {
                        window.open('http://twitter.com/xtmintl');
                });

}

function convertMainNavigation()
{
	$("table.nav-table td.nav a").each(function(index)
	{
		var text = $(this).text();
		text = $.trim(text);
//		var fontSizeStr = $(this).css("fontSize");
		var fontSize = 22;//parseFloat(fontSizeStr, 10);
		
		var selected = $(this).hasClass("selected");//css("fontWeight") == "bold";
		var color = "ffffff";//"e1f8ff";//"ddf6fd";//"ccf1fc";//"bae5f2";//"BDEDFB";
		var fontName = "HelveticaNeueLTCom-LtCn.ttf";//"HelveticaNeueLTCom-LtCn.ttf";
		if (selected)
		{
			color = "ffffff";
			fontName = "HelveticaNeueLTCom-MdCn.ttf";
		}
		
		var img = getTextImage(text, fontSize, color, fontName, "00b8ec");	//00b8ec
		$(this).empty();
		$(this).append(img);
	});
	
	$("table.nav-table td.nav a").show();
}

function getTextImage(text, fontSize, color, fontName, background)
{
	var textToImgConverterUrl = "/webpage-plugins/textToImage?";
	var imgSrc = textToImgConverterUrl + "text=" + text + "&size=" + fontSize + (isIE6() ? "&background=" + background : "") + "&color=" + color + "&font=" + fontName;
	
	var imageObj = "<img src='" + imgSrc + "' />"; //alt='" + text + "'
	
	return imageObj;
}

function convertPanelHeadersToImages()
{
	$(".convert-header").each(function(index)
	{
		var textBold = $(this).children(".bold").text();
		$(this).children(".bold").remove();
		var textNormal = $(this).text();
		textBold = $.trim(textBold);
		textNormal = $.trim(textNormal);

		var fontSize = 20;
		var fontName = "MyriadPro-BoldCond.ttf";
		var fontColor = colorToHex($(this).css("color"));
		var backgroundColor = $(this).css("background-color");
			
		if(backgroundColor.indexOf('rgb(') > -1 || backgroundColor.indexOf('#') > -1)	//check if background color is defined
		{
			backgroundColor = colorToHex(backgroundColor);
		}
		else
		{
			backgroundColor = "FFFFFF";	// white background if not defined
		}
		
		$(this).empty();
		
		var img = getTextImage(textBold, fontSize, fontColor, fontName, backgroundColor);
		$(this).append(img);
		
		fontName = "MyriadPro-Cond.ttf";
		img = getTextImage('&nbsp;'+textNormal, fontSize, fontColor, fontName, backgroundColor);
		$(this).append(img);
	});

}

function convertTextToImages(selector, fontName)
{
	$("."+selector).each(function(index)
	{
		if(!$(this).is(':empty'))
		{
			if($(this).children().length > 0)
			{
				$(this).children().each(function(index){
					
					//alert($(this).text());
					var fontSize = parseInt($(this).css('font-size'));
					var fontColor = colorToHex($(this).css("color"));
					
					var backgroundColor = $(this).css("background-color");
					
					if(backgroundColor.indexOf('rgb(') > -1 || backgroundColor.indexOf('#') > -1)	//check if background color is defined
					{
						backgroundColor = colorToHex(backgroundColor);
					}
					else
					{
						backgroundColor = "FFFFFF";	// white background if not defined
					}
					
					var img = getTextImage($(this).text(), fontSize, fontColor, fontName, backgroundColor);
					
					$(this).parent().append(img);
					
					$(this).remove();
				});
			}
			else
			{
				var text = $(this).html();
				text = $.trim(text);
				
				var fontSize = parseInt($(this).css('font-size'));
				var fontColor = colorToHex($(this).css("color"));
				
				var backgroundColor = $(this).css("background-color");
				
				if(backgroundColor.indexOf('rgb(') > -1 || backgroundColor.indexOf('#') > -1)	//check if background color is defined
				{
					backgroundColor = colorToHex(backgroundColor);
				}
				else
				{
					backgroundColor = "FFFFFF";	// white background if not defined
				}
				
				$(this).empty(); 
				
				var img = getTextImage(text, fontSize, fontColor, fontName, backgroundColor);
				
				$(this).append(img);
			}
		}
	});
}

function colorToHex(color) {
    if (color.substr(0, 1) === '#') 
    {
        return color.substr(1);
    }
    var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color);

    var red = parseInt(digits[2]);
    var green = parseInt(digits[3]);
    var blue = parseInt(digits[4]);
    
    var rgb = blue | (green << 8) | (red << 16);
    return digits[1] + rgb.toString(16);
}

function fillLanguageSelect()
{
	//var $textSelected = "";
	
	$('.language-link').each(function(index)
	{
		var $languageSwitchLink = $(this).children('a').attr('href');
		
		
		if($languageSwitchLink != null)
		{
			$('#language-select').append("<option value='" + $languageSwitchLink + "' >" + $(this).text() + "</option>");
		}
		else
		{
			
			$('#language-select').append("<option value='current' >" + $(this).text() + "</option>");
			
			// if there is no link it means that this is current language
			$('#language-select-span').text($(this).text());
			
			try
			{
				$('#language-select').val("current");
			}
			catch(ex)	// Catch exception thrown by IE6
			{
				setTimeout("$('#language-select').val('current');",1);
			}
		}
	});
	
	$('#language-select').bind('change', function(){
		var selectedText = $('#language-select option:selected').text();
		$('#language-select-span').text(selectedText);
		
		var $languageChange = $('#language-select option:selected').attr('value');
		if ($languageChange)
		{
			window.location = $languageChange;
		}
	});

}

var ImageResizer =
{
	image: null,
	maxWidth: 0,
	attemptNumber: 0,
	
	resizeLogo: function(containerNameWithPrefix)
	{
	
		var logoContainer = $(containerNameWithPrefix);
	    ImageResizer.maxWidth = parseInt(logoContainer.css("width"), 10);
	    
	    logoContainer.each(function(index)
	    { 
	    	ImageResizer.image = $(this).find("img");
	    	
		    if (ImageResizer.image.length > 0)
		    {
		    	
		    	if(ImageResizer.image.width() > 0)
				{
		    		var imageWidth = ImageResizer.image.width();
				    if (imageWidth > ImageResizer.maxWidth)
				    {
				    	ImageResizer.image.width(ImageResizer.maxWidth);
				    }
				}
		    	else
		    	{
		    		notloadedImagesList.push(ImageResizer.image);
		    	}
		    }
	    }); 
	    
	    ImageResizer.resizeNotLoadedImages();
	},
	
	resizeNotLoadedImages: function()
	{
		var indexesToBeDeleted = new Array();
		
		$.each(notloadedImagesList, function(index)
		{
			var selector = notloadedImagesList[index].attr('src');
			var image = $('img[src$=' + selector + ']');

			if(image.width() > 0)
			{
				var imageWidth = image.width();
			    if (imageWidth > ImageResizer.maxWidth)
			    {
			    	image.width(ImageResizer.maxWidth);
			    }
			    
			    indexesToBeDeleted.push(index);
			}
		});
		
		$.each(indexesToBeDeleted, function(index, value)
		{
			notloadedImagesList.splice(value, 1);
		});
		
		if(notloadedImagesList.length > 0 && ImageResizer.attemptNumber <  5)
		{
			ImageResizer.attemptNumber++;
			
			setTimeout('ImageResizer.resizeNotLoadedImages()', 50);
		}
	}
};

function resizeLogo(containerNameWithPrefix)
{
	ImageResizer.resizeLogo(containerNameWithPrefix);
    
	/*var logoContainer = $(containerNameWithPrefix);
    var maxWidth = parseInt(logoContainer.css("width"), 10);
    
    logoContainer.each(function(index)
    {
	    var image = $(this).find("img");
	   
	    if (image.length > 0)
	    {
	    	doResizeLogo(image, maxWidth, 0);
	    }
    });
    */
}

function initializeSelect(selectName, spanId)
{
    var index = document.getElementsByName(selectName)[0].selectedIndex;
    
    if (index >= 0)
    {
	    var selectedText = document.getElementsByName(selectName)[0] .options[index].text;
	    var selectBox = $("#" + spanId).text(selectedText);
    }
}

function appendIE6PNGFilter()
{
	if(isIE6())
	{
		$('img').each(function(index){
			$(this).css('behavior', 'url('+$('#png-filter-path').text()+')');
		});
	}
}

function isIE()
{
	var result = false;
	if ( $.browser.msie ) 
	{
		result = true;
	}
	return result;
}

function isIE6()
{
	var result = false;
	if ( $.browser.msie && $.browser.version == "6.0" ) 
	{
		result = true;
	}
	return result;
}

function isChrome()
{
	return /chrome/.test( navigator.userAgent.toLowerCase() );
}

function hideTopBar()
{
	if($('#gwt-jahiatoolbar').length > 0 && $('#isAdmin').text() != 'true')
	{
		$('#gwt-jahiatoolbar').remove();
	}
}

function prepareSubscriptionButtons()
{
	if(isIE6())
	{
		if($('#trial-button').length > 0)
		{
			var trialButtonBackgroundImage = $('#trial-button').css('background-image');
			var trialButtonBackgroundHoverImage = trialButtonBackgroundImage.substring(0, trialButtonBackgroundImage.length - 6);
			trialButtonBackgroundHoverImage += '-hover.png")';
			
			$('#trial-button').mouseover(function(){
				$(this).css('background-image', trialButtonBackgroundHoverImage);
			});
			
			$('#trial-button').mouseout(function(){
				$(this).css('background-image', trialButtonBackgroundImage);
			});
		}
		
		if($('#cloud-button').length > 0)
		{
			var cloudButtonBackgroundImage = $('#cloud-button').css('background-image');
			var cloudButtonBackgroundHoverImage = cloudButtonBackgroundImage.substring(0, cloudButtonBackgroundImage.length - 6);
			cloudButtonBackgroundHoverImage += '-hover.png")';
			
			$('#cloud-button').mouseover(function(){
				$(this).css('background-image', cloudButtonBackgroundHoverImage);
			});
			
			$('#cloud-button').mouseout(function(){
				$(this).css('background-image', cloudButtonBackgroundImage);
			});
		}
	}
	
	convertTextToImages("trial-bold", "MyriadPro-BoldCond.ttf");
	convertTextToImages("trial-normal", "MyriadPro-Cond.ttf");
	convertTextToImages("subscription-button-right-text", "MyriadPro-Cond.ttf");
}

function initializeGoogleAnalitics()
{
	  _gaq.push(['_setAccount', 'UA-17631451-1']);
	  _gaq.push(['_trackPageview']);

	  (function() {
	    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
	    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
	    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
	  })();
}

function hideConcreteMixer(mixerId)
{
	$('#' + mixerId).hide();
}

function initializeTrimMethodForIE()
{
	if(isIE6())
	{
		if(typeof String.prototype.trim !== 'function') 
		{
		  String.prototype.trim = function() {
		    return this.replace(/^\s+|\s+$/g, ''); 
		  };
		}
	}
}

/*
 * -------------------------------------------------------------------------------------------------------

/* old less universal version
function getTextImage(text, fontSize, color, fontName)
{
	var textToImgConverterUrl = "/webpage-plugins/textToImage?";
	var imgSrc = textToImgConverterUrl + "text=" + text + "&size=" + fontSize + (isIE6() ? "&background=00b8ec" : "") + "&color=" + color + "&font=" + fontName;
	
	var imageObj = "<img src='" + imgSrc + "' alt='" + text + "' />";
			//(isIE6() ? ' style="behavior: url('+$("#png-filter-path").text()+')"' : '') +
	
	return imageObj;
}
function convertPageHeaderToImages()
{
	$(".convert-page-header").each(function(index)
	{
		var text = $(this).text();
		text = $.trim(text);
		
		var fontSize = parseInt($(this).css('font-size'));
		var fontName = "MyriadPro-Semibold.ttf";
		var fontColor = colorToHex($(this).css("color"));
		var backgroundColor = $(this).css("background-color");
			
		if(backgroundColor.indexOf('rgb(') > -1 || backgroundColor.indexOf('#') > -1)	//check if background color is defined
		{
			backgroundColor = colorToHex(backgroundColor);
		}
		else
		{
			backgroundColor = "FFFFFF";	// white background if not defined
		}
		
		$(this).empty();
		
		var img = getTextImage(text, fontSize, fontColor, fontName, backgroundColor);
		
		$(this).append(img);
	});
}

function convertSimpleTextToImages()
{
	$(".convert-text").each(function(index)
	{
		var text = $(this).text();
		text = $.trim(text);
		
		var fontSize = parseInt($(this).css('font-size'));
		var fontName = "MyriadPro-Regular.ttf";
		var fontColor = colorToHex($(this).css("color"));
		var backgroundColor = $(this).css("background-color");
			
		if(backgroundColor.indexOf('rgb(') > -1 || backgroundColor.indexOf('#') > -1)	//check if background color is defined
		{
			backgroundColor = colorToHex(backgroundColor);
		}
		else
		{
			backgroundColor = "FFFFFF";	// white background if not defined
		}
		
		$(this).empty();
		
		var img = getTextImage(text, fontSize, fontColor, fontName, backgroundColor);
		
		$(this).append(img);
	});
}*/

