var inputs;
var _imagePrefix = 'mv';
if (page && page == 'admin')
{
    _imagePrefix = 'admin';
}

var imgCheckboxFalse = '/imgs/'+_imagePrefix+'-checkbox-false.jpg';
var imgCheckboxTrue = '/imgs/'+_imagePrefix+'-checkbox-true.jpg';
var imgRadioFalse = '/imgs/'+_imagePrefix+'-radiobutton-false.jpg';
var imgRadioTrue = '/imgs/'+_imagePrefix+'-radiobutton-true.jpg';

var changeCheckboxes = true;
var notify_window = null; // notify window
var bConfirmOpened = false;
var radioDeny = false;


$(document).ready(function()
{
    if ($('#newsfeed').length)
    {
        $('#newsfeed').innerfade({
            speed: 'slow',
            timeout: 4000,
            type: 'random',
            animationtype: 'fade'
        });
    }
    $("div#topmessage > a#closetopmsg").click(function()
    {
        $("div#topmessage").fadeOut("fast");
    });
    $("img#closemessage").click(function()
    {
        $(this).parent().parent().fadeOut("fast");
    });
});



function getDatepickerConfig(addonObj)
{
    var datePickerConfig = {
        changeMonth: true,
        changeYear: true,
        dateFormat: 'yy.mm.dd.',
        firstDay: 1,
        zIndex: 10000,
        minDate: new Date(2005, 01, 01),
        navigationAsDateFormat: true,
        shortYearCutoff: '0-99',
        yearRange: 'c-80:c'
    };
    if (addonObj)
    {
        $.each(addonObj, function(key, value)
        {
            datePickerConfig[key] = value;
        });
    }
    return datePickerConfig;
}

function wmFrameMouseover(jqObj)
{
    var position = jqObj.position();
    jqObj.next().css("top", position.top+"px");
    jqObj.next().css("left", position.left+40+"px");
    jqObj.next().show();
}
function wmFrameMouseleave(jqObj)
{
    jqObj.next().hide();
}


function init()
{
    if ( changeCheckboxes )
    {
        replacecheckboxes();
        if ( checkbox_postinit != undefined && typeof(checkbox_postinit) == 'function')
        {
            checkbox_postinit( true );
        }
    }
}

function reinitCheckboxReplace()
{
    inputs = document.getElementsByTagName('input');
    for(var i=0; i < inputs.length; i++)
    {
        if(inputs[i].getAttribute('type') == 'checkbox')
        {
            var imgObj = $('img', inputs[i].parentNode);
            imgObj.click(new Function('checkChange("'+i+'")'));
        }
    }
}

function replacecheckboxes()
{
  inputs = document.getElementsByTagName('input');
  for(var i=0; i < inputs.length; i++) {
    if(inputs[i].getAttribute('type') == 'checkbox' && inputs[i].getAttribute('dontmask') == undefined) {
      var img = document.createElement('img');
      if(inputs[i].checked) {
        img.src = imgCheckboxTrue;
      } else {
        img.src = imgCheckboxFalse;
      }
      img.className = 'bbox';
      img.id = inputs[i].id+'_imgchkbox';
      img.onclick = new Function('checkChange("'+inputs[i].id+'")');
      inputs[i].parentNode.insertBefore(img, inputs[i]);
      inputs[i].style.display='none';
    }
    if(!radioDeny && inputs[i].getAttribute('type') == 'radio')
    {
      var img = document.createElement('img');
      if(inputs[i].checked) {
        img.src = imgRadioTrue;
      } else {
        img.src = imgRadioFalse;
      }
      img.className = 'bbox';
      img.id = 'checkimage'+i;
      img.onclick = new Function('radioChange('+i+')');
      inputs[i].parentNode.insertBefore(img, inputs[i]);
      inputs[i].style.display='none';
    }
  }
}


function _checkchange(checkboxId, state)
{
    var chkbox = document.getElementById(checkboxId);
    if ( chkbox !== null )
    {
        chkbox.checked = state;
        document.getElementById(checkboxId+'_imgchkbox').src= ( state == false ? imgCheckboxFalse : imgCheckboxTrue );
    }
}


