var dropShadowEnabled = true;

$(document).ready(function(){

   divLayer = new blibs.DivLayer();

});


function openDivLayer(responseHandler, href, divLayerName)
{
   $.ajax({
      url: href,
      cache: false,
      beforeSend: addAjaxHeader,
      success: function(content){
         responseHandler(false, content, divLayerName);
      }
   });
}

function ajaxRequest(e, responseHandler, divLayerName)
{
   var event = e || window.event;
   if (event.preventDefault) event.preventDefault();
   else event.returnValue = false;

   var target = event.target || event.srcElement;
   var href = findHref(target);

   $.ajax({
      url: href,
      cache: false,
      beforeSend: addAjaxHeader,
      success: function(content){
         responseHandler(false, content, divLayerName);
      }
   });
}
function findHref(elt)
{
    if (!elt.getAttributeNode('href'))
        return findHref(elt.parentNode);

    return elt.getAttribute('href');
}


function ajaxSubmit(e, responseHandler, formname, actionUrl, hiddenFields, divLayerName)
{
    var event = e || window.event;
    var target = event.target || event.srcElement;

    if (event.preventDefault) event.preventDefault();
    else event.returnValue = false;

    if(!formname)
        formname = target.tagName == 'FORM'? target.name : target.form.name;

    var form = $("form[name="+formname+"]");

    if (hiddenFields)
    {
        FormElt = eval("document.forms." + formname);
        for(var name in hiddenFields)
        {
            input = document.createElement('input');
            input.type = 'hidden';
            input.name = name;
            input.value = hiddenFields[name];
            FormElt.appendChild(input);
        }
    }

    if (!divLayerName)
        var divLayerName = form.parents(".divLayer").attr('id');

    var url = actionUrl? actionUrl : form.attr('action');

    FormElt = eval("document.forms." + formname);
    if (FormElt.isSend)
        return false;
    else
    {
        input = document.createElement('input');
        input.type = 'hidden';
        input.name = 'isSend';
        input.value = 1;
        FormElt.appendChild(input);
    }

    form.ajaxSubmit({
       url: url,
       beforeSend: addAjaxHeader,
       success: function(content){
          responseHandler(false, content, divLayerName);
          return false;
       }
    });
}

function addAjaxHeader(xhr)
{
   xhr.setRequestHeader("HTTP_X_REQUESTED_WITH", "XMLHttpRequest");
}

function showDivLayer(e, content, divLayerName)
{
    if(typeof e == 'object')
    {
        var event = e || window.event;

        if (event.preventDefault) event.preventDefault();
        else event.returnValue = false;
    }

    divLayer.hide();
    divLayer.show(content, divLayerName);

    if (dropShadowEnabled)
    {
        $("div:first").addClass("grey");
        $("#sidebar").addClass("grey");
        $("#footer").addClass("grey");
        $(":button").addClass("buttonNormal")
                .bind('mouseover focus',function(event){
                        $(this).addClass("buttonOver");
                    } )
                    .bind('mouseout blur',function(event){
                        $(this).removeClass("buttonOver");
                    } )

        $(".divLayerContent").dropShadow({left: 0, top: 0, blur: 5}) ;
    }
}

function hideDivLayer(e, divLayerName)
{
   if(typeof e == 'object')
   {
      var event = e || window.event;

      if (event.preventDefault) event.preventDefault();
      else event.returnValue = false;
   }

   divLayer.hide(divLayerName);
   $("div:first").removeClass("grey");
   	$("#sidebar").removeClass("grey");
	$("#footer").removeClass("grey");
}

function getMsgCheckboxes()
{
    var inputs = document.getElementsByTagName('input');
    var checkboxes = new Array();
    for (var i in inputs)
    {
        if (inputs.item(i).getAttribute('type') == 'checkbox')
            checkboxes.push(inputs.item(i));
    }
    return checkboxes;
}

function selectAllMessages()
{
    for (var i in checkboxes = getMsgCheckboxes())
    {
        if (!checkboxes[i].checked)
        {
            checkboxes[i].checked = 'checked';
            setCheckboxAsHidden(checkboxes[i], checkboxes[i].form.name, checkboxes[i].value);
        }
    }
}

function setCheckboxAsHidden(CheckboxElt, formName, itemId)
{
    var form = eval("document.forms." + formName);

    HiddenElt = document.getElementById('item_' + itemId);
    if (!HiddenElt)
    {
         input = document.createElement('input');
         input.type = 'hidden';
         input.id = 'item_' + itemId;
         input.name = 'items[' + itemId + ']';
         input.value = itemId;
         form.appendChild(input);
    }
    else
        HiddenElt.parentNode.removeChild(HiddenElt);
}


function setDefault(InputElt, defaultContent)
{
    if (!InputElt)
        return;

    var currentValue = InputElt.value.replace(/^\s+/, '').replace(/\s+$/, '');

    if (currentValue == '')
        InputElt.value = defaultContent;
}

function deleteDefault(InputElt, defaultContent)
{
    if (!InputElt)
        return;

    if (InputElt.value == defaultContent)
        InputElt.value = '';
}

function toggleSpecialForumActionsElements(RadioButton)
{
    if (RadioButton.getAttribute('value') == 'yes')
    {
        document.getElementById('MottoSelectBox').parentNode.parentNode.className = 'formSection';
        document.getElementById('AcceptConditions').parentNode.parentNode.className = 'formSection legalCheck';
    }
    else
    {
        document.getElementById('MottoSelectBox').parentNode.parentNode.className = 'hide';
        document.getElementById('AcceptConditions').parentNode.parentNode.className = 'hide';
    }
}