
function adv_post(page, params, my_title, width, height){
	params += "&rv=" + Math.floor(Math.random() * 10000000000);

	myBox = new Boxy("<iframe name=\"overlay\" src=\"" + do_link(page, params)  + "\"  framespacing=\"0\" frameborder=\"no\" scrolling=\"no\" width=\"" + width + "\" height=\"" + height + "\"></iframe>", {
			title: my_title,
			closeText: "<span class='close_box'>[ <a href='#' class='close'>inchide</a> ] <a href='#' class='close'><img src='" + PATH + "/img/site/btn_close.gif' align='absmiddle' alt='close'></a></span>",
			closeable: true,
			modal: true
	});
}


// Populate states select #######################################################

function populate_states(form_id, select_name_country, select_name_states, select_name_cities, selected_state){
	
	
	var states_select = $("form#" + form_id + " select[name='" + select_name_states + "']");
	var cities_select = $("form#" + form_id + " select[name='" + select_name_cities + "']");
	
	states_select.empty();
	$("<option value=\"" + 0 + "\"></option>").html("Loading...").appendTo(states_select);
	$(states_select).attr("disabled", "disabled");
	
	cities_select.empty();
	$("<option value=\"" + 0 + "\"></option>").html("Loading...").appendTo(cities_select);
	$(cities_select).attr("disabled", "disabled");
	
	var country_select = $("form#" + form_id + " select[name='" + select_name_country + "']");
	var country_selection = country_select.val();
	
	var URL = do_link("site.remote", "request=states&fk_countries=" + country_selection);
	
	states_select.load(URL, {}, function(){
		
		states_select.removeAttr("disabled");
		
		if ((selected_state != undefined) && (selected_state != "") && (selected_state != 0)) {
			
			try {
				jQuery(states_select.find("option").removeAttr("selected").filter("[value='" + selected_state + "']").get(0)).attr("selected", "selected");
			}
			catch(error){}
		}
		else {
			// jQuery(states_select).find("option[value='0']").attr("selected", "selected");
			// states_select.selectOptions("0", true);
		}
		
		if (typeof(return_states) == "function") {
			return_states();
		}
	});

}

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

// Populate cities select #######################################################

function populate_cities(form_id, select_name_states, select_name_cities, selected_city){
	
	var cities_select = $("form#" + form_id + " select[name='" + select_name_cities + "']");
	
	cities_select.empty();
	jQuery("<option value=\"" + 0 + "\"></option>").html("Loading...").appendTo(cities_select);
	cities_select.attr("disabled", "disabled");
	
	var state_select = $("form#" + form_id + " select[name='" + select_name_states + "']");
	var states_selection;
	var opts = state_select.find("option:selected");
	
	if (opts.length > 1) {
		states_selection = jQuery(opts[1]).attr("value");
	}
	else {
		states_selection = state_select.val();
	}
	
	var URL = do_link("site.remote", "request=cities&fk_states=" + states_selection);
	
	cities_select.load(URL, {}, function(){
		
		cities_select.removeAttr("disabled");
		
		if ((selected_city != undefined) && (selected_city != "") && (selected_city != 0)) {
			try {
				jQuery(cities_select.find("option").removeAttr("selected").filter("option[value='" + selected_city + "']").get(0)).attr("selected", "selected");
			}
			catch(error){}
		}
		else {
			// jQuery(cities_select).find("option[value='0']").attr("selected", "selected");
			// cities_select.selectOptions("0", true);
		}
		
		if (typeof(return_cities) == "function") {
			return_cities();
		}
	});
	
}

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

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

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

// Disable submit button
function jform_do_submit(form_id, button_name){
	
	var my_form = $("form#" + form_id);
	
	my_form.submit(function() {
		
		if (!form_is_submitted) {
			$("form#" + form_id + " :button[name='" + button_name + "'], form#" + form_id + " :submit[name='" + button_name + "']").attr("disabled", "disabled");
			
			form_is_submitted = 1;
			submitted_form = form_id;
			submission_button = button_name;
		}
	});
}

function toggle_location_panels(form_id, location, state){
	
	if (location == "choose") {
		$("#panel_predefined").show();
		$("#panel_define").hide();
		
		$("form#" + form_id + " :hidden[name='location']").attr({value: "choose"});
	}
	else if (location == "define") {

		populate_states("site_register", "fk_countries", "fk_states", "fk_cities", state);
		
		$("#panel_predefined").hide();
		$("#panel_define").show();
		
		$("form#" + form_id + " :hidden[name='location']").attr({value: "define"});
	}
	
}

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){
	// $("form#" + form_id + " :radio[name='" + radio_name + "'][value='" + selected_value + "']:first").attr("checked", "checked");
	
	var this_radio = jQuery("form#" + form_id + " :radio[name='" + radio_name + "'][value='" + selected_value + "']:first");
	
	if (jQuery(this_radio).length > 0) {
		jQuery(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;
		}
	}
}

function CounterText(field, cntfield, maxlimit){
	var obj_field = dom_get_element(field);
	var obj_cntfield = dom_get_element(cntfield);
		
	if (obj_field.value.length > maxlimit) {
		obj_field.value = obj_field.value.substring(0, maxlimit);
	}
	else {
		obj_cntfield.value = maxlimit - obj_field.value.length;
	}
}

function MM_swapImgRestore(){ //v3.0
	var i, x, a = document.MM_sr;

	for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) {
		x.src = x.oSrc;
	}
}

