var IE6 = false;

/*
select styled
Visit http://ryanfait.com/ for more information.

*/

var selectWidth = "190";

document.write('<style type="text/css">input.styled { display: none; } .disabled { opacity: 0.5; filter: alpha(opacity=50); }</style>');

var Custom = {
	init: function() {
		var inputs = document.getElementsByTagName("input"), span = Array(), textnode, option, active;
		for(a = 0; a < inputs.length; a++) {
			if((inputs[a].type == "checkbox" || inputs[a].type == "radio") && inputs[a].className == "styled") {
				span[a] = document.createElement("span");
				span[a].className = inputs[a].type;

				if(inputs[a].checked == true) {
					if(inputs[a].type == "checkbox") {
						position = "0 -" + (checkboxHeight*2) + "px";
						span[a].style.backgroundPosition = position;
					} else {
						position = "0 -" + (radioHeight*2) + "px";
						span[a].style.backgroundPosition = position;
					}
				}
				inputs[a].parentNode.insertBefore(span[a], inputs[a]);
				inputs[a].onchange = Custom.clear;
				if(!inputs[a].getAttribute("disabled")) {
					span[a].onmousedown = Custom.pushed;
					span[a].onmouseup = Custom.check;
				} else {
					span[a].className = span[a].className += " disabled";
				}
			}
		}
		inputs = document.getElementsByTagName("select");
		for(a = 0; a < inputs.length; a++) {
			if(inputs[a].className == "styled") {
				option = inputs[a].getElementsByTagName("option");
				active = option[0].childNodes[0].nodeValue;
				textnode = document.createTextNode(active);
				for(b = 0; b < option.length; b++) {
					if(option[b].selected == true) {
						textnode = document.createTextNode(option[b].childNodes[0].nodeValue);
					}
				}
				span[a] = document.createElement("span");
				span[a].className = "select";
				span[a].id = "select" + inputs[a].name;
				span[a].appendChild(textnode);
				inputs[a].parentNode.insertBefore(span[a], inputs[a]);
				if(!inputs[a].getAttribute("disabled")) {
					inputs[a].onchange = Custom.choose;
				} else {
					inputs[a].previousSibling.className = inputs[a].previousSibling.className += " disabled";
				}
			}
		}
		document.onmouseup = Custom.clear;
	},
	pushed: function() {
		element = this.nextSibling;
		if(element.checked == true && element.type == "checkbox") {
			this.style.backgroundPosition = "0 -" + checkboxHeight*3 + "px";
		} else if(element.checked == true && element.type == "radio") {
			this.style.backgroundPosition = "0 -" + radioHeight*3 + "px";
		} else if(element.checked != true && element.type == "checkbox") {
			this.style.backgroundPosition = "0 -" + checkboxHeight + "px";
		} else {
			this.style.backgroundPosition = "0 -" + radioHeight + "px";
		}
	},
	choose: function() {
		option = this.getElementsByTagName("option");
		for(d = 0; d < option.length; d++) {
			if(option[d].selected == true) {
				document.getElementById("select" + this.name).childNodes[0].nodeValue = option[d].childNodes[0].nodeValue;
			}
		}
	}
}
window.onload = Custom.init;

/*
 * 	language menu into black bar
 */
function languageBarClass(){
	
	this.obj = jQuery('ul.bar-menu li.lang');
	this.childs = jQuery('ul', this.obj);
	
	var self = this;
	
	this.init = function()
	{
		this.bindEvents();
	}
	
	this.bindEvents = function()
	{
		this.obj.hover(function(){
			self.obj.addClass('open');
			self.childs.show();
		}, function(){
			self.obj.removeClass('open');
			self.childs.hide();
		});
		
		this.childs.find('li').click(function(){
			var lang = jQuery('span',this).attr('class');
			var href = window.location.href;
			
			href = href.substr(href.indexOf('://')+3);
			href = href.split('/'); 
			href = href.slice(2);
			href.unshift(lang);
			href = href.join('/');
			window.location = '/' + href;
		})
	}
	
	self.init();
}

var languageBar = {};

