function callAJAXService (serviceName, params, successFunc, errorFunc) {
	var url = 'services/services.php';
	
	$.ajax ({
		type: 'POST',
		url: url,
		dataType: 'json',
		timeout: 30000,
		data: {
			'cmd': serviceName,
			'params': Object.toJSON(params)
		},
		success: successFunc,
		error: errorFunc
	});
}

function setFontSize (newSize) {
	if (newSize == 'normal') {
		$('#body').css ('fontSize', '12px');
		$('#body').css ('lineHeight', '26px');		
	}
	if (newSize == 'large') {
		$('#body').css ('fontSize', '14px');
		$('#body').css ('lineHeight', '28px');
	}
	if (newSize == 'verylarge') {
		$('#body').css ('fontSize', '16px');
		$('#body').css ('lineHeight', '30px');
	}
	createCookie ('FontSize', newSize, 0);
}

function requestStock () {	

	callAJAXService (
		'GetStock', 
		{},
		function (data) {
			$('#StockData').css ('visibility', '');
			$('#StockValue').empty ().append ('$' + data.value);
			$('#StockChange').empty ().append (data.change);
			$('#StockPercChange').empty ().append (data.percchange);
			$('#StockVolume').empty ().append ('vol. ' + data.volume);
		},
		function () {
			//alert ('error getting stock data');
		}
	);
}


$(window).bind('load', function() {
	var imagesToPreload = new Array ();
	
	
	//imagesToPreload.push ('url of image');

	if (imagesToPreload.length > 0) {
		var img = $.create ('img', {});
		$(img).bind('load', function() {
			if(imagesToPreload[0]) {
				this.src = imagesToPreload.shift();
			}		
		}).trigger('load');
	}
});

$(document).ready(function(){
	requestStock ();
	$('#StockData').everyTime (1 * 60 * 1000, 'GetStockTimer', requestStock);
	
	var fontSize = readCookie ('FontSize');
	if (fontSize)
		setFontSize (fontSize);
	resizeSpacer ();
	$(window).resize(function(){
		resizeSpacer ();
	});
	$('.lightbox').lightbox({
		fitToScreen: false,
		imageClickClose: false
	});
});

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);
}

function resizeSpacer() {
	height = $(window).height () - $('#content').height ();
	if (height > 0)
		$('#spacer').css('height', '' + height + 'px');
	else
		$('#spacer').css('height', '1px');
}

function submitSearch () {	
	if (trim ($('#SearchQuery').val()) == '') {
		alert ('Please, enter one or more keywords first.');
		return false;
	}
	$('#SearchForm').submit ();
	return false;
}

function onSearchSubmit () {
	if (trim ($('#SearchQuery').val()) == '') {
		alert ('Please, enter one or more keywords first.');
		return false;
	}
	return true;
}

/**
*
* Javascript trim, ltrim, rtrim
* http://www.webtoolkit.info/
*
*
**/

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}