function MM_preloadImages(){ //v3.0
	var d = document;

	if (d.images) {
		if (!d.MM_p) {
			d.MM_p = new Array();
		}

		var i, j = d.MM_p.length, a = MM_preloadImages.arguments;

		for (i = 0; i < a.length; i++){
			if (a[i].indexOf("#") != 0) {
				d.MM_p[j] = new Image;
				d.MM_p[j++].src = a[i];
			}
		}
	}
}

function MM_findObj(n, d){ //v4.01
	var p, i, x;

	if (!d) {
		d = document;
	}

	if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
		d = parent.frames[n.substring(p + 1)].document;
		n = n.substring(0, p);
	}

	if (!(x = d[n]) && d.all) {
		x = d.all[n];
	}

	for (i = 0; !x && i < d.forms.length; i++) {
		x = d.forms[i][n];
	}

	for (i = 0; !x && d.layers && i < d.layers.length; i++) {
		x = MM_findObj(n, d.layers[i].document);
	}

	if (!x && d.getElementById) {
		x = d.getElementById(n);
	}

	return x;
}

function MM_swapImage(){ //v3.0
	var i, j = 0, x, a = MM_swapImage.arguments;

	document.MM_sr = new Array;

	for (i = 0; i < (a.length - 2); i += 3) {
		if ((x = MM_findObj(a[i])) != null) {
			document.MM_sr[j++] = x;
			if (!x.oSrc) {
				x.oSrc = x.src;
			}
			x.src = a[i + 2];
		}
	}
}

function item_action(item_action, item_key){
	
	var URL = do_link("site.remote", "request=" + item_action + "&item_key=" + item_key);
	
	remote_data_request(URL, "_RETURN=" + RETURN, "");
}

// User functions 
function return_profile_action(key, msg, _title){
	Boxy.alert("<b>" + msg + "</b><br /><br />", null, {});
}

function pic_edit(files_key) {
	
	if (editor_is_open == 0) {
		myBox = new Boxy("<iframe src=\"" + do_link("site.cropper", "files_key=" + files_key) + "?" + Math.floor(Math.random() * 10000000000) + "\"  framespacing=\"0\" frameborder=\"no\" scrolling=\"no\" width=\"900\" height=\"600\"></iframe>", {
			title: txt_edit,
			// closeText: "[" + link_close + "]",
			closeText: "<span class='close_box'>[ <a href='#' class='close'>close</a> ] <a href='#' class='close'><img src='" + PATH_STATIC + "/img/site/btn_close.gif' align='absmiddle'></a></span>",
			closeable: true,
			draggable: true
		});
	}
	
	editor_is_open = 1;
}

function on_pic_edit_close() {
	
	editor_is_open = 0;
	
	var big_path = jQuery("#big_pic").attr("src");
	var left_path = jQuery("#left_pic").attr("src");
	var top_path = jQuery("#top_pic").attr("src");
	
	if (big_path) {
		jQuery("#big_pic").attr("src", big_path.substr(0, big_path.indexOf("?") + 1) + Math.floor(Math.random() * 10000000000));
	}
	
	if (left_path) {
		jQuery("#left_pic").attr("src", left_path.substr(0, left_path.indexOf("?") + 1) + Math.floor(Math.random() * 10000000000));
	}
	
	if (top_path) {
		jQuery("#top_pic").attr("src", top_path.substr(0, top_path.indexOf("?") + 1) + Math.floor(Math.random() * 10000000000));
	}
	
	jQuery.each(jQuery("a.a_change img"), function(i, v) {
		var path = jQuery(v).attr("src");
		
		jQuery(v).attr("src", path.substr(0, path.indexOf("?") + 1) + Math.floor(Math.random() * 10000000000));
	});
}

function view_gallery(link, my_title){
	
	if (editor_is_open == 0) {
		
		myBox = new Boxy("<iframe src=\"" + link + "?" + Math.floor(Math.random() * 10000000000) + "\"  framespacing=\"0\" frameborder=\"no\" scrolling=\"no\" width=\"900\" height=\"600\"></iframe>", {
			title: my_title,
			// closeText: "[" + link_close + "]",
			closeText: "<span class='close_box'>[ <a href='#' class='close'>close</a> ] <a href='#' class='close'><img src='" + PATH_STATIC + "/img/site/btn_close.gif' align='absmiddle'></a></span>",
			closeable: true,
			draggable: true
		});
		
	}
	
	editor_is_open = 1;
}

// Open boxy with an iframe inside
function view_iframe(link, _title, width, height){
	
	var box = new Boxy("<iframe src=\"" + link + "?" + 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'>Inchide</a> ] <a href='#' class='close'><img src='" + PATH_STATIC + "/img/site/btn_close.gif' align='absmiddle'></a></span>",
		closeable: true,
		draggable: true,
		modal: true
	});
	
	return box;
}

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

// Link dom from the tab header
function jBoxShow(tab, is_click) {
	
	var ul = jQuery(tab).parents("ul").get(0);
	var li = jQuery(tab).parents("li").get(0);
	var li = jQuery(li);
	
	if (li.is(":visible") === true) {
		var li_rel = li.attr("rel");
		
		if (typeof(beforeBoxShow) == "function"){
			if (!beforeBoxShow(li_rel.substr(2), is_click)) {
				return false;
			}
		}
		
		jQuery(ul).find("li").each(function(i, v) {
			
			v = jQuery(v);
			v.removeClass("on");
			jQuery("#" + v.attr("rel")).hide();
		});
		
		li.addClass("on");
		jQuery("#" + li_rel).show();
		
		if (draw_hash) {
			location.hash = li_rel.substr(2);
		}
		
		draw_hash = true;
		
		if (typeof(afterBoxShow) == "function"){
			afterBoxShow(li_rel.substr(2), is_click);
		}
	}
}

