function itemclk(elem, link){
	var frm = document.createElement("form");
	document.body.appendChild(frm);
	frm.method = "post";
	frm.target = "_blank";
	
	frm.action = link;
	frm.submit();
	document.body.removeChild(frm);
	
	return false;
}

function statusMsg(msg) {
	window.status = msg;
	return true;
}

var hasFocus = true;

if (navigator.appName == "Microsoft Internet Explorer") {
	document.onfocusin = function () {hasFocus = true;}
	document.onfocusout = function () {hasFocus = false;}
} else {
	window.onfocus = function () {hasFocus = true;}
	window.onblur = function () {hasFocus = false;}
}


function js_in_array(the_needle, the_haystack, simpleMatch){

	var the_hay = the_haystack.toString();
	
	if(!the_hay || !the_needle || (the_hay == '')){
		return false;
	}
	for(var i in the_haystack){
		var the_hay = the_haystack[i];
		if(simpleMatch){
			the_hay = the_hay.toString().toLowerCase();
			the_needle = the_needle.toString().toLowerCase();
		}
		if(the_hay == the_needle){
			return true;
		}
	}
	return false;
}

function do_link(section, params){
	
	var parts = section.split(".");
	var module = parts[0];
	var page = parts[1];	
	var send_to_file;		
	var array_params = Array();
	var i = 0;
	var j = 0;
	var send_params = "";
	var param = Array();
	array_params = params.split("&");	
	// Get module & page
	var res_file = section.split(".");	
	var send_to_file = res_file[1];
	var force_files = SUBDOMAINS_FORCE_FILES_JS.split(",");
	var base_path = PATH + "/";
	
	// Cross subdomain links
	if (js_in_array(section, force_files)) {
		send_to_file = res_file[0] + "-" + res_file[1];
	}
	// Normal links
	else {
		send_to_file = (send_to_file == "index") ? "" : send_to_file;
	}
	
	var rewrite_vars = new Array();
	var skip_vars = new Array();
	var do_rewrite_mapping = 0;
	
	// Extract the rewrite mapping
	var rewrite_mapping = URL_REWRITE_MAPPING_JS.split("|");
	
	i = 0;
	while (i < rewrite_mapping.length){
		var tmp_mapping = rewrite_mapping[i].split(",");

		// If the current page has mapping		
		if (send_to_file == tmp_mapping[0]) {
			j = 1;
			
			// Extract variables to mapp
			while (j < tmp_mapping.length){
				rewrite_vars[j] = tmp_mapping[j];
				j ++;
			}
			
			// Do mapping is on
			do_rewrite_mapping = 1;
		}
		
		i ++;
	}
					
	i = 0;
	
	// Check url params
	while (i < array_params.length){
		if (array_params[i] != "") {
			
			// Get param data
			param = array_params[i].split("=");
			
			// If do mapping is on
			if (do_rewrite_mapping == 1) {
				j = 1;
				var do_skip = 0;
				
				// Check if we should rewrite this param
				while (j < rewrite_vars.length) {
					if (rewrite_vars[j] == param[0]) {
						
						// Send param value to another list
						skip_vars[j] = param[1];
						do_skip = 1;
					}
					j ++;
				}
				
				// If no skipping add param to url vars list
				if (!do_skip) {
					send_params = send_params + param[0] + "=" + param[1];
					if(i < (array_params.length - 1)) {
						send_params = send_params + "&";
					}
				}
			}
			else {
				// Add param to url vars list
				send_params = send_params + param[0] + "=" + param[1];
				if(i < (array_params.length - 1)) {
					send_params = send_params + "&";
				}
			}
		}
		i ++;
	}					
	
	// If do mapping is on
	if (do_rewrite_mapping == 1) {
		i = 0;
		
		// Add skipped params values to the name of the page
		while (i < skip_vars.length) {
			if (skip_vars[i]) {
				send_to_file += "/" + skip_vars[i];
			}
			i ++;
		}
	}
	else {
		if (send_to_file != "") {
			send_to_file += "/";
		}
	}
				
	return ((send_params != "") ? (base_path + send_to_file + "?" + send_params) : (base_path + send_to_file));
}

// Extend jQuery with custom function #######################################################
// Set an option by value
$.fn.setOption = jQuery.fn.setOption = function (value) {
	return this.each(function() {
		// Try to catch any errors
		try {
			$(this).find("option").removeAttr("selected").filter("[value='" + value + "']")[0].selected = true;
		}
		catch(error){}
       });
};

// Get the value of the selected option
$.fn.getOption = jQuery.fn.getOption = function () {
	var selection = null;
	var sel = $(this);
	
	// Solve IE6 select bug
	if ($.browser.msie && ($.browser.version < 7)) {
		var opts = sel.find("option:selected");
		
		if (opts.length > 1) {
			selection = $(opts[opts.length - 1]).attr("value");
		}
	}
	
	// If not IE6 get selection from value
	if (selection == null) {
		selection = sel.val();
	}
	
	return selection;
};

// Populate custom select #######################################################
// select_id, selected_option, url, txt_loading
function populate_custom_select(opt, callback){
	
	// Extend loading text option
	opt = $.extend({}, {txt_loading: txt_loading}, opt);
	
	// Find custom select
	var custom_select = $("#" + opt.select_id);
	
	// Empty + disable + add one option with loading text
	custom_select.empty().attr("disabled", "disabled").append("<option value=\"0\">" + opt.txt_loading + "</option>");
	
	// Change selected key into a number
	opt.selected_option = parseInt(opt.selected_option);
	
	// Load data from remote
	custom_select.load(opt.url, {}, function(){
		// Enable custom select
		custom_select.removeAttr("disabled");
		
		// We have a selected option to set
		if (opt.selected_option > 0) {
			custom_select.setOption(opt.selected_option);
		}
		
		// We have a callback function to call
		if (typeof(callback) == "function") {
			custom_select.unbind("change").change(function(e){
				callback.call();
			}).change();
		}
	});
}

// Utility functions #######################################################

// Get remote action
function remote_action(page, options, _callback){
	if (options.datatype) {
		_datatype = options.datatype;
		delete options.datatype;
	}
	else {
		_datatype = (typeof(_callback) == "function" ? "html" : "script");
	}
	_callback = (typeof(_callback) == "function" ? _callback : function(data){});
	
	var URL = do_link(page, $.param(options));
	$.get(URL, _callback, _datatype);
}

// Post remote action
function post_remote_action(page, options, _post, _callback){
	if (options.datatype) {
		_datatype = options.datatype;
		delete options.datatype;
	}
	else {
		_datatype = (typeof(_callback) == "function" ? "html" : "script");
	}
	_callback = (typeof(_callback) == "function" ? _callback : function(data){});
	
	var URL = do_link(page, $.param(options));
	$.post(URL, _post, _callback, _datatype);
}

function do_remote_action(mdata){
	
	// Move some data in other objects
	var mpost = mdata.post;
	var mcallback = mdata.callback;
	var mpage = $.extend({page: "site.remote"}, {page: mdata.page});
	var new_mdata = $.extend({}, mdata);
	delete new_mdata.page;
	delete new_mdata.callback;
	delete new_mdata.post;
	delete new_mdata.load_icon;
	
	if (mpost) {
		post_remote_action(mpage.page, new_mdata, mpost, mcallback);
	}
	else {
		remote_action(mpage.page, new_mdata, mcallback);
	}
}

// Assign remote action
function assign_remote_action(context){
	if (typeof(context) == "undefined") {
		context = "";
	}
	
	// var loading = $("<img src=\"" + PATH_STATIC + "/img/site/loading_small.gif\" align=\"absmiddle\" style=\"width: 16px; height: 16px;\">");
	// Bind link action
	$(context + " a.remote_action, " + context + " button.remote_action").unbind("click").click(function(e){
		
		var jThis = $(this);
		
		// Get metadata from selected link
		var mdata = jThis.metadata();
		
		// Move some data in other objects
		var mpost = mdata.post;
		var mcallback = mdata.callback;
		var mpage = $.extend({page: "site.remote"}, {page: mdata.page});
		var texts = $.extend({}, {txt_ok: mdata.txt_ok, txt_cancel: mdata.txt_cancel, txt_confirm: mdata.txt_confirm});
		var new_mdata = $.extend({}, mdata);
		delete new_mdata.page;
		delete new_mdata.callback;
		delete new_mdata.post;
		delete new_mdata.load_icon;
		delete new_mdata.txt_ok;
		delete new_mdata.txt_cancel;
		delete new_mdata.txt_confirm;
		
		// Action confim
		if (jThis.attr("rel") == "confirm") {
			// If no confirm message get text from title
			var txt_confirm = texts.txt_confirm ? texts.txt_confirm : jThis.attr("title");
			Boxy.confirm("<b class=\"small\">" + txt_confirm + "</b>", function(){
				// Post data was found
				if (mpost) {
					post_remote_action(mpage.page, new_mdata, mpost, mcallback);
				}
				else {
					remote_action(mpage.page, new_mdata, mcallback);
				}
			}, texts);
		}
		else {
			// Post data was found
			if (mpost) {
				post_remote_action(mpage.page, new_mdata, mpost, mcallback);
			}
			else {
				remote_action(mpage.page, new_mdata, mcallback);
			}
		}
		
		// Disable default link action
		return false;
	});
}

// Assign live remote action
$.live_remote_action = function(str){
	
	// Bind link action
	$(str).live("click", function(e){
	
		var jThis = $(this);
		// Get metadata from selected link
		var mdata = jThis.metadata();
		
		// Move some data in other objects
		var mpost = mdata.post;
		var mcallback = mdata.callback;
		var mbefore_callback = mdata.before_callback;
		var mpage = $.extend({page: "site.remote"}, {page: mdata.page});
		var texts = $.extend({}, {txt_ok: mdata.txt_ok, txt_cancel: mdata.txt_cancel, txt_confirm: mdata.txt_confirm});
		var new_mdata = $.extend({}, mdata);
		delete new_mdata.page;
		delete new_mdata.callback;
		delete new_mdata.before_callback;
		delete new_mdata.post;
		delete new_mdata.txt_ok;
		delete new_mdata.txt_cancel;
		delete new_mdata.txt_confirm;
		
		// Action confim
		if (jThis.attr("rel") == "confirm") {
			// If no confirm message get text from title
			var txt_confirm = texts.txt_confirm ? texts.txt_confirm : jThis.attr("title");
			Boxy.confirm("<b class=\"small\">" + txt_confirm + "</b>", function(){
				if (typeof(mbefore_callback) == "function") {mbefore_callback.call();}
				// Post data was found
				if (mpost) {
					post_remote_action(mpage.page, new_mdata, mpost, mcallback);
				}
				else {
					remote_action(mpage.page, new_mdata, mcallback);
				}
			}, texts);
		}
		else {
			if (typeof(mbefore_callback) == "function") {mbefore_callback.call();}
			// Post data was found
			if (mpost) {
				post_remote_action(mpage.page, new_mdata, mpost, mcallback);
			}
			else {
				remote_action(mpage.page, new_mdata, mcallback);
			}
		}
		
		// Disable default link action
		return false;
	});
}

// Input/texarea limit text (with hints)
function bind_text_length(elem){

	var self = $(elem);
	
	// Only one element
	if (self.length == 1) {
		var mdata = self.metadata();
		// Get hint container from metadata
		var info = $(mdata.infotext);
		var textlength;
		
		// Bind events
		self.bind("keyup", function(){
			// Get content length
			textlength = self.val().length;
			// Limit text length
			if (textlength > mdata.maxlength) {
				info.html("Nu poti sa introduci mai mult de " + mdata.maxlength + " caractere!");
				self.val(self.val().substr(0, mdata.maxlength));
				return false;
			}
			else {
				info.html("Mai poti sa introduci " + (mdata.maxlength - textlength) + " caractere!");
				return true;
			}
		}).trigger("keyup");
	}
}

// Generic function for submenu toggle
function menu_actions(_target, _submenu, duration){
	// Select main menu button
	var target = $(_target);
	// Select submenu
	var submenu = $(_submenu);
	// Define local timer
	var timer;
	var duration = ((typeof(duration) == "undefined") ? 300 : duration);
	
	// Assign button actions
	target.hover(function(e){
		clearTimeout(timer);
		submenu.show();
		target.addClass("hover");
	}, function(e){
		timer = setTimeout(function(){
			submenu.hide();
			target.removeClass("hover");
		}, duration);
	});
	
	// Assign submenu actions
	submenu.hover(function(e){
		clearTimeout(timer);
	}, function(e){
		timer = setTimeout(function(){
			submenu.hide();
			target.removeClass("hover");
		}, duration);
	});
}