jQuery(document).ready( function(){
	languageBar = new languageBarClass();
});








/**
	Ń�Ń‚Ń€Š°Š½ŠøŃ†Š° Š½Š°Ń�Ń‚Ń€Š¾ŠµŠŗ -- Š·Š°ŠæŠ¾Š»Š½ŠµŠ½ŠøŠµ Š»ŠøŃ�Ń‚Š±Š¾ŠŗŃ�Š° Ń� Š½Š°Ń�Ń‚Ń€Š¾Š¹ŠŗŠ°Š¼Šø
*/
function setup_populate_langs() {
	var selected_lng = $('input#lang_default_preselected').val();

	var lng_select = $('select#def_langsi');
	$(lng_select).empty();
	$('input[type=checkbox][name^="langs["]').each(function (i) {
		if (this.checked) {;
			var lid = $(this).val();
			var ttl = $('label[for=langs_'+lid+']').text();
			var option = document.createElement('OPTION');
			option.value = lid;
			option.appendChild(document.createTextNode(ttl));
			option.selected = selected_lng==lid;
			$(lng_select).append(option);
		}
	});
} //setup_populate_langs

/**
	Š·Š°ŠæŠ¾Š¼ŠøŠ½Š°Š½ŠøŠµ Š²Ń‹Š±Ń€Š°Š½Š½Š¾Š³Š¾ Ń¸Š·Ń‹ŠŗŠ°
*/
function setup_preselect_lang(v) {
	$('input#lang_default_preselected').val(v);
}


/**
	ubiraem iz selectov zannjatuju valutu 
*/
function setup_hide_currency(obj) {
/*
	var hide = obj.name=='currency_from_default' ? 'currency_to_default' : 'currency_from_default' ;
	var v_hide = $('select[name^='+hide+']').val();
	var v = $(obj).val();
	jQuery.each(
		$('select[name^='+hide+']').find('option'),
		function(i, val) { if(val.value == v) { val.disabled=true; } else { val.disabled=false; } }
	);
	jQuery.each(
		$('select[name^='+obj.name+']').find('option'),
		function(i, val) { if(val.value == v_hide) { val.disabled=true; } else { val.disabled=false; } }
	);
*/
}

/**
	ŠæŠµŃ€ŠµŠŗŠ»ŃˇŃ‡Š°Š»ŠŗŠ° Ń¸Ń‹Š·ŠŗŠ° ŠæŠ¾Š»Ń¸
*/
function switch_field_language(l) {
	if (l) {
		
		$('div[id^=field_language_]').hide();
		$('div[class^=field_language_]').hide();
		$('div[id=field_language_'+l+']').show();
		$('div[id=field_language_'+l+'_title]').show();
		$('div[id=field_language_'+l+'_redirect]').show();
		$('div[id=field_language_'+l+'_body]').show();
		$('div[id=field_language_'+l+'_meta_description]').show();
		$('div[id=field_language_'+l+'_meta_keywords]').show();
		$('div[id=field_language_'+l+'_registration]').show();
		$('div[id=field_language_'+l+'_redirect_target_blank]').show();
		$('div[class=field_language_'+l+'_question]').show();
		$('div[class=field_language_'+l+'_params]').show();
		
		$('a[id^=lng_switch_]').removeClass('act');
		$('a#lng_switch_'+l).addClass('act');
		$('a#lng_switch_'+l).blur();
		$('input:first', $('div[id=field_language_'+l+'_title]')).focus();
		$('#editLangTabs li').removeClass('act');
		$('#editLangTabs li[name='+l+']').addClass('act');
	}

	return false;
}



