$( function() {
    uiTheme();
    setNamlist();
    blkSorter();
    setPrint();
    stof();

    // + - for namlist
    $('.afnlitools span.plus').click( function() {
        $(this).parents('div.ctnt').find('ul.namlist li').each( function() {
            if($(this).css('display') == 'none') {
                $(this).css('display','block');
                return false;
            }
        });
    });
    $('.afnlitools span.minus').click( function() {
        $($(this).parents('div.ctnt').find('ul.namlist li').get().reverse()).each( function() {
            if($(this).css('display') == 'block' && $(this).index($(this).parent().find('li')) != 0) {
                $(this).css('display','none');
                if($(this).next().css('display') == 'block') {
                    $(this).find('> span.ui-icon').trigger('click');
                }
                return false;
            }
        });
    });
    //clear last element of list background style
    $('ul.list').find('li:last').css('background','none')
});
//customize checkbox and radio theme
function uiTheme() {
    $(':checkbox').css('position','absolute').css('z-index','-99999');
    $(':checkbox').parent().each( function() {

        var iconClass = 'ui-icon icon-extra icon-ui-check-box-unchecked';
        if($(this).find(':checkbox').attr('checked') == true) {
            iconClass = 'ui-icon icon-extra icon-ui-check-box';
        }
        if($(this).find('span[class='+iconClass+']').size() == 0) {
            $(this).prepend('<span class="'+iconClass+'"></span>');
        }
    });
    $(':checkbox').change( function() {
        if($(this).attr('checked') == true) {
            $(this).parent().find('span.icon-ui-check-box-unchecked').attr('class','ui-icon icon-extra icon-ui-check-box');
        } else {
            $(this).parent().find('span.icon-ui-check-box').attr('class','ui-icon icon-extra icon-ui-check-box-unchecked');
        }
    });
    //
    $(':radio').css('position','absolute').css('z-index','-99999');
    $(':radio').parent().each( function() {
        var iconClass = 'ui-icon icon-extra icon-ui-radio-button-unchecked';
        if($(this).find(':radio').attr('checked') == true) {
            iconClass = 'ui-icon icon-extra icon-ui-radio-button';
        }
        if($(this).find('span[class='+iconClass+']').size() == 0) {
            $(this).prepend('<span class="'+iconClass+'"></span>');
        }
    });
    $(':radio').change( function() {
        $(':radio[name="'+$(this).attr('name')+'"]').not($(this)).each( function() {
            $(this).parent().find('span.icon-ui-radio-button').attr('class','ui-icon icon-extra icon-ui-radio-button-unchecked');
        });
        if($(this).attr('checked') == true) {
            $(this).parent().find('span.icon-ui-radio-button-unchecked').attr('class','ui-icon icon-extra icon-ui-radio-button');
        } else {
            $(this).parent().find('span.icon-ui-radio-button').attr('class','ui-icon icon-extra icon-ui-radio-button-unchecked');
        }
    });
}

// hide description of namlist at first and set collapse click trigger
function setNamlist() {
    $('ul.namlist li').each( function() {
        $(this).next().css('display','none');
        $(this).find('> span.ui-icon').click( function() {
            $(this).parent().next().toggle(0);
            $(this).toggleClass('gele1 gele2')
        });
    });
}

// set block sorter
function blkSorter() {
    $('#content .blk').each( function(index,value) {
        if(index > 0 && $(this).find('span.sorter').size() == 0) {
            $(this).find('.titlebar span:first').after('<span class="ui-icon icon-white wele7 sorter"></span>');
            $(this).find('.sorter').click( function() {
                $(this).parents('.blk').prev().before(value);
                blkSorter();
            });
        } else if(index == 0) {
            $(this).find('.sorter').remove();
        }
    });
}

// generate select tree block # use in search block
function gtSelect(ntl) {
    var groupName = 'topic';
    $.each(ntl, function(index,value) {
        var rel = '';
        if(value[4] != undefined) {
            rel = value.f4
        }
        if(value[2] == 0 || $('ul.selectTree').find('li#opt'+value[2]+' ul:first').size() == 0) {
            $('ul.selectTree').append('<li id="opt'+value[0]+'"><label><input id="'+value[0]+'" type="radio" name="'+groupName+'" rel="'+rel+'" />'+value[1]+'</label><ul></ul></li>');
        } else {
            $('ul.selectTree').find('li#opt'+value[2]+' ul:first').append('<li id="opt'+value[0]+'"><label><input id="'+value[0]+'" type="radio" name="'+groupName+'" rel="'+rel+'" />'+value[1]+'</label><ul></ul></li>');
        }
    });
    $('ul.selectTree').find('input[type="radio"]').change( function() {
        $('ul.selectTree').parent().find('input[type="hidden"]').val($(this).parent().text()).attr('value',$(this).attr('id'));
    });
    uiTheme();
}

