/* EMWEE.de JS Klassendefinition */
/* (c) 2007 Markus Wirtz. Alle Rechte vorbehalten. */
/* Nutzung, auch nur in Teilen, nur mit vorheriger schriftlicher Genehmigung. */


// Tabs

function emweesub_active (d) {
	$$('a[id^="emweesubtab-"]').invoke('removeClassName', 'current');
	$("emweesubtab-"+d).addClassName('current');

	if (d == "all") {
		$$('div.tab').invoke('show');
	} else {
		$$('div.tab').invoke('hide');
		$("emweesub-"+d).show();
	}
}

// Menu: READERload

function emweemenu_rl_ua () {
	var string=$('ua_string').getValue();
	var params = { ua: string };
	var href = "http://emwee.de/api/rl/find?" + Object.toQueryString(params);
	$('ua_string_link').setAttribute("href", href);
}

function emweemenu_rl_getBrands () {
	var url = "/api/devices/brands";
	var filter = $('model_brandfilter').value; 
	var pars = "format=json";
	if (filter.length >=1) { pars += "&filter="+filter+"%25"; }
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: emweemenu_rl_updateBrands});
}

function emweemenu_rl_updateBrands(orgRequest) {
	var brands = orgRequest.responseJSON;
	var sele = $('model_brand');
	sele.options.length = 0;
	for (var j = 0; j < brands.length; j++) {
		sele.options[sele.options.length] = new Option(brands[j], brands[j], false, false);
	}
	emweemenu_rl_getModels();
}

function emweemenu_rl_getModels () {
	var url = "/api/devices/models";
	var filter = $('model_modelfilter').value; 
	var brandfilter = $('model_brand').value; 
	var pars = "format=json";
	if (filter.length >=1) { pars += "&filter="+filter+"%25"; }
	if (brandfilter.length >=1) { pars += "&brandfilter="+brandfilter; }
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: emweemenu_rl_updateModels});
}

function emweemenu_rl_updateModels(orgRequest) {
	var models = orgRequest.responseJSON;
	var sele = $('model_model');
	sele.options.length = 0;
	for (var id in models) {
		sele.options[sele.options.length] = new Option(models[id], id, false, false);
	}
	emweemenu_rl_getUAs();
}

function emweemenu_rl_getUAs () {
	var url = "/api/devices/uas";
	var id = $('model_model').value; 
	// alert(id);
	var pars = "format=json";
	if (id.length >=1) { pars += "&id="+id; }
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: emweemenu_rl_updateUAs});
}

function emweemenu_rl_updateUAs(orgRequest) {
	var uas = orgRequest.responseJSON;
	var div = $('model_uas');
	var output = "<ul>";
	for (var id in uas) {
		output += '<li><a href="/api/rl/find?w=220&ua='+uas[id]+'" onclick="return Popup.open({url:this.href,width:240,height:540});">'+uas[id]+'</a></li>\n';
	}
	output += "</ul>\n";
	div.innerHTML=output;
}

function emweemenu_rl_getLog () {
	var url_log = "/api/rl/searches";
	var url_info = "/api/rl/searchesinfo";
	var uid = $('log_uid').value; 
	var auth = $('log_auth').value; 
	var key = $('log_key').value+"%25"; 
	var brand = $('log_brand').value+"%25";
	var model = $('log_model').value+"%25";
	var start = $('log_start').value;
	if ((start < 1) || (start > 99)) { start="1"; $('log_start').value=1; }
	var count = $('log_count').value;
	var pars = "format=json";
	if (uid.length >=1) { pars += "&uid="+uid; }
	if (auth.length >=1) { pars += "&auth="+auth; }
	if (key.length >=1) { pars += "&key="+key; }
	if (brand.length >=1) { pars += "&brandfilter="+brand; }
	if (model.length >=1) { pars += "&modelfilter="+model; }
	var myAjaxInfo = new Ajax.Request(url_info, {method: 'get', parameters: pars, onComplete: emweemenu_rl_updateLogInfo});
	if (start.length >=1) { pars += "&start="+start; }
	if (count.length >=1) { pars += "&count="+count; }
	var myAjaxLog = new Ajax.Request(url_log, {method: 'get', parameters: pars, onComplete: emweemenu_rl_updateLog});
}