/**
	ZŠ«Š«Š«Š«Š«Š«Š«Š«Š«Š«Š«Š«Š«Š«Š«Š«Š«Š«Š«Š«
*/
$(document).ready(function () {
    $('input#aff_inpt').bind('change', afff);
    $('input#aff_inpt').bind('keyup', afff);
	$('a#aff_do').bind('click', afff);
	afff();

	//registration and login form
	jQuery('a.login-s').click(function(e)
	{
		// IE (tupoj IE) bug
		if (!jQuery(this).is('.login-s'))
		{
			return true;
		}
		
		jQuery('body').append('<form method="POST" action="' + LOGIN_URL + '" id="login_form_redirect"><input type="hidden" name="site" value="' + SITE_ID + '" /></form>');
		jQuery('#login_form_redirect').submit();
		
	    // Stop event handling in non-IE browsers:
	    e.preventDefault();
	    e.stopPropagation();
	    // Stop event handling in IE
	    return false;			
	});
	jQuery('a.signup-s').click(function(e)
	{
		// IE (tupoj IE) bug
		if (!jQuery(this).is('.signup-s'))
		{
			return true;
		}
		
		jQuery('body').append('<form method="POST" action="' + REGISTER_URL + '" id="signup_form_redirect"><input type="hidden" name="site" value="' + SITE_ID + '" /></form>');
		jQuery('#signup_form_redirect').submit();
		
	    // Stop event handling in non-IE browsers:
	    e.preventDefault();
	    e.stopPropagation();
	    // Stop event handling in IE
	    return false;			
	});
	$('a.login-s-facebook').live('click', function(event)
	{
		// Stop event handling in non-IE browsers:
		event.preventDefault();
		event.stopPropagation();
	   
	    var href = $(this).attr('href');
		var iMyWidth = (window.screen.width/2) - (500 + 20);
		var iMyHeight = (window.screen.height/2) - (300 + 30);

		var options = 
		{
			'external_logon_siteid': SITE_ID,
			'external_logon_refer': window.location
		};
		
		newwindow = openWindowWithPost(href, 'facebook', 'status=0,toolbar=0,location=0,menubar=0,directories=0,left=' + iMyWidth + ',top=' + iMyHeight + ',screenX=' + iMyWidth + ',screenY=' + iMyHeight + ',height=600,width=1000', options);
		if (window.focus)
		{
			newwindow.focus()
		}
	    
	    // Stop event handling in IE
	    return false;
	});
	
});

function afff() {
	var aff = 0;
	var h = $('input#aff_inpt').val();
	h = parseInt(h);

	if (isNaN(h)) {
		h = 0;
	}

	aff = parseInt(h * 1.5 * 12);

	if (isNaN(aff) || 0==aff) {
		aff = ':)';
	}


	$('h1#aff_result').text( aff );
	return false;
}

/**
	Š¾Ń‚Š½Š¾Ń�ŠøŃ‚Ń�Ń¸ Šŗ Ń€ŠµŠ´Š°ŠŗŃ‚Š¾Ń€Ń� Š¼ŠµŠ½Ńˇ Šø Š±Š»Š¾ŠŗŠ¾Š²
*/
function repopulate_languages() {
	
	var lang_cbs = $('input[name^=enableLanguage]');
	
	$(lang_cbs).each(
	
	function (i) {
		if (this.checked) {
			$('a#lng_switch_'+this.value).removeClass('disabled');
		} else {
			$('a#lng_switch_'+this.value).addClass('disabled');
		}
	});
}


/**
	menaem input vzavistimosti ot jazika
*/
function changeTitleLang(lang) {
	$('.languages span').removeClass('act');
	$('.languages span[name^='+lang+']').addClass('act');
	$('.languages div.inpt').hide();
	$('#lang_'+lang).fadeIn('slow');
	$('#lang_'+lang + '_registration').fadeIn('slow');
}


function in_array(value, stack) {
	
	for (key in stack) {
		
		if (!stack.hasOwnProperty(key)) {
			continue ;
		}
		
		if (stack[key] == value) 
		{
			return true;
		}
	}
	
	return false; 
}

function array_key_exists(key, search) {
   return (typeof search[key] != 'undefined');
}

function array_keys(stack) {
	
	var keys = new Array();
	
	for (key in stack) {
		
		if (!stack.hasOwnProperty(key)) {
			continue ;
		}
		
		keys.push(key);
	}
	
	return keys;
}

function array_key(stack, value) {
	
	var pos = 0; 
	
	for (key in stack) {
		
		if (!stack.hasOwnProperty(key)) {
			continue ;
		}
		
		pos++;
		
		if (stack[key] == value) {
			return pos;
		}
	}
}

