
var show_languages = function()
{
//	$('#language_drop').slideToggle('fast');	
}

var catDown = 0;
var catOver = 0;
var langDown = 0;
var langOver = 0;

var featured_speed = 5000;
var featured_array = new Array();
var featured_selected = 0;
var max_featured;
var featured_timer;

var do_search = function(q)
{
	if(q!='')
	{
		location = search_url + q;
	}
}

var featured_init = function()
{
	// find featured items
	$('#featured_list .featured_item').each(function()
	{
		featured_array.push($(this).attr('id'));
	});
	max_featured = featured_array.length - 1; // set the max number
	$('#'+featured_array[featured_selected]+'_img').addClass('selected'); //select the first image
	
	// add rollovers for product images
	$('#featured_image_list a').each(function()
	{
		$(this).mouseover(function()
		{
			clearTimeout(featured_timer);
			var info = $(this).attr('id');
			info = info.replace(/_img/,'');
			$('#'+featured_array[featured_selected]+'_img').removeClass('selected');
			$(this).addClass('selected');
			$('#'+featured_array[featured_selected]).hide();
			$('#'+info).show();
		});
		$(this).mouseout(function()
		{
			var info = $(this).attr('id');
			info = info.replace(/_img/,'');
			$('#'+featured_array[featured_selected]+'_img').addClass('selected');
			$(this).removeClass('selected');
			$('#'+info).hide();
			$('#'+featured_array[featured_selected]).show();
			featured_timer = setTimeout(rotate_featured,featured_speed);
		});
	});
	
	featured_timer = setTimeout(rotate_featured,featured_speed);
}

var rotate_featured = function()
{
	$('#'+featured_array[featured_selected]).fadeOut('slow',function()
	{
		$('#'+featured_array[featured_selected]+'_img').removeClass('selected');
		featured_selected++;
		if(featured_selected > max_featured) featured_selected = 0;
			$('#'+featured_array[featured_selected]+'_img').addClass('selected');
		$('#'+featured_array[featured_selected]).fadeIn('slow',function()
		{
			featured_timer = setTimeout(rotate_featured,featured_speed);
		});
	});
}

$(document).ready(function()
{
	if($('#side_nav').height() < $('#top_section').height()){//show side nav at same height as full column
		$('#side_nav').height($('#top_section').height()-36+'px');
	}
	$('#search_txt').attr('value',search_text);
	$('#search_txt').focus(function()
	{
		if($('#search_txt').attr('value') == search_text) $('#search_txt').attr('value','');
	});
	$('#search_txt').blur(function()
	{
		if($('#search_txt').attr('value') == '') $('#search_txt').attr('value',search_text);
	});
	
	$('#lang_select').mouseover(function()
	{
		$(this).css('cursor','pointer');
		langOver = 1;
	});
	$('#lang_select').mouseout(function()
	{
		langOver = 0;
	});
	$('#lang_select').click(function()
	{
		if(langDown)
		{
			$('#language_drop').slideUp('fast');
			langDown = 0;
		}
		else {
			$('#language_drop').slideDown('fast');
			langDown = 1;
		}
	});
	$('#cat_select').mouseover(function()
	{
		$(this).css('cursor','pointer');
		catOver = 1;
	});
	$('#cat_select').mouseout(function()
	{
		catOver = 0;
	});
	$('#cat_select').click(function()
	{
		if(catDown) {
			$('#category_drop').slideUp('fast');
			catDown = 0;
		} else {
			$('#category_drop').slideDown('fast');
			catDown = 1;
		}
	});
	
	$(document).click(function()
	{
		if(!catOver && catDown) {
			$('#category_drop').slideUp('fast');
			catDown = 0;
		}
		//alert(langOver + ', ' + langDown);
		if(!langOver && langDown) {
			$('#language_drop').slideUp('fast');
			langDown = 0;
		}
	});
	
	if($('#featured_list')) featured_init();
	
	$('.level0').hover(function(){
		$(this).find('> ul').show();
	},function(){
		$(this).find('> ul').hide();
	});
	$('.level2').hover(function(){
		var position = ($(this).find('> ul').height()/2)-($(this).height()/2);//calculation to position the hover menu in the middle of its parent: (half the menu's height - half the parent's height)
		$(this).find('> ul').css('top', '-'+position+'px')
		$(this).find('> ul').css('zIndex', 9999).show();
	},function(){
		$(this).find('> ul').hide().css('zIndex', 0);
	});
});

// product details etc

var product_info_types = new Array('details','documentation','applications','images');

var switch_to = function(type)
{
	for(var i=0;i<product_info_types.length;i++)
	{
		if($('#'+product_info_types[i]).length)
		{
			$('#'+product_info_types[i]).hide();
			$('#'+product_info_types[i]+'_selector').removeClass('selected');
		}
	}
	$('#'+type).show();
	$('#'+type+'_selector').addClass('selected');
}

