//just a bunch of functions extending jQuery or separate general javascript functions
/*****************/
/* form function */
/*****************/
$.fn.form_to_string = function()
{
	var form_string = '';
	$(':input', this).each(function()
	{
		if(form_string != '')
		{
			form_string += '&';
		}
		form_string += $(this).attr('name') + '=' + $(this).val();
	});
	return form_string;
}

$.fn.form_to_data_object = function()
{
    var form_data = {};
	$(':input', this).each(function()
	{
		form_data[$(this).attr('name')] = $(this).val();
	});
	return form_data;
}

/********************/
/* utility function */
/********************/
random_string = function()
{
	var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
	var string_length = 8;
	var randomstring = '';
	for (var i=0; i<string_length; i++)
	{
		var rnum = Math.floor(Math.random() * chars.length);
		randomstring += chars.substring(rnum,rnum+1);
	}
	return randomstring;
}

/********************/
/* string functions */
/********************/
url_query_to_data = function(string)
{
	var data = {};
	if(string != undefined && string != null)
	{
		if(string.indexOf('&') !== false)
		{
			var varables = string.split('&');
		}
		else
		{
			var varables = new Array(string);
		}

		var length = varables.length;

		for(var x = 0; x < length; x++)
		{
			var key = varables[x].split('=')[0];
			var value = varables[x].split('=')[1];
			data[key] = value;
		}
	}
	return data;
}

preload_images = function()
{
  for(var i = 0; i<arguments.length; i++)
  {
    jQuery("<img>").attr("src", arguments[i]);
  }
}

function set_cookie( name, value, expires, path, domain, secure )
{
// set time, it's in milliseconds
var today = new Date();
today.setTime( today.getTime() );
if ( expires )
{
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );

document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
( ( path ) ? ";path=" + path : "" ) +
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}

/**************************/
/* external link function */
/**************************/
function externalLinks() {
	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		if (
			anchor.getAttribute("href") && (
			anchor.getAttribute("rel") == "external" ||
			anchor.getAttribute("rel") == "external nofollow" ||
			anchor.getAttribute("rel") == "nofollow external" )
			)
		anchor.target = "_blank";
	}
}
window.onload = function() {
	externalLinks();
}