// Open boxy with an iframe inside
function view_iframe(link, _title, width, height){
	
	var add_sign = ((link.indexOf("?") > -1) ? "&" : "?");
	var box = new Boxy("<iframe src=\"" + link + add_sign + Math.floor(Math.random() * 10000000000) + "\"  framespacing=\"0\" frameborder=\"no\" scrolling=\"no\" width=\"" + width + "\" height=\"" + height + "\"></iframe>", {
		title: _title,
		closeText: "<span class='close_box'><a href='#' class='close img_close'>&nbsp;</a><span class='smaller normal f_right mr_05' style='display: inline;'>[ <a href='#' class='close'>" + link_close + "</a> ]</span> </span>",
		closeable: true,
		draggable: true,
		modal: true
	});
	
	OL = box;
	return box;
}

// Assign action to open boxy with an iframe inside
function assign_overlay_action(){
	$("a.overlay_page").click(function(e){
		// Get metadata
		var meta = $(this).metadata();
		// Open boxy
		OL = view_iframe(meta.page, meta.title, meta.width, meta.height);
		// Prevent default link behavior
		return false;
	});
}

// Assign action to redirect to specified location
function replace_redirect(){
	$("button.redirect, a.redirect").click(function(e){
		// Get location from metadata
		var location = $(this).metadata().location;
		var target = $(this).metadata().target;
		
		// We have a location
		if ((typeof(location) != "undefined") && (typeof(target) != "undefined")) {
			window.open(location, target);
			return false;
		}
		
		// We have a location
		if (typeof(location) != "undefined") {
			document.location = location;
		}
		
		return false;
	});
}

// Get emails from md5s
function deobsf_email(opt){
	// Edtend default options
	var o = $.extend({obsf_eml_prefix: 'obsf_eml_', deobsf_link: do_link("site.remote", "request=obsf_eml")}, opt);
	// Get email containers
	var obsf_eml = $("[id^='" + o.obsf_eml_prefix + "']");
	// We have containers
	if (obsf_eml.length) {
		// Send md5s with post
		$.post(
			o.deobsf_link, 
			// Map md5 from container id
			{obsf_eml_data: obsf_eml.map(function(i, v){ return v.id.substr(o.obsf_eml_prefix.length); }).get().join(',')}, 
			function(data){},
			"script"
		);
	}
}

// Show cropper box and assign afterHide actions to refresh page images
function show_cropper(options){
	// Open boxy
	myBox = new Boxy("<iframe name=\"cropper\" src=\"" + options.link + "&rv=" + Math.floor(Math.random() * 10000000000)  + "\"  framespacing=\"0\" frameborder=\"no\" scrolling=\"no\" width=\"" + options.width + "\" height=\"" + options.height + "\"></iframe>", {
		title: options.title,
		closeText: "<span class='close_box'><a href='#' class='close img_close'>&nbsp;</a><span class='smaller normal f_right mr_05' style='display: inline;'>[ <a href='#' class='close'>" + link_close + "</a> ]</span> </span>",
		closeable: true,
		modal: true,
		unload: true,
		// After hide callback
		afterHide: function(){
			// Loop all images with current key in src
			jQuery("img[src*=" + options.key + "]").each(function(i, v){
				var jThis = jQuery(this);
				
				var d = new Date;
				// Valid src
				if (typeof(jThis.attr("src")) != "undefined") {
					// Get src
					var full_path = jThis.attr("src");
					// Remove extension
					var img_path = full_path.substr(0, (full_path.length - 4));
					// Check if we have already vesioning
					var tmp = img_path.split(".v");
					if (tmp.length > 1) {
						// Delete old versioning
						delete tmp[tmp.length -1];
						img_path = tmp.join("");
					}
					// Get extension
					var img_ext = full_path.substr(full_path.length - 4);
				}
				// Add new versioning
				jThis.attr("src", img_path + ".v" + d.getTime() + img_ext);
			});
		}
	});
}
// ################################################################################

;if(window.attachEvent)
	window.attachEvent("onload",setListeners);

function setListeners(){
	inputList = document.getElementsByTagName("INPUT");
	for(i=0;i<inputList.length;i++){
		inputList[i].attachEvent("onpropertychange",restoreStyles);
		inputList[i].style.backgroundColor = "";
	}
	selectList = document.getElementsByTagName("SELECT");
	for(i=0;i<selectList.length;i++){
		selectList[i].attachEvent("onpropertychange",restoreStyles);
		selectList[i].style.backgroundColor = "";
	}
}

function restoreStyles(){
	if(event.srcElement.style.backgroundColor != "")
		event.srcElement.style.backgroundColor = "";
}

// Site init #######################################################
$(function(){
	$.cookie('cxt_' + CONTEXT, 1, {path: '/', domain: DOMAIN_BASE});
	
	// Scroll to top action
	if ($("#arr_top").length) {
		var to_top = false;
		$("#arr_top").click(function(){
			to_top = true;
			$(window).scrollTo(0, 300, {axis: 'y', onAfter: function(){ to_top = false; }});
			$(this).hide();
		});
		
		if ( $.browser.msie && parseInt($.browser.version) === 6 ) {
			$(window).bind("scroll", function(){
				if (!to_top) {
					if (($(this).height() + $(this).scrollTop()) > ($("body").height() - 299)) {
						$("#arr_top").hide();
					}
					else {
						$("#arr_top").hide();
					}
				}
			});
		}
		else {
			$(window).bind("scroll", function(){
				if (!to_top) {
					if (($(this).height() + $(this).scrollTop()) > ($("body").height() - 299)) {
						$("#arr_top").css({position: "absolute", top: $("body").height() - 399 + "px", bottom: "auto"});
					}
					else if ($(this).scrollTop() > 600) {
						$("#arr_top").css({position: "fixed", left: $("#bd").offset().left + $("#bd").width() + 30, top: "auto", bottom: "100px"}).show();
						
					}
					else {
						$("#arr_top").hide();
					}
				}
			});
		}
	}
	
	$("body").keydown(function(e){
		if(e.which == 27){
			$("#user_toolbar_layer > .toolbar_ajax_box, #custom_modal").hide();
			$("#user_toolbar a").removeClass("on");
			$("div.tooltip").hide();
			$("div.top_nav_submenu").hide();
			$("div.left_nav_submenu").hide();
		}
	});
	
	$("body").click(function(){
		$("div.tooltip").hide();
	});

	
	// Move title after ads
	if ($("#wide_ad_unit_1").length && $("h1.h1_list").length) {
		$("h1.h1_list").detach().css({position: "relative"}).insertAfter("#wide_ad_unit_1").prepend("<span class=\"f_right mt_05\"><a href=\"http://www.facebook.com/sharer.php?u=" + escape(document.location) + "\" target=\"_blank\" class=\"i_facebook\">&nbsp;</a> <a href=\"http://twitter.com/home?status=" + escape(document.location) + "\" target=\"_blank\" class=\"i_twitter\">&nbsp;</a></span>");
	}
	
	// Init actions for top site navigation
	main_nav_actions();
	search_actions("input.top_search_input", 1);
	
	// Assign actions to top cat navigation layer
	var categories_container = $("div.top_categories_container").eq(0);
	var categories_layer = $("ul.top_categories_layer").eq(0);
	if ( (categories_container.length > 0) && (categories_container.length > 0) ) {
		categories_layer.css({left: categories_container.position().left});
		menu_actions(categories_container, categories_layer);
	}
	
	var login_container = $("#top_bar_login_actions").eq(0);
	if (login_container.length > 0) {
		var login_layer = login_container.next("ul").eq(0);
		if (login_layer.length > 0) {
			if (login_layer.width() < login_container.width()) {
				login_layer.width(login_container.width());
			}
			menu_actions(login_container, login_layer);
		}
	}
	
	// Search in category layer
	var cat_container = $("#top_search_filter").find("> li:not('.module_off,.ico_clear')").eq(0);
	if (cat_container.length > 0) {
		menu_actions(cat_container.find("> a"), cat_container.find("> ul"));
		cat_container.find("> a").click(function(){return false;});
		cat_container.find("ul a").click(function(){
			var jThis = $(this);
			jThis.closest("ul").hide().siblings("a").attr("title", jThis.text()).find("span").text(jThis.text());
			
			var href = (jThis.data("link") ? jThis.data("link") : jThis.attr("href"));
			$("#top_search").find("form").attr("action", href);
			
			if (jThis.data("key") == "-1") {
				$("#top_search").find("form").data("key", "-1");
			}
			
			return false;
		});
	}
	
	if (jQuery.cookie('prod_search_cat') > 0) {
		jQuery("#top_search_filter").find(".module_site li a").each(function(){
			if (jQuery(this).data("key") == "-1") {
				jQuery(this).triggerHandler("click");
				return false;
			}
		});
	}
	
	// Add carousel functionality
	auto_carousel();
	
	// Add close button functionality
	$("a.error_msg_close").live("click", function(e){
		$(this).closest("div[class^='box']").remove();
		$(this).closest("div[class^='error_block']").remove(); return false;
	});
	
	// Add functionality for links with 'remote_action' class
	assign_remote_action();
	// Add functionality for links with 'overlay_page' class
	assign_overlay_action(); 
	
	replace_redirect();
	
	// Run main js from current page
	if (typeof(js_init) == "function") {
		js_init();
	}
	// Run other js from current page
	if (typeof(js_init2) == "function") {
		js_init2();
	}
	// Run js from left menu
	if (typeof(js_init_left) == "function") {
		js_init_left();
	}
	// Run js from right menu
	if (typeof(js_init_right) == "function") {
		js_init_right();
	}
	
	// Add toggle boxes functionality
	autobox();
	
	// Add target='_blank' for links with rel='_blank' (for strict xhtml validation)
	$("a[rel='_blank']").click(function(e){
		this.target = "_blank";
	});
	
	// Simulate filter checkbox click
	$("#filter_box dl.filters li em").live("click", function(){
		document.location = $(this).closest("li").find("a:first").attr("href");
	});
	
	// Toolbar actions
	user_toolbar_actions();
	
	$(".direct_links").hover(function(){
		$(this).find(".row_otions").css({visibility: "visible"});
	}, function(){
		$(this).find(".row_otions").css({visibility: "hidden"});
	});
	
	// Assign print actions
	$("a.print_link").click(function(){window.print(); return false;});
	
	if ($("#search_cat_container").length) {
		if ($("#search_in_cat", "#search_cat_container").is(":checked")) {
			$(".i_unchecked", "#search_cat_container").addClass("i_checked");
		}
		
		$("#search_cat_container").click(function(){
			$(".i_unchecked", this).toggleClass("i_checked");
			if ($(".i_unchecked", this).is(".i_checked")) {
				$("#search_in_cat", "#search_cat_container").attr("checked", "checked");
			}
			else {
				$("#search_in_cat", "#search_cat_container").removeAttr("checked");
			}
			return false;
		});
	}
	
	$("#top_banner_right_slider").find("> li:first").show();
	$("#top_banner_right_slider").newsTicker();
	
	$(window).bind("resize", function(){
		$("#btm_ads > div").each(function(i, v){
			var jThis = jQuery(this);
			var id = jThis.attr("id").substr(1);
			var target = jQuery("#" + id);
			if (target.length == 0) {
				id = jThis.attr("id").substr(2);
				target = jQuery("#" + id);
			}
			if ((jThis.height() > 0) && (jThis.width() > 0)) {
				if (target.length > 0) {
					var offset = jQuery("#" + id).offset();
					jThis.css({left: offset.left});
				}
			}
			else {
				target.remove();
			}
		});
		
	}).triggerHandler("resize");
	
	$("#top_nav").find("a").each(function(){
		var jThis = $(this), section, key;
		if ( (section = jThis.metadata().section) && (key = jThis.metadata().key) ) {
			new MyNav(this, {remote_url: do_link("site.remote", "request=top_nav_submenu&section=" + section + "&key=" + key)});
		}
	});
	
	if ($("#left_nav").length) {
		$("#left_nav").find("dt a").each(function(){
			var jThis = $(this), section, key;
			if ( (section = jThis.data().section) && (key = jThis.data().key) ) {
				new MyNav(this, {remote_url: do_link("site.remote", "request=left_nav_submenu&section=" + section + "&key=" + key), submenu_class: "left_nav_submenu", position: "top_right" });
			}
		});
	}
	
	if (!(USR_profile_key > 0)) {
		// Init tooltip
		jQuery("a.i_fav_save").unbind("click").click(function(e){
			var jThis = $(this);
			$("div.tooltip_yel").remove();
			var tip = $("<div class=\"tooltip tooltip_yel\" style=\"width: 340px!important;\">" + TXT_login_add_fav + "</div>")
			.appendTo("body").css({top: jThis.offset().top, left: jThis.offset().left + 20}).click(function(){
				$(this).remove();
			});
			
			setTimeout(function(){tip.hide();}, 2000);
			return false;
		});
		
		$("#fav_ajax_tab").unbind("click").click(function(){
			var jThis = $(this);
			$("div.tooltip_yel").remove();
			var tip = $("<div class=\"tooltip tooltip_yel\" style=\"width: 340px!important;\">" + TXT_login_add_fav + "</div>")
			.appendTo("body").css({top: jThis.offset().top - 60, left: jThis.offset().left}).click(function(){
				$(this).remove();
			});
			setTimeout(function(){tip.hide();}, 2000);
			return false;
		});
	}
});