function checkChange(i)
{
    if (inputs.length)
    {
        if(inputs[i].checked == false)
        {
            inputs[i].checked = true;
            inputs[i].selected = true;
            $('#'+inputs[i].id).trigger('change');
            document.getElementById(i+'_imgchkbox').src=imgCheckboxTrue;
        } else {
            inputs[i].checked = false;
            inputs[i].selected = false;
            $('#'+inputs[i].id).trigger('change');
            document.getElementById(i+'_imgchkbox').src=imgCheckboxFalse;
        }
        if (typeof(setCheckboxtState) == 'function')
        {
            setCheckboxState($('#'+inputs[i].id));
        }
    }
}


function radioChange(i)
{
    if (inputs.length)
    {
        for(var j=0; j < inputs.length; j++)
        {
            if (i != j && inputs[j].getAttribute('type') == 'radio' && inputs[i].name == inputs[j].name)
            {
                inputs[j].checked = false;
                inputs[j].selected = false;
                document.getElementById('checkimage'+j).src=imgRadioFalse;
            }
        }
        if(!inputs[i].checked && inputs[i].id)
        {
            inputs[i].checked = true;
            inputs[i].selected = true;
            $('#'+inputs[i].id).trigger('change');
            if (typeof(setRadioSelectState) == 'function')
            {
                setRadioSelectState($('#'+inputs[i].id));
            }
            if (inputs[i].getAttribute('type') == 'radio')
            {
                document.getElementById('checkimage'+i).src=imgRadioTrue;
            }
        }
    }
}

window.onload = init;

function extjsCheckLogoutAnswer(url)
{
    Ext.Ajax.request({
        url: url,
        success: function(resp, items)
        {
            checkLogoutAnswer(Ext.util.JSON.decode(resp.responseText));
        },
        failure: function(a){
            //alert('Error');
        },
        params: {
            webmaster_id: '1'
        }
    });
}

function checkLogoutAnswer(data)
{
    if (data)
    {
        if (typeof(data) != 'object')
        {
            try
            {
                data = eval('('+data+')');
                if (typeof(data) != 'object')
                {
                    return;
                }
            } catch(err) {
                return;
            }
        }
        if (data.loginRedirect &&
            data.loginRedirect == true &&
            data.loginRedirectPath.length)
        {
            top.location.href = data.loginRedirectPath;
        }
    }
    return;
}

function createHiddenInput( name, value )
{
    var hiddenInput = document.createElement('input');
    hiddenInput.setAttribute('type', 'hidden');
    hiddenInput.setAttribute('name', name);
    hiddenInput.setAttribute('id', name);
    hiddenInput.setAttribute('value', value);

    return hiddenInput;
}

function showErrorElement( sElementName, sErrorString )
{
    $("#"+sElementName+"_label").addClass("formerror");
    $("#"+sElementName+"_div").addClass("formerror");
    $("#"+sElementName+"_error").addClass("formerror");

    if ( sErrorString != 1 )
    {
        $("#"+sElementName+"_error").text(sErrorString);
    }

    $('#'+sElementName).parent('div').addClass('error');

    $("#"+sElementName+"_error").show();
}

function hideErrorElement( sElementName )
{
    $("#"+sElementName+"_label").removeClass("formerror");
    $("#"+sElementName+"_div").removeClass("formerror");
    $("#"+sElementName+"_error").removeClass("formerror");
    $('#'+sElementName).parent('div').removeClass('error');
    $("#"+sElementName+"_error").hide();
}


function hideAllErrors()
{
    $("p[id*='_error']").hide();
    $("[class*='formerror']").removeClass('formerror');
}

