var wysiwyg = null;
var user = new Array();
var popupHtml = null;
var ajax_new_tags = new Array();
var pageid = Math.floor(Math.random()*1000000);
var throbber_html = '<span id="%id-throbber" class="throbber">&nbsp;&nbsp;&nbsp;&nbsp;</span>';
var sponsor_accept = new Array();
var tag_not_editable = false;

function bodyValidate() {
  var body = '';
  if (wysiwyg) {
	var body = FCKeditorAPI.GetInstance("edit[body]").GetXHTML(true);
  } else {
	var obj = document.getElementById('body');
	if (!obj) var obj = document.getElementById('edit[body]');
	if (obj) body = obj.value;
  }
  if (!body || body=='' || body=='&nbsp;' || body=='<br>' || body=='<br/>' || body=='<br />' || body.length==0) {
        alert(empty_msg);
	return '';
  }
  return body;
}

function div_toggle(div_id) {
  if ($("#" + div_id).css("display") == "none") {
    $("#" + div_id).css("display", "block");
    if (div_id=='shortcuts_container') control_center_status('block');
  }
  else {
    $("#" + div_id).css("display", "none");
    if (div_id=='shortcuts_container') control_center_status('none');
  }
  return false;
}

function control_center_status(val) {
  var control_center_collapsed = get_cookie('control_center_collapsed');
  var status_div = $("#shortcuts_container").css("display") ;	
  //alert(control_center_collapsed+" "+status_div+" "+val)
  if (val=='') {
    if ((control_center_collapsed==null)||(control_center_collapsed=="")||(control_center_collapsed=="undefined")) {
      val = 'block';
    }
    else {
      val = control_center_collapsed;
    }
  }
  if (val == "block") $(".cc_open").removeClass("cc_collapsed").addClass("cc_expanded");
    else $(".cc_open").removeClass("cc_expanded").addClass("cc_collapsed");
  if (status_div!=val) $("#shortcuts_container").css("display", val);
  set_cookie('control_center_collapsed',val)
  //alert(control_center_collapsed+" "+status_div+" "+val)
}

function templateValidate() {
  var body = ''; 
  var obj = document.getElementById('body');
  if (!obj) return false;
  if (obj) body = obj.value;
  if (body=='' || body=='&nbsp;' || body=='<br>' || body=='<br/>' || body.length==0) {
	alert(empty_msg);
        return '';
  }
  return body;
}

function datetime_toggle(radio) {
    var disabled = !(radio.value == 'datetime' && radio.checked);
    var fields = new Array('year', 'month', 'day', 'hours', 'minutes');
    for (var i in fields) {
      $("select[id='" + radio.name + "-" + fields[i] + "']").attr('disabled', disabled);
    }
}

function trackStats(context, stat_img_url) {
  if (!context || !context.uri) return;
  stat_img_url += "?u=" + context.uri;
  if (context.context) stat_img_url += "&amp;c=" + context.context;
  if (context.action) stat_img_url += "&amp;a=" + context.action;
  if (context.author) stat_img_url += "&amp;n=" + context.author;
  if (context.login) stat_img_url += "&amp;i=1";
  if (context.nodename) stat_img_url += "&amp;p=" + context.nodename;
  if (context.blogname) stat_img_url += "&amp;l=" + context.blogname;
  if (document.referrer) stat_img_url += '&amp;r=' + escape(document.referrer);
  return '<img src="' + stat_img_url + '" width="1" height="1" alt="" border="0" />';
}

function isValidKeyCode(key) {
  switch (key) {
    case 16: // shift
    case 17: // ctrl
    case 18: // alt
    case 20: // caps lock
    case 33: // page up
    case 34: // page down
    case 35: // end
    case 36: // home
    case 37: // left arrow
    case 38: // up arrow
    case 39: // right arrow
    case 40: // down arrow
    case 9:  // tab
    case 13: // enter
    case 27: // esc
    case 112: // F1
    case 113: // F2
    case 114: // F3
    case 115: // F4
    case 116: // F5
    case 117: // F6
    case 118: // F7
    case 119: // F8
    case 120: // F9
    case 121: // F10
    case 122: // F11
    case 123: // F12
      return false;
  }
  return true;
}

function myblogManagePostsComments(action, e) {
	var frm = document.forms["frmManage"];
	switch(action) {
		case 'validate':
			var count = $("#" + frm.id).countSelectedCheckboxes(".toggle");
			if (count > 0) {
			  frm.submit();
			  return true;
			}
			alert(selectMessage);
			return false;
		case 'onUserKeyPress':
		case 'onUserKeyUp':
		case 'onUserBlur':
			var objStatus = document.getElementById('manage_comments_status');
			var objUser = document.getElementById('manage_comments_author');
			if (!objStatus) return false;
			if (action=='onUserBlur' && !objUser.value) {
				objStatus.disabled = false;
				return false;
			}
			objStatus.value = 'all';
			var user = objUser.value;
                        if (action=='onUserKeyUp' && !user) {
				objStatus.disabled = false;
	                        return false;
			}
			if (e.keyCode==8 && user.length==1) {
				objStatus.disabled = false;
				return false;
			}
			if (isValidKeyCode(e.keyCode)) {
				objStatus.disabled = true;
				return false;
			}
			return false;
	}
}

function encode_target(src) {
  var target = $('#' + src.id + '-encode_target').val();
  if (target) $('#' + target).val(my_url_encode($(src).val()));
}

function my_url_encode(s) {
  var SAFECHARS = "0123456789" +	// Numeric
	"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
	"abcdefghijklmnopqrstuvwxyz" +
	"-_.!~*'()";			// RFC2396 Mark characters
  var HEX = "0123456789ABCDEF";
  var encoded = "";
  for (var i = 0; i < s.length; i++ ) {
    var ch = s.charAt(i);
    if (ch == " ") {
      encoded += "+";			// x-www-urlencoded, rather than %20
    } else if (SAFECHARS.indexOf(ch) != -1) {
      encoded += ch;
    } else {
      var charCode = ch.charCodeAt(0);
      if (charCode > 255) {
        alert( "Unicode Character '" + ch +
	  "' cannot be encoded using standard URL encoding.\n" +
	  "(URL encoding only supports 8-bit characters.)\n" +
	  "A space (+) will be substituted." );
	encoded += "+";
      } else {
	encoded += "%";
	encoded += HEX.charAt((charCode >> 4) & 0xF);
	encoded += HEX.charAt(charCode & 0xF);
      }
    }
  } // for
  return encoded;
};