var draw_hash = false;

// Header menu ID
function jAutoBox(menu) {
	
	var link = jQuery("#" + menu + " li#m_" + location.hash.substr(1) + ":visible a");
	
	// alert("hash_link - " + link.length);
	
	if (link.length > 0) {
		jBoxShow(link, 0);
	}
	
	// Get first tab with on class
	else {
		var on_link = jQuery("#" + menu + " li.on:visible:first a");
		
		// alert("on_link - " + on_link.length);
		
		if (on_link.length > 0) {
			jBoxShow(on_link, 0);
		}
		
		// Get first visible link
		else {
			var new_link = jQuery("#" + menu + " li:visible:first a");
			
			// We have a link
			if (new_link.length > 0) {
				jBoxShow(new_link, 0);
			}
		}
	}
	
	// Bind events
	jQuery("#" + menu + " li a").click(function(e){
		jBoxShow(this, 1);
		e.preventDefault(); e.stopPropagation();
	});
}

function jActiveRow(row) {
	
	// Bind events
	jQuery("." + row).mouseover(function(e){
		jQuery(this).attr("bg", jQuery(this).css("background-color"));
		jQuery(this).css({backgroundColor: "#FEFFDB"});
	});
	
	jQuery("." + row).mouseout(function(e){
		jQuery(this).css({backgroundColor: jQuery(this).attr("bg")});
	});
}

function clickIE4(){
	
	if (event.button == 2){
		return false;
	}
	
}

function clickNS4(e){

	if (document.layers || document.getElementById && !document.all){
		if ((e.which == 2) || (e.which == 3)){
			return false;
		}
	}
	
}

function disable_right_click(){
	
	if (document.layers){
		document.captureEvents(Event.MOUSEDOWN);
		document.onmousedown = clickNS4;
	}
	else if (document.all && !document.getElementById){
		document.onmousedown = clickIE4;
	}
		
	document.oncontextmenu = new Function("return false");
	

}

function set_cookie(name, value){
	
	var argv = set_cookie.arguments;
	var argc = set_cookie.arguments.length;
	var expires;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	
	expires = new Date ();
	expires.setTime(expires.getTime() + (1 * 24 * 3600 * 1000));
	
	document.cookie = name + "=" + escape(value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) +((secure == true) ? "; secure" : "");
	
}

function get_cookie_val(offset){
	
	var endstr = document.cookie.indexOf(";", offset);
	
	if (endstr == -1){
		endstr = document.cookie.length;
	}
	
	return unescape(document.cookie.substring(offset, endstr));
	
}

function get_cookie(name){
	
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
		while (i < clen) {
			var j = i + alen;		
			if (document.cookie.substring(i, j) == arg){
				return get_cookie_val(j);
			}
			i = document.cookie.indexOf(" ", i) + 1;
			if (i == 0){
				break;
			}
		}
	return null;
}

function toggle_nav_bar(){
	
	var cookie_pfk = get_cookie('pfk');
	var cookie_username = get_cookie('_USR[logins_username]');
	var tab_welcome = dom_get_element("tab_welcome");
			
	if ((cookie_pfk > 0) && (cookie_username != null)) {
		tab_welcome.innerHTML = "Welcome, <a href='" + do_link("site.change_email_password", "") + "' class='top_menu'>" + cookie_username + "</a>!&nbsp;&nbsp;&nbsp;";
	}
	else {
		tab_welcome.innerHTML = "";
	}	
}

function populate_object(selected_object, form_name, select_name_object_name, select_name_object_value) {

	var url = do_link("site.remote", "request=object&object_type=" + selected_object);

	remote_data_request(url, "", "populate_object_data('" + form_name + "', '" + select_name_object_name + "', '" + select_name_object_value + "')");

	document.forms[form_name].elements[select_name_object_name].options.length = 0;
	document.forms[form_name].elements[select_name_object_name].options[0] = new Option("Loading ...", 0);
	document.forms[form_name].elements[select_name_object_name].disabled = true;

}
function populate_object_data(form_name, select_name_object_name, select_name_object_value) {

	document.forms[form_name].elements[select_name_object_name].disabled = false;
	document.forms[form_name].elements[select_name_object_name].options[0] = new Option("--------------", 0);
	idx = 0;
	for (var i in remote_res_object) {
		if (remote_res_object[i] != "") {
			idx ++;
			document.forms[form_name].elements[select_name_object_name].options[idx] = new Option(unescape(remote_res_object[i]), i);
		}
	}
	form_set_select(select_name_object_name, form_name, select_name_object_value);
}

function addToFavorites(urlAddress, pageName) { 
	if (window.external) { 
		window.external.AddFavorite(urlAddress,pageName) 
	} else { 
		alert("Sorry! Your browser doesn't support this function."); 
	} 
}

function block_handling(how){
	var block = dom_get_element("can_block");
	var unblock = dom_get_element("can_unblock");
	var tools = dom_get_element("communication_tools");
		
	if (how == "can_unblock") {
		block.style.display = "none";
		unblock.style.display = "";
		tools.style.display = "none";
	}
	else {		
		unblock.style.display = "none";
		block.style.display = "";
		tools.style.display = "";
	}
}