function checkbox_postinit( clearClickEvent )
{
    if ( clearClickEvent )
    {
        $('#epassporteisdefault_imgchkbox').unbind();
        $('#paxumisdefault_imgchkbox').unbind();
        $('#payoneerisdefault_imgchkbox').unbind();
        $('#checkisdefault_imgchkbox').unbind();
        $('#wireisdefault_imgchkbox').unbind();
    }

    $('#epassporteisdefault_imgchkbox').click(function(){
        if ( $('#epassporteisdefault').attr('checked') )
        {
            _checkchange('checkisdefault', false );
            _checkchange('wireisdefault', false );
            _checkchange('payoneerisdefault', false );
        }
    });

    $('#paxumisdefault_imgchkbox').click(function(){
        if ( $('#paxumisdefault').attr('checked') )
        {
            _checkchange('checkisdefault', false );
            _checkchange('wireisdefault', false );
            _checkchange('payoneerisdefault', false );
        }
    });

    $('#checkisdefault_imgchkbox').click(function(){
        if ( $('#checkisdefault').attr('checked') )
        {
            _checkchange('paxumisdefault', false );
            _checkchange('wireisdefault', false );
            _checkchange('payoneerisdefault', false );
        }
    });

    $('#payoneerisdefault_imgchkbox').click(function(){
        if ( $('#payoneerisdefault').attr('checked') )
        {
            _checkchange('paxumisdefault', false );
            _checkchange('checkisdefault', false );
            _checkchange('wireisdefault', false );
        }
    });

    $('#wireisdefault_imgchkbox').click(function(){
        if ( $('#wireisdefault').attr('checked') )
        {
            _checkchange('checkisdefault', false );
            _checkchange('paxumisdefault', false );
            _checkchange('payoneerisdefault', false );
        }
    });

}
function mvAlert(_title, _value)
{
    $container = $("#notify-container").notify();
    $("#notify-container").show();
    $("#notify-container").notify("create", {title: _title, text: _value}, {speed:500, expires:3500});
}

function notifyResult(data, messageTitle, messageText, iExpires )
{
    if ( iExpires == undefined )
    {
        iExpires = 1500;
    }
    checkLogoutAnswer(data);
    if ( data.success == true )
    {
        notify_window = $("#notify-container").notify("create", {
            title: messageTitle,
            text: messageText
        }, {speed:500, expires:iExpires});

    } else {
        $.each(data.errors, function(index, value) {
            if ( index == 'common')
            {
                /* @todo: tesztelni ezt */
                notify_window = $("#notify-container").notify("create", {
                    title: messageTitle,
                    text: value
                }, {speed:500});
            } else {
                showErrorElement(index, value);
            }
        });
    }
}

function confirmDialog( title, text, onConfirm )
{
    if ( bConfirmOpened )
    {
        return false;
    }
    bConfirmOpened = true;
        notify_window = $("#notify-container").notify("create", {
            title: title,
            text: text,
            confirm_button_yes: '<input type="button" name="delete_confirm" value="Yes" onclick="'+onConfirm+'">',
            confirm_button_no: '<input type="button" name="delete_confirm" value="No" onclick="notify_window.close();">'
        }, {speed:500, expires:false, close: function(){ bConfirmOpened = false; }});

    return false;

}

function setDeleteClick( onConfirm )
{
    confirmDialog( 'Delete', 'Are you sure you want to delete?', onConfirm );
}

function getUseableDate(date)
{
    if (date.lastIndexOf(' ') > 0)
    {
        periodStart = date.substring(0, date.lastIndexOf(' '));
        periodEnd = date.substring(date.lastIndexOf(' ')+1, date.length);
        return getUseableDate(periodStart)+' '+getUseableDate(periodEnd);
    }
    if (date.lastIndexOf('.') > 0)
    {
        year = date.substr(0, 4);
        month = date.substr(5, 2);
        day = date.substr(8, 2);
        return year+'-'+month+'-'+day;
    }
    return date;
}
function getShowableDate(date)
{
    if (date.lastIndexOf(' ') > 0)
    {
        periodStart = date.substring(0, date.lastIndexOf(' '));
        periodEnd = date.substring(date.lastIndexOf(' ')+1, date.length);
        return getShowableDate(periodStart)+' '+getShowableDate(periodEnd);
    }
    if (date.lastIndexOf('-') > 0)
    {
        year = date.substr(0, 4);
        month = date.substr(5, 2);
        day = date.substr(8, 2);
        return year+'.'+month+'.'+day+'.';
    }
    return date;
}