$(document).ready(function() {
  if ($('#mystats_counter').length) get_stats_ajax('profile');
  if ($('#myblog_counter').length) get_stats_ajax('blog');
  $("input[name='edit[ajax]']").val(1);
  $("a.sb_link").click(function() {
    var tmp = this.id;
    var id_split = tmp.split('-');
    nid = id_split[1];
    div_toggle("sb_box-" + nid);
    return false;
  });
  $(".toggle_checkboxes_link").click(function() {
    var id = this.id.substr(7);
    if (id) $("#" + id).toggleCheckboxes(".toggle");
    //return false;
  });
  $("a.node_browse_link").attr("href", "javascript:void(0);").click(function() {
    //alert(this.id);
    var tmp = this.id;
    var id_split = tmp.split('_');
    var container = id_split[2] + '_' + id_split[3];
    qrystring = node_browse_search_string(this.id);
    //alert(sqrystring);
    node_browse_ajax_request(qrystring, container);
    return false;
  });
  $(".node_browse_textsubmit").click(function() {
    //alert(this.id);
    var s = this.id;
    var container = s.replace('-textsubmit', '');
    var qrystring = node_browse_search_string('node_browse_' + container + '_text-' + $("#" + container + '-text').val());
    //alert(qrystring);
    node_browse_ajax_request(qrystring, container);
    return false;
  });
  $("a.addfriend_link").click(function() {
    addfriend(this.id);
    return false;
  });
  $("input[name='edit[publish_options]']").each(function() {
    datetime_toggle(this);
  }).click(function() {
    datetime_toggle(this);
  });
  $(".form-activeselect").each(function() {
    $(this).after(throbber_html.replace('%id', this.id));
  });
  $(".encode_target").blur(function() {
    encode_target(this);
  });
  $(".ajax_submit").each(function() {
    if ($("input[name='edit[ajax]']").val() == 0) return false;
    //$(this).after('<div id="' + this.id + '-throbber" class="throbber">&nbsp;&nbsp;&nbsp;&nbsp;</div>');
    $(this).after(throbber_html.replace('%id', this.id));
  });
  $(".profile_tab").click(function() {
    var box = $(this).parents("div:eq(0)");
    var ul = $(this).parents("ul");
    var li = $(this).parents("li");
    $("li", ul).removeClass("current");
    $("li", ul).removeClass("active");
    $(li).addClass("current");
    $(li).addClass("active");
    $("div.int", box).css("display", "none");
    //$(box).find("div.int").css("display", "none");
    var tmp = this.id;
    var id_split = tmp.split('-');
    $("#profile_" + id_split[1]).css("display", "block");
    return false;
  });
  $(".general_tab").click(function() {
    var tmp = this.id;
    var id_split = tmp.split('-');
    if (id_split[1]=="comment") {
      $("input[type='hidden']").each(function() {
	var name =$(this).attr('name');
        var value=$(this).attr('value');
	if (name=="comment_ajax_nid") {
      	  if (value=="") return;
	}
      });
    }
    var box = $(this).parents("div:eq(0)");
    var ul = $(this).parents("ul");
    var li = $(this).parents("li");
    $("li", ul).removeClass("current");
    $("li", ul).removeClass("active");
    $(li).addClass("current");
    $(li).addClass("active");
    $("div.int", box).css("display", "none");
    $("#general_" + id_split[1]).css("display", "block");
    return false;
  });
  $("select.sponsored").each(function() {
    getSponsorInfo(this);
    var frm = $(this).parents("form");
    $("input.form-submit", frm).click(function() {
      for (var i in sponsor_accept) {
        var chk = document.getElementsByName("edit[accept_sponsor_disclaimer]" + "[" + sponsor_accept[i] + "]")[1];
    	if (chk && !chk.checked) {
	  alert($("#sponsor_disclaimer_" + sponsor_accept[i] + "_error").val());return false;
	  return false;
	}
	else {
    	  frm.submit();
	}
      }
    });
    }).change(function() {
      getSponsorInfo(this);
    });
  $("a.node_files_unlink").bind("click", node_files_associate);
  $("a.moderate_profile").click(function() {
    var tmp = this.id;
    var id_split = tmp.split('-');
    var obj = document.getElementById("moderate-" + id_split[1] + "-" + id_split[2] + "-buttons");
    if (obj) obj.innerHTML = '<img src="/misc/img/ajax-loader.gif" />';
    var params = {};
    var url = "/ajax.php?op=";
    if (id_split[3] == "ok") url += "approve_profile";
    if (id_split[3] == "ko") url += "unapprove_profile";
    url += "&type=moderation&field=" + id_split[1] + "&uid=" + id_split[2];
    $.ajax({
      "url": url,
      "dataType": "text",
      "type": "POST",
      "data": params,
      "success": function(data) {
        var obj = document.getElementById("moderate-" + id_split[1] + "-" + id_split[2] + "-text");
        if (obj) obj.innerHTML = '<span style="background-color:yellow";><font size="1" color="blue">' + data + '</font></span>';
        var obj = document.getElementById("moderate-" + id_split[1] + "-" + id_split[2] + "-buttons");
        if (obj) obj.innerHTML = '';
      },
      "complete": function() { }
    });
    return false;
  });
  $("#manage_comments .form-submit,#manage_posts .form-submit").filter(':not(.btn_filter)').click(function() {
    if (!myblogManagePostsComments("validate")) return false;
  });
  $("#blog_associate_type").attr("onchange", "").change(function() {
    $("#blog_associate_title-autocomplete").val("/ajax.php?type=" + $(this).val() + "&op=autocomplete&string=").removeClass('autocomplete-processed');
    Drupal.behaviors.autocomplete();
  });
  $('.sport_events_results_pager a').each(function() {
    $(this).bind('click', sport_events_get_results);
  });
  $("#sport_events_add_team").click(function() {
    var team = $("input[name='edit[new_team]']").val();
    if (!team) return false;
    var count = parseInt($("#teams_count").val()) - 1;
    var s = sport_events_team.replace(/%id/g, count).replace(/%value/g, team);
    $("#sport_events_teams_form #teams").append(s);
    $("#team_delete_" + count).click(function() {
      var team_id = this.id.substr(12);
      $("#team_" + team_id).remove();
      return false;
    });
    $("#teams_count").val(count);
    $("input[name='edit[new_team]']").val("").focus();
    return false;
  });
  $("img.image_profile_choice").click(function() {
    if ($(this).hasClass("selected")) {
      $("#" + this.id + "-selected").val(0);
      if (image_profile_selected > 0) image_profile_selected -= 1;
    }
    else {
      if (image_profile_selected >= image_profile_selection_limit) {
        alert(image_profile_selection_message);
	return false;
      }
      $("#" + this.id + "-selected").val(1);
      image_profile_selected += 1;
    }
    $(this).toggleClass("selected");
  });
  $("a.uploader_link").click(function() {
    if ($("#modalPage_body")) Drupal.attachBehaviors($("#modalPage_body"));
  });
  if (get_url_param(window.location.href, 'uploader') == 1) $("a.uploader_link").click();
  $("#contest_addlink").click(function() {
    var pattern = '<fieldset><legend>Link #%count1</legend><div class="form-item"><label>Url: </label><input maxlength="255" name="edit[links][%count2][url]" size="40" value="" class="form-text" type="text"><div class="clear"></div></div><div class="form-item"><label>Testo: </label><input maxlength="255" name="edit[links][%count2][text]" size="40" value="" class="form-text" type="text"><div class="clear"></div></div><div class="form-item"><label>Titolo: </label><input maxlength="255" name="edit[links][%count2][title]" size="40" value="" class="form-text" type="text"><div class="clear"></div></div></fieldset>';
    var tot_links = parseInt($('input[name="edit[contest_linkcount]"]').val());
    pattern = pattern.replace(/%count1/g, tot_links + 1);
    pattern = pattern.replace(/%count2/g, tot_links);
    $(".contest_links:last").append(pattern);
    $('input[name="edit[contest_linkcount]"]').val(tot_links + 1);
  });
  $(".ajax_submit").click(function() {
    if ($(this).attr("disabled")) return false;
    $("#uploader_editor_submit").attr("disabled", "disabled");
    $(".ajax_submit").attr("disabled", "disabled");
    var use_ajax = $("input[name='edit[ajax]']").val() == 1;
    var frm = $(this).parents("form");
    var params = {};
    $("input[name='edit[mystatus]']").val(1);
    switch (this.id) {
      case "post_draft":
        params["edit[draft]"] = 1;
        $("input[name='edit[draft]']").val(1);
        $("input[name='edit[mystatus]']").val(0);
      case "post_publish":
        var body = bodyValidate();
       	if (!body) {
          $(".ajax_submit").attr("disabled", "");
    	    return false;
	      }
   	    var val = $("input[name='edit[comments]']:checked").val();
	      //if (val) $("input[name='edit[comment]']").val(val);
	      frm.action = $("input[name='publish_url']").val();
	      frm.target = '_self';
        if (frm && use_ajax) {
          //$(frm)
          jQuery().find("input[@checked], input[@type='text'], input[@type='hidden'], input[@type='password'], input[@type='submit'], option[@selected], textarea")
            .filter(":enabled")
            .each(function() {
            if (this.value) params[ this.name || this.id || this.parentNode.name || this.parentNode.id ] = this.value;
          });
	      }
	      params["edit[body]"] = body;
              var val = $("#description").val();
	      if (val) params["edit[description]"] = val;
	      params["edit[new_tags]"] = new_tags_filter();
	      var callback = parse_editor_response;
	      break;
      case "template_save":
      case "pages_save":
        var body = templateValidate();
      	if (!body) {
          $(".ajax_submit").attr("disabled", "");
      	  return false;
      	}
      	params["edit[body]"] = body;
        var val = $("#blog_css").val();
       	if (val) params["edit[blog_css]"] = val;
        val = $("#description").val();
      	if (val) params["edit[description]"] = val;
        val = $("#topbar_set").val();
      	if (val) params["edit[topbar_set]"] = val;
        var val = $("#pages").val();
      	if (val) params["edit[pages]"] = val;
        var val = $("input[name='edit[ajax]']").val()
      	if (val) params["edit[ajax]"] = val;
      	var callback = parse_template_response;
      	frm.action = $("input[name='publish_url']").val();
      	break;
    }
    if (!use_ajax) {
      if (frm) frm.submit();
      $(".ajax_submit").attr("disabled", "");
      return false;
    }

    var throbber = $("#" + this.id + "-throbber");
    throbber.addClass("throbbing");

    var parameter = new Object;
    parameter.submit_url = frm.attr("action");
    parameter.action_button = this;
    parameter.throbber = throbber;
    
    // Ajax submit
    $.ajax({
      "url": frm.action,
      "dataType": "xml",
      "type": "POST",
      "data": params,
      "success": function(data, status) {
		   //parse_editor_response(data, status, parameter);
		   if (isFunction(callback)) callback(data, status, parameter);
		 },
      "complete": function() { throbber.removeClass("throbbing"); }
    });
    return false;
  });
  pager_init();
  ajax_tags_init();
  control_center_status('');
  getmycontacts_init();
  sport_events_teams_init();
  question_buttons_init();
  select_sponsored_init();
});