function friend_handling(how){
	
	var all_actions = jQuery(".friend_action");
		
	if (how == "direct") {
		all_actions.hide();
		jQuery("#friend_direct").show();
	}
	else if (how == "opposite") {
		all_actions.hide();
		jQuery("#friend_opposite").show();
	}
	else if (how == "mutual") {
		all_actions.hide();
		jQuery("#friend_mutual").show();
	}
	else {
		all_actions.hide();
		jQuery("#friend_not_yet").show();
	}
}

function assign_city_name(city_id) {
	
	var selObj = document.getElementById('fk_object');
	var selIndex = selObj.selectedIndex;
	city_name = selObj.options[selIndex].text;
	
	document.getElementById('cz_name').value = city_name;
	document.getElementById('cz_name_local').value = city_name;
}

function getposOffset(overlay, offsettype){
	
	var totaloffset=(offsettype=="left")? overlay.offsetLeft : overlay.offsetTop;
	var parentEl=overlay.offsetParent;
	
	while (parentEl!=null){
		totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
	}
	return totaloffset;
}

function overlay(curobj, subobjstr, opt_position){
	if (document.getElementById){
			var close_button = document.getElementById("close_subcontent");
			
			if (close_button.style.display == "none") {
				dom_toggle_element("close_subcontent", true);
			}
			else {
				dom_toggle_element("close_subcontent", false);
			}
			
		var subobj=document.getElementById(subobjstr)
		subobj.style.display=(subobj.style.display!="block")? "block" : "none"
		
		var xpos=getposOffset(curobj, "left")+((typeof opt_position!="undefined" && opt_position.indexOf("right")!=-1)? -(subobj.offsetWidth-curobj.offsetWidth) : 0) 
		var ypos=getposOffset(curobj, "top")+((typeof opt_position!="undefined" && opt_position.indexOf("bottom")!=-1)? curobj.offsetHeight : 0)
	
		//   subobj.style.left=xpos+"px"
		//	 subobj.style.top=ypos+"px"
		
		return false
	}
	else
		return true
}


function overlayclose(subobj){
	document.getElementById("close_" + subobj).style.display = "none";
	document.getElementById(subobj).style.display="none";
}


// 

function set_cookie(name, value){
	
	var argv = set_cookie.arguments;
	var argc = set_cookie.arguments.length;
	var expires;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	
	expires = new Date ();
	expires.setTime(expires.getTime() + (1 * 24 * 3600 * 1000));
	
	document.cookie = name + "=" + escape(value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) +((secure == true) ? "; secure" : "");
	
}

function get_cookie_val(offset){
	
	var endstr = document.cookie.indexOf(";", offset);
	
	if (endstr == -1){
		endstr = document.cookie.length;
	}
	
	return unescape(document.cookie.substring(offset, endstr));
	
}

function get_cookie(name){
	
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
		while (i < clen) {
			var j = i + alen;		
			if (document.cookie.substring(i, j) == arg){
				return get_cookie_val(j);
			}
			i = document.cookie.indexOf(" ", i) + 1;
			if (i == 0){
				break;
			}
		}
	return null;
}

function toggle_nav_bar(){
	
	var cookie_pfk = get_cookie('pfk');
	var cookie_username = get_cookie('_USR[logins_username]');
	var tab_welcome = dom_get_element("tab_welcome");
			
	if ((cookie_pfk > 0) && (cookie_username != null)) {
		tab_welcome.innerHTML = "Welcome, <a href='" + do_link("site.change_email_password", "") + "' class='top_menu'>" + cookie_username + "</a>!&nbsp;&nbsp;&nbsp;";
	}
	else {
		tab_welcome.innerHTML = "";
	}	
}

function set_top_search_actions(nr) {
	
	var top_search_links  = jQuery("#hd .top_search a");
	var top_search_input  = jQuery("#hd .top_search :text:first");
	var top_search_form   = jQuery("#hd .top_search form:first");
	var top_search_hidden = jQuery("#hd .top_search :input:hidden:first");
	var top_search_string = jQuery("#hd .top_search :input:text:first");
	var autocomplete_on = 0;
	
	var TXT = new Array();
	var is_default = false;
	
	// Build default text
	top_search_links.each(function(i, v){
		TXT[i] = "Search " + jQuery(v).attr("rel");
		
		if (top_search_input.val() == TXT[i]) {
			is_default = true;
		}
	});
	
	if (!is_default) {
		jQuery(top_search_input).css("color", "#333333");
	}
	
	// Assign actions for top links
	top_search_links.click(function(e){
		top_search_links.removeClass("on");
		jQuery(this).toggleClass("on");
		jQuery(top_search_hidden).val(jQuery(this).attr("id").toLowerCase());
		
		var search_text = jQuery(top_search_input).val();
		
		if ((jQuery.inArray(search_text, TXT) > -1) || (jQuery.trim(search_text) == "")) {
			jQuery(top_search_input).css("color", "#969696").val(TXT[top_search_links.index(this)]);
		}
		
		top_search_input.focus(function(e){
			var search_text = jQuery(top_search_input).val();
			
			if ((jQuery.inArray(search_text, TXT) > -1) || (jQuery.trim(search_text) == "")) {
				jQuery(top_search_input).val("").css("color", "#333333");
			}
		});
		
		top_search_input.blur(function(e){
			var search_text = jQuery(top_search_input).val();
			
			if ((jQuery.inArray(search_text, TXT) > -1) || (jQuery.trim(search_text) == "")) {
				var selected = top_search_links.filter(".on");
				jQuery(top_search_input).css("color", "#969696").val(TXT[top_search_links.index(selected)]);
			}
		});
		
		return false;
	});
	
	top_search_form.submit(function(e){
		
		var search_text = jQuery(top_search_input).val();
		
		if ((jQuery.inArray(search_text, TXT) > -1) || (jQuery.trim(search_text) == "")) {
			return false;
		}
	})
	
	var selected_tab = jQuery(top_search_links.filter("[rel='" + nr + "']"));
	if (selected_tab.length > 0) {
		selected_tab.click();
	}
	else {
		jQuery(top_search_links[0]).click();
	}
	
}