function MyNav(elem, options) {
	this.options = $.extend({}, {
		timer_show: 0,
		timer_hide: 0,
		delay_show: 200,
		delay_hide: 200,
		submenu_class: "top_nav_submenu",
		position: "bottom_left"
	}, options);
	this.is_appended = false;
	this.init(elem);
}
MyNav.prototype = {
	init: function(elem){
		this.elem = $(elem);
		this.submenu = $("<div class=\"" + this.options.submenu_class + "\"></div>");
		$.data(this.elem[0], "MyNav", this);
		$.data(this.submenu[0], "MyNav", this);
		this.elem.hover(this.elemEnter, this.elemLeave);
		this.submenu.hover(this.submenuEnter, this.submenuLeave);
	},
	elemEnter: function(e){
		var self = $.data(this, "MyNav");
		if (!self.is_appended) {
			self.submenu.html("<img style=\"width: 66px; height: 66px; margin: 5em 10em;\" src=\"" + PATH_STATIC + "/img/site/ajax_loader.gif\" />").appendTo("body");
			self.is_appended = true;
			$.get(self.options.remote_url, function(data){
				if (data) {
					self.submenu.html("<div class=\"p_1\">" + data + "</div>");
				}
			});
		}
		
		clearTimeout(self.options.timer_hide);
		self.options.timer_show = setTimeout(function(){
			self.elem.addClass("hover");
			self.submenu.show();
			
			if (self.options.position == "bottom_left") {
				if ( (self.elem.offset().left - 1 + self.submenu.width()) > ($("#bd").offset().left + $("#bd").width()) ) {
					self.submenu.css({top: self.elem.offset().top + self.elem.height() - 1, left: $("#bd").offset().left + $("#bd").width() - self.submenu.width()});
				}
				else {
					self.submenu.css({top: self.elem.offset().top + self.elem.height() - 1, left: self.elem.offset().left - 1});
				}
			}
			else if (self.options.position == "top_right") {
				if (self.submenu.outerHeight() > $(window).height()) {
					self.submenu.css({top: $(document).scrollTop(), left: self.elem.offset().left + self.elem.width() + 17});
				}
				else if ( (self.elem.offset().top + self.submenu.outerHeight()) > ($(document).scrollTop() + $(window).height()) ) {
					self.submenu.css({top: $(document).scrollTop() + $(window).height() - self.submenu.outerHeight(), left: self.elem.offset().left + self.elem.width() + 17});
				}
				else {
					self.submenu.css({top: self.elem.offset().top - 40, left: self.elem.offset().left + self.elem.width() + 17});
				}
				self.submenu.append("<em class=\"left_nav_fade\">&nbsp;</em>");
				self.submenu.find("em.left_nav_fade").css({top: self.elem.offset().top - self.submenu.offset().top});
			}
		}, self.options.delay_show);
	},
	elemLeave: function(e){
		var self = $.data(this, "MyNav");
		clearTimeout(self.options.timer_show);
		self.options.timer_hide = setTimeout(function(){
			self.elem.removeClass("hover");
			self.submenu.hide();
		}, self.options.delay_hide);
	},
	submenuEnter: function(e){
		var self = $.data(this, "MyNav");
		clearTimeout(self.options.timer_hide);
	},
	submenuLeave: function(e){
		var self = $.data(this, "MyNav");
		clearTimeout(self.options.timer_show);
		self.options.timer_hide = setTimeout(function(){
			self.elem.removeClass("hover");
			self.submenu.hide();
		}, self.options.delay_hide);
	}
}

function refresh_comp_layer(){
	// Total compare counter
	$("#comp_ajax_tab em").text("(" + comps['all'] + ")");
	
	// Build tabs and empty boxes for each category
	var comp_tabs = "<div class=\"nav_container top_off top\" style=\"visibility: hidden; width: 45px; float: right !important; margin-right: 0; top: 2px;\"><span style=\"\"><a href=\"#\" class=\"arr_left\">&nbsp;</a>&nbsp; &nbsp;<a href=\"#\" class=\"arr_right\">&nbsp;</a></span></div><div class=\"tabs_container p_rel\" style=\"overflow: hidden; height: 33px; margin-bottom: -2px;\"><ul class=\"p_rel cfix autobox {on_class: 'top', callback: function(){$(this).closest('ul.autobox').css('top', '-' + $(this).closest('li').position().top + 'px');}}\" style=\"margin-top: -2px;\">";
	var comp_boxes = "";
	
	for (var v in comps_cat_titles) {
		comp_tabs += "<li id=\"t_comp_prod_" + v + "\" class=\"top_off f_left {box: 'b_comp_prod_" + v + "'}\" style=\"margin-top: 4px;\"><span class=\"f_left\"><a class=\"f_left\" href=\"#\">" + comps_cat_titles[v] + " <em>(" + comps[v] + ")</em></a></span></li>"
		comp_boxes += "<div class=\"a_center {cat: '" + v + "'}\" id=\"b_comp_prod_" + v + "\" style=\"display: none;\"><img style=\"width: 66px; height: 66px; margin: 4em auto 0pt; text-align: center;\" src=\"" + PATH_STATIC + "/img/site/ajax_loader.gif\" /></div>";
	}
	comp_tabs += "</ul></div>";
	
	// Replace old compare tabs
	$("#comp_ajax_box").find("> div.tabs_container, > div.top_off").remove();
	$("#comp_ajax_box").prepend(comp_tabs);
	
	// Replace old compare boxes
	$("#comp_ajax_box .bxd").find("> div").remove();
	$("#comp_ajax_box .bxd").append(comp_boxes);
	
	// Add toggle actions for new tabs and boxes
	autobox("#comp_ajax_box");
	
	// Get content from remote on box open event
	$("#comp_ajax_box [id^='b_comp_prod_']").bind("box.open", function(){
		// Set cookie with last viewed category
		$.cookie('comp_section', "prod_" + $(this).metadata().cat, {path: '/', domain: DOMAIN_BASE});
		
		refresh_comp_navigation();
		
		if (!$(this).find("ul.result_list").length) {
			$.get(do_link("site.remote", "request=comp_prod_get&c=" + $(this).metadata().cat.substr(1)), function(data){}, "script");
		}
	});
}

function refresh_comp_navigation(){
	
	if ($("#comp_ajax_box ul.autobox").height() > 33) {
		$("#comp_ajax_box .arr_left").removeClass("arr_left_disabled");
		$("#comp_ajax_box .arr_right").removeClass("arr_right_disabled");
		var top = $("#comp_ajax_box ul.autobox").css("top");
		top = parseInt(top.substr(0, top.length - 2));

		if (top >= 0) {
			$("#comp_ajax_box .arr_left").addClass("arr_left_disabled");
		}
		
		if (top <= -($("#comp_ajax_box ul.autobox").height() - 33)) {
			$("#comp_ajax_box .arr_right").addClass("arr_right_disabled");
		}
		
		$("#comp_ajax_box div.nav_container").css("visibility", "visible");
		$("#comp_ajax_box .arr_left").die("click").live("click", function(){
			var old_top = $("#comp_ajax_box ul.autobox").css("top");
			var new_top = 33 + parseInt(old_top.substr(0, old_top.length - 2));
			if (new_top >= 0) {
				$(this).addClass("arr_left_disabled");
			}
			
			if (new_top > -($("#comp_ajax_box ul.autobox").height() - 33)) {
				$("#comp_ajax_box .arr_right").removeClass("arr_right_disabled");
			}
			if (new_top > 0) {
				return false;
			}
			$("#comp_ajax_box ul.autobox").css("top", new_top + "px");
			return false;
		});
		
		$("#comp_ajax_box .arr_right").die("click").live("click", function(){
			var old_top = $("#comp_ajax_box ul.autobox").css("top");
			var new_top = -33 + parseInt(old_top.substr(0, old_top.length - 2));
			if (new_top < 0) {
				$("#comp_ajax_box .arr_left").removeClass("arr_left_disabled");
			}
			if (new_top <= -($("#comp_ajax_box ul.autobox").height() - 33)) {
				$(this).addClass("arr_right_disabled");
			}
			if (new_top < -($("#comp_ajax_box ul.autobox").height() - 33)) {
				return false;
			}
			$("#comp_ajax_box ul.autobox").css("top", new_top + "px");
			return false;
		});
	}
	else {
		$("#comp_ajax_box div.nav_container").css("visibility", "hidden");
	}
}

function refresh_search_layer(type){
	if (typeof(type) == "undefined") {type = "";}
	
	$("#search_ajax_tab em").text("(" + search['all'] + ")");
	$("#t_search_prod em").text("(" + search['prod'] + ")");
	
	// Check for allowed type
	if ($.inArray(type, ["prod"]) != -1) {
		$("#b_saerch_" + type).html("<img style=\"width: 66px; height: 66px; margin: 4em auto 0pt; text-align: center;\" src=\"" + PATH_STATIC + "/img/site/ajax_loader.gif\">");
		// Force refresh if box is already open
		if ($("#b_search_" + type).is(":visible")) {
			$("#b_search_" + type).trigger("box.open");
		}
		// If tab is active and hidden, replace once focus event with open event
		else if ($("#b_search_" + type).css("display") == "block") {
			$("#b_search_" + type).bind("box.focus", function(){
				$(this).unbind("box.focus").trigger("box.open");
			});
		}
	}
}

function refresh_view_layer(type){
	if (typeof(type) == "undefined") {type = "";}
	// Update counters
	$("#view_ajax_tab em").text("(" + views['all'] + ")");
	$("#t_view_prod em").text("(" + views['prod'] + ")");
	$("#t_view_realestate em").text("(" + views['realestate'] + ")");
	
	// Check for allowed type
	if ($.inArray(type, ["prod", "realestate"]) != -1) {
		$("#b_view_" + type).html("<img style=\"width: 66px; height: 66px; margin: 4em auto 0pt; text-align: center;\" src=\"" + PATH_STATIC + "/img/site/ajax_loader.gif\">");
		// Force refresh if box is already open
		if ($("#b_view_" + type).is(":visible")) {
			$("#b_view_" + type).trigger("box.open");
		}
		// If tab is active and hidden, replace once focus event with open event
		else if ($("#b_view_" + type).css("display") == "block") {
			$("#b_view_" + type).bind("box.focus", function(){
				$(this).unbind("box.focus").trigger("box.open");
			});
		}
	}
}

function refresh_fav_layer(type){
	if (typeof(type) == "undefined") {type = "";}
	// Update counters
	$("#fav_ajax_tab em").text("(" + favs['all'] + ")");
	$("#t_fav_prod em").text("(" + favs['prod'] + ")");
	$("#t_fav_store em").text("(" + favs['store'] + ")");
	$("#t_fav_realestate em").text("(" + favs['realestate'] + ")");
	$("#t_fav_manuf em").text("(" + favs['manuf'] + ")");
	$("#t_fav_other em").text("(" + favs['other'] + ")");
	
	// Check for allowed type
	if ($.inArray(type, ["prod", "store", "realestate", "manuf", "other"]) != -1) {
		$("#b_fav_" + type).html("<img style=\"width: 66px; height: 66px; margin: 4em auto 0pt; text-align: center;\" src=\"" + PATH_STATIC + "/img/site/ajax_loader.gif\">");
		// Force refresh if box is already open
		if ($("#b_fav_" + type).is(":visible")) {
			$("#b_fav_" + type).trigger("box.open");
		}
		// If tab is active and hidden, replace once focus event with open event
		else if ($("#b_fav_" + type).css("display") == "block") {
			$("#b_fav_" + type).bind("box.focus", function(){
				$(this).unbind("box.focus").trigger("box.open");
			});
		}
	}
}