function isEmpty(variable) {
	
	if (!variable) {
		return true;
	}
	
	if (typeof variable == 'object') {
		
		for (key in variable) {
			
			if (!variable.hasOwnProperty(key)) {
				continue ;
			}
			
			return false;
		}
	}
	
	return true;
}

function assosiativeCount(stack) {
		
	var counter = 0;
	
	for (key in stack) {
		
		if (!stack.hasOwnProperty(key)) {
			continue ;
		}
		
		counter++;
	}
	
	return counter;
}

function trim(str) {
	return str.replace(/^\s+|\s+$/g, '');
}

function pp(Object) {
	if(console!=undefined)
	{
		console.log(Object);
	}
}

/**
	cross-platform event.target
*/
function findEventOwner( e ){
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) targ = targ.parentNode; // defeat Safari bug
	return targ;
}


function crossBrowserTarget(event){
 if(event.originalTarget) {
  return event.originalTarget; 
 } else if(event.target) {
  return event.target;
 } else if(event.currentTarget) {
  return event.currentTarget;
 }
 return;
}

function openChat(contactId) {
	
	if (Jabber.Connection && cTab && !cTab.currentRoom) {
		cTab.loadRoom(contactId, true);
	}
	else if (Jabber.Connection && cTab && cTab.currentRoom && cTab.currentRoom.recipientId != contactId) {
		cTab.loadRoom(contactId);
	}
}


function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

function updateUserListStatus(contactId, presence)
{
	var statusImage = presence == 'online' ? cTab.statusIconMapping['online'] : cTab.statusIconMapping['offline'];
	
	$('div.status img', $('#list-user-id-' + contactId)).attr('src', statusImage);
	jQuery('div.status img', jQuery('.list-comment-user-id-' + contactId)).attr('src', statusImage);
	jQuery('div.status img', jQuery('.list-reguserblock-user-id-' + contactId)).attr('src', statusImage);
}

function trySubmitNewEmail(formId, errorId, url) {
	
	var value = $('form#' + formId + ' input[name^=email]').val();
	value = trim(value);
	
	if (!value) {
		return ;
	}
	
	$.ajax({
		
		type: "POST",
		url: url,
		data: "email_address=" + value,
		
		success: function(out) {
		
			if (out) {
				$('#' + errorId).show().html(out);
				return false;	
			}
			
			$('form#' + formId).submit();
		}
	});
}

var mouseCursor = 'default';
function connectingShow()
{
	mouseCursor = jQuery(document.body).css('cursor');
	jQuery(document.body).css({cursor:'wait'});
}
function connectingHide()
{
	jQuery(document.body).css({ cursor : mouseCursor!='wait' ? mouseCursor : 'default' });
}