function assign_toggle_tr() {
	jQuery(".toggle_tr").each(function(){
		if (jQuery("#" + jQuery(this).attr("rel")).find(">td:first").is(":visible")) {
			jQuery(this).find("> img").attr("src", "/img/icons/hide.gif");
		}
		else {
			jQuery(this).find("> img").attr("src", "/img/icons/expand.gif");
		}
	}).click(function(e){
		
		var rel_tr = jQuery("#" + jQuery(this).attr("rel"));
		
		rel_tr.toggle();
		
		if (rel_tr.find(">td:first").is(":visible")) {
			jQuery(this).find("> img").attr("src", "/img/icons/hide.gif");
		}
		else {
			jQuery(this).find("> img").attr("src", "/img/icons/expand.gif");
		}
		
		return false;
	});
}

function remote_action(options) {
	
	var URL = do_link("site.remote", jQuery.param(options));
		
	jQuery.getScript(URL, function(data){
		
	});
}

function remote_adm_action(options) {
	
	var URL = do_link("adm.remote", jQuery.param(options));
	
	jQuery.getScript(URL, function(data){
		
	});
}

function navigator_create_dir(path_self) {
	
	var form = '<form method="post" action="' + path_self + '" id="create_dir_form" class="nice" style="width: 30em;">' +
		'<div><input type="hidden" name="_action_" value="create_dir" /></div>' +
		'<div class="fr">' +
			'<div class="l"><label for="dir_name">Directory name:</label></div>' +
			'<div class="r"><input type="text" id="dir_name" name="dir_name" maxlength="255" class="txt" style="width: 20em;" /></div>' +
		'</div>' +
		'<div class="fr">' +
			'<div class="l"></div>' +
			'<div class="r"><button type="submit" name="submit_btn" class="btn">Create</button></div>' +
		'</div>' +
	'</form>';
	
	myBox = new Boxy(form, {
		title: "<span class='f_left'>Create directory</span>",
		closeText: "<span class='f_right'>[ <a href='#' class='close'>close</a> ]</span>",
		closeable: true,
		unloadOnHide: true,
		modal: true,
		afterDrop: function() {
			jQuery("#create_dir_form").remove();
		}
	});
}

function navigator_rename_file(path_self, old_name) {
	
	var form = '<form method="post" action="' + path_self + '" id="rename_file_form" class="nice" style="width: 30em;">' +
		'<div>' +
			'<input type="hidden" name="_action_" value="rename_file" />' +
			'<input type="hidden" name="old_name" value="' + old_name + '" />' +
		'</div>' +
		'<div class="fr">' +
			'<div class="l"><label for="dir_name">New name:</label></div>' +
			'<div class="r"><input type="text" id="new_name" name="new_name" maxlength="255" class="txt" style="width: 20em;" value="' + old_name + '" /></div>' +
		'</div>' +
		'<div class="fr">' +
			'<div class="l"></div>' +
			'<div class="r"><button type="submit" name="submit_btn" class="btn">Rename</button></div>' +
		'</div>' +
	'</form>';
	
	myBox = new Boxy(form, {
		title: "<span class='f_left'>Rename File/Directory</span>",
		closeText: "<span class='f_right'>[ <a href='#' class='close'>close</a> ]</span>",
		closeable: true,
		unloadOnHide: true,
		modal: true,
		afterDrop: function() {
			jQuery("#rename_file_form").remove();
		}
	});
}

var myBox;