// Handle user toolbar actions #######################################################
function user_toolbar_actions(){
	
	if (!$("#user_toolbar").length) {return false;}

	var animating = false;
	
	// Compact toolbar
	if ($.cookie("user_toolbar") == "off") {
		$("#toggle_user_toolbar").html("&raquo;");
		$("#toggle_user_toolbar").addClass("user_toolbar_off");
		$("#user_toolbar_wide").css({left: - $(document).width() + 20});
	}
	
	// Set boxes widths
	$("#user_toolbar_layer > .toolbar_ajax_box").width($("#user_toolbar").innerWidth() - 12);
	$("#feedback_ajax_box").width(390).css({marginLeft: "500px"});
	
	// Init modal
	$("#custom_modal").css({opacity: 0.8, height: $(document).height() + "px"});
	
	// Hide modal layer and boxes
	$("#custom_modal, #user_toolbar_layer a.i_close").click(function(){
		$("#user_toolbar_layer > .toolbar_ajax_box, #custom_modal").hide();
		$("#user_toolbar a").removeClass("on");
		return false;
	});
	
	// Add actions on main left tabs
	$("#user_toolbar a").not(".direct").click(function(){
		var jThis = $(this);
		
		// Tab is on - hide modal layer and boxes
		if (jThis.is(".on")) {
			$("#user_toolbar_layer > .toolbar_ajax_box").hide();
			$("#user_toolbar li a").removeClass("on");
			$("#custom_modal").hide();
		}
		// Tab is off
		else {
			// On main tab click open last section
			// Get tab section
			var section = $(this).metadata().section;
			// Get last section id
			var tab = $("#t_" + section + "_" + $.cookie(section + "_section") + " a");
			
			// Return false if box doesn't exist for current tab
			if ($("#" + section + "_ajax_box .autobox li").length) {
				$("#" + section + "_ajax_box .bxd > span.light").hide();
			}
			
			// Hide all boxes
			$("#user_toolbar_layer > .toolbar_ajax_box").hide();
			// Show modal layer
			$("#custom_modal").show().css({height: $(document).height() + "px"});
			// Mark as off all tabs
			$("#user_toolbar li a").removeClass("on");
			// Mark as on current tab
			jThis.addClass("on");
			// Show box for current tab
			$("#" + section + "_ajax_box").show();
			
			// If found, open
			if (tab.length > 0) {
				tab.triggerHandler("click");
			}
			// If not found, open first section
			else {
				// Open first tab if no or invalid cookie
				$("#" + section + "_ajax_box .autobox a:first").triggerHandler("click");
			}
			
			// Add iframe container
			if (jThis.is("#feedback_ajax_tab")) {
				$("#feedback_container").html("<iframe src=\"" + do_link("site.feedback", "") + "\" style=\"width: 350px; height: 395px; border: 0; background-color: transparent;\" scrollbar=\"no\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" frameborder=\"0\"></iframe>")
			}
		}
		
		return false;
	});
	
	// Add actions for toggle button
	$("#toggle_user_toolbar").click(function(){
		// If animation is in progress return false
		if (animating) {return false;}
		
		animating = true;
		
		$("#user_toolbar_layer > .toolbar_ajax_box, #custom_modal").hide();
		$("#user_toolbar a").removeClass("on");
		
		if ($("#user_toolbar_wide").position().left < 0) {
			$("#toggle_user_toolbar").removeClass("user_toolbar_off");
			$("#toggle_user_toolbar").html("&laquo;");
			
			$("#user_toolbar_wide").animate({left: 0}, 1000, "", function(){
				animating = false;
			});
		}
		else {
			$("#user_toolbar_wide").animate({left: - $(document).width() + 20}, 1000, "", function(){
				$("#toggle_user_toolbar").addClass("user_toolbar_off");
				$("#toggle_user_toolbar").html("&raquo;");
				animating = false;
			});
		}
		
		return false;
	});
	
	// Init counters and layers
	refresh_comp_layer();
	refresh_view_layer();
	refresh_fav_layer();
	refresh_search_layer();
	
	// Load data when subtab first opens and store subtab position in cookie
	$("#user_toolbar_layer .toolbar_ajax_box .bxd > div").bind("box.open", function(){
		var dat = $(this).attr("id").split("_");
		// Comp requests are handled separately
		if (dat[1] != "comp") {
			$.cookie(dat[1] + '_section', dat[2], {path: '/', domain: DOMAIN_BASE});
			
			if (!$(this).find("ul.result_list").length) {
				$.get(do_link((dat[1] == "fav" ? "my.remote" : "site.remote"), "request=" + dat[1] + "_" + dat[2] + "_get"), function(data){}, "script");
			}
		}
	});
	
	// $.live_remote_action("#user_toolbar .live_actions a");
	
	// Assign navigation actions
	$("#user_toolbar_layer a.med_arr_prev, #user_toolbar_layer a.med_arr_next").live("click", function(){
		$(this).closest("div").find("ul.result_list").replaceWith("<div class=\"a_center\"><img src=\"" + PATH_STATIC + "/img/site/ajax_loader.gif\" style=\"width: 66px; height: 66px; margin: 4em auto 0 auto; text-align: center;\" /></div>");
		do_remote_action($(this).metadata());
		return false;
	});
	// Disable inactive arrows
	$("#user_toolbar_layer a.med_arr_prev_off, #user_toolbar_layer a.med_arr_next_off").live("click", function(){return false;});
	
	// Handle item delete
	$("#user_toolbar_layer a.request_item_delete").live("click", function(){
		// Build request metadata
		var mdata = $(this).metadata();
		var section = mdata.section;
		var type = mdata.type;
		var new_mdata = $.extend({}, mdata);
		delete new_mdata.section;
		delete new_mdata.type;
		new_mdata.page = (section == "fav" ? "my.remote" : "site.remote");
		new_mdata.request = section + "_" + type + "_delete";
		new_mdata.datatype = "script";
		
		do_remote_action($.extend(new_mdata, {callback: function(data){
			// Call refresh layer for current section
			window["refresh_" + section + "_layer"](type);
			// If no subtabs left, hide all
			if (!$("#" + section + "_ajax_box .autobox li").length) {
				/*$("#user_toolbar_layer > .toolbar_ajax_box").hide();
				$("#user_toolbar li a").removeClass("on");
				$("#custom_modal").hide();*/
				$("#" + section + "_ajax_box .bxd > span.light").show();
			} 
			else {
				var tab = $("#t_" + section + "_" + $.cookie(section + "_section") + " a");
				if (tab.length > 0) {
					tab.triggerHandler("click");
				}
				else {
					// Open first tab if no or invalid cookie
					$("#" + section + "_ajax_box .autobox a:first").triggerHandler("click");
				}
			}
			
			// Callback function (defined locally)
			if (typeof(window["after_" + section + "_" + type + "_delete"]) == "function") {
				window["after_" + section + "_" + type + "_delete"](new_mdata);
			}
		}}));
		
		return false;
	});
	
	// Handle list delete
	$("#user_toolbar_layer").delegate(".request_delete_list", "click", function(){
		// Build request metadata
		var mdata = $(this).metadata();
		var section = mdata.section;
		var type = mdata.type;
		var texts = $.extend({}, {txt_ok: mdata.txt_ok, txt_cancel: mdata.txt_cancel, txt_confirm: mdata.txt_confirm});
		var new_mdata = $.extend({}, mdata);
		delete new_mdata.section;
		delete new_mdata.type;
		delete new_mdata.txt_ok;
		delete new_mdata.txt_cancel;
		delete new_mdata.txt_confirm;
		new_mdata.page = (section == "fav" ? "my.remote" : "site.remote");
		new_mdata.request = section + "_" + type + "_delete_list";
		new_mdata.datatype = "script";
		
		// Promt for confirmation
		Boxy.confirm("<b class=\"small\">" + texts.txt_confirm + "</b>", function(){
			do_remote_action($.extend(new_mdata, {callback: function(data){
				
				// Call refresh layer for current section
				window["refresh_" + section + "_layer"](type);
				// If no subtabs left, hide all
				if (!$("#" + section + "_ajax_box .autobox li").length) {
					/*$("#user_toolbar_layer > .toolbar_ajax_box").hide();
					$("#user_toolbar li a").removeClass("on");
					$("#custom_modal").hide();*/
					$("#" + section + "_ajax_box .bxd > span.light").show();
				} 
				else {
					var tab = $("#t_" + section + "_" + $.cookie(section + "_section") + " a");
					if (tab.length > 0) {
						tab.triggerHandler("click");
					}
					else {
						// Open first tab if no or invalid cookie
						$("#" + section + "_ajax_box .autobox a:first").triggerHandler("click");
					}
				}
				
				// Callback function (defined locally)
				if (typeof(window["after_" + section + "_" + type + "_delete_list"]) == "function") {
					window["after_" + section + "_" + type + "_delete_list"](new_mdata);
				}
			}}));
		}, texts);
		
		return false;
	});
	
}

// Handle main navigation actions #######################################################
// Generic function for submenu toggle
function menu_actions(_target, _submenu, instant){
	// Select main menu button
	var target = jQuery(_target);
	// Select submenu
	var submenu = jQuery(_submenu);
	// Define local timer
	var timer;
	// Select main menu button
	var parent = jQuery(_target).closest("div");
	var duration = ((instant > 0) ? 10 : 300);
	
	// Assign button actions
	target.hover(function(e){
		clearTimeout(timer);
		submenu.show();
		target.addClass("hover");
		parent.addClass("p_rel");
	}, function(e){
		timer = setTimeout(function(){
			submenu.hide();
			target.removeClass("hover");
			parent.removeClass("p_rel");
		}, duration);
	});
	
	// Assign submenu actions
	submenu.hover(function(e){
		clearTimeout(timer);
	}, function(e){
		timer = setTimeout(function(){
			submenu.hide();
			target.removeClass("hover");
			parent.removeClass("p_rel");
		}, duration);
	});
}


var main_nav_current_button;
var user_nav_current_button;

function main_nav_actions(){
	if (!$("#main_nav").length){return false}
	// Define local timer
	var timer;
	var duration = 300;
	var buttons = $("#main_nav > ul > li > a");
	var submenus = $("#main_nav > ul > li > ul");
	
	submenus.bgiframe();
	
	var user_buttons = $("ul.right_toolbar li.li_cont > a");
	var user_submenus = $("ul.right_toolbar li.li_cont > .li_cont_box");
	
	// Assign button actions
	buttons.hover(function(e){
		main_nav_current_button = $(this);
		clearTimeout(timer);
		$("#main_nav > ul > li").not(main_nav_current_button.closest("li")).removeClass("on");
		main_nav_current_button.closest("li").addClass("on");
	}, function(e){
		timer = setTimeout(function(){
			main_nav_current_button.closest("li").removeClass("on");
		}, duration);
	});
	
	// Assign submenu actions
	submenus.hover(function(e){
		clearTimeout(timer);
	}, function(e){
		timer = setTimeout(function(){
			main_nav_current_button.closest("li").removeClass("on");
		}, duration);
	});
	
	// Assign user button actions
	user_buttons.hover(function(e){
		user_nav_current_button = $(this);
		clearTimeout(timer);
		$("ul.right_toolbar li.li_cont").not(user_nav_current_button.closest("li")).removeClass("hover").find("> a").removeClass("on");
		user_nav_current_button.closest("li").addClass("hover").find("> a").addClass("on");
	}, function(e){
		timer = setTimeout(function(){
			user_nav_current_button.closest("li").removeClass("hover").find("> a").removeClass("on");
		}, duration);
	});
	
	// Assign submenu actions
	user_submenus.hover(function(e){
		clearTimeout(timer);
	}, function(e){
		timer = setTimeout(function(){
			user_nav_current_button.closest("li").removeClass("hover").find("> a").removeClass("on");
		}, duration);
	});
}