jQuery(function()
{
	jQuery('span.regusers-chat').each(function()
	{
		var contactId = jQuery(this).text();	
		var parent = jQuery(this).parent().find('img');
		
		jQuery(parent).bind('click', {contactId:contactId}, function(e)
		{
			openChat(e.data.contactId);
		});
	});
	
	jQuery('form.polls-form').submit(function(event)
	{
		event.preventDefault();
		var pollid = jQuery(this).find('input[name=pollid]').val();
		
		var answer = jQuery(this).find("input[name=answer]:checked").val();
		if (answer == undefined || answer < 1)
		{
			return false;
		}

		jQuery.ajax({
			type: "POST",
			url: "/controller/ajax.poll",
			data: "pollid=" + pollid + "&answer=" + answer,
			success: function(out)
			{
				jQuery('#polls-form-' + pollid).after(out);
				jQuery('#polls-form-' + pollid).remove();
			
				return false;
			}
		});
		
		return false;
	});
	
	jQuery('form.contact-form').submit(function(event)
	{
		event.preventDefault();
		jQuery(this).attr('action', '/' + SITE_LANGS + '/controller/ajax.contacts.form');
		
		jQuery(this).ajaxSubmit({ success: function(responseText, statusText, xhr, $form)
		{
			if (jQuery(responseText).attr('id') == 'errors')
			{
				var errorTexts = new Array;
				errorTexts = jQuery(responseText).children().children();

				// delete old errors
				$form.find('p.error').remove();
				$form.find('li.err').removeClass('err');
				
				errorTexts.each(function()
				{
					var treeElement = $form.find('[name=' + jQuery(this).attr('id') + ']');
					
					// display error
					treeElement.after('<p class="error">' + jQuery(this).html() + '</p>');
					treeElement.parent().addClass('err');
				});
				$form.find('img.captcha').trigger('click');
			}
			else
			{
				jQuery($form).after(responseText);
				jQuery($form).remove();
			}
		}});		
		
		return false;
	});
	
	jQuery('a.polls-form-vote').click(function(event)
	{
		event.preventDefault();
		var pollid = jQuery(this).attr('href');
		
		jQuery('#polls-form-' + pollid).submit();
		return false;
	});
	jQuery('a.send-contact-form').click(function(event)
	{
		event.preventDefault();
		var formId = jQuery(this).attr('id');
		
		jQuery('#form-' + formId).submit();
		return false;
	});
	
	jQuery('a.follow-site').click(function(event)
	{
		event.preventDefault();
		var buttonObject = this;
		
		jQuery.ajax({
			type: "POST",
			url: "/ll/controller/ajax.follows",
			data: "_action=followSite",
			success: function(out)
			{
				jQuery(buttonObject).parent().remove();
			}
		});
		return false;
	});
	
	jQuery('a.remove-publication').live('click', function(event)
	{
		event.preventDefault();
		var buttonObject = this;
		var publicationId = jQuery(this).attr('href');
		
		jQuery.ajax({
			type: "POST",
			url: "/ll/controller/ajax.follows",
			data: "_action=removePublication&publicationid=" + publicationId,
			success: function(out)
			{
				jQuery(buttonObject).parent().parent().parent().parent().parent().hide('blind');
			}
		});
		return false;
	});
});

scroolerInterval = null;
function scrollalert(userid, doTimeout)
{
	var scrollTop    = parseInt($('div.publicate-container').attr('scrollTop'));
	var scrollHeight = parseInt($('div.publicate-container').attr('scrollHeight'));  // shirina diva s elementami
	var windowHeight = parseInt($('div.publicate-container').attr('clientHeight'));
	var scrollOffset = 10;

	if (scrollTop >= (scrollHeight - (windowHeight + scrollOffset)) || doTimeout == false)
	{
		// 
		var pagenumber = parseInt($('span#publicate-pagenumber').text());
		$('div.load-btn').html('<img src="/i/general/loader.gif" alt="Loader">');
		
		jQuery.ajax({
			type: "POST",
			url: "/ll/controller/ajax.follows",
			data: "_action=loadActions&page=" + pagenumber + "&userid=" + userid,
			success: function(out)
			{
				$('div.load-btn').before(out);
				
				$('div.load-btn').html('<span href="#" onclick="javascript: scrollalert(' + userid + ', false); return false;">' + phrases['useractions_load_others'] + '</span>');
				$('span#publicate-pagenumber').text('' + (pagenumber + 1));
			}
		});
		
		if (doTimeout == true)
		{
			scroolerInterval = setTimeout('scrollalert(' + userid + ', true);', 1500);
		}
	}
	else
	{
		clearInterval(scroolerInterval);
	}
}