function ajax_tags_init() {
  $(".ajax_tag_edit").bind('click', ajax_tag_edit);
  $(".ajax_tag_delete").bind('click', ajax_tag_delete);
  $(".ajax_tag_add").each(function() {
    $("#ajax_tag_add_submit").css("display", "");
  });
  $("#ajax_tag_add_submit").click(function() {
    var txtbox = $("input[name='edit[new_tags]']");
    var tags = new Array();
    tags = txtbox.val().split(",");
    for (var i in tags) {
      tag = jQuery.trim(tags[i]);
      if (!tag || ($.inArray(tag, ajax_new_tags) > -1)) continue;
      var res = ajax_new_tags.push(tag);
      res = res - 1;
      if ($('#post_edit_tags_type').val() == "list") {
        var list = document.getElementById("post_edit_tags_rows");
        var item = document.createElement("li");
        item.id = "new_tags_row_" + res;
        item.innerHTML = '<input type="checkbox" id="new_tags_chk-' + res + '" name="edit[tags][' + tag + ']" ' +
          'checked="checked" /><span class="tag_label">' + tag + '</span>';
        if (edit_post_tags) item.innerHTML += edit_post_tags;
        list.appendChild(item);
      }
      else {
        var tbody = document.getElementById("post_edit_tags_rows");
        tr = document.createElement("tr");
        tr.id = "new_tags_row_" + res;
        td = document.createElement("td");
        td.innerHTML = '<input type="checkbox" id="new_tags_chk-' + res + '" name="edit[tags][' + tag + ']" ' +
          'checked="checked" /><span class="tag_label">' + tag + '</span>';
        tr.appendChild(td);
        td = document.createElement("td");
        tr.appendChild(td);
        td = document.createElement("td");
        //td.innerHTML = '<a href="javascript:void(0);" class="ajax_tag_edit"><span>' + edit_caption + '</span></a>' +
        //  '<a href="javascript:void(0);" class="ajax_tag_delete" onclick="ajax_new_tag_delete(this);"><span>'+ delete_caption + '</span></a>';
        //if (post_tags_pattern) td.innerHTML = post_tags_pattern;
        if (edit_post_tags) td.innerHTML = edit_post_tags;
        tr.appendChild(td);
        //tbody.appendChild(tr);
	$("#post_edit_tags_rows").prepend(tr);
      }
      // set editable label
      $("#new_tags_row_" + res).find("span.tag_label").each(function() {
        ajax_set_editable(this, res);
      });
    }
    txtbox.val("");
  });
  if (!tag_not_editable) $("span.tag_label").each(function() {
    ajax_set_editable(this);
  });
  ajax_new_tags = new Array();
}

function ajax_set_editable(label, row, chkbox) {
  value = null;
  var obj = $(label);
  if (!obj) return;
  if (row >= 0) {
    var tag = ajax_new_tags[row];
    if (!chkbox) chkbox = $(label).prev("input");
    var id = $(chkbox).attr("id");
    if (!id) return;
    $(label).editable(function(value, settings) {
      ajax_new_tags[row] = value;
      return value;
    }, {
      indicator: "Saving...",
      tooltip: "Click to edit...",
      style: "display:inline",
      checkbox: chkbox
    });
    if (value) return value;
  }
  else {
    if (!chkbox) chkbox = $(label).prev("input");
    var id = $(chkbox).attr("id");
    if (!id) return;
    var tmp = id.split("-");
    var tag = tmp[1];
    var url = "/ajax.php?type=tags&op=rename&tag=" + tag;
    var mbid = mbid || null;
    if (!mbid) mbid = $("input[name='mbid']").val();
    var nid = nid || null;
    if (!nid) nid = $("input[name='edit[nid]']").val();
    if (mbid > 0) url += "&blog=" + mbid;
    if (nid > 0) url += "&node=" + nid;
    $(label).editable(url, {
      indicator: "Saving...",
      tooltip: "Click to edit...",
      style: "display:inline",
      checkbox: chkbox,
      tag: tag,
      target: url,
      callback: function(value, settings) {
        var re = new RegExp(" |%", "g");
	value = value.replace(re, "_");
        settings.target = "/ajax.php?type=tags&op=rename&blog=" + mbid + "&nid=" + nid + "&tag=" + value;
        var chk = settings.checkbox;
	if (chk.attr("name")) {
	  // old tag was renamed
	  chk.attr("name", "edit[tags][" + value + "]");
	  chk.attr("id", "tags_chk-" + value);
          ajax_set_editable(this, row, chk);
	  return;
	}
	return;
      }
    });
  }
}

function new_tags_filter() {
  var tmp = new Array();
  for (var i in ajax_new_tags) {
    var chk = document.getElementById("new_tags_chk-" + i);
    if (!chk) continue;
    if (chk.checked) tmp.push(ajax_new_tags[i]);
  }
  return tmp.join(",");
}

function ajax_tag_edit(img) {
  if ($('#post_edit_tags_type').val() == "list") {
    var item = $(img).parents("li:eq(0)");
  }
  else {
    var item = $(img).parents("tr:eq(0)");
  }
  $("span.tag_label", item).trigger('click');
}

function ajax_tag_delete() {
  var tag = $(this).attr("id").substr(11);
  if (tag_delete_msg) {
    var msg = tag_delete_msg.replace("%tag", tag);
    if (!confirm(msg)) return false;
  }
  var nid = $("input[name='edit[nid]']").val();
  $.ajax({ 
     type: "GET", 
     url: "/ajax.php", 
     data: "type=tags&op=delete&blog=" + mbid + "&tag=" + tag + "&nid=" + nid,
     dataType: "html", 
     error: function() { 
              alert("Error deleting tag"); 
            }, 
     success: function(data) { 
                $("#post_edit_tags").html(data); 
  		ajax_tags_init();
              } 
  });
}