// Handle top search actions #######################################################
function search_actions(target, focus){
	// Select search input
	var input = $(target);
	
	if (!input.length){return false;}
	else {$("#top_search_filter").show();}
	
	if ((typeof(focus) == "undefined") || hasFocus) {
		focus = 0;
	}
	
	if ( ($.cookie('prod_search_cat') > 0) && ($("#search_in_cat").length > 0) && ($("#search_in_cat").metadata().cat == $.cookie('prod_search_cat')) ) {
		$("#search_in_cat").trigger("click");
	}
	
	if (input.length > 0) {
		// Default search text
		var txt = input.metadata().txt;
		var search_string = input.metadata().search_string;
		// Select closest parent form
		var par = input.closest("form");
		
		// No user input
		if (!search_is_focused) {
			// If input is empty add default text
			if ($.trim(search_string) == "") {
				input.css("color", "#AAAAAA");
				input.val(txt);
			}
			else {
				input.css("color", "#666666");
				input.val(search_string);
			}
		}
		
		var link = $("<a href=\"#\" style=\"display: inline-block; height: 43px;\"><img src=\"" + PATH_STATIC + "/img/img_map/top_search_clear.gif\" style=\"width: 10px; height: 10px; margin-top: 18px; vertical-align: top;\" /></a>").click(function(){
			input.val("");
			input.get(0).focus();
			link.addClass("hidden");
			search_string = "";
			txt = "";
			return false;
		});
		$("#top_search_filter").find(".ico_clear").html(link);
		
		// Assign input actions
		input.focus(function(e){
			// Remove default text on focus
			if (($.trim(input.val()) == "") || (input.val() == txt)) {
				input.val("");
				input.css("color", "#666666");
			} else {
				input.get(0).select();
			}
		}).blur(function(e){
			// Add default text on blur if input is empty
			if ($.trim(input.val()) == "") {
				// If input is empty add default text
				if ($.trim(search_string) == "") {
					input.css("color", "#AAAAAA");
					input.val(txt);
				}
				else {
					input.css("color", "#666666");
					input.val(search_string);
				}
			}
			else {
				link.removeClass("hidden");
			}
		});
		
		if (focus) {
			input.get(0).focus();
		}
		
		// If input is empty or has default text, disable form submision
		par.submit(function(e){
			if (($.trim(input.val()) == "") || (input.val() == txt)) {
				return false;
			}
			
			if (par.data("key") == "-1") {
				var date = new Date();
				date.setTime(date.getTime() + (20 * 1000));
				$.cookie('prod_search_cat', "1", {path: '/', domain: DOMAIN_BASE, expires: date});
			}
			else {
				$.cookie('prod_search_cat', "", {path: '/', domain: DOMAIN_BASE, expires: -1});
			}
		});
	}
}

function auto_carousel(){
	var carousel = $("div.auto_carousel");
	carousel.each(function(i, v){
		var thisCarousel = $(v);
		var opt = $.extend({loop: false, nextBtnInsert: 'prependTo', dispItems: 3, slideEasing: 'easeOutCubic', animSpeed: 'slow', combinedClasses: true, callback: function(data){
			if (thisCarousel.closest("#daily_deals").length) {
				if (thisCarousel.find("li:eq(" + data + ")").length && thisCarousel.find("li:eq(" + data + ")").metadata().offer) {
					$("#daily_deals .img_offer").html(thisCarousel.find("li:eq(" + data + ")").metadata().offer).show();
				}
				else {
					$("#daily_deals .img_offer").hide();
				}
			}
			
			if (thisCarousel.closest("#home_slider").length) {
				if (thisCarousel.find("li:eq(" + data + ")").length) {
					thisCarousel.closest("#home_slider").find(".links dl:eq(" + data + ")").siblings("dl").hide().end().show();
					thisCarousel.closest("#home_slider").find(".pics > div:eq(" + data + ")").siblings("div").hide().end().show();
					thisCarousel.closest("#home_slider").find("form.home_slider_search").attr("action", thisCarousel.closest("#home_slider").find(".links dl:eq(" + data + ")").find("dt a:first").attr("href"));
					thisCarousel.closest("#home_slider").find("form.home_slider_search input").focus(function(){
						console.log(thisCarousel);
					}).blur(function(){
					});
				}
			}
		}}, thisCarousel.metadata());
		thisCarousel.carousel(opt).removeClass("invisible").removeClass("stealth");
	});
}

function autobox(context){
	
	if (typeof(context) == "undefined") {
		context = "";
	}
	
	var autobox = $(context + " ul.autobox");
	autobox.each(function(i, v){
		var thisAutobox = $(v);
		var opt = $.extend({on_class: "on", auto_focus: 0, callback: function(){}}, thisAutobox.metadata());
		
		thisAutobox.find("a").click(function(){
			$(this)[0].blur();
			var jParent = $(this).closest("li");
			var jBox = $("#" + jParent.metadata().box);
			
			jParent.siblings().removeClass(opt.on_class);
			jParent.addClass(opt.on_class);
			
			// We have a callback function to call
			if (typeof(opt.callback) == "function") {
				opt.callback.call(this);
			}
			
			if (jBox.length) {
				jBox.siblings("div[id^='b_']").hide();
				if (!jBox.is(":visible")) {
					jBox.show();
					jBox.trigger("box.open");
				}
				else {
					jBox.show();
					jBox.trigger("box.focus");
				}
			}
			
			if ( (opt.use_hash == true) && (typeof(jParent.metadata().hash) != "undefined") && (jParent.metadata().hash != null) ) {
				document.location.hash = jParent.metadata().hash;
			}
			
			return false;
		});
		
		if ( (opt.use_hash == true) && (document.location.hash.length > 0) ) {
			thisAutobox.find("#t_" + document.location.hash.substr(1) + " a").trigger("click");
		}
		
		// Simulate click on first tab
		if (!thisAutobox.find("li." + opt.on_class).length && opt.auto_focus) {
			thisAutobox.find("a:first").trigger("click");
		}
	});
}

// Show specific details for every search tab
function show_details(category_select_value, context){
	if (typeof(context) == "undefined") {
		context = "";
	}
	
	jQuery(context + " [class^='input_']").hide();
	jQuery(context + " .input_" + category_select_value).show();
}

// Populate models select #######################################################
function populate_models(form_id, select_name_manufacturer, select_name_model, car_type, selected_model){
	
	if (car_type != "new") {
		car_type = "used";
	}
	
	var models_select = $("select[name='" + select_name_model + "']", "#" + form_id);
	
	models_select.empty();
	$("<option value=\"" + 0 + "\"></option>").html(txt_loading + "...").appendTo(models_select);
	$(models_select).attr("disabled", "disabled");
	
	var manufacturer_select = $("form#" + form_id + " select[name='" + select_name_manufacturer + "']");
	
	var manufacturer_select = $("select[name='" + select_name_manufacturer + "']", "#" + form_id);
	var manufacturer_selection = manufacturer_select.selectedValues()[0];
	
	if (manufacturer_selection != "") {
	
		var URL = do_link("site.remote", "request=models&fk_manufacturer=" + manufacturer_selection + "&car_type=" + car_type);

		models_select.load(URL, {}, function(){
		
			models_select.removeAttr("disabled");
			
			if ((selected_model != undefined) && (selected_model != "") && (selected_model != 0)) {
				
				/*var this_option = $("[value='" + selected_model + "']", $(models_select)).get(0);
				this_option.setAttribute('selected', true);*/
				
				models_select.selectOptions(selected_model, true);
			}
			else {
				/*var this_option = $("[value='0']", $(models_select)).get(0);
				this_option.setAttribute('selected', true);*/
				
				models_select.selectOptions("0", true);
			}
			
			if (typeof(return_models) == "function") {
				return_models();
			}
		});	
	}
	else {
		
	}
	
}

// ################################################################################
// Form functions #######################################################

// Focus on input
function jform_focus(form_id){
	$(":input[value='']:not(select):enabled:visible:first", "form#" + form_id).focus();
}

// Disable submit buttons
function jform_do_submit(form_id){
	
	var my_form = $("form#" + form_id);
	// var loading = $("<img src=\"" + PATH_STATIC + "/img/site/loading_small.gif\" align=\"absmiddle\" style=\"width: 16px; height: 16px;\">");
	var loading = $("<img src=\"" + PATH_STATIC + "/img/site/circle_loading2.gif\" style=\"position: absolute; top: 9px; right: 8px; width: 16px; height: 16px;\">");
	
	my_form.submit(function() {
		if (!form_is_submitted) {
			// Disable all buttons from my form
			$(":button, :submit", my_form).attr("disabled", "disabled");
			
			$(":submit", my_form).each(function(i, v){
				var jThis = $(v);
				jThis.addClass(jThis.hasClass("btn_small") ? "btn_disabled_small" : "btn_disabled");
				loading.appendTo(jThis);
			});
			
			form_is_submitted = 1;
			submitted_form = form_id;
		}
	});
}

function jform_set_select(sel_name, form_id, sel_value){
	$("form#" + form_id + " select[name='" + sel_name + "']:first").val(sel_value);
}

function jform_set_radio(radio_name, form_id, selected_value){
	var this_radio = $("form#" + form_id + " :radio[name='" + radio_name + "'][value='" + selected_value + "']:first");
	
	if ($(this_radio).length > 0) {
		$(this_radio).click();
	}
}

function jform_set_checked(check_name, form_id, checked_mode){
	if (checked_mode != "" && checked_mode != 0 && checked_mode != "off") {
		$("form#" + form_id + " :checkbox[name='" + check_name + "']:first").attr("checked", "checked");
	}
}

function jform_check_all(form_id){
	$("form#" + form_id + " :checkbox").attr("checked", "checked");
}

function jform_uncheck_all(form_id){
	$("form#" + form_id + " :checkbox").removeAttr("checked");
}

function form_set_select_id(sel_id, form_name, sel_index) {
	var obj = dom_get_element(sel_id);

	var sel_length = obj.length;

	for (optionCounter = 0; optionCounter < sel_length; optionCounter++) {
		if (obj.options[optionCounter].value == sel_index){
			obj.selectedIndex = optionCounter;
		}
	}
}

// ################################################################################


/*********** Products page functions ************/

function assign_filters_actions(){
	$("li.more_filters a").click(function(){
		var dl = $(this).closest("dl");
		$("dd", dl).toggle();
		
		$("dd", dl).each(function(){
			if ($(this).height() > 250) {
				$(this).height(250);
			}
		});
		
		return false;
		
	});
	
	// Resize stores box
	$("#prod_dd").height(Math.min($("#prod_dd").height(), 335)).removeClass("invisible");
	
	$("#filter_box dt").click(function(){
		$(this).closest("dl").toggleClass("closed");
		
		return false;
	});
	
	$("a.all_filters").unbind().click(function(e){
		var par = $(e.target).closest("dd");
		var more_div = $(e.target).closest(".more_filters");
		
		$(more_div).prepend("<img src=\"" + PATH_STATIC + "/img/site/aloader.gif\" class=\"f_right\" />");
		
		$(par).load($(this).metadata().expand, function(){
			par.prev("dt").find("img").hide();
			if ($(par).height() > 250) {
				$(par).height(250);
			}
		});
	
		return false;
	});
	
	$(".color_matrix li a").hover(function(e){
		$(this).addClass("on");
	}, function(e){
		$(this).removeClass("on");
	});
}

// Friend handling (in profile page)
function friend_handling(how){

	if (how == "no_friends_at_all") {
		jQuery("#no_friends_at_all").show();
		jQuery("#we_re_friends_status").hide();
		jQuery("#we_re_friends_action").hide();
		jQuery("#friend_request_sent").hide();
		jQuery("#friend_request_received").hide();
	}
	else if (how == "friend_request_sent") {
		jQuery("#no_friends_at_all").hide();
		jQuery("#we_re_friends_status").hide();
		jQuery("#we_re_friends_action").hide();
		jQuery("#friend_request_sent").show();
		jQuery("#friend_request_received").hide();
	}
	else if (how == "friend_request_received") {
		jQuery("#no_friends_at_all").hide();
		jQuery("#we_re_friends_status").hide();
		jQuery("#we_re_friends_action").hide();
		jQuery("#friend_request_sent").hide();
		jQuery("#friend_request_received").show();
	}
	else if (how == "we_re_friends") {
		jQuery("#no_friends_at_all").hide();
		jQuery("#we_re_friends_status").show();
		jQuery("#we_re_friends_action").show();
		jQuery("#friend_request_sent").hide();
		jQuery("#friend_request_received").hide();
	}
	else if (how == "blocking" || how == "no_permissions") {
		jQuery("#no_friends_at_all").hide();
		jQuery("#we_re_friends_status").hide();
		jQuery("#we_re_friends_action").hide();
		jQuery("#friend_request_sent").hide();
		jQuery("#friend_request_received").hide();
	}
	else if (how == "block") {
		jQuery("#no_friends_at_all").hide();
		jQuery("#we_re_friends_status").hide();
		jQuery("#we_re_friends_action").hide();
		jQuery("#friend_request_sent").hide();
		jQuery("#friend_request_received").hide();
		jQuery("#interest_main").hide();
		jQuery("#send_messages").hide();
		jQuery("#profile_add_fav").hide();
		jQuery("#profile_is_fav").hide();
		jQuery("#can_block").hide();
		jQuery("#can_unblock").show();
	}
	else if (how == "unblock") {
		jQuery("#can_unblock").hide();
		jQuery("#can_block").show();
		jQuery("#interest_main").show();
		jQuery("#send_messages").show();
		jQuery("#profile_add_fav").show();
		jQuery("#no_friends_at_all").show();
	}
}