function hex_to_rgba_css(hex) {

	if (!hex.match(/^#?([0-9A-Fa-f]){3}$|^#?([0-9A-Fa-f]){6}$/)) {
		return '';
	}

	hex = hex.replace(' ', '');
	hex = hex.indexOf('#') === 0 ? hex.substr(1) : hex;

	var css = [];

	if (hex.length == 6) {

		css.push(parseInt(hex.substring(0, 2), 16));
		css.push(parseInt(hex.substring(2, 4), 16));
		css.push(parseInt(hex.substring(4, 6), 16));
	}
	else if (hex.length == 3) {

		css.push(parseInt(hex.substring(0, 1) + hex.substring(0, 1), 16));
		css.push(parseInt(hex.substring(1, 2) + hex.substring(1, 2), 16));
		css.push(parseInt(hex.substring(2, 3) + hex.substring(2, 3), 16));	
	}
	else {
		return '';
	}
		
	css = css.join(',');
	css = 'rgb(' + css + ')';

	return css;
}

function rgba_to_hex_css(c) {
	var m = /rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/.exec(c);
	return m ? '#' + (1 << 24 | m[1] << 16 | m[2] << 8 | m[3]).toString(16).substr(1) : c;
}

function rgb_to_rgba(color, opacity) {
	
	if (color.indexOf('rgba') > -1) {
		return color;
	}
	
	return color.replace('rgb', 'rgba').replace(')', ', '  + opacity + ')');
}

function opacity_to_rgba(color, opacity) {
	
	color = rgba_to_rgb(color);
	color = rgb_to_rgba(color, opacity);
	
	return color;
}

function opacity_from_rgba(c) {
	
	var m = /rgba\(\s*\d+\s*,\s*\d+\s*,\s*\d+,\s*([0-9.]{1,})/.exec(c);
	return m ? m[1] : '1.0' ;
	// return (typeof m == 'undefined') ? '1.0' :  m[1] ;
}

function rgba_to_rgb(color) {
	return color.replace('rgba', 'rgb').replace(/^(.*),.*(\))$/, '$1$2');
}

function preg_quote(str, delimiter) {
    return (str + '').replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\' + (delimiter || '') + '-]', 'g'), '\\$&');
}

function openWindowWithPost(url, name, params, posts)
{
	var newWindow = window.open(url, name, params); 
	if (!newWindow)
	{
		return false;
	}
	
	var html = "";
	html += "<html><head></head><body><form id='formid' method='post' action='" + url + "'>";
	
	for (var i in posts)
	{
		html += "<input type='hidden' name='" + i + "' value='" + posts[i] + "'/>";
	}
	
	html += "</form><script type='text/javascript'>document.getElementById(\"formid\").submit()</script></body></html>";
	newWindow.document.write(html);
	
	return newWindow;
}

function object_merge(destination, source) {
    for (var property in source) {
        if (source.hasOwnProperty(property)) {
            destination[property] = source[property];
        }
    }
    return destination;
}

function validateEmail(address) {
	
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	var list = address.split(',');
	
	for (key in list) {
		
		if (!list.hasOwnProperty(key)) {
			continue;
		}
		
		var address = trim(list[key]);
		
		if (!address) {
			return false;
		}
		
		if (!pattern.test(address)) {
			return false;
		}
	}
	
	return true;
}

function addInlineStyles(html, selectorMap) {
	
	var dummy = $('<div></div>').append(html);
	var styles = {};

	for (selector in selectorMap) {
	
		if (!selectorMap.hasOwnProperty(selector)) {
			continue;
		}
	
		selector = selector.replace(/([#;&+*~\'"!^$[\]()=>|\/@])/g,'\\$1');
		
		if (selectorMap.hasOwnProperty(selector)) {
			
			var selectorNodes = selector.split(',');
			
			for (key in selectorNodes) {
				
				if (!selectorNodes.hasOwnProperty(key)) {
					continue;
				}
				
				var node = selectorNodes[key];
				
				if (isEmpty(styles[node])) { 
					styles[node] = [];
				}
				
				rule = $.trim(selectorMap[selector]);
				
				if (!rule) {
					continue;
				}
				
				if (rule.lastIndexOf(';') != rule.length-1) {
					rule += ';';
				}
				
				styles[node].push(rule);
			}
		}
	}
	
	for (selector in styles) { 
		
		if (!styles.hasOwnProperty(selector)) {
			continue;
		}
		
		var rules = styles[selector].join(' ');
		
		if (['html', 'body'].indexOf(selector) > -1) {
			$(dummy).attr('style', rules);
		}
		else if (selector.indexOf(':hover') == -1) {
			$(selector, dummy).attr('style', rules);
		}
	}
	
	dummy.find('*').removeAttr('class');
	
	var container = $('<div></div>').append(dummy);
	
	return container.html();
}