function emweemenu_rl_updateLog(orgRequest) {
	var uid = $('log_uid').value; 
	var auth = $('log_auth').value; 
	var logs = orgRequest.responseJSON;
	var div = $('log_table');
	var output = "<table class=\"form-table\">\n";
	for (var id in logs) {
		l = logs[id];
		output += '<tr valign="top">';
		output += '<th>'
		if (l.brand != null) { output += '<img align="right" src="/api/devices/image?id='+l.wurflid+'">'; }
		output += id+'<br /><span style="font-weight: normal; font-size: 10px;">'+l.time+'</span>';
		output += '</th>';
		output += '<td>';
		output += '<input type="text" name="log-'+id+'" id="log-'+id+'" value="'+l.ua+'" size="50" maxlength="240" style="font-size: 11px;" /><br /><label>';
		if (l.brand == null) { modelname = 'Unbekannt';} else { modelname = l.brand + ' ' + l.model; }
		output += '<a href="/api/rl/find?w=220&ua='+l.ua+'" onclick="return Popup.open({url:this.href,width:240,height:540});">'+modelname+'</a>';
		output += ' | <a href="/api/rl/searchlog?uid='+uid+'&auth='+auth+'&key='+id+'" onclick="return Popup.open({url:this.href, width:1000, height: 550});">Log</a>';
		output += ' | Devices <a href="/api/devices/details?ua='+l.ua+'" onclick="return Popup.open({url:this.href, width:640, height: 480});">Details</a>';
		output += '</label></td>\n';
		output += '<td>IP: <a href="http://www.db.ripe.net/whois?form_type=simple&full_query_string=&searchtext='+l.ip+'&do_search=Search" onclick="return Popup.open({url:this.href, width:860, height: 600});">'+l.ip+'</a>';
		output += '<br />ID: '+l.wurflid+'<br />ROOT: '+l.wurflroot+'</td>\n';
		output += '<td><ul style="margin: 0px; padding: 0px;">';
		var found = l.found;
		for (var i = 0; i < found.length; i++) {
			f = found[i];
			output += '<li style="line-height: 100%"><a href="'+f.url+'" target="_blank">'+f.reader+'</a> ['+Math.round(f.size/1024)+' kB]</li>';
		}
		output += '</ul></td>';
		output += "</tr>\n";
	}
	output += "</table>\n";
	// alert(output);
	div.innerHTML=output;
}

function emweemenu_rl_updateLogInfo(orgRequest) {
	var info = orgRequest.responseJSON;
	$('log_info').innerHTML = info.count + " Treffer insgesamt";
}

function emweemenu_rl () {
	var form=$('emweeform_rl');

	// User-Agent Suche?
	if (form['ua_string'].getValue().length >= 1) {
		href=$('ua_string_link').getAttribute("href");
		Popup.open({url:href});
		return false;
	};

	return true;
}

// Misc

var Popup = {
  open: function(options)
  {
    this.options = {
      url: '#',
      width: 240,
      height: 480,
      name:"_blank",
      location:"no",
      menubar:"no",
      toolbar:"no",
      status:"yes",
      scrollbars:"yes",
      resizable:"yes",
      left:"",
      top:"",
      normal:false
    }
    Object.extend(this.options, options || {});

    if (this.options.normal){
        this.options.menubar = "yes";
        this.options.status = "yes";
        this.options.toolbar = "yes";
        this.options.location = "yes";
    }

    this.options.width = this.options.width < screen.availWidth?this.options.width:screen.availWidth;
    this.options.height=this.options.height < screen.availHeight?this.options.height:screen.availHeight;
    var openoptions = 'width='+this.options.width+',height='+this.options.height+',location='+this.options.location+',menubar='+this.options.menubar+',toolbar='+this.options.toolbar+',scrollbars='+this.options.scrollbars+',resizable='+this.options.resizable+',status='+this.options.status
    if (this.options.top!="")openoptions+=",top="+this.options.top;
    if (this.options.left!="")openoptions+=",left="+this.options.left;
    window.open(this.options.url, this.options.name,openoptions );
    return false;
  }
}

function zeigeEigenschaften(obj) {
	
	var namen = '';
	for (var name in obj) namen += name + "\n";
	return namen;
	
}
