document.observe("dom:loaded", registerToolTips);
document.observe("dom:loaded", registerCartButtons);

function registerToolTips() {
    $$('.slvexport').each(function(e) {
	if (e.prototip) return;
	new Tip(e,  $('exportFormTpl').innerHTML, {
	    title:'Export selected sequences',
	    target: e.up(),
	    style: 'slvDlDropdown'
	});
	e.observe('prototip:shown', function() {
	    $$('.slvsubmitexport').each(function(b){
		b.observe('click',function() {
		    b.up().select('.slvinputdb')[0].setValue(getDB());
		});
	    });
	});
    });


    $$(".popup").each(function(e) {
	if (e.prototip) return;
	new Tip(e, e.getAttribute("popuptext"),
		{ title: e.getAttribute("popuptitle")});

    });
    $$("img[alt]").each(function(e) {
        new Tip(e, '', { title: e.getAttribute("alt") });
    });
}

function registerCartButtons() {
    $$('.slvclear').each(function(e){
	e.observe('click', function() {
            callServer('cart', {action:'clear'}, function() {
	        updateCartSize('empty');
		Event.fire(e,'slv:reloadCart');
	    });
	});
    });
    $$('.slvshow').each(function(e){
          e.observe('click', function() {
          location.href="/search/show/"+getDB().split("-")[0]+"/cart";
        });
    });
}

function showCart() {
	location.href = "/search/show/"+getDB().split("-")[0]+"/cart";
}

function clearCart() {
	var params = {
        type: 'cart',
		action: 'clear'
	};
    params = wrapParams(params);
    new Ajax.Request('/WS/', {
        parameters: params
    });
}

function getDB() {
    //if tx_pmtree_dbselect = null use extjs
    if ($('tx_pmtree_dbselect')==null) return Ext.getCmp('database').getValue();
    else return $F('tx_pmtree_dbselect');
}

function wrapParams(parms) {
    var newParms = {};
    for (var key in parms) {
        newParms["tx_pmtree_pi1[" + key + "]"] = parms[key];
    }
    return newParms;
}

function unwrapParams(parms) {
    var newParms = {};
    for (var key in parms) {
        newParms[key.replace(/^tx_pmtree_pi1\[/,"").replace(/\]$/,"")] = parms[key];
    }
    return newParms;
}

function callServer(cmd, params, func) {
    params['db'] = getDB();
    params['type'] = cmd;
    params = wrapParams(params);

    return new Ajax.Request('/WS/', {
//        method: 'get',
        parameters: params,
        onSuccess: function(e) { func(e.responseText.evalJSON()); }
    });
}

function createExport(obj) {
    var args = $$('.prototip .exportForm')[0].serialize({hash:true});
    args.action = 'export';
    callServer('job', args, function() {location.href = "/download";});
}

function getTaxOrDBName(val) {
    var form =  $("tx_pmtree_pi1_options_form");
    var opts = form.select('option');
    var opt = opts.find(function(o) { return o.value === val; });
    return opt.innerHTML;
}

function createDetailPopup(element, title, treeid) {
    var params = {
	db:getDB(),
	type:'fulldetail',
	treeid:treeid
    };
    params = wrapParams(params);
    params['id'] = 3;
    params['type'] = 1;

    new Tip(element, {
	title:title,
	ajax: {
	    url: '/',
	    options: { method: 'get', parameters: params }
	},
	style: 'slvDetail',
	target: $('wrapcontent')
    });
}

function updateCartSize(size) {
    if (size==0) size=="empty";
    $('cartContent').update(size);
}