function navigator_chmod(path_self, file_name, file_chmod) {
	
	var form = '<form method="post" action="' + path_self + '" id="chmod_form" class="nice" style="width: 30em;">' +
		'<div>' +
			'<input type="hidden" name="_action_" value="chmod" />' +
			'<input type="hidden" name="file_name" value="' + file_name + '" />' +
			'<input type="hidden" id="chmod" name="chmod" value="" />' +
			// '<input type="hidden" id="old_chmod" name="old_chmod" value="' + file_chmod + '" />' +
		'</div>' +
		'<div class="fr"><div class="l"><input type="checkbox" id="k1"></div><div class="r"><label for="k1">Read by owner</label></div></div>' +
		'<div class="fr"><div class="l"><input type="checkbox" id="k2"></div><div class="r"><label for="k2">Write by owner</label></div></div>' +
		'<div class="fr"><div class="l"><input type="checkbox" id="k3"></div><div class="r"><label for="k3">Execute/search by owner</label></div></div>' +
		'<hr />' +
		'<div class="fr"><div class="l"><input type="checkbox" id="k4"></div><div class="r"><label for="k4">Read by group</label></div></div>' +
		'<div class="fr"><div class="l"><input type="checkbox" id="k5"></div><div class="r"><label for="k5">Write by group</label></div></div>' +
		'<div class="fr"><div class="l"><input type="checkbox" id="k6"></div><div class="r"><label for="k6">Execute/search by group</label></div></div>' +
		'<hr />' +
		'<div class="fr"><div class="l"><input type="checkbox" id="k7"></div><div class="r"><label for="k7">Read by others</label></div></div>' +
		'<div class="fr"><div class="l"><input type="checkbox" id="k8"></div><div class="r"><label for="k8">Write by others</label></div></div>' +
		'<div class="fr"><div class="l"><input type="checkbox" id="k9"></div><div class="r"><label for="k9">Execute/search by others</label></div></div>' +
		
		'<div class="fr">' +
			'<div class="l"></div>' +
			'<div class="r"><button type="submit" name="submit_btn" class="btn">Change</button></div>' +
		'</div>' +
	'</form>';
	
	myBox = null;
	
	myBox = new Boxy(form, {
		title: "<span class='f_left'>Change Permissions</span>",
		closeText: "<span class='f_right'>[ <a href='#' class='close'>close</a> ]</span>",
		closeable: true,
		unloadOnHide: true,
		modal: true,
		beforeShow: function() {
			// file_chmod = jQuery(":hidden#old_chmod").val();
			jQuery("#chmod_form :checkbox").each(function(i, v){
				if (file_chmod.substr(i+1, 1) != "-") {
					jQuery(v).attr("checked", "checked");
				}
			});
		},
		afterShow: function() {
			jQuery(":checkbox", "#chmod_form").change(function(){
				
				var str = "";
				jQuery(":checkbox", "#chmod_form").each(function(i, v){
					if (jQuery(this).attr("checked")) {
						str = str + "1";
					}
					else {
						str = str + "0";
					}
				});
				
				jQuery("#chmod", "#chmod_form").val(str);
			});
		}
	});
}

function navigator_delete_file(path_self, file_name, file_type) {
	
	var form = '<form method="post" action="' + path_self + '" id="delete_file_form" class="nice" style="width: 30em;">' +
		'<div>' +
			'<input type="hidden" name="_action_" value="delete_file" />' +
			'<input type="hidden" name="file_name" value="' + file_name + '" />' +
			'<input type="hidden" name="file_type" value="' + file_type + '" />' +
		'</div>' +
		'<p class="bold">' + file_name + ' will be permanently deleted. Continue?</p>' +
		'<div class="fr">' +
			'<button type="submit" name="submit_btn" class="btn">Delete</button>' +
		'</div>' +
	'</form>';
	
	myBox = new Boxy(form, {
		title: "<span class='f_left'>Delete File/Directory</span>",
		closeText: "<span class='f_right'>[ <a href='#' class='close'>close</a> ]</span>",
		closeable: true,
		unloadOnHide: true,
		modal: true,
		afterDrop: function() {
			jQuery("#delete_file_form").remove();
		}
	});
}

//Removes duplicate values from array  
function array_unique(array){
	var key = '';
	var tmp_arr1 = new Array(); 
	var tmp_arr2 = new Array();
	var val = '';
	tmp_arr1 = array;
	    
	var __array_search = function (needle, haystack, strict) {
		var fkey = '';
		for (fkey in haystack) {
			if ((strict && haystack[fkey] === needle) || (!strict && haystack[fkey] == needle) ) {
				return fkey;
			}
		}
		return false;
	}    
		
	for (key in tmp_arr1) {
		val = tmp_arr1[key];
		if (false === __array_search(val, tmp_arr2)) {
			tmp_arr2[key] = val;
		}
		delete tmp_arr1[key];
	}
	return tmp_arr2;
}

function change_str_key(id){
	var status = jQuery("input#" + id).attr("readonly");
	if(!status){
		jQuery("input#" + id).attr("readonly", true);
		jQuery("a#link_build_str").hide();
	}
	else {
		jQuery("a#link_build_str").show();
		jQuery("input#" + id).removeAttr("readonly");
	}		
}

// Build string key
function build_string_key(modify_field, component){
	var input_val = "";
	var select_text = "";
	
	if(component.input != undefined){
		input_val = jQuery('input#' + component.input).val();
	} 
		
	var str = input_val;
	returnArray = str.toLowerCase().split(" ");
	str = array_unique(returnArray).toString();	
	str = encodeURIComponent(str);

	jQuery.ajax({
		type:"GET",
		url:do_link("adm.remote", "request=build_str_key"),
		data:"str=" + str,
		success: function(response){
			jQuery("input#" + modify_field).attr("value", response);
			check_uniq_field(modify_field, component.table, component.field_key, component.key);
		}
	});
}

function check_uniq_field(name_field, table, field_key, key){
	var str_key_val = encodeURIComponent(jQuery("input#" + name_field).val());
	jQuery.ajax({
		type:"GET",
		url:do_link("adm.remote", "request=check_uniq_field&table=" + table + "&name_field=" + name_field + "&obj_key=" + key + "&field_key=" + field_key),
		data:"str=" + str_key_val,
		success: function(response){
			var alert_mess = document.createElement("span");
			var _parent = jQuery("input#" + name_field).parent(); 
			_parent.append(alert_mess);
			alert_mess.setAttribute("id", "uniq_mess");
			
			if(response == 1){
				mess = "This string key already exists!";
				if(jQuery("span#uniq_mess").hasClass("is_unique")){
					jQuery("span#uniq_mess").removeClass("is_unique");
				}
				jQuery("span#uniq_mess").addClass("not_unique");
				jQuery("input#" + name_field).css("border", "1px solid #ff0000");
			} 
			else{
				if(jQuery("span#uniq_mess").hasClass("not_unique")){
					jQuery("span#uniq_mess").removeClass("not_unique");
				}
				mess = "This string key is valid!";
				jQuery("span#uniq_mess").addClass("is_unique");
				jQuery("input#" + name_field).css("border", "1px solid #b8b8b8");
			}
			jQuery("span#uniq_mess").text(mess);
		}
	});
}