function ajax_new_tag_delete(img) {
  if ($('#post_edit_tags_type').val() == "list") {
    var item = $(img).parents("li");
  }
  else {
    var item = $(img).parents("tr");
  }
  var idx = item.attr("id").substr(13);
  ajax_new_tags.splice(idx, 1);
  item.remove();
}

function pager_init() {
  $("a.pager_link").attr("href", "javascript:void(0);").click(function() {
    var tmp = this.id;
    var id_split = tmp.split('-');
    var page = id_split[2];
    var div_parent = $(this).parents("div:eq(1)");
    var name = $("#profile_name").val();
    $.ajax({ 
      type: "GET", 
      url: "/ajax.php", 
      data: "type=user_actions&op=friendsfeed&name="+name+"&from="+page,
      dataType: "html", 
      error: function() { 
              alert("Error"); 
            }, 
      success: function(data) { 
                $(div_parent).empty().html(data);
		pager_init();
              } 
    });
  });
}


// EDITOR FUNCTIONS

function parse_editor_response(xmlhttp, status, parameter) {
  var xmldoc = xmlhttp.xml;

  var throbber = parameter.throbber;
  if (throbber) throbber.removeClass("throbbing");
  $(".ajax_submit").attr("disabled", "");
  $("#uploader_editor_submit").attr("disabled", "");
 
  //return alert(xmlhttp.responseXML);
  //return alert(xmlhttp.responseText);

  var nid = $(xmlhttp).find("nid").text();
  if (nid) nid = parseInt(nid, 10);

  if (nid==null || isNaN(nid)) {
	var msg = xmlhttp.responseText;
	msg = msg.substring(msg, 50);
	return alert(failed_msg + '\nOutput: ' + msg);
  }

  $("input[name='edit[nid]']").val(nid);
  var node_type = $(xmlhttp).find("type").text();
  if (node_type) parameter.node_type = node_type;

  var node_tags = $(xmlhttp).find("tags").text();
  if (node_tags) $('#edit[old_tags]').val(node_tags);
  var tags_list = $(xmlhttp).find("tags_html").text();
  if (tags_list) $('#post_edit_tags').empty().html(tags_list);
  ajax_tags_init();

//  var created = getXmlNode(xmldoc, 'created');
//  var obj = document.getElementsByName('edit[created]')[0];
//  if (created && obj) obj.value = created;

  var fields = new Array("uid", "name", "mydate", "mytime");
  for (var i in fields) {
    node = $(xmlhttp).find(fields[i]).text();
    if (node == null) continue;
    user[fields[i]] = node;
  }

  var pages_select = $(xmlhttp).find("pages_select").text();
  if (pages_select) {
    $("#pages_select").html(pages_select);
  }

  var json = $(xmlhttp).find("context").text();
  if (json && Drupal) parameter.context = Drupal.parseJson(json);
  var stats_img_url = $(xmlhttp).find("stats_img_url").text();
  if (stats_img_url) parameter.stats_img_url = stats_img_url;
  var permalink = $(xmlhttp).find("permalink").text();
  if (permalink) parameter.permalink = permalink;
  
  var fb_tmp = $(xmlhttp).find("fb_feed").text();
  if (fb_tmp) fb_feed(fb_tmp);
  show_overlib_popup(nid, parameter);
}

function show_overlib_popup(nid, parameter) {
    var content = ''; 
    content += '<div class=\'bn_bg\'><div class=\'bn_txt_l\'><a href="javascript:void(0);" onclick="javascript:return cClick();">%close</a> &nbsp;</div>';
    content += '<div class=\'bn_quad\'><table width=\'100%\' border=\'0\'><tr><td class=\'bn_txt\'>';
    content += '<div >%msg</div></td></tr></table></div>';
    //var msg = 'Node is %nid<br />';
    var msg = '';

    action = parameter.action_button.id;
    if (parameter.node_type) action += "-" + parameter.node_type;
    post_url = parameter.post_url;
    switch(action) {
       case 'post_draft':
       case 'post_draft-myblog':
       case 'post_publish':
       case 'post_publish-myblog':
       case 'post_publish-myblog-event':
       case 'post_publish-myblog-group':
       case 'post_publish-myblog-teampage':
         msg += (action=='post_draft-myblog' ? postPopupMessages[1] : postPopupMessages[2]);
	 msg += ('<br />' + postPopupMessages[3]);
         msg += ('<ul><li><a href="javascript:void(0);" onclick="javascript:return cClick();">' + postPopupMessages[4] + '</a></li>');
    	 if (action=='post_draft-myblog') {
           msg += ('<li><a href="javascript:void(0);" onclick="cClick(); return $(\'#post_publish\').click();";>' + postPopupMessages[5] + '</a></li>');
         }
	 if (parameter.permalink) {
     	   msg += ('<li><a href="' + parameter.permalink + '">' + postPopupMessages[6] + '</a></li>');
	   msg += ('<li><a href="/community/contacts/invite?nid='+nid+'" target="_top">' + postPopupMessages[8] + '</a></li>');
	 }
	 else {
     	   //msg += ('<li><a href="/myblog/post/'+mbid+'/'+nid+'/yes">' + postPopupMessages[6] + '</a></li>');
	 }
	 if (postPopupMessages[7]) msg += ('<li><a href="javascript:void(0);" onclick="return resetEditor(\'post\');">' + postPopupMessages[7] + '</a></li>');
	 msg += '</ul>';
	 break;
       case 'post_publish-mypage':
         msg += postPopupMessages[1];
         msg += ('<br />' + postPopupMessages[2]);
         msg += ('<ul><li><a href="javascript:void(0);" onclick="javascript:return cClick();">' + postPopupMessages[3] + '</a></li>');
         msg += ('<li><a href="/mypage/view/'+mbid+'/'+nid+'" target="_top">' + postPopupMessages[4] + '</a></li>');
	       msg += ('<li><a href="/mypage/manage/'+mbid+'" target="_top">' + postPopupMessages[5] + '</a></li>');
         msg += '</ul>';
	       break;
       case 'template_save':
       case 'pages_save':
         msg += postPopupMessages[1];
         msg += ('<br />' + postPopupMessages[2]);
         msg += ('<ul><li><a href="javascript:void(0);" onclick="javascript:return cClick();">' + postPopupMessages[3] + '</a></li>');
         msg += ('<li><a href="/myblog/template/manage/' + mbid + '">' + postPopupMessages[4] + '</a></li>');
         msg += '</ul>';
	       break;

       default:
  	     return alert('Error: invalid action '+action);
    }
    content = popupHtml;
    content = content.replace('%close', postPopupMessages[0]);
    content = content.replace('%content', msg);
    content = content.replace('%footer', '');
    content = content.replace('%nid', nid);
    content = content.replace('%mbid', mbid);
    if (parameter.context && parameter.stats_img_url) content += trackStats(parameter.context, parameter.stats_img_url);
    overlib(content,
       STICKY,  
       WIDTH, 400,
       CENTERPOPUP,
       CSSCLASS,
       TEXTFONTCLASS,'fontClassOL',
       FGCLASS,'fgClassOL',
       BGCLASS,'bgClassOL',
       CAPTIONFONTCLASS,'capfontClassOL', 
       CLOSECLICK);
}

function add_checkbox(container, name, value) {
  var chk = document.createElement("INPUT");
  chk.setAttribute("type", "checkbox");
  chk.setAttribute("name", name);
  $("#" + container).append(chk);
  if (value) $("#" + container).append(value);
  return false;
}

