/*  Functions Javascript
=============================================================================================*/

var globals = {}

function trace( string )
{
   console.debug(string);
}

function dotdotdot( text, length )
{
   if( text.length >= length )
   {
      text = text.substring(0, length);
	  text = text+'&hellip;';
   }

   return text;
}

function s( count )
{
	if( count != 1 ) return 's';
	return '';
}

function setCaretPosition(elemId, caretPos) {
    var elem = document.getElementById(elemId);

    if(elem != null) {
        if(elem.createTextRange) {
            var range = elem.createTextRange();
            range.move('character', caretPos);
            range.select();
        }
        else {
            if(elem.selectionStart) {
                elem.focus();
                elem.setSelectionRange(caretPos, caretPos);
            }
            else
                elem.focus();
        }
    }
}

function where_am_i( elm, top_tolerance, bottom_tolerance )
{
	//elm.css( { border: '1px solid red' } );
	
	var positions = { 
		window_height: $(window).height(), 
		window_scroll_top: $(window).scrollTop()-60, 
		elm_top: elm.position().top
	}
	
	if( positions.window_scroll_top > (positions.elm_top-top_tolerance) )
	{
		//console.debug('it\'s hiding up there');	
		return 'up';
	}
	
	if( (positions.window_scroll_top + positions.window_height) < (positions.elm_top+bottom_tolerance) )
	{
		//console.debug('it\'s hiding down there');	
		return 'down';
	}
	
	return false;
}

function shuffle(o){ //v1.0
	for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
	return o;
};

// cookies - http://www.quirksmode.org/js/cookies.html

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}