function show_cropper(options){
	
	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: "Cropper",
		closeText: "<span class='close_box'>[ <a href='#' class='close'>" + "close" + "</a> ] <a href='#' class='close'><img src='" + PATH + "/img/site/btn_close.gif' align='absmiddle'></a></span>",
		closeable: true,
		modal: true,
		unload: true,
		afterHide: function(){
			jQuery("img[src*=" + options.key + "]").each(function(i, v){
				var jThis = jQuery(this);
				
				var d = new Date;
				if (typeof(jThis.attr("src")) != "undefined") {
					var full_path = jThis.attr("src");
					var img_path = full_path.substr(0, (full_path.length - 4));
					
					var tmp = img_path.split(".v");
					if (tmp.length > 1) {
						delete tmp[tmp.length -1];
						img_path = tmp.join("");
					}
					
					var img_ext = full_path.substr(full_path.length - 4);
				}
				
				jThis.attr("src", img_path + ".v" + d.getTime() + img_ext);
				
				if (typeof(jThis.metadata().path_medium) != "undefined") {
					
					var full_path = jThis.metadata().path_medium;
					var img_path = full_path.substr(0, (full_path.length - 4));
					
					var tmp = img_path.split(".v");
					if (tmp.length > 1) {
						delete tmp[tmp.length -1];
						img_path = tmp.join("");
					}
					
					var img_ext = full_path.substr(full_path.length - 4);
					
					jThis.metadata().path_medium = img_path + ".v" + d.getTime() + img_ext;
				}
			});
		}
	});
}

function fill_template(form_id, subject_id, body_id, subject_name, body_name, old_subject, old_body){
	
	var fill_subject = $("form#" + form_id + " input[name='" + subject_id + "']");
	fill_subject.empty();
	var fill_body = $("form#" + form_id + " textarea[name='" + body_id + "']");
	fill_body.empty();
	
	var URL_subject = do_link("adm.remote", "request=fill_template&subject_id=" + subject_id + "&old_subject=" + old_subject + "&old_body=" + old_body);
	var URL_body = do_link("adm.remote", "request=fill_template&body_id=" + body_id + "&old_subject=" + old_subject + "&old_body=" + old_body);
	
	fill_subject.load(URL_subject, {}, function(){
		if ((fill_subject != undefined) && (fill_subject != "") && (fill_subject != 0)) {
			fill_subject.val(fill_subject);
		}
	});
	fill_body.load(URL_body, {}, function(){
		if ((fill_body != undefined) && (fill_body != "") && (fill_body != 0)) {
			fill_body.val(fill_body);
		}
	});
}

function select_templates(form_id, group_id, template_name){
	
	var template_select = $("form#" + form_id + " select[name='" + template_name + "']");
	
	template_select.empty();
	$("<option value=\"" + 0 + "\"></option>").html("Loading...").appendTo(template_select);
	$(template_select).attr("disabled", "disabled");
	
	var URL = do_link("adm.remote", "request=select_templates&group_id=" + group_id);
	
	template_select.load(URL, {}, function(){
	
		template_select.removeAttr("disabled");
		
		if ((template_select != undefined) && (template_select != "") && (template_select != 0)) {
			template_select.val(template_select);
		}
	});
}

function change_F_C(new_format){
	
	new_format = new_format.toUpperCase();
	
	jQuery(".ch_deg").each(function(i, v){
		var format = jQuery(this).find(".format");
		var deg = jQuery(this).find(".deg");
		
		if (new_format != format.text().toUpperCase()) {
			format.text(new_format);
			
			var new_deg;
			
			if (new_format == "C") {
				new_deg = (deg.text() - 32) / 9 * 5;
			}
			else if (new_format == "F") {
				new_deg = (deg.text() * 9 / 5) + 32;
			}
			
			deg.text(Math.round(new_deg));
		}
	});
}

// Handle visitors cookies
function handle_uvc(){
	
	document.write("<script type=\"text/javascript\" src=\"" + PATH + "/scripts/uvc.php\"></script\>");
	
}

// Assign text size default values
var var_font_size = 0;
var font_size = 0;
var default_font_size = 100;

// Change content text size
function change_font_size(id, value){
	
	txt_object = dom_get_element(id);
	if (null == txt_object) return;

	var_font_size += value;
	if (var_font_size == -default_font_size){
		var_font_size -= value;
		return;
	}

	font_size = default_font_size + var_font_size;
	if (font_size > 60 && font_size < 129) {
		txt_object.style.fontSize = font_size + "%";	
	}
	
}
// Begin calendar archive functions #####################################################
function changeCalendarDate(params, selectYearId, selectMonthId, selected_day, cal){
	var selectYear = dom_get_element(selectYearId);
	var selectMonth = dom_get_element(selectMonthId);
	var year = selectYear.options[selectYear.selectedIndex].value;
	var month = selectMonth.options[selectMonth.selectedIndex].value - 1;
	var day = (selected_day > 0) ? selected_day : 1;
	
	params.date = new Date(year, month, day);
	displayCalendar(cal, params);
}