function convertUseableDateToJsDateObject(date)
{
    year = date.substr(0, 4);
    month = date.substr(5, 2);
    day = date.substr(8, 2);
    hour = date.substr(11, 2);
    minute = date.substr(14, 2);
    second = date.substr(17, 2);
    dateVar = new Date(year, parseInt(month)-1, day, hour, minute, second);
    return dateVar;
}

function setError(sErrorField, sErrorMessage)
{
    $(sErrorField).addClass('errorBorder');
    var position = $(sErrorField).position();
    var mTop = position.top+$(sErrorField).height()+6;
    var mLeft = position.left;
    $(sErrorField).next('.errorMsg').remove();
    $('<div id="errorMsg_'+sErrorField+'" class="errorMsg">'+sErrorMessage+'</div>').insertAfter(sErrorField).css("top", mTop+"px").css('left', mLeft+'px');
    $('.errorBorder').unbind('keypress change');
    $('.errorBorder').bind('keypress change', function()
    {
        removeError($(this));
    });
}

function removeError(jqObj)
{
    jqObj.removeClass('errorBorder');
    if (jqObj.next('.errorMsg').length)
    {
        jqObj.next('.errorMsg').fadeOut('fast', function()
        {
            jqObj.next('.errorMsg').remove();
        });
    }
}



function _addScriptTag( sAppendTo, sJSCode )
{
	script = document.createElement( "script" );
	script.type = "text/javascript";
	script.text = sJSCode;
	document.getElementById(sAppendTo).insertBefore( script, null );

}


radios = new Array();
radioImgFn = function (a, b, c, d)
{
    radio_id = this.attributes.radio_id.value;
    radio_name = this.attributes.radio_name.value;
    radio = $('#'+radio_id);
    radio.trigger('click');

    $('div[radio_name='+radio_name+']').attr('class', 'radio_img img_false');

    $('input[name='+radio_name+']').removeAttr('selected');
    if (radio.attr('checked'))
    {
        radio.attr('selected', true);
        this.className = 'radio_img img_true';
    } else {
        this.className = 'radio_img img_false';
    }
    radio.trigger('change');
}
radioSkinning = function ()
{
    tmpRadios = $('input:radio');
    if (tmpRadios.length)
    {
        tmpRadios.each(function(a, b, c, d)
        {
            radio = $(this);
            radio_name = radio.attr('name');
            label = radio.next('label');
            //hibakereses
            if (!radio_name.length)
            {
                alert('nincs meg a radio name');
            }
            if (!label.length)
            {
                alert('nincs meg a radio label');
            }
            //kotelezo attr inic
            radio_state = $(this).attr('checked');
            radio_id = '';
            if (!radio.attr('id'))
            {
                radio_id = 'skinedRadio'+a+'_Id';
                radio.attr('id', radio_id);
            } else {
                radio_id = radio.attr('id');
            }
            if (!radios[radio_name])
            {
                radios[radio_name] = new Array();
            }
            radios[radio_name].push(radio);
            if (!label.attr('for'))
            {
                label.attr('for', radio_id);
            }
            label_display = label.css('display');

            //kep betoltese
            $('#'+radio_id).before('<div style="display:'+label_display+';" id="radioImg_'+radio_id+'" radio_id="'+radio_id+'" radio_name="'+radio_name+'" state="'+radio_state+'" class="radio_img img_'+radio_state+'"></div>');
            //esemeny felkotese a kepre
            $('#radioImg_'+radio_id).click(radioImgFn);
            label.click(function()
            {
                $('#radioImg_'+$(this).attr('for')).click();
            });
        });
        tmpRadios.hide();
    }
}
wmRedirect = function(sPage, iWebmasterId)
{
    if (sPage == 'profile')
    {
        top.location.href = '/admin/webmasters/index/'+iWebmasterId;
    } else if (sPage == 'statistics') {
        top.location.href = '/admin/statistics/index/'+iWebmasterId;
    }
}


function strpad(val){
	return (!isNaN(val) && val.toString().length==1)?"0"+val:val;
}