// User action response
function return_profile_action(key, msg, _title){
	Boxy.alert("<b>" + msg + "</b><br /><br />", null, {});
	jQuery("> .f_right", "#row_" + key).remove();
	jQuery("#row_" + key).hide();
} 

$.fn.newsTicker = $.fn.newsticker = function(delay)
{
	delay = delay || 8000;
	initTicker = function(el)
	{
		$.newsticker.clear(el);
		el.items = $("li", el);
		// hide all items (except first one)
		el.items.not(":eq(0)").hide().end();
		// current item
		el.currentitem = 0;
		startTicker(el);
	};
	startTicker = function(el)
	{
		el.tickfn = setInterval(function() { doTick(el) }, delay)
	};
	doTick = function(el)
	{
		// don't run if paused
		if(el.pause) return;
		// pause until animation has finished
		$.newsticker.pause(el);
		// hide current item
		$(el.items[el.currentitem]).fadeOut("slow",
			function()
			{
				$(this).hide();
				// move to next item and show
				el.currentitem = ++el.currentitem % (el.items.size());
				$(el.items[el.currentitem]).fadeIn("slow",
					function()
					{
						$.newsticker.resume(el);
					}
				);
			}
		);
	};
	this.each(
		function()
		{
			if(this.nodeName.toLowerCase()!= "ul") return;
			initTicker(this);
		}
	)
	.addClass("newsticker")
	.hover(
		function()
		{
			// pause if hovered over
			$.newsticker.pause(this);
		},
		function()
		{
			// resume when not hovered over
			$.newsticker.resume(this);
		}
	);
	return this;
};


$.newsticker = $.newsTicker =
{
	pause: function(el)
	{
		(el.jquery ? el[0] : el).pause = true;
	},
	resume: function(el)
	{
		(el.jquery ? el[0] : el).pause = false;
	},
	clear: function(el)
	{
		el = (el.jquery ? el[0] : el);
		clearInterval(el.tickfn);
		el.tickfn = null;
		el.items = null;
		el.currentItem = null;
	}
}
;(function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie && parseInt($.browser.version)===6){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var prop=function(n){return n&&n.constructor==Number?n+'px':n;},html='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+'style="display:block;position:absolute;z-index:-1;'+(s.opacity!==false?'filter:Alpha(Opacity=\'0\');':'')+'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+'"/>';return this.each(function(){if($('> iframe.bgiframe',this).length==0)this.insertBefore(document.createElement(html),this.firstChild);});}return this;};})(jQuery);
;(function(e){e.extend({metadata:{defaults:{type:"class",name:"metadata",cre:/({.*})/,single:"metadata"},setType:function(b,a){this.defaults.type=b;this.defaults.name=a},get:function(b,a){a=e.extend({},this.defaults,a);if(!a.single.length)a.single="metadata";var c=e.data(b,a.single);if(c)return c;c="{}";var h=function(d){if(typeof d!="string")return d;return d=eval("("+d+")")};if(a.type=="html5"){var g={};e(b.attributes).each(function(){var d=this.nodeName;if(d.match(/^data-/))d=d.replace(/^data-/,
"");else return true;g[d]=h(this.nodeValue)})}else{if(a.type=="class"){var f=a.cre.exec(b.className);if(f)c=f[1]}else if(a.type=="elem"){if(!b.getElementsByTagName)return;f=b.getElementsByTagName(a.name);if(f.length)c=e.trim(f[0].innerHTML)}else if(b.getAttribute!=undefined)if(f=b.getAttribute(a.name))c=f;g=h(c.indexOf("{")<0?"{"+c+"}":c)}e.data(b,a.single,g);return g}}});e.fn.metadata=function(b){return e.metadata.get(this[0],b)}})(jQuery);

;jQuery.easing.jswing=jQuery.easing.swing;
jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,a,c,b,d){return jQuery.easing[jQuery.easing.def](e,a,c,b,d)},easeInQuad:function(e,a,c,b,d){return b*(a/=d)*a+c},easeOutQuad:function(e,a,c,b,d){return-b*(a/=d)*(a-2)+c},easeInOutQuad:function(e,a,c,b,d){if((a/=d/2)<1)return b/2*a*a+c;return-b/2*(--a*(a-2)-1)+c},easeInCubic:function(e,a,c,b,d){return b*(a/=d)*a*a+c},easeOutCubic:function(e,a,c,b,d){return b*((a=a/d-1)*a*a+1)+c},easeInOutCubic:function(e,a,c,b,d){if((a/=d/2)<1)return b/
2*a*a*a+c;return b/2*((a-=2)*a*a+2)+c},easeInQuart:function(e,a,c,b,d){return b*(a/=d)*a*a*a+c},easeOutQuart:function(e,a,c,b,d){return-b*((a=a/d-1)*a*a*a-1)+c},easeInOutQuart:function(e,a,c,b,d){if((a/=d/2)<1)return b/2*a*a*a*a+c;return-b/2*((a-=2)*a*a*a-2)+c},easeInQuint:function(e,a,c,b,d){return b*(a/=d)*a*a*a*a+c},easeOutQuint:function(e,a,c,b,d){return b*((a=a/d-1)*a*a*a*a+1)+c},easeInOutQuint:function(e,a,c,b,d){if((a/=d/2)<1)return b/2*a*a*a*a*a+c;return b/2*((a-=2)*a*a*a*a+2)+c},easeInSine:function(e,
a,c,b,d){return-b*Math.cos(a/d*(Math.PI/2))+b+c},easeOutSine:function(e,a,c,b,d){return b*Math.sin(a/d*(Math.PI/2))+c},easeInOutSine:function(e,a,c,b,d){return-b/2*(Math.cos(Math.PI*a/d)-1)+c},easeInExpo:function(e,a,c,b,d){return a==0?c:b*Math.pow(2,10*(a/d-1))+c},easeOutExpo:function(e,a,c,b,d){return a==d?c+b:b*(-Math.pow(2,-10*a/d)+1)+c},easeInOutExpo:function(e,a,c,b,d){if(a==0)return c;if(a==d)return c+b;if((a/=d/2)<1)return b/2*Math.pow(2,10*(a-1))+c;return b/2*(-Math.pow(2,-10*--a)+2)+c},
easeInCirc:function(e,a,c,b,d){return-b*(Math.sqrt(1-(a/=d)*a)-1)+c},easeOutCirc:function(e,a,c,b,d){return b*Math.sqrt(1-(a=a/d-1)*a)+c},easeInOutCirc:function(e,a,c,b,d){if((a/=d/2)<1)return-b/2*(Math.sqrt(1-a*a)-1)+c;return b/2*(Math.sqrt(1-(a-=2)*a)+1)+c},easeInElastic:function(e,a,c,b,d){e=1.70158;var f=0,g=b;if(a==0)return c;if((a/=d)==1)return c+b;f||(f=d*0.3);if(g<Math.abs(b)){g=b;e=f/4}else e=f/(2*Math.PI)*Math.asin(b/g);return-(g*Math.pow(2,10*(a-=1))*Math.sin((a*d-e)*2*Math.PI/f))+c},easeOutElastic:function(e,
a,c,b,d){e=1.70158;var f=0,g=b;if(a==0)return c;if((a/=d)==1)return c+b;f||(f=d*0.3);if(g<Math.abs(b)){g=b;e=f/4}else e=f/(2*Math.PI)*Math.asin(b/g);return g*Math.pow(2,-10*a)*Math.sin((a*d-e)*2*Math.PI/f)+b+c},easeInOutElastic:function(e,a,c,b,d){e=1.70158;var f=0,g=b;if(a==0)return c;if((a/=d/2)==2)return c+b;f||(f=d*0.3*1.5);if(g<Math.abs(b)){g=b;e=f/4}else e=f/(2*Math.PI)*Math.asin(b/g);if(a<1)return-0.5*g*Math.pow(2,10*(a-=1))*Math.sin((a*d-e)*2*Math.PI/f)+c;return g*Math.pow(2,-10*(a-=1))*Math.sin((a*
d-e)*2*Math.PI/f)*0.5+b+c},easeInBack:function(e,a,c,b,d,f){if(f==undefined)f=1.70158;return b*(a/=d)*a*((f+1)*a-f)+c},easeOutBack:function(e,a,c,b,d,f){if(f==undefined)f=1.70158;return b*((a=a/d-1)*a*((f+1)*a+f)+1)+c},easeInOutBack:function(e,a,c,b,d,f){if(f==undefined)f=1.70158;if((a/=d/2)<1)return b/2*a*a*(((f*=1.525)+1)*a-f)+c;return b/2*((a-=2)*a*(((f*=1.525)+1)*a+f)+2)+c},easeInBounce:function(e,a,c,b,d){return b-jQuery.easing.easeOutBounce(e,d-a,0,b,d)+c},easeOutBounce:function(e,a,c,b,d){return(a/=
d)<1/2.75?b*7.5625*a*a+c:a<2/2.75?b*(7.5625*(a-=1.5/2.75)*a+0.75)+c:a<2.5/2.75?b*(7.5625*(a-=2.25/2.75)*a+0.9375)+c:b*(7.5625*(a-=2.625/2.75)*a+0.984375)+c},easeInOutBounce:function(e,a,c,b,d){if(a<d/2)return jQuery.easing.easeInBounce(e,a*2,0,b,d)*0.5+c;return jQuery.easing.easeOutBounce(e,a*2-d,0,b,d)*0.5+b*0.5+c}});

;jQuery.cookie=function(d,c,a){if(typeof c!="undefined"){a=a||{};if(c===null){c="";a.expires=-1}var b="";if(a.expires&&(typeof a.expires=="number"||a.expires.toUTCString)){if(typeof a.expires=="number"){b=new Date;b.setTime(b.getTime()+a.expires*24*60*60*1E3)}else b=a.expires;b="; expires="+b.toUTCString()}var e=a.path?"; path="+a.path:"",f=a.domain?"; domain="+a.domain:"";a=a.secure?"; secure":"";document.cookie=[d,"=",encodeURIComponent(c),b,e,f,a].join("")}else{c=null;if(document.cookie&&document.cookie!=
""){a=document.cookie.split(";");for(b=0;b<a.length;b++){e=jQuery.trim(a[b]);if(e.substring(0,d.length+1)==d+"="){c=decodeURIComponent(e.substring(d.length+1));break}}}return c}};