function displayCalendar(container, params) {
	var content = dom_get_element(container);
	content.innerHTML = generateCalendar(params);
}

function generateCalendar(params) {
	if (params.date == null) {
		params.date = new Date();
	}
	if (params.monthNames == null) {
		params.monthNames = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
	}
	if (params.displayMonthName == null){
		params.displayMonthName = false;
	}
	if (params.weekDayNames==null) {
		params.weekDayNames = new Array("D", "L", "M", "M", "J", "V", "S");
	}
	if (params.displayWeekDayNames == null) {
		params.displayWeekDayNames = false;
	}
	if (params.firstDayInWeek==null) {
		params.firstDayInWeek = 0;
	}
	if (params.linkPrefix == null) {
		params.linkPrefix = "";
	}
	var day=params.date.getDate();
	var month=params.date.getMonth();
	var year=params.date.getFullYear();
	var this_month = new Date(year,month, 1);
	var next_month = new Date(year, month + 1, 1);
	var calendar_html = '<table width="100%" cellspacing="1" cellpadding="0">';
	if (params.displayMonthName) {
		calendar_html += '<tr><td colspan="7">' + params.monthNames[month] + " " + year + "</td></tr>";
	}
	if (params.displayWeekDayNames) {
		calendar_html += "<tr>";
		for (var week_day = 0; week_day < 7; week_day++) {
			calendar_html += '<td style="height: 20px;"><b>' + params.weekDayNames[week_day] + "</b></td>";
		}
		calendar_html += "</tr>";
	}
	var first_week_day = this_month.getDay();
	first_week_day -= params.firstDayInWeek;
	if (first_week_day < 0) {
		first_week_day = 6;
	}
	var days_in_this_month=Math.round((next_month.getTime() - this_month.getTime()) / (1000*60*60*24));
	calendar_html += "<tr>";
	for (var week_day = 0; week_day < first_week_day; week_day++) {
		calendar_html += "<td> </td>";
	}	
	var week_day = first_week_day;
	for(var day_counter = 1; day_counter <= days_in_this_month; day_counter++){
		week_day %= 7;
		if (week_day == 0) {
			calendar_html += "</tr><tr>";
		}
		var link;
		if (params.linkPrefix) {
			if (day == day_counter) {
				link = "<a class=\"link_archive\" href='" + do_link("site.archive", "cat=stiri&date=" + day_counter + "-" + params.monthNames[month].toLowerCase() + "-" + year) + "'><b>" + day_counter + "</b></a>";
			}
			else {
				link = "<a class=\"link_archive\" href='" + do_link("site.archive", "cat=stiri&date=" + day_counter + "-" + params.monthNames[month].toLowerCase() + "-" + year) + "'>" + day_counter + "</a>";
			}
		}
		else{
			link = day_counter;
		}
		
		calendar_html += "<td> " + link + " </td>";
		week_day++;
	}
	calendar_html += "</tr>";
	calendar_html += "</table>";
	return calendar_html;
}

// End calendar archive functions #############################################################################


// Alternate rows #######################################################
function color_on(obj){
	obj.style.backgroundColor = "#FEFFDB";
}

function color_off(obj){
	obj.style.backgroundColor = "transparent";
}

function replace_string(theString){

	theString = escape(theString);	
	//alert(theString);
	
	theString = theString.replace(/\%C3/gi, "A");
	theString = theString.replace(/\%C5/gi, "A");	
	theString = theString.replace(/\%E3/gi, "a");
	theString = theString.replace(/\%E2/gi, "a");	
	theString = theString.replace(/\%E5/gi, "a");
	theString = theString.replace(/\%7B/gi, "a");
	theString = theString.replace(/\%7C/gi, "a");
	theString = theString.replace(/\%A5/gi, "I");
	theString = theString.replace(/\%5D/gi, "I");
	theString = theString.replace(/\%7D/gi, "i");
	theString = theString.replace(/\%AA/gi, "S");
	theString = theString.replace(/\%5E/gi, "S");
	theString = theString.replace(/\%BA/gi, "s");
	theString = theString.replace(/\%7E/gi, "s");
	theString = theString.replace(/\%60/gi, "t");
	theString = theString.replace(/\%FE/gi, "t");	
	theString = theString.replace(/\%5B/gi, "A");
	theString = theString.replace(/\@/gi, "T");
	theString = theString.replace(/\%5C/gi, "A");
	theString = theString.replace(/\%EE/gi, "i");
	theString = theString.replace(/\%CE/gi, "I");
	theString = theString.replace(/\%C2/gi, "A");
	theString = theString.replace(/\%DE/gi, "T");
	
	
	theString = theString.replace(/\%u0103/gi, "a");
	theString = theString.replace(/\%EE/gi, "i");
	theString = theString.replace(/\%u015F/gi, "s");
	theString = theString.replace(/\%u0163/gi, "t");
	theString = theString.replace(/\%E2/gi, "a");
	theString = theString.replace(/\%u0102/gi, "A");
	theString = theString.replace(/\%CE/gi, "I");
	theString = theString.replace(/\%u0102/gi, "A");
	theString = theString.replace(/\%u0162/gi, "T");
	theString = theString.replace(/\%C2/gi, "A");
	theString = theString.replace(/\%u015E/gi, "S");
	
	theString = theString.replace(/\%u201D/gi, "\"");
	theString = theString.replace(/\%u201E/gi, "\"");
	
	
	theString = unescape(theString);
	
	return theString;

}