// TEMPLATE FUNCTIONS
function parse_template_response(xmlhttp, status, parameter) {
  var xmldoc = xmlhttp.xml;

  var throbber = parameter.throbber;
  if (throbber) throbber.removeClass("throbbing");
  $(".ajax_submit").attr("disabled", "");

  //return alert(xmlhttp.responseXML);
  //return alert(xmlhttp.responseText);

  var tid = $(xmlhttp).find("tid").text(); //var tid = getXmlNode(xmldoc, 'tid');
  if (tid) tid = parseInt(tid, 10);
  if (isNaN(tid)) return alert(failed_msg);

  var obj = $("input[name='edit[tid]']").val(); //var obj = document.getElementsByName('edit[tid]')[0];
  if (obj) obj.value = tid;

  var json = $(xmlhttp).find("context").text(); //var json = getXmlNode(xmldoc, 'context');
  if (json && Drupal) parameter.Context = Drupal.parseJson(json);
  var stats_img_url = $(xmlhttp).find("stats_img_url").text(); //var stats_img_url = getXmlNode(xmldoc, 'stats_img_url');
  if (stats_img_url) parameter.StatsImgUrl = stats_img_url;

  //showPopup(tid, parameter);
  show_overlib_popup(tid, parameter);
}


// MEDIA FUNCTIONS
function media_post_media(textarea_id, type, nid) {
  var style = $("input[name='media-align-" + nid + "']:checked").val();
  if (type == "myaudio") {
    var placeholder = '<img src="/misc/media/facsimile-audio.gif" ';
    if (nid) placeholder += 'audio_id="' + nid + '" media_path="" ';
    if (style) placeholder += ' style="' + style + '" ';
    placeholder += '/>';
  }
  else if (type == "myfile") {
    var path = $("#media-icon-" + nid).val();
    var title = $("#media-title-" + nid).val();
    var link = $("#media-link-" + nid).val();
    var placeholder = '<a href="' + link + '" target="_blank"';
    if (title) placeholder += ' title="' + title + '"';
    if (style) placeholder += ' style="' + style + '" ';
    placeholder += '><img src="' + path + '" alt="' + title + '" border="0" /> ' + title + '</a>';
  }
  else if (type == "myvideo") {
    var path = $("input[name='media-size-" + nid + "']:checked").val();
    var title = $("#media-title-" + nid).val();
    var placeholder = '<img src="' + path + '" alt="' + title + '" ';
    if (nid) placeholder += 'video_id="' + nid + '" ';
    if (style) placeholder += ' style="' + style + '" ';
    placeholder += '/>';
  }
  else {
    var path = $("input[name='media-size-" + nid + "']:checked").val();
    var title = $("#media-title-" + nid).val();
    var placeholder = '<img src="' + path + '" alt="' + title + '" ';
    if (style) placeholder += ' style="' + style + '" ';
    placeholder += '/>';
  }

  try {
    InsertHTML(textarea_id, placeholder);
  } catch(e) {}
}

function InsertHTML(myField, myValue) {
        var oEditor = null;
	try {
	        var oEditor = FCKeditorAPI.GetInstance(myField);
	        if (!oEditor) var oEditor = FCKeditorAPI.GetInstance("edit[" + myField + "]");
	} catch(e) {}

	if (oEditor) {
	        // Check the active editing mode.
		if ( oEditor.EditMode == FCK_EDITMODE_WYSIWYG ) {
			// Insert the desired HTML.
                  oEditor.InsertHtml(myValue) ;
		} else alert( 'You must be on WYSIWYG mode!' ) ;
	} else {
                //IE support
                myField = document.getElementById(myField);
                if (document.selection) {
			myField.focus();
                        sel = document.selection.createRange();
                        sel.text = myValue;
                }
                //MOZILLA/NETSCAPE support
                else if (myField.selectionStart || myField.selectionStart == '0') {
			var startPos = myField.selectionStart;
                        var endPos = myField.selectionEnd;
                        myField.value = myField.value.substring(0, startPos)
				+ myValue
                                + myField.value.substring(endPos, myField.value.length);
                } else {
			myField.value += myValue;
                }
	}
}

function node_browse_search_string(id) {
    //alert(id);
    var id_split = id.split('_');
    var container = id_split[2] + '_' + id_split[3];
    //$("#" + container).html("<img src='/misc/img/ajax-loader.gif' />");
    var tmp = id_split[2].split('-');
    var relation = tmp[0];
    var multiple = $("#" + container + '-multiple').val();
    tmp = id_split[3].split('-');
    var type = tmp[0];
    var nid = $("#current_nid").val();
    var uid = $("#current_uid").val();
    var params = '';
    tmp = id_split[4].split('-');
    for (i=0; i<tmp.length; i=i+2) {
      params += '&' + tmp[i] + '=' + tmp[i+1];
    }
    params += '&order=' + $("#" + container + '-orderby').val();
    params += '&text=' + $("#" + container + '-text').val();
    return "op=browse&type=" + type + "&rel=" + relation + "&mul=" + multiple + "&nid=" + nid + "&uid=" + uid + params;
}

function node_browse_ajax_request(qrystring, container) {
    $("#" + container).html("<img src='/misc/img/ajax-loader.gif' />");
    if (qrystring.match("&order=undefined")) {
      //qrystring = qrystring.replace("&order=undefined", "&order=" + document.getElementByName['browse_order']);
    }
    $.ajax({
      "url": "/ajax.php",
      "dataType": "json",
      "type": "GET",
      "data": qrystring,
      "success": function(data) {
        $("#" + container).html(data.data);
        $("#" + container + '-search').val(qrystring);
        var pager_id = container + '-pager';
        var pager_link = pager_id + '_link';
        var s = data.pager;
        if (s) {
	  s = s.replace(/<a href="home"/g, '<a href="javascript:void(0);" class="node_browse_pager_link" id="' + pager_link + '-0"');
	  s = s.replace(/<a href="home\/(\d+)"/g, '<a href="javascript:void(0);" class="node_browse_pager_link" id="' + pager_link + '-$1"');
	  s = s.replace(/<a href="home\?from=(\d+)"/g, '<a href="javascript:void(0);" class="node_browse_pager_link" id="' + pager_link + '-$1"');
	}
        $("#" + pager_id).html(s);
        node_browse_pager_link_init();
      },
      "complete": function() { }
    });
}

function node_browse_pager_link_init() {
  $("a.node_browse_pager_link").click(function() {
    var tmp = this.id;
    var id_split = tmp.split('-');
    var container = id_split[0] + '-' + id_split[1] + '-' + id_split[2];
    id_split[3] = 'search';
    var from = id_split.pop();
    var search_id = id_split.join('-');
    var qrystring = $("#" + search_id).val(); qrystring = qrystring.replace(/&from=(\d+)/g, ''); qrystring += '&from=' + from;
    node_browse_ajax_request(qrystring, container);
    return false;
  });
}

function NodeRelations_AddItem(dest_id, item_id, item_title, multiple, remove_icon, status_icon) {
  //alert(dest_id);
  //alert(pattern);
  var ni = document.getElementById("[" + dest_id + "][selected]");
  var newdiv = document.createElement('div');
  var divIdName = "[" + dest_id + "][" + item_id + "]";
  var checkdiv = document.getElementById(divIdName);
  if (checkdiv) return;
  newdiv.setAttribute('id', divIdName);
  var s = pattern.replace(/%rel_name/g, dest_id);
  s = s.replace(/%item_id/g, item_id);
  s = s.replace(/%item_title/g, item_title);
  s = s.replace(/%remove_icon/g, remove_icon);
  s = s.replace(/%status_icon/g, status_icon);
  //if (status_icon != '') s = s.replace(/%disabled/g, "disabled=disabled");
  //alert(s);
  newdiv.innerHTML = s;
  if (multiple == false) ni.innerHTML = '';
  ni.appendChild(newdiv);
}

function NodeRelations_RemoveItem(dest_id, item_id) {
  var olddiv = document.getElementById(dest_id + '[' + item_id + ']');
  olddiv.parentNode.removeChild(olddiv);
}