;if(jQuery.fn.bgiframe==undefined){jQuery.fn.bgiframe=function(){return this}}jQuery.fn.boxy=function(a){a=a||{};return this.each(function(){var c=this.nodeName.toLowerCase(),b=this;if(c=="a"){jQuery(this).click(function(){var h=Boxy.linkedTo(this),e=this.getAttribute("href"),g=jQuery.extend({actuator:this,title:this.title},a);if(e.match(/(&|\?)boxy\.modal/)){g.modal=true}if(h){h.show()}else{if(e.indexOf("#")>=0){var f=jQuery(e.substr(e.indexOf("#"))),d=f.clone(true);f.remove();g.unloadOnHide=false;new Boxy(d,g)}else{if(!g.cache){g.unloadOnHide=true}Boxy.load(this.href,g)}}return false})}else{if(c=="form"){jQuery(this).bind("submit.boxy",function(){Boxy.confirm(a.message||"Please confirm:",function(){jQuery(b).unbind("submit.boxy").submit()});return false})}}})};function Boxy(b,a){this.boxy=jQuery(Boxy.WRAPPER);jQuery.data(this.boxy[0],"boxy",this);this.visible=false;this.options=jQuery.extend({},Boxy.DEFAULTS,a||{});if(this.options.modal){this.options=jQuery.extend(this.options,{center:true,draggable:false})}if(this.options.actuator){jQuery.data(this.options.actuator,"active.boxy",this)}this.setContent(b||"<div></div>");this._setupTitleBar();this.boxy.css("display","none").appendTo(document.body);this.toTop();if(this.options.fixed){if(jQuery.browser.msie&&jQuery.browser.version<7){this.options.fixed=false}else{this.boxy.addClass("fixed")}}if(this.options.center&&Boxy._u(this.options.x,this.options.y)){this.center()}else{this.moveTo(Boxy._u(this.options.x)?this.options.x:Boxy.DEFAULT_X,Boxy._u(this.options.y)?this.options.y:Boxy.DEFAULT_Y)}if(this.options.show){this.show()}}Boxy.EF=function(){};jQuery.extend(Boxy,{WRAPPER:"<table cellspacing='0' cellpadding='0' border='0' class='boxy-wrapper big'><tr><td class='top' colspan='3'></td></tr><tr><td class='left'></td><td class='boxy-inner'></td><td class='right'></td></tr><tr><td class='bottom' colspan='3'></td></tr></table>",DEFAULTS:{title:null,animate:false,closeable:true,draggable:true,clone:false,actuator:null,center:true,show:true,modal:false,fixed:true,closeText:"[close]",unloadOnHide:false,clickToFront:false,behaviours:Boxy.EF,afterDrop:Boxy.EF,beforeShow:Boxy.EF,afterShow:Boxy.EF,afterHide:Boxy.EF,beforeUnload:Boxy.EF},DEFAULT_X:50,DEFAULT_Y:50,MODAL_OPACITY:0.7,zIndex:4337,dragConfigured:false,resizeConfigured:false,dragging:null,load:function(b,a){a=a||{};var c={url:b,type:"GET",dataType:"html",cache:false,success:function(d){d=jQuery(d);if(a.filter){d=jQuery(a.filter,d)}new Boxy(d,a)}};jQuery.each(["type","cache"],function(){if(this in a){c[this]=a[this];delete a[this]}});jQuery.ajax(c)},get:function(a){var b=jQuery(a).parents(".boxy-wrapper");return b.length?jQuery.data(b[0],"boxy"):null},linkedTo:function(a){return jQuery.data(a,"active.boxy")},alert:function(b,c,a){a=jQuery.extend({txt_ok:link_close,autoClose:2500},a);return Boxy.ask(b,[a.txt_ok],c,a)},confirm:function(b,c,a){a=jQuery.extend({txt_ok:"OK",txt_cancel:"Cancel"},a);return Boxy.ask(b,[a.txt_ok,a.txt_cancel],function(d){if(d==a.txt_ok){c()}},a)},ask:function(c,f,m,n){n=jQuery.extend({modal:true,closeable:false},n||{},{show:true,unloadOnHide:true});var l="";if(n.autoClose>0){l=' class="alert_hint"'}var e=jQuery("<div"+l+"></div>").append(jQuery('<div class="question"></div>').html(c));var a={},j=[];if(f instanceof Array){for(var d=0;d<f.length;d++){a[f[d]]=f[d];j.push(f[d])}}else{for(var b in f){a[f[b]]=b;j.push(f[b])}}var h=jQuery('<form class="answers"></form>');h.html(jQuery.map(j,function(i){return'&nbsp;<button type="button" class="btn btn_small"><span>'+i+"</span></button>"}).join(" "));jQuery("button[type=button]",h).click(function(){var i=this;Boxy.get(this).hide(function(){if(m){m(a[jQuery(i).find("span").text()])}})});jQuery("button[type=button]:contains("+n.txt_cancel+")",h).addClass("btn_small_gray");e.append(h);if(n.autoClose>0){n.modal=false}var g=new Boxy(e,n);if(n.autoClose>0){setTimeout(function(){if(m){m(null)}g.hideAndUnload()},n.autoClose)}},isModalVisible:function(){return jQuery(".boxy-modal-blackout").length>0},_u:function(){for(var a=0;a<arguments.length;a++){if(typeof arguments[a]!="undefined"){return false}}return true},_handleResize:function(a){jQuery(".boxy-modal-blackout").css("display","none").css(Boxy._documentSize()).css("display","block")},_handleDrag:function(a){var b;if(b=Boxy.dragging){b[0].boxy.css({left:a.pageX-b[1],top:a.pageY-b[2]})}},_nextZ:function(){return Boxy.zIndex++},_viewport:function(){var e=document.documentElement,a=document.body,c=window;return jQuery.extend(jQuery.browser.msie?{left:a.scrollLeft||e.scrollLeft,top:a.scrollTop||e.scrollTop}:{left:c.pageXOffset,top:c.pageYOffset},!Boxy._u(c.innerWidth)?{width:c.innerWidth,height:c.innerHeight}:(!Boxy._u(e)&&!Boxy._u(e.clientWidth)&&e.clientWidth!=0?{width:e.clientWidth,height:e.clientHeight}:{width:a.clientWidth,height:a.clientHeight}))},_documentSize:function(){return{height:document.body.offsetHeight}}});Boxy.prototype={estimateSize:function(){this.boxy.css({visibility:"hidden",display:"block"});var a=this.getSize();this.boxy.css("display","none").css("visibility","visible");return a},getSize:function(){return[this.boxy.width(),this.boxy.height()]},getContentSize:function(){var a=this.getContent();return[a.width(),a.height()]},getPosition:function(){var a=this.boxy[0];return[a.offsetLeft,a.offsetTop]},getCenter:function(){var b=this.getPosition();var a=this.getSize();return[Math.floor(b[0]+a[0]/2),Math.floor(b[1]+a[1]/2)]},getInner:function(){return jQuery(".boxy-inner",this.boxy)},getContent:function(){return jQuery(".boxy-content",this.boxy)},setContent:function(a){a=jQuery(a).css({display:"block"}).addClass("boxy-content");if(this.options.clone){a=a.clone(true)}this.getContent().remove();this.getInner().append(a);this._setupDefaultBehaviours(a);this.options.behaviours.call(this,a);return this},moveTo:function(a,b){this.moveToX(a).moveToY(b);return this},moveToX:function(a){if(typeof a=="number"){this.boxy.css({left:a})}else{this.centerX()}return this},moveToY:function(a){if(typeof a=="number"){this.boxy.css({top:a})}else{this.centerY()}return this},centerAt:function(a,c){var b=this[this.visible?"getSize":"estimateSize"]();if(typeof a=="number"){this.moveToX(a-b[0]/2)}if(typeof c=="number"){this.moveToY((c-b[1]/2)>=0?c-b[1]/2:0)}return this},centerAtX:function(a){return this.centerAt(a,null)},centerAtY:function(a){return this.centerAt(null,a)},center:function(b){var a=Boxy._viewport();var c=this.options.fixed?[0,0]:[a.left,a.top];if(!b||b=="x"){this.centerAt(c[0]+a.width/2,null)}if(!b||b=="y"){this.centerAt(null,c[1]+a.height/2)}return this},centerX:function(){return this.center("x")},centerY:function(){return this.center("y")},resize:function(b,a,d){if(!this.visible){return}var c=this._getBoundsForResize(b,a);this.boxy.css({left:c[0],top:c[1]});this.getContent().css({width:c[2],height:c[3]});if(d){d(this)}return this},tween:function(c,a,e){if(!this.visible){return}var d=this._getBoundsForResize(c,a);var b=this;this.boxy.stop().animate({left:d[0],top:d[1]});this.getContent().stop().animate({width:d[2],height:d[3]},function(){if(e){e(b)}});return this},isVisible:function(){return this.visible},show:function(){this._fire("beforeShow");var a=this;if(this.visible){return}if(!Boxy.resizeConfigured){Boxy.resizeConfigured=true;jQuery(window).resize(function(){if(Boxy.isModalVisible()&&a.options.modal){Boxy._handleResize()}a.center()})}if(this.options.modal){this.modalBlackout=jQuery('<div class="boxy-modal-blackout"></div>').css(jQuery.extend(Boxy._documentSize(),{zIndex:Boxy._nextZ(),opacity:Boxy.MODAL_OPACITY})).appendTo(document.body);this.toTop();if(this.options.closeable){jQuery(document.body).bind("keypress.boxy",function(b){var c=b.which||b.keyCode;if(c==27){a.hide();jQuery(document.body).unbind("keypress.boxy")}})}}if(jQuery.browser.msie&&/6.0/.test(navigator.userAgent)&&this.options.modal){jQuery("select").not(jQuery(".boxy-wrapper select")).css("visibility","hidden")}this.boxy.stop().show();this.visible=true;this._fire("afterShow");return this},hide:function(c){if(!this.visible){return}var b=this;var a=(this.options.animate?300:0);if(this.options.modal){jQuery(document.body).unbind("keypress.boxy");jQuery(window).unbind("resize");b.modalBlackout.remove()}b.boxy.css({display:"none"});b.visible=false;b._fire("afterHide");if(c){c(b)}if(b.options.unloadOnHide){b.unload()}if(jQuery.browser.msie&&/6.0/.test(navigator.userAgent)&&this.options.modal){jQuery("select").remove(".boxy-wrapper select").css("visibility","visible")}return this},toggle:function(){this[this.visible?"hide":"show"]();return this},hideAndUnload:function(a){this.options.unloadOnHide=true;this.hide(a);return this},unload:function(){this._fire("beforeUnload");this.boxy.remove();if(this.options.actuator){jQuery.data(this.options.actuator,"active.boxy",false)}},toTop:function(){this.boxy.css({zIndex:Boxy._nextZ()});return this},getTitle:function(){return jQuery("> .title-bar h2",this.getInner()).html()},setTitle:function(a){jQuery("> .title-bar h2",this.getInner()).html(a);return this},_getBoundsForResize:function(c,a){var b=this.getContentSize();var e=[c-b[0],a-b[1]];var d=this.getPosition();return[Math.max(d[0]-e[0]/2,0),Math.max(d[1]-e[1]/2,0),c,a]},_setupTitleBar:function(){if(this.options.title){var b=this;var a=jQuery("<div class='title-bar'></div>").html("<h2>"+this.options.title+"</h2>");if(this.options.closeable){a.append(this.options.closeText)}if(this.options.draggable){a[0].onselectstart=function(){return false};a[0].unselectable="on";a[0].style.MozUserSelect="none";if(!Boxy.dragConfigured){jQuery(document).mousemove(Boxy._handleDrag);Boxy.dragConfigured=true}a.mousedown(function(c){b.toTop();Boxy.dragging=[b,c.pageX-b.boxy[0].offsetLeft,c.pageY-b.boxy[0].offsetTop];jQuery(this).addClass("dragging")}).mouseup(function(){jQuery(this).removeClass("dragging");Boxy.dragging=null;b._fire("afterDrop")})}this.getInner().prepend(a);this._setupDefaultBehaviours(a)}},_setupDefaultBehaviours:function(a){var b=this;if(this.options.clickToFront){a.click(function(){b.toTop()})}jQuery(".close",a).click(function(){b.hide();return false}).mousedown(function(c){c.stopPropagation()})},_fire:function(a){this.options[a].call(this)}};
;/**
 * jQuery.ScrollTo - Easy element scrolling using jQuery.
 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 5/25/2009
 * @author Ariel Flesler
 * @version 1.4.2
 *
 * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
 */