function download_details(loc)
{
	var vars = $('#download_form').serialize();
	$.post('/download/process',vars,function(data){
		
		if(data!='empty')
		{
			closepopup();
			//alert(data);
			location = data;
		}else{
			alert("All fields are required");	
		}
	})
}

function get_popup_content(loc)
{
	$('#loadContent').load(loc);
} 

function init_popup(loc)
{
	var browserHTML = '<div id="browserElement"><div id="blackOut"></div><div id="popup"><a id="popupClose" href="javascript:closepopup();"><span>close</span></a><div id="loadContent"></div></div></div>';
	
	$("body").append(browserHTML);
	$("#blackOut").css('opacity',0);
	$("#popup").css('opacity',0);
	var screenWidth = $(window).width();
	var screenHeight = $(window).height();
	var scrollTop = $(document).scrollTop();
	$("#blackOut").width(screenWidth);
	$("#blackOut").height(screenHeight);
	$("#blackOut").css('top',scrollTop);
	var libraryHeight = $("#popup").height();
	var libraryWidth = $("#popup").width();
	var negHeight = screenHeight-libraryHeight;
	var negWidth = screenWidth-libraryWidth;
	$("#popup").css('top',(Math.round(negHeight/2))+scrollTop);
	$("#popup").css('left',Math.round(negWidth/2));
	
	$('#blackOut').fadeTo('slow',0.5);
	$('#popup').fadeTo('normal',1,function()
	{
		get_popup_content(loc)
	});
}

function closepopup()
{
	target = null;
	$('#blackOut').fadeOut('normal');
	$('#popup').fadeOut('normal',function()
	{
		$('#browserElement').remove();
	});
}

function urlencode( str ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philip Peterson
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: AJ
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: travc
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Lars Fischer
    // %          note 1: info on what encoding functions to use from: http://xkr.us/articles/javascript/encode-compare/
    // *     example 1: urlencode('Kevin van Zonneveld!');
    // *     returns 1: 'Kevin+van+Zonneveld%21'
    // *     example 2: urlencode('http://kevin.vanzonneveld.net/');
    // *     returns 2: 'http%3A%2F%2Fkevin.vanzonneveld.net%2F'
    // *     example 3: urlencode('http://www.google.nl/search?q=php.js&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a');
    // *     returns 3: 'http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a'
                             
    var histogram = {}, unicodeStr='', hexEscStr='';
    var ret = (str+'').toString();
    
    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };
    
    // The histogram is identical to the one in urldecode.
    histogram["'"]   = '%27';
    histogram['(']   = '%28';
    histogram[')']   = '%29';
    histogram['*']   = '%2A';
    histogram['~']   = '%7E';
    histogram['!']   = '%21';
    histogram['%20'] = '+';
    histogram['\u00DC'] = '%DC';
    histogram['\u00FC'] = '%FC';
    histogram['\u00C4'] = '%D4';
    histogram['\u00E4'] = '%E4';
    histogram['\u00D6'] = '%D6';
    histogram['\u00F6'] = '%F6';
    histogram['\u00DF'] = '%DF';
    histogram['\u20AC'] = '%80';
    histogram['\u0081'] = '%81';
    histogram['\u201A'] = '%82';
    histogram['\u0192'] = '%83';
    histogram['\u201E'] = '%84';
    histogram['\u2026'] = '%85';
    histogram['\u2020'] = '%86';
    histogram['\u2021'] = '%87';
    histogram['\u02C6'] = '%88';
    histogram['\u2030'] = '%89';
    histogram['\u0160'] = '%8A';
    histogram['\u2039'] = '%8B';
    histogram['\u0152'] = '%8C';
    histogram['\u008D'] = '%8D';
    histogram['\u017D'] = '%8E';
    histogram['\u008F'] = '%8F';
    histogram['\u0090'] = '%90';
    histogram['\u2018'] = '%91';
    histogram['\u2019'] = '%92';
    histogram['\u201C'] = '%93';
    histogram['\u201D'] = '%94';
    histogram['\u2022'] = '%95';
    histogram['\u2013'] = '%96';
    histogram['\u2014'] = '%97';
    histogram['\u02DC'] = '%98';
    histogram['\u2122'] = '%99';
    histogram['\u0161'] = '%9A';
    histogram['\u203A'] = '%9B';
    histogram['\u0153'] = '%9C';
    histogram['\u009D'] = '%9D';
    histogram['\u017E'] = '%9E';
    histogram['\u0178'] = '%9F';
    
    // Begin with encodeURIComponent, which most resembles PHP's encoding functions
    ret = encodeURIComponent(ret);
 
    for (unicodeStr in histogram) {
        hexEscStr = histogram[unicodeStr];
        ret = replacer(unicodeStr, hexEscStr, ret); // Custom replace. No regexing
    }
    
    // Uppercase for full PHP compatibility
    return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2) {
        return "%"+m2.toUpperCase();
    });
}