function set_cookie(name,value,days) {
		if (days) {
				var date = new Date();
				date.setTime(date.getTime()+(days*24*60*60*1000));
				var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
}

function get_cookie(myvar) {
		var nameEQ = myvar + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
				var c = ca[i];
				while (c.charAt(0)==' ') c = c.substring(1,c.length);
				if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
}
function eraseCookie(name) {
		set_cookie(name,"",-1);
}

function check_upload_certification(frm, certification_msg) {
    if (!certification_msg) return true;
    var obj = document.getElementsByName('edit[media_upload_certification]')[1];
    if (obj) {
      if (!obj.checked) {
        alert(certification_msg);
	return false;
      }
    }
    frm.submit();
    //$(".form-submit").attr("disabled", "disabled");
    return true;
}

function resetEditor(type) {
  if (user['uid']==null || user['name']==null) switch(type) {
    case 'post':
      document.location.href = '/myblog/editor/' + mbid;
      return;
    case 'page':
      document.location.href = '';
      return;
  }
  arrInputs = document.getElementsByTagName('INPUT');
  for(i=0; i<arrInputs.length; i++) {
    if (arrInputs[i].type=='checkbox') arrInputs[i].checked = false;
    if (arrInputs[i].type=='text') arrInputs[i].value = '';
  }
  var obj = document.getElementsByName('edit[nid]')[0];
  if (obj) obj.value = '';
  var obj = document.getElementsByName('edit[uid]')[0];
  if (obj) obj.value = user['uid'];
  var obj = document.getElementsByName('edit[name]')[0];
  if (obj) obj.value = user['name'];
  var obj = document.getElementsByName('edit[created]')[0];
  if (obj) obj.value = '';
  var obj = document.getElementsByName('edit[mydate]')[0]; 
  if (obj && user['mydate']) obj.value = user['mydate'];
  var obj = document.getElementsByName('edit[mytime]')[0];
  if (obj && user['mytime']) obj.value = user['mytime'];
  var obj = document.getElementsByName('edit[comment]')[0];
  if (obj) obj.checked = true;
  SetHTML('body', '');
  cClick();
  return false;
}

function SetHTML(myField, myValue) {
	try {
	  var oEditor = FCKeditorAPI.GetInstance("edit[" + myField + "]");
	} catch(e) {}

        if (oEditor) {
		oEditor.SetHTML(myValue);
	} else {
		var obj = document.getElementById(myField);
                if (obj) obj.value = myValue;
	}
}

function addfriend(id) {
    $("#modalPage input").attr('disabled', 'disabled');
    var tmp = id;
    var params = {};
    params["edit[name]"] = tmp.substr(10);
    var url = "/ajax.php?op=invite&type=user&friend=" + params["edit[name]"];
    if (document.getElementById('addfriend_message')) {
      var msg = document.getElementById('addfriend_message').value;
      if (msg) url += "&message=" + msg.replace(/\n/g, '<br>');
    }
    $.ajax({
      "url": url,
      "dataType": "json",
      "type": "POST",
      "data": params,
      "success": function(data) {
        var message = '';
        var color = '';
        if (data.error != 'undefined') {
          message = data.error;
          color = "#FF0000";
        }
        if (data.status != '') {
          message = data.status;
          color = "#33FF66";
        }
        var code = "<div class=\"addfriend_link\">" + message + "</div>";
        var obj = document.getElementById("addfriend_link-" + params["edit[name]"]);
	if (obj) $(obj).html(code); //obj.innerHTML = code;
	$("#modalPage").hide();
      },
      "complete": function() { }
    });
}

function getmycontacts_init() {
  $("input.getmycontacts_changeservice").click(function() {
    getmycontacts_changeservice(this.id);
  });
  $("input.getmycontacts_import").click(function() {
    var params = {};
    var empty = 1;
    for (i = 0; i < document.contacts.elements.length; i++) {
      name = document.contacts.elements[i].name;
      if (name.substr(0, 5) == "edit[") {
        var y = name.replace(/]/g, ""); var x = y.split("[");
        var field = x[1]; var index = x[2];
        if (field == 'lastname' || field == 'firstname' || field == 'nickname' || field == 'email') {
          if (index >= 0 && document.contacts.elements["edit[email][" + index + "]"].checked) {
            params["contacts[" + index + "][" + field + "]"] = document.contacts.elements[i].value;
	    empty = 0;
          }
        }
      }
    }
    if (empty) return false;
    if (document.contacts.elements["edit[mymail]"])
      params["mymail"] = document.contacts.elements["edit[mymail]"].value;
    if (document.getElementById("getmycontacts_account"))
      params["mymail"] = document.getElementById("getmycontacts_account").value;
    params["to"] = document.contacts.elements["edit[to]"].value;
    $.ajax({
      "url": "/ajax.php?op=import&type=getmycontacts",
      "dataType": "json",
      "type": "POST",
      "data": params,
      "success": function(data) {
	if (data.message) {
	  alert(data.message);
	}
	else if (data.to) {
	  var current_data = opener.document.getElementById(data.to).value;
	  current_data = current_data.replace(/\s+$/g, '');
	  if (current_data && current_data.substring(current_data.length - 1) != ',') current_data += ', ';
	  if (data.import_data) {
	    var x = current_data;
	    if (current_data) x += ' ';
	    x += data.import_data + ', ';
	    opener.document.getElementById(data.to).value = x;
	  }
	  self.close();
	}
      },
      "complete": function() { }
    });
    return false;
  });
  $("#getmycontacts_account").change(function() {
    document.getElementById("target").innerHTML = "<br /><img src='/misc/img/ajax-loader.gif' />";
    var params = {};
    params['account'] = document.getElementById(this.id).value;
    params["to"] = document.contacts.elements["edit[to]"].value;
    $.ajax({
      "url": "/ajax.php?op=show&type=getmycontacts",
      "dataType": "text",
      "type": "POST",
      "data": params,
      "success": function(data) {
	document.getElementById('target').innerHTML = data;
      },
      "complete": function() { getmycontacts_init(); }
    });
    return false;
  });
}

function getmycontacts_changeservice(id) {
    var tmp = id;
    var params = {};
    params["edit[domain]"] = tmp.substr(14);
    $url = "/ajax.php?op=change&type=getmycontacts&domain=" + params["edit[domain]"];
    $.ajax({
      "url": $url,
      "dataType": "text",
      "type": "POST",
      "data": params,
      "success": function(data) {
        window.location.href = '/importer/import/' + params["edit[domain]"] + '?to=' + get_url_param(window.location.href, 'to');
	var obju = document.getElementById('username');
	if (obju) obju.value = data;
	var objp = document.getElementById('password');
	if (objp) objp.value = '';
	if (data == null) obju.focus();
	  else objp.focus();
      },
      "complete": function() { }
    });
}

function select_sponsored_init() {
  $("select.sponsored").each(function() {
    getSponsorInfo(this);
    var frm = $(this).parents("form");
    $("input.form-submit", frm).click(function() {
      for (var i in sponsor_accept) {
    	  var chk = document.getElementsByName("edit[accept_sponsor_disclaimer]" + "[" + sponsor_accept[i] + "]")[1];
    	  if (chk && !chk.checked) {
	        alert($("#sponsor_disclaimer_" + sponsor_accept[i] + "_error").val());return false;
	        return false;
	      } else {
    	    frm.submit();
	      }
      }
    });
    }).change(function() {
      getSponsorInfo(this);
    });
}

