/**
 * @author kid
 */

function mylove_unique(prefix)
{
	return '_mylove_' + prefix + '_' + Math.round(Math.random()*1000013);
}

function mylove_include_data(data_file, callback)
{
	//TODO: не работает в Arora, наверное ещё где-то не работает :)

	var script = document.createElement( 'script' );
	script.setAttribute('type', 'text/javascript' );
	script.setAttribute('src', 'http://mylove.ru/i/' + data_file + (callback? ((data_file.search(/\?/) != -1)? '&callback=' : '?callback=') + callback : ''));
	document.getElementsByTagName('head')[0].appendChild(script);
}

myLoveTeaserFaces = function(parameters)
{
	this.parameters = parameters;
}
myLoveTeaserFaces.prototype =
{
	loaded: function(data)
	{
		var html = this.generateHTML(this.parameters, data);
		var el = null;

		if (el = document.getElementById(this.parameters['element_id']))
			el.innerHTML = html;
			
		if (typeof this.parameters['debug'] != 'undefined')
			alert(html);
	},
	generateHTML: function(options, data)
	{
		var html = '';
		var domain = (options['domain'] == undefined)? 'mylove.ru' : options['domain'];
		var promo  = (options['promo']  == undefined)? ''          : '?' + options['promo'];
		var blank  = (options['blank']  == undefined)? ''          : options['blank'];
		var more   = (options['more']   == undefined)? false       : ((options['more'] === 'true') || (options['more'] === true));

		for (var uid in data)
			if (data[uid] && data.hasOwnProperty && data.hasOwnProperty(uid)) // always check for own property in for .. in ..
			{
				var user = data[uid];
				var interest = '';

				interest += (user.interest_boy    == 't')? (((interest == '')? '' : ', ') + 'парнем')    : '';
				interest += (user.interest_girl   == 't')? (((interest == '')? '' : ', ') + 'девушкой')  : '';
				interest += (user.interest_maried == 't')? (((interest == '')? '' : ', ') + 'парой М+Ж') : '';
				interest += (user.interest_guys   == 't')? (((interest == '')? '' : ', ') + 'парой М+М') : '';
				interest += (user.interest_lesby  == 't')? (((interest == '')? '' : ', ') + 'парой Ж+Ж') : '';

				html += '<div><a target=\"'+ blank +'\" class="t_img" href="http://' + domain + '/' + user.login + '/' + promo + '">'
					+ '<img title="' + user.name + ', ' + user.age + '" src="http://img.mylove.ru/m/' + user.path + '" />'
					+ ((user.is_online == 't')? '<span class="t_online">на сайте</span>' : '')
					+ '<div class="t_baloon">'
					+ '<u>' + user.name + ', ' + user.age + '</u>'
					+ '<span class="t_date">Познакомлюсь с ' + interest
					+ '<br>из г. ' + user.city_name + '</span></div></a></div>';
			}
			
		var more_html = '';
		if (more)
		{
			var params_str = '';
			for (var key in options)
				if (options[key] && options.hasOwnProperty && options.hasOwnProperty(key))
					params_str += ' '+key+':' + "'"+options[key]+"',";
			params_str = params_str.replace(/[,]+$/, "");
					
			more_html = '<div id="teaser_more"><a href="#" onclick="mylove_teaser({' + params_str + '}); return false;">Ещё</a></div>';
		}

		return "<div class='mylove_teaser'>" + html + more_html + "<div id='clear'></div></div>";
	},
	getUrl: function()
	{
		var params = this.parameters;
		var params_str = '';

		for (var key in params)
			if (params[key] && params.hasOwnProperty && params.hasOwnProperty(key)) // always check for own property in for .. in ..
				params_str += ((params_str == '')? '?' : '&') + key + '=' + params[key];

		return 'teaser_faces' + params_str;
	}
}

function mylove_teaser(parameters)
{
	var uid = (parameters['uid'] == undefined)? '_ml_teaser_'+Math.round(Math.random()*1000013) : parameters['uid'];

	var unique = mylove_unique('sf_load_faces');
	
	if ((typeof parameters['element_id']) == 'undefined')
	{
		parameters['element_id'] = unique + '_div';
		document.write("<div id='" + parameters['element_id'] + "'></div>");
	}
	
	var loader = document[unique] = new myLoveTeaserFaces(parameters);

	mylove_include_data(loader.getUrl(), unique);
}

