fcms_include('fcms');
var fcmssuche = {
    gotoPage: function (page,pluginname) {
        fcmssuche.setFormElementValue('fs['+pluginname+'][paging][page]',page + 1);
        fcmssuche.submitForm('true');
    },

    submitForm: function (state) {
        fcmssuche.setFormElementValue('fs[control][paging]',state);
        fcmssuche.setFormElementValue('username','');
        fcmssuche.setFormElementValue('password','');
        document.forms['cms2search'].submit();
    },

    setFormElementValue: function (name,value) {
        if (!document.forms['cms2search'].elements[name]) {
            fcmssuche.addHiddenElement(name,value);
        }
        document.forms['cms2search'].elements[name].value = value;
    },

    addHiddenElement: function (name,value) {
       var t1 = Builder.node('input',{ type: 'hidden', name: name, value: value });

       theform = document.forms['cms2search'];
       theform.appendChild(t1);
    },

    toggleForm: function () {
        if ($('suche-optional').style.display == 'none') {
            new Effect.Appear('suche-optional');
           // new Effect.Fold('suche-optional-show',{queue: 'end'});
           // new Effect.Appear('suche-optional-hide',{queue: 'end'});
	  $('suche-optional-show').style.display = 'none';
	  $('suche-optional-hide').style.display = 'block';
        } else {
            new Effect.Fade('suche-optional');
          //  new Effect.Fold('suche-optional-hide',{queue: 'end'});
          //  new Effect.Appear('suche-optional-show',{queue: 'end'});
	  $('suche-optional-hide').style.display = 'none';
	  $('suche-optional-show').style.display = 'block';
        }
    },

    setSearchOrder: function (pluginname,name,order) {
        fcmssuche.setFormElementValue('fs['+pluginname+'][order]',name);
        fcmssuche.setFormElementValue('fs['+pluginname+'][order_dir]',order);
        fcmssuche.submitForm('true');
    },

    searchRubrik: function () {
        var elem  = document.forms['cms2search']['fs[rubrik][findRubrik]']; 
        var param = 'find=' + $F(elem);

        fcmssuche.clearResults();
        fcmssuche.noresult(false);
        fcmssuche.progress(true);
        if ($F(elem) != "") {
            var request = new Ajax.Request(
                '/_fWS/json/antz/833/findRubrik',
                {
                    parameters: param,
                    onSuccess:  function(xhr,json){
		        fcmssuche.progress(false);

                        if (xhr.responseJSON.data.nodes) {
                            fcmssuche.showResults(xhr.responseJSON.data.nodes);
                        } else {
                            fcmssuche.clearResults();
		            fcmssuche.noresult(true);
		        }
                    }
                }
            );
        }
    },

    noresult: function (show) {
        if (show) {
            $('suchparam_rubrik_search_noresult').setStyle({display: 'block'});
        } else {
            $('suchparam_rubrik_search_noresult').setStyle({display: 'none'});
        }
    },

    progress: function (show) {
      if (show) {
        $('suchparam_rubrik_search_progress').setStyle({display: 'block'});
      } else {
        $('suchparam_rubrik_search_progress').setStyle({display: 'none'});
      }
    },

    clearResults: function() {
        var results = $('suchparam_rubrik_search_results');
        if (results.hasChildNodes()) {
            while (results.childNodes.length >= 1) {
                results.removeChild(results.firstChild);
            }
        }
    },

    showResults: function (nodes) {
//        console.debug(nodes);
        var results = $('suchparam_rubrik_search_results');

        fcmssuche.clearResults();

        for (i in nodes) {
            var id       = nodes[i].id.substr(nodes[i].id.indexOf('-') + 1,nodes[i].id.length);
            var checkbox = Builder.node(
                'input',
                {
                    type:  'checkbox',style: '', 
                    name:  'fs[rubrik][id][]', 
                    value: id, 
                    onclick:'fCMSUser.antz.rubrik.selectSubTrees(this,\'rubrik_'+id+'\')'
                }
            );

            var t1 = Builder.node(
                'div',
                { id: 'rubrik-select-'+nodes[i].id }, 
                [   
                    checkbox,
                    Builder.node( 
                        'span',
                        { id: 'rubrik-select-' + nodes[i].id + '-name' }, 
                        nodes[i].data.text + ' [' + nodes[i].data.count + ']'
                    )
                ]);

            results.appendChild(t1);

            var ev = function (ev) {
//                console.debug($('rubrik-'+ev.target.value));

                if (ev.target) {
                    var t = ev.target;
                } else {
                    var t = event.srcElement;
                }

                var treeboxes = $('rubrik-'+t.value).getElementsByTagName('input');
//                console.debug(treeboxes);

                for (var i=0; i < treeboxes.length; i++) {
                    if (treeboxes[i].type == 'checkbox') {
                        treeboxes[i].checked = t.checked;
                    }
                }
            };

	    if (checkbox.addEventListener) {
                checkbox.addEventListener('click',ev,false);
            } else if(checkbox.attachEvent) {
                checkbox.attachEvent('onclick',ev);
            }
        }
    }
}