// generate select tree block # use in license page
function gtxSelect(ntl) {
    var groupName = 'id';
    $.each(ntl, function(index,value) {
        var rel = '';
        if(value[4] != undefined) {
            rel = value.f4
        }
        if(value[2] == 0 || $('ul.selectTree').find('li#opt'+value[2]+' ul:first').size() == 0) {
            $('ul.selectTree').append('<li id="opt'+value[0]+'"><label><input id="'+value[0]+'" type="radio" name="'+groupName+'" rel="'+rel+'" value="'+value[0]+'" />'+value[1]+'</label><ul></ul></li>');
        } else {
            $('ul.selectTree').find('li#opt'+value[2]+' ul:first').append('<li id="opt'+value[0]+'"><label><input id="'+value[0]+'" type="radio" name="'+groupName+'" rel="'+rel+'" value="'+value[0]+'" />'+value[1]+'</label><ul></ul></li>');
        }
    });
    $('ul.selectTree').find('input[type="radio"]').change( function() {
        $('ul.selectTree').parent().find('input[name="id"]').val($(this).parent().text()).attr('value',$(this).attr('id'));
    });
    uiTheme();
}

//set print function
function setPrint() {
    $('span.cele15').click( function() {
        $(this).parents('div.ctnt').printElement(
        {
            leaveOpen:true,
            printMode:'popup',
            overrideElementCSS:['../statics/css/screen-rtl.css','../statics/css/global.css'],
            printBodyOptions:
            {
                styleToAdd:'background-color:#fff;background-image:none',
                //classNameToAdd : 'thisWillBeTheClassUsedAsWell'
            }
        }
        );
    });
}

//send to friend operations
function stof() {
    $('.cele14').click( function() {
        $('.stof').css('display','block');
        $('body').append('<div class="overlay"></div>');
        $('.overlay').click( function() {
            $(this).remove();
            $('.stof').css('display','none');
        });
    });
}

//generate license form
function gtlf(pq) {

    $.each(pq, function(index,value) {
        var elem = '';
        if($('#form').find('#cat'+value[3]).size() == 0) {
            elem += '<p id="cat'+value[3]+'">'+value[5]+'</p>'
        }
        elem += '<div class="row" id="row'+value[3]+'">';
        elem += '<p>'+value[2]+'</p>';
        switch (value[4].substring(0,1)) {
            case 't':
                elem +='<input type="text" name="_'+value[1]+'" maxlength="1500" value="'+value[6]+'"/>'
                break;
            case 'c':
                elem +='<select name="_'+value[1]+'" selected="'+value[6]+'">';
                elem +='<option></option>';
                var opt = [];
                opt = value[4].split('@%#@');
                $.each(opt, function(ind,val) {
                    if(ind != 0) {
                        elem +='<option>'+val+'</option>';
                    }
                });
                elem +='</select>';
                break;
            case 'u':
                elem +='<input type="hidden" name="_'+value[1]+'" value="'+value[6]+'"/>';
                if(value[6] != "") {
                    elem += '<a href="../'+value[6]+'"><span class="ui-icon icon-color cele5"></span>مشاهده فایل</a>';
                }
                elem +='<div class="file-uploader"></div>';
                break;
            case 'r':
                elem +='<label><input type="radio" name="g'+value[1]+'" value="1"/>دارد</label><label><input type="radio" name="g'+value[1]+'" value="0"/>ندارد</label>';
                if(value[6] != "") {
                    elem += '<a href="../'+value[6]+'"><span class="ui-icon icon-color cele5"></span>مشاهده فایل</a>';
                }else{
                	elem += '<a></a>';
                }
                elem +='<input type="hidden" name="_'+value[1]+'" value="'+value[6]+'"/>';
                elem +='<div class="file-uploader"></div>';
                break;
        }
        elem += '<div class="clear"></div></div>';
        if($('#form').find('#cat'+value[3]).size() != 0) {
            $('#form').find('#row'+value[3]+':last').after(elem)
        } else {
            $('#form #agree').before(elem);
        }
    });
    $('.file-uploader').each( function() {
        var uploader = new qq.FileUploader({
            element: $(this)[0],
            params:{p1:$(this).prev().attr('name')},
            action: 'fu.php',
            multiple:false,
            template: '<div class="qq-uploader">' +
            '<div class="qq-upload-drop-area"><span>Drop files here to upload</span></div>' +
            '<div class="qq-upload-button">الصاق فایل</div>' +
            '<ul class="qq-upload-list"></ul>' +
            '</div>',
            onComplete: function(id, fileName, responseJSON) {
                if(responseJSON['success']) {
                    var res = responseJSON['success'].split('@@@');
                    $(':input[name="'+res[1]+'"]').val(res[0]);
                    if($(':input[name="'+res[1]+'"]').next().find('.qq-upload-list li').size() > 1)
                        $(':input[name="'+res[1]+'"]').next().find('.qq-upload-list li:not(:last)').remove()
                }
            }
        });
    });
    $('#form :radio').change( function() {
        if($(this).val() == 1) {
            $(this).parent().next().next().next().next('div.file-uploader').css('display','block');
        } else {
            $(this).parent().next().next().next('div.file-uploader').css('display','none');
        }
    });
    $('#form :radio[value=0]').each( function() {
        $(this).parent().next().next().next('div.file-uploader').css('display','none');
        if($(this).parent().next().next().val() == "") {
            $(this).attr('checked','checked').trigger('change');
        } else {
            $(this).attr('checked','').parent().prev().find(':radio').attr('checked','checked').trigger('change')
        }
    });
    $('#form select').each( function() {
        $(this).val($(this).attr('selected'))
    });
    uiTheme();
}