function getSponsorInfo(selectbox) {
  var id = $(selectbox).attr("name");
  if (id) var obj = document.getElementById(id + "[sponsor_data]");
  if (!id || !obj.value) return false;
  var tmp = obj.value;
  var id_split = tmp.split('|');
  var idx = id_split[0] + "_" + id_split[1];
  
  var container = "sponsor_disclaimer_" + idx;
  if (!selectbox[selectbox.selectedIndex].value || selectbox[selectbox.selectedIndex].value == 0) {
    sponsor_accept.splice(idx, 1);
    $("#" + container + "_text").html();
    $("#" + container + "_error").val();
    $("#" + container + "_filled").val(0);
    $("#" + container).hide();
    return false;
  }
  
  var frm = $(selectbox).parents("form");
  $("input.form-submit", frm).attr("disabled", "disabled");
  $.ajax({
    "url": "/ajax.php?op=sponsor_info&type=" + id_split[0] + "&nid=" + selectbox[selectbox.selectedIndex].value + "&data=" + id_split[1],
    "dataType": "json",
    "type": "GET",
    "success": function(data) {
	if (!data || !data.disclaimer) {
  	  sponsor_accept.splice(idx, 1);
          $("#" + container + "_text").html();
          $("#" + container + "_error").val();
          $("#" + container + "_filled").val(0);
	  $("#" + container).hide();
	}
	else {
          $("#" + container + "_text").html(data.disclaimer);
          $("#" + container + "_error").val(data.error_message);
          $("#" + container + "_filled").val(1);
	  $("#" + container).show();
          if (idx && ($.inArray(idx, sponsor_accept) < 0)) sponsor_accept.push(idx);
	}
      },
    "complete": function(msg) {
        $("input.form-submit", frm).attr("disabled", "");
        if (!msg.responseText) {
  	  sponsor_accept.splice(idx, 1);
          $("#" + container + "_text").html();
          $("#" + container + "_error").val();
          $("#" + container + "_filled").val(0);
	  $("#" + container).hide();
	}
      }
  });
}

function AjaxReport(nid,report_type) {
  var btn = new Array();
  var post_url = 'ajax_report/' + nid + '?' + report_type + '=1';
  $.ajax({
    "url": 'ajax_report/' + nid + '?' + report_type + '=1',
    "data": 'text',
    "type": 'GET',
    "success": function(data) {
        	 var obj = document.getElementById('content_control');
		 obj.innerHTML = data;
               }
  });
  //AjaxSubmit(btn, post_url, null, AjaxReportResponse, 'content_control_throbber');
}

function node_files_associate() {
  var id = $(this).attr("id");
  var id_split = id.split('-');
  var nid = id_split[1];
  var fid = id_split[2];
  var op = ($(this).attr("class") == "node_files_link" ? "link" : "unlink");
  if (op == "link") {
    var new_op = "unlink";
  }
  else {
    var new_op = "link";
  }
    $.ajax({
      "url": "/ajax.php?type=node_files&op=" + op + "&nid=" + nid + "&fid=" + fid,
      "data": "text",
      "type": "POST",
      "success": function(data) {
        var id = "node_files-" + nid + "-" + fid;
        if (!data) {
	  $("#" + id).remove();
	  return false;
	}
	$("#" + id).removeClass("node_files_" + op).addClass("node_files_" + new_op).bind("click", node_files_associate);
      }
    });
}

