_EDIT_ID=null;
_ADMIN_DB='compliance_advisor'
_ACONN = new CouchDB(_ADMIN_DB);
var id_match = window.location.href.match(/\?id=([^\#\&]*)/);
if(id_match && id_match[1]) _EDIT_ID = id_match[1];

    function admin_before_create(e) {
	switch(e.currentTarget.id) {
	}
    }
    function admin_before_show(e) {
	switch(e.currentTarget.id) {
		case 'admin':
	    		var modules = _ACONN.view('modules/list_all');
			$('#admin_module_list').empty();
            		$(modules.rows).each(function(i,val) {
				var btn = $('<a onmousedown="$.mobile.pageLoading();" onclick="_EDIT_ID=\''+val.id+'\'" data-role="button" href="#admin_doc" data-icon="gear"></a>');
				btn.append(val.key);
				$('#admin_module_list').append(btn);
				btn.button();
            		});
			break;
		case 'admin_doc':
			$('#admin_form').find("input, textarea").val('');
			$('#ignore_first').val("on");
			if(_EDIT_ID) {
				var doc = load_module(_EDIT_ID,true);
				$('#module_title').val(doc.title);
				$('#module_group').val(doc.group);
				$('#module_description').val(doc.description);
				$('#json_text').val(JSON.stringify(doc.questions,null,'\t'));
			}
			$.mobile.pageLoading(true);
			break;
	}
    }

   function save_module() {
	var title = $('#module_title').val();
	var group = $('#module_group').val();
	var description = $('#module_description').val();
	var json_text = $('#json_text').val();
	var questions = JSON.parse(json_text);
	if(!title || !questions || !questions.length) {
		alert('A module title and valid questions are required!');
		return false;
	}
	var doc = {
		title : title,
		group : group,
		type : 'module',
		description : description,
		questions : questions
	};
	if(_EDIT_ID) {
		doc = $.extend({},load_module(_EDIT_ID),doc);
	}
	var res = _ACONN.save(doc);
	$.mobile.changePage("#admin");	
    }
 
        function convert_string(data)
        {
	   if(!data) return;
           var ignore_first = ($("#ignore_first").val() == 'on');
           ary = CSVToArray(data);
           var state = 0;
           var first = false;
           var nodes = [];
           var questions = [];
           var choices = {};
           var requirements = {};
           var n;
           for(var i=0; i<ary.length; i++)
           {
                var row = ary[i];
                if(!row || !(row instanceof Array) || row.join("").replace(/\$/g,'').trim() == "") continue;
                if(!first && ignore_first)
                {
                   first = true;
                   continue;
                }
                state++;
                switch(state)
                {
                    case 1:
                        n = new Question(row.join(''));
                        break;
                    case 2:
                        for(var j=0; j<row.length; j++)
                        {
                           //if(!row[j].replace(/$/g,'').trim()) continue;
                           n.choices.push(new Choice(row[j]));
                        }
                        break;
                    case 3:
                        for(var j=0; j<row.length; j++)
                        {
                           n.choices[j].requirements.push(new Requirement(row[j])); 
                        }
                        nodes.push(n);
                        state= 0;
                        break;
                }
           }
           $("#json_text").val(JSON.stringify(nodes, null, '\t'));
           return nodes;
        }
        
 
$('div[data-role=\'page\']').live('pagebeforecreate',admin_before_create);
$('div[data-role=\'page\']').live('pagebeforeshow',admin_before_show);


/*
*/
$(function() {
/*
     var regdocs  = _CONN.view('regulations/list_all');
	for(var i=0; i<regdocs.rows.length; i++) {
		_ACONN.deleteDoc(regdocs.rows[i].value);
        }
return;
     ary = CSVToArray($('#csv_regs').val());
	var cat = '';
	var cats = [];
	var catset = false;
	var cat_order = 0;
	for(var i=0; i<ary.length; i++) {
		if(!ary[i] || !ary[i].length) continue;
		var reg = ary[i][0].trim();
		var url = ary[i][1];
		if(!url) {
			var level_match = reg.match(/^(-+)/);
			var level = (level_match && level_match[1])? level_match[1].length : 0;	
			if(level == 0) {
				cats = [];
				cat_order++;
			}
			cats[level] = reg.replace(/^-+/,'');
		} else {
			catset = true;
			url = url.trim();
			var doc = {
				type : 'regulation',
				description: reg,
				order : i*10,
				categories: cats,
				category_order: cat_order,
				url: url,
			}
			var res = _ACONN.save(doc);
		}
	}
*/
});

