dojo.require("dijit.form.TextBox");
dojo.require("dijit.form.ValidationTextBox");
dojo.require("dojox.validate.regexp");
dojo.require("dijit.form.FilteringSelect");
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dijit.Dialog");
dojo.require("dojo.parser");

var canaisStore;
var categoriasStore;
var subcategoriasStore;
var multimidiaDialog;
var multimidiaIframe;

dojo.addOnLoad(function() {
    canaisStore = new dojo.data.ItemFileReadStore({"url":"/data-stores/canais/"});
    categoriasStore = new dojo.data.ItemFileReadStore({"url":"/data-stores/categorias/force_filter/true/"});
    subcategoriasStore = new dojo.data.ItemFileReadStore({"url":"/data-stores/categorias/force_filter/true/"});
    
    dojo.forEach(zendDijits, function(info) {
        var n = dojo.byId(info.id);
        if (null != n) {
            dojo.attr(n, dojo.mixin({ id: info.id }, info.params));
        }
    });
    dojo.parser.parse();
	
});

if (zend == undefined) {
    var zend = {};
}

zend.findParentForm = function(elementNode) {
    while (elementNode.nodeName.toLowerCase() != 'form') {
        elementNode = elementNode.parentNode;
    }
    return elementNode;
};

var zendDijits = [
	{"id":"filtro","params":{"dojoType":"dijit.form.TextBox"}},
    {"id":"canal","params":{"store":"canaisStore","searchAttr":"nome","autocomplete":"false","invalidMessage":"Canal Inv&aacute;lido!","dojoType":"dijit.form.FilteringSelect"}},
    {"id":"categoria","params":{"store":"categoriasStore","required":"false","searchAttr":"nome","autocomplete":"false","invalidMessage":"Categoria Inv&aacute;lida!","dojoType":"dijit.form.FilteringSelect"}},
    {"id":"subcategoria","params":{"store":"subcategoriasStore","required":"false","searchAttr":"nome","autocomplete":"false","invalidMessage":"Subcategoria Inv&aacute;lida!","dojoType":"dijit.form.FilteringSelect"}},
    {"id":"nome","params":{"maxLength":20,"trim":"true","required":"true","invalidMessage":"Campo obrigatório.","dojoType":"dijit.form.ValidationTextBox"}},
    {"id":"email","params":{"maxLength":80,"trim":"true","required":"true","invalidMessage":"Email inválido.","regExpGen":"dojox.regexp.emailAddress","dojoType":"dijit.form.ValidationTextBox"}}
];

function createWidgets(oneEntry){

    var widget = null;
    var div = document.createElement('div');
    if(oneEntry.type=="Menu"){
        widget = new dijit.Menu(oneEntry.params, div);
    }
    else if(oneEntry.type=="MenuItem"){
        widget = new dijit.MenuItem(oneEntry.params, div);
    }
    else if(oneEntry.type=="MenuSeparator"){
        widget = new dijit.MenuSeparator(oneEntry.params, div);
    }
    else{
        alert('invalid type: '+oneEntry.type);
        return;
    }
    dojo.forEach(oneEntry.children,
        function(child, index, array) {
            var widgetChild = createWidgets(child);
            widget.addChild(widgetChild);
       }
    );
    return widget;
}

function getCategorias(canal_id){
	var url = "/data-stores/categorias/canal/"+canal_id+"/";
	dijit.byId('categoria').setDisplayedValue('carregando...');
	dijit.byId('subcategoria').setDisplayedValue('carregando...');
	var categoriasStore = new dojo.data.ItemFileReadStore({"url":url});
	dijit.byId('categoria').store = categoriasStore;
	dijit.byId('categoria').setDisplayedValue('');
	dijit.byId('subcategoria').setDisplayedValue('');
}

function getSubcategorias(categoria_id){
	var url;
	if (categoria_id != '') {
		url = "/data-stores/categorias/categoria_pai/"+categoria_id+"/";
	}
	else {
		url = "/data-stores/categorias/force_filter/true/";
	}
	dijit.byId('subcategoria').setDisplayedValue('carregando...');
	var subcategoriasStore = new dojo.data.ItemFileReadStore({"url":url});
	dijit.byId('subcategoria').store = subcategoriasStore;
	dijit.byId('subcategoria').setDisplayedValue('');
}

function abrirMultimidia(qualidade)
{
	if (multimidiaDialog) {
		multimidiaDialog.destroyRecursive();
	}
	multimidiaDialog = new dijit.Dialog({
		title: 		"Guia Festas - Vídeo Multimídia - " + qualidade + "k",
		style: 		"width: 570px; height: 462px; overflow: hidden; background-color: #ffffff",
		onCancel:	function(){
			multimidiaDialog.hide();
			multimidiaIframe.src = "";
		}
	});
	
	multimidiaIframe = document.createElement('iframe');
	multimidiaIframe.setAttribute("width","570");
	multimidiaIframe.setAttribute("height","450");
	multimidiaIframe.setAttribute("frameborder","0");
	multimidiaIframe.setAttribute("scrolling","no");
	multimidiaIframe.setAttribute("marginheight","0");
	multimidiaIframe.setAttribute("marginwidth","0");
	multimidiaIframe.setAttribute("style","border: 1px solid #ffffff");
	multimidiaIframe.setAttribute("src","/mult_" + qualidade + "k/index.html");
	
	multimidiaDialog.setContent(multimidiaIframe)
	multimidiaDialog.show();
}