;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
;eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(7($){$.8.9=7(d){g e=$.v({},$.8.9.k,d);g f=e.l;2.w(7(){5(!$(2).3(\'4\')||$(2).3(\'4\')=="#"){$(2).3(\'4\',j.x.4)}5(!$(2).3(\'6\')){$(2).3(\'6\',y.6)}5($.h.z){$(2).3(\'m\',$(2).3(\'4\')).3(\'4\',\'\').3(\'4\',\'A:B(0)\').3(\'C\',\'$.8.9.n(2,"\'+$(2).3(\'6\')+\'","\'+$(2).3(\'m\')+\'")\')}i{$(2).o(p)}});7 p(a){g b=$(2).3(\'4\');g c=$(2).3(\'6\');b=b.E("q:///","F://q/");5($.h.G){j.H.I(b,c)}i 5($.h.J){j.r.K(c,b,\'\')}i 5(L.M.N().O(\'P\')>-1){s(f)}i 5($.h.Q){s(f)}a.R()};t 2};$.8.9.k={l:\'S "T + D" U "V + D" W X, u Y 2 Z u 10 11.\'};$.8.9.n=7(e,a,b){e.12="r";e.6=a;e.4="";e.4=b;e.o();t 13}})(14);',62,67,'||this|attr|href|if|title|function|fn|jFav|||||||var|browser|else|window|defaults|msg|link|OperaBookmark|click|addToFavorites|file|sidebar|alert|return|to|extend|each|location|document|opera|javascript|void|onClick||replace|http|msie|external|AddFavorite|mozilla|addPanel|navigator|userAgent|toLowerCase|indexOf|chrome|safari|preventDefault|Press|Ctrl|or|CMD|for|MAC|add|page|your|bookmarks|rel|false|jQuery'.split('|'),0,{}))
;(function(d){d.fn.extend({autocomplete:function(a,b){var k=typeof a=="string";b=d.extend({},d.Autocompleter.defaults,{url:k?a:null,data:k?null:a,delay:k?d.Autocompleter.defaults.delay:10,max:b&&!b.scroll?10:150},b);b.highlight=b.highlight||function(i){return i};b.formatMatch=b.formatMatch||b.formatItem;return this.each(function(){new d.Autocompleter(this,b)})},result:function(a){return this.bind("result",a)},search:function(a){return this.trigger("search",[a])},flushCache:function(){return this.trigger("flushCache")},
setOptions:function(a){return this.trigger("setOptions",[a])},unautocomplete:function(){return this.trigger("unautocomplete")}});d.Autocompleter=function(a,b){function k(){var c=v.selected();if(!c)return false;var f=c.result;x=f;if(b.multiple){var z=w(m.val());if(z.length>1){var p=b.multipleSeparator.length,A=d(a).selection().start,y,C=0;d.each(z,function(F,G){C+=G.length;if(A<=C){y=F;return false}C+=p});z[y]=f;f=z.join(b.multipleSeparator)}f+=b.multipleSeparator}m.val(f);q();m.trigger("result",[c.data,
c.value]);return true}function i(c,f){c=m.val();if(!(!f&&c==x)){x=c;c=l(c);if(c.length>=b.minChars){m.addClass(b.loadingClass);b.matchCase||(c=c.toLowerCase());t(c,u,q)}else{h();v.hide()}}}function w(c){if(!c)return[""];if(!b.multiple)return[d.trim(c)];return d.map(c.split(b.multipleSeparator),function(f){return d.trim(c).length?d.trim(f):null})}function l(c){if(!b.multiple)return c;var f=w(c);if(f.length==1)return f[0];f=d(a).selection().start;f=f==c.length?w(c):w(c.replace(c.substring(f),""));return f[f.length-
1]}function r(c,f){if(b.autoFill&&l(m.val()).toLowerCase()==c.toLowerCase()&&n!=s.BACKSPACE){m.val(m.val()+f.substring(l(x).length));d(a).selection(x.length,x.length+f.length)}}function j(){clearTimeout(B);B=setTimeout(q,200)}function q(){v.visible();v.hide();clearTimeout(B);h();b.mustMatch&&m.search(function(c){if(!c)if(b.multiple){c=w(m.val()).slice(0,-1);m.val(c.join(b.multipleSeparator)+(c.length?b.multipleSeparator:""))}else{m.val("");m.trigger("result",null)}})}function u(c,f){if(f&&f.length&&
e){h();v.display(f,c);r(c,f[0].value);v.show()}else q()}function t(c,f,z){b.matchCase||(c=c.toLowerCase());var p=o.load(c);if(p&&p.length)f(c,p);else if(typeof b.url=="string"&&b.url.length>0){var A={timestamp:+new Date};d.each(b.extraParams,function(y,C){A[y]=typeof C=="function"?C():C});d.ajax({mode:"abort",port:"autocomplete"+a.name,dataType:b.dataType,url:b.url,data:d.extend({q:l(c),limit:b.max},A),success:function(y){y=b.parse&&b.parse(y)||g(y);o.add(c,y);f(c,y)}})}else{v.emptyList();z(c)}}function g(c){var f=
[];c=c.split("\n");for(var z=0;z<c.length;z++){var p=d.trim(c[z]);if(p){p=p.split("|");f[f.length]={data:p,value:p[0],result:b.formatResult&&b.formatResult(p,p[0])||p[0]}}}return f}function h(){m.removeClass(b.loadingClass)}var s={UP:38,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34,BACKSPACE:8},m=d(a).attr("autocomplete","off").addClass(b.inputClass),B,x="",o=d.Autocompleter.Cache(b),e=0,n,D={mouseDownOnSelect:false},v=d.Autocompleter.Select(b,a,k,D),E;d.browser.opera&&d(a.form).bind("submit.autocomplete",
function(){if(E)return E=false});m.bind((d.browser.opera?"keypress":"keydown")+".autocomplete",function(c){e=1;n=c.keyCode;switch(c.keyCode){case s.UP:c.preventDefault();v.visible()?v.prev():i(0,true);break;case s.DOWN:c.preventDefault();v.visible()?v.next():i(0,true);break;case s.PAGEUP:c.preventDefault();v.visible()?v.pageUp():i(0,true);break;case s.PAGEDOWN:c.preventDefault();v.visible()?v.pageDown():i(0,true);break;case b.multiple&&d.trim(b.multipleSeparator)==","&&s.COMMA:case s.TAB:case s.RETURN:k();
break;case s.ESC:v.hide();break;default:clearTimeout(B);B=setTimeout(i,b.delay);break}}).focus(function(){e++}).blur(function(){e=0;D.mouseDownOnSelect||j()}).click(function(){e++>0&&!v.visible()&&i(0,true)}).bind("search",function(){function c(z,p){var A;if(p&&p.length)for(var y=0;y<p.length;y++)if(p[y].result.toLowerCase()==z.toLowerCase()){A=p[y];break}typeof f=="function"?f(A):m.trigger("result",A&&[A.data,A.value])}var f=arguments.length>1?arguments[1]:null;d.each(w(m.val()),function(z,p){t(p,
c,c)})}).bind("flushCache",function(){o.flush()}).bind("setOptions",function(c,f){d.extend(b,f);"data"in f&&o.populate()}).bind("unautocomplete",function(){v.unbind();m.unbind();d(a.form).unbind(".autocomplete");m.unbind((d.browser.opera?"keypress":"keydown")+".autocomplete")})};d.Autocompleter.defaults={inputClass:"ac_input",resultsClass:"ac_results",loadingClass:"ac_loading",minChars:1,delay:400,matchCase:false,matchSubset:true,matchContains:false,cacheLength:0,max:100,mustMatch:false,extraParams:{},
selectFirst:true,formatItem:function(a){return a[0]},formatMatch:null,autoFill:false,width:0,multiple:false,multipleSeparator:", ",highlight:function(a,b){return a.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+b.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"<strong>$1</strong>")},scroll:true,scrollHeight:350};d.Autocompleter.Cache=function(a){function b(j,q){a.matchCase||(j=j.toLowerCase());var u=j.indexOf(q);if(a.matchContains=="word")u=j.toLowerCase().search("\\b"+
q.toLowerCase());if(u==-1)return false;return u==0||a.matchContains}function k(j,q){r>a.cacheLength&&w();l[j]||r++;l[j]=q}function i(){if(!a.data)return false;var j={},q=0;if(!a.url)a.cacheLength=1;j[""]=[];for(var u=0,t=a.data.length;u<t;u++){var g=a.data[u];g=typeof g=="string"?[g]:g;var h=a.formatMatch(g,u+1,a.data.length);if(h!==false){var s=h.charAt(0).toLowerCase();j[s]||(j[s]=[]);g={value:h,data:g,result:a.formatResult&&a.formatResult(g)||h};j[s].push(g);q++<a.max&&j[""].push(g)}}d.each(j,
function(m,B){a.cacheLength++;k(m,B)})}function w(){var j=l[""];l={};r=0;if(a.single_request){l[""]=j;r=1}}var l={},r=0;setTimeout(i,25);return{flush:w,add:k,populate:i,load:function(j){if(!a.cacheLength||!r)return null;if(!a.url&&a.matchContains){var q=[];for(var u in l)if(u.length>0){var t=l[u];d.each(t,function(g,h){b(h.value,j)&&q.push(h)})}return q}else if(l[j])return l[j];else if(a.matchSubset)for(u=j.length-1;u>=a.minChars;u--)if(t=l[j.substr(0,u)]){q=[];d.each(t,function(g,h){if(b(h.value,
j))q[q.length]=h});if(q.length==0&&a.single_request&&l[""].length>0)return l[""];return q}return null}}};d.Autocompleter.Select=function(a,b,k,i){function w(){if(B){x=d("<div/>").hide().addClass(a.resultsClass).css("position","absolute").appendTo(document.body);o=d("<ul/>").appendTo(x).mouseover(function(e){if(l(e).nodeName&&l(e).nodeName.toUpperCase()=="LI"){h=d("li",o).removeClass(t.ACTIVE).index(l(e));d(l(e)).addClass(t.ACTIVE)}}).click(function(e){d(l(e)).addClass(t.ACTIVE);k();b.focus();return false}).mousedown(function(){i.mouseDownOnSelect=
true}).mouseup(function(){i.mouseDownOnSelect=false});a.width>0&&x.css("width",a.width);B=false}}function l(e){for(e=e.target;e&&e.tagName!="LI";)e=e.parentNode;if(!e)return[];return e}function r(e){g.slice(h,h+1).removeClass(t.ACTIVE);j(e);e=g.slice(h,h+1).addClass(t.ACTIVE);d(b).val(e.text());if(a.scroll){var n=0;g.slice(0,h).each(function(){n+=this.offsetHeight});if(n+e[0].offsetHeight-o.scrollTop()>o[0].clientHeight)o.scrollTop(n+e[0].offsetHeight-o.innerHeight());else n<o.scrollTop()&&o.scrollTop(n)}}
function j(e){h+=e;if(h<0)h=g.size()-1;else if(h>=g.size())h=0}function q(e){return a.max&&a.max<e?a.max:e}function u(){o.empty();for(var e=q(s.length),n=0;n<e;n++)if(s[n]){var D=a.formatItem(s[n].data,n+1,e,s[n].value,m);if(D!==false){D=d("<li/>").html(a.highlight(D,m)).addClass(n%2==0?"ac_even":"ac_odd").appendTo(o)[0];d.data(D,"ac_data",s[n])}}g=o.find("li");if(a.selectFirst){g.slice(0,1).addClass(t.ACTIVE);h=0}d.fn.bgiframe&&o.bgiframe()}var t={ACTIVE:"ac_over"},g,h=-1,s,m="",B=true,x,o;return{display:function(e,
n){w();s=e;m=n;u()},next:function(){r(1)},prev:function(){r(-1)},pageUp:function(){h!=0&&h-8<0?r(-h):r(-8)},pageDown:function(){h!=g.size()-1&&h+8>g.size()?r(g.size()-1-h):r(8)},hide:function(){x&&x.hide();g&&g.removeClass(t.ACTIVE);h=-1},visible:function(){return x&&x.is(":visible")},current:function(){return this.visible()&&(g.filter("."+t.ACTIVE)[0]||a.selectFirst&&g[0])},show:function(){var e=d(b).offset();x.css({width:typeof a.width=="string"||a.width>0?d(b).width():d(b).width(),top:e.top+b.offsetHeight,
left:e.left}).show();if(a.scroll){o.scrollTop(0);o.css({maxHeight:a.scrollHeight,overflow:"auto"});if(d.browser.msie&&typeof document.body.style.maxHeight==="undefined"){var n=0;g.each(function(){n+=this.offsetHeight});e=n>a.scrollHeight;o.css("height",e?a.scrollHeight:n);e||g.width(o.width()-parseInt(g.css("padding-left"))-parseInt(g.css("padding-right")))}}},selected:function(){var e=g&&g.filter("."+t.ACTIVE).removeClass(t.ACTIVE);return e&&e.length&&d.data(e[0],"ac_data")},emptyList:function(){o&&
o.empty()},unbind:function(){x&&x.remove()}}};d.fn.selection=function(a,b){if(a!==undefined)return this.each(function(){if(this.createTextRange){var r=this.createTextRange();if(b===undefined||a==b)r.move("character",a);else{r.collapse(true);r.moveStart("character",a);r.moveEnd("character",b)}r.select()}else if(this.setSelectionRange)this.setSelectionRange(a,b);else if(this.selectionStart){this.selectionStart=a;this.selectionEnd=b}});var k=this[0];if(k.createTextRange){var i=document.selection.createRange(),
w=k.value,l=i.text.length;i.text="<->";i=k.value.indexOf("<->");k.value=w;this.selection(i,i+l);return{start:i,end:i+l}}else if(k.selectionStart!==undefined)return{start:k.selectionStart,end:k.selectionEnd}}})(jQuery);
(function(d){d.fn.autocompleteShow=function(a){var b=this.attr("id"),k=d.extend({},d.fn.autocompleteShow.defaults,a);add_param=typeof lz_city!="undefined"&&lz_city!=null?"&city="+lz_city:"";a=k.remote_url==""?do_link(k.remote_connector,"request="+k.request+add_param):k.remote_url;jQuery(this).autocomplete(a,k);jQuery(this).result(function(i,w){if(w){jQuery(this).val(w[0]);jQuery(this).addClass(k.autocompleteClass);if(w[1]){(i=jQuery(this).parent().find("input[name='autocomplete_"+b+"']"))&&i.remove();
i=document.createElement("input");jQuery(i).attr({type:"hidden",value:w[1],name:"autocomplete_"+b});jQuery(this).parent().append(i)}}})};d.fn.autocompleteShow.defaults={autocompleteClass:"",width:"",remote_connector:"site.remote",remote_url:"",request:""}})(jQuery);