function get_url_param(url, param) {
  param = param.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]" + param + "=([^&#]*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(url);
  if (results == null) return "";
    else return results[1];
}

function FCKeditor_LimitChars(oEditor, limit, textareaId) {
	// Get the Editor Area DOM (Document object).
	var oDOM = oEditor.EditorDocument;
	var iLength;
	var evt = oEditor.EditorWindow.event;
	//if (evt.type != 'keypress' && evt.type != 'keyup' && evt.type != 'selectionchange') alert(evt.type);
	//if (evt.keyCode == 0) return false;
	//for (var item in evt) alert(item+': '+evt[item]);

	// The are two diffent ways to get the text (without HTML markups).
	// It is browser specific.
	if (document.all) { // If Internet Explorer.
	  var text = oDOM.body.innerText;
	}
	else { // If Gecko.
	  var r = oDOM.createRange();
	  r.selectNodeContents(oDOM.body);
	  var text = r.toString();
	}

	iLength = text.length;
	if (iLength >= limit) {
	  //oEditor.SetData(text.substr(0, limit));
          $("#textarea_chars_" + textareaId).html('0');
	  evt.keyCode = 0;
	  return false;
	}
        
        $("#textarea_chars_" + textareaId).html(parseInt(limit - iLength));
	return iLength ;
}

function sport_events_teams_init() {
  var sport_events_teams_selected = new Array();
  if (Drupal.settings.sport_events_teams) $("select.sport_events_team_select").each(function() {
    $(this).after('<input type="hidden" size="2" id="' + this.id + '-current" value="' + $(this).val() + '" disabled="disabled" />');
  }).change(function() {
    var chosen = this;
    var idx = $.inArray($("#" + chosen.id + "-current").val(), sport_events_teams_selected);
    if (idx > -1) sport_events_teams_selected.splice(idx, 1);
    if ($(chosen).val() != 0) {
      sport_events_teams_selected.push($(chosen).val());
    }
    $prev_choice = $("#" + chosen.id + "-current").val();
    $("#" + chosen.id + "-current").val($(chosen).val()); 
    $("select.sport_events_team_select").filter(':not([id='+chosen.id+'])').each(function() {
      if ($prev_choice > 0 || $(chosen).val() == 0) {
        var selected = $(this).val();
        $(this).empty();
        for (var i in Drupal.settings.sport_events_teams) {
          if (i == 0 || $.inArray(i, sport_events_teams_selected) < 0 ||
            $("#" + this.id + "-current").val() == i) {
              $(this).append('<option value="' + i + '">' + Drupal.settings.sport_events_teams[i] + '</option>');
          }
        }
        $(this).val(selected);
      }
      else {
        $(this).find('OPTION').filter('[value="'+$(chosen).val()+'"]').remove();
      }
    });
  });
  $("input.sport_events_result").each(function() {
    $(this).wrap('<span class="sport_events_result_wrapper" id="sport_events_result_wrapper-' + this.id + '"></span>');
    //$("#sport_events_result_wrapper-" + this.id).append('<span class="sport_events_result_links"><a href="javascript:void(0);" class="sport_events_result_plus" id="sport_events_result_plus-' + this.id + '">&#160;</a><a href="javascript:void(0);" class="sport_events_result_minus" id="sport_events_result_minus-' + this.id + '">&#160;</a></span>');
    $("#sport_events_result_wrapper-" + this.id).append('<span class="sport_events_result_links"><span class="sport_events_result_plus" id="sport_events_result_plus-' + this.id + '">+</span><span class="sport_events_result_minus" id="sport_events_result_minus-' + this.id + '">&ndash;</span></span>');
  });
  $(".sport_events_result_plus").click(function() {
    var txtbox_id = this.id.substr(25);
    if (!txtbox_id) return false;
    var score = $("#"+txtbox_id).val()*1;
    if (!isNaN(score)) $("#"+txtbox_id).val(score*1 + 1);
  });
  $(".sport_events_result_minus").click(function() {
    var txtbox_id = this.id.substr(26);
    if (!txtbox_id) return false;
    var score = $("#"+txtbox_id).val()*1;
    if (!isNaN(score)) $("#"+txtbox_id).val(score*1 - 1);
  });
}

function sport_events_get_results() {
  var parent = $(this).parents(".sport_events_results_pager:eq(0)");
  var from = get_url_param(this.href, "from");
  var id = parent.attr("id");
  if (!id) return false;
  var id_split = id.split('-');
  var params = {};
  var url = "/ajax.php?type=sport_events&op=get_results&evid=" + id_split[1] + "&from=" + from;
  $.ajax({
    "url": url,
    "dataType": "text",
    "type": "GET",
    "data": params,
    "success": function(data) {
      if (data) $("#sport_events_results-" + id_split[1]).html(data);
      $(".sport_events_results_pager a").each(function() {
        $(this).bind('click', sport_events_get_results);
      });
    },
    "complete": function() { }
  });
  return false;
}

function question_buttons_init() {
  $("a.question-button").click(function() {
    var tmp = this.id;
    var id_split = tmp.split('-');
    var op = id_split[0];
    var nid = id_split[1];
    var buttons = $("#question-buttons").html();
    $("#question-buttons").html("<img src='/misc/img/ajax-progress.gif' />");
    var url = "/ajax.php?type=question&op=" + op + "&nid=" + nid;
    var params = {};
    $.ajax({
      "url": url,
      "dataType": "json",
      "type": "POST",
      "data": params,
      "success": function(data) {
        var status = 'status';
        if (data.status) status = data.status;
        if (status != 'error') $("#question-buttons").html(data.buttons);
          else $("#question-buttons").html(buttons);
        if (data.message) {
          $("#more-link").height("50px");
          var msg = '<div class="message ' + status + '" style="height:10px; float:left; margin-top:-2px;">' + data.message + '</div>';
          $("#block-message").html(msg);
        }
	question_buttons_init();
      },
      "complete": function() { }
    });
    return false;
  });
  $("a.answer-button").click(function() {
    var tmp = this.id;
    var id_split = tmp.split('-');
    var op = id_split[0];
    var cid = id_split[1];
    var buttons = $("#answer-buttons-" + cid).html();
    $("#answer-buttons-" + cid).html("<img src='/misc/img/ajax-progress.gif' />");
    var url = "/ajax.php?type=question&op=" + op + "&cid=" + cid;
    if (op == 'vote') {
      var vote = 0;
      if (id_split[2] == 'ok') vote = 1;
      if (id_split[2] == 'ko') vote = -1;
      url = url + "&vote=" + vote;
    }
    var params = {};
    $.ajax({
      "url": url,
      "dataType": "json",
      "type": "POST",
      "data": params,
      "success": function(data) {
        var status = 'status';
        if (data.status) status = data.status;
        if (data.buttons) $("#answer-buttons-" + cid).html(data.buttons);
          else $("#answer-buttons-" + cid).html(buttons);
        if (data.message) {
          $("#more-link-" + cid).height("50px");
          var msg = '<div class="message ' + status + '" style="height:10px; float:left; margin-top:-2px;">' + data.message + '</div>';
          $("#vote-message-" + cid).html(msg);
        }
	question_buttons_init();
      },
      "complete": function() { }
    });
    return false;
  });
}

function getCookie(name) {
  var prefix = name + "=";
  var cookieStartIndex = document.cookie.indexOf(prefix);
  if (cookieStartIndex == -1) return null;
  var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
  if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length;
  //return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
  var cookie_string = unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
  var cookie_array = new Array();
  var parts = cookie_string.split("&");
  for (var i in parts) {
    var part = parts[i].split("=");
    cookie_array[part[0]] = part[1];
  }
  return cookie_array;
}

function getDadanetCookie() {
  return getCookie('dadanetuser');
}

function isInteger(s) {
  return /^-?\d+$/.test(s);
}

function showOverlibPopup(title, content) {
    overlib(content,
       FOLLOWSCROLL,
       STICKY,
       CAPTION, title,
       WIDTH, 300,
       LEFT, 0,
       CSSCLASS,
       TEXTFONTCLASS,'fontClassOL',
       FGCLASS,'fgClassOL',
       BGCLASS,'bgClassOL',
       CAPTIONFONTCLASS,'capfontClassOL',
       CLOSECLICK);
    return false;
}

function openWin(indirizzo, olw) {
  myWindow = window.open(indirizzo, '', 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,top=30,left=20,width=626,height=520');
  return myWindow;
}

uploader_complete = function() {
  if (typeof(Drupal.behaviors.activeselect) === "function") Drupal.behaviors.activeselect();
  if ($(".edit-upload").size() > 1) $(".edit-upload:first > div.uploaded_media_apply_all").show();
  $("form.upload_file #thumbnails input.form-submit").not(":last").remove();
  select_sponsored_init();
}

uploader_validation = function(element) {
  switch (element.id) {
    case "submit_uploader_files":
    case "submit_uploader_editor":
      var chk = $("#chk_upload_certification");
      if (chk && !chk.is(':checked')) return false;
      break;
  }
  return true;
}

Drupal.behaviors.uploader = function (context) {
  if ($("#thumbnails")) uploader_complete();
  if (Drupal.modal && $("#modalPage_body .message.status").html()) {
    $("#modalPage_body .uploader").hide();
    $("#uploader_close_modal").remove();
    $("#modalPage_body form").append('<a href="javascript:Drupal.hideModal(\''+$("#reload_url", context).val()+'\');" id="uploader_close_modal">'+Drupal.modal.close_message+'</a>');
//    alert(Drupal.modal.close_message);
  }
};

function openWin(indirizzo,olw) {
	myWindow=window.open(indirizzo,'','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,top=30,left=20,width=626,height=520');
	return myWindow;
	}
mw=null;

function opener_reload(url, close) {
  if (window.opener) window.opener.location.replace(url);
  if (close) self.close();
}

function get_stats_ajax(op) {
		var loc = new String(document.location);
    loc = loc.replace('http://','');
		var spl_loc = loc.split('/');
    var spl_sit = spl_loc[0].split('.');
    var url_end = "";
    var url_sta = "ajax.php";
    var tmp_sue = "";
    if (op=="blog") {
      tmp_sue = (spl_sit[0]!="www"?spl_sit[0]:spl_sit[1]);
			url_end = "&blog="+tmp_sue;
		} else {
			tmp_sue = spl_loc[spl_loc.length-1];
      tmp_sue = tmp_sue.replace(/\?.*/,'')
			url_end = "&profile="+tmp_sue;
		}

    $.ajax({
						"url": url_sta+"?type=counter&op="+op+url_end,
						"dataType": "json",
						"type": "GET",
						"success": function(data) {
                num = data.visited;
								if (data.error) {
									data.visited=data.error;
								} 			
                if (op="profile") $('#mystats_counter').html(data.visited);
                if (op="blog")    $('#myblog_counter').html(data.visited);
						}
				});

}

// SF

// COMMON UTILITY FUNCTIONS
function popup_once(mylink, windowname, refocus, params, callback) {
  var mywin, href;

  if (typeof(mylink) == 'string')
    href = mylink;
  else
    href = mylink.href;
  mywin = window.open('', windowname, params);

  // if we just opened the window
  if (mywin.closed || (!mywin.document.URL) || (mywin.document.URL.indexOf("about") == 0))
    mywin.location = href;
  else {
    if (callback) eval(callback);
      else if (refocus) mywin.focus();
  }
  return false;
}

function myOpenChat(mylink, windowname, refocus, params, chatto, jserver, uname) {
  var mywin, href;
  var JABBERSERVER=jserver;
  var HTTPBASE="/http-bind/";
  var BACKEND_TYPE="binding";
  var RES="splinder-jwchat";
  var jid=uname+'@'+JABBERSERVER+'/'+RES;
  var pass="";
  var register=false;
  var prio=10;
  var connect_secure=false;

  if (typeof(mylink) == 'string')
    href = mylink;
  else
    href = mylink.href;
  mywin = window.open('', windowname, params);

  // if we just opened the window
  if (mywin.closed || (!mywin.document.URL) || (mywin.document.URL.indexOf("about") == 0)) {
    mywin.JABBERSERVER=JABBERSERVER;
    mywin.HTTPBASE=HTTPBASE;
    mywin.BACKEND_TYPE=BACKEND_TYPE;
    mywin.RES=RES;
    mywin.jid=jid;
    mywin.pass=pass;
    mywin.register=register;
    mywin.prio=prio;
    mywin.connect_secure=connect_secure;
    mywin.location = href;
  }
  else if (refocus)
    mywin.focus();
  if (chatto) {
    //mywin.Chat.getInstance().openChat(mywin.UserCache.getInstance().getUserByUsername(chatto));
    mustOpenChat=chatto;
    try {
      window.open(mylink,windowname,params); // 'width=180,height=390,resizable=yes');

    // mywin.roster.openChat(chatto);
    //   if (mywin.document.jeti)
    //	mywin.document.jeti.myOpenChat(chatto)
    } 
    catch (err) {
      alert("Non posso aprire la chat");
    }
    // mywin.Chat.getInstance().openChat(mywin.UserCache.getInstance().getUserByUsername(chatto));

  }
  return false;
}

// SF
