var img_star_on = new Image();
img_star_on.src = "/img/superillu/elements/star_on.gif";
var img_star_off = new Image();
img_star_off.src = "/img/superillu/elements/star_off.gif";

// create a javascript class to hold or callback methods
var rjsCallback = {
	save_vote: function(result) {
//		alert(result);
		var a = result.parseJSON();
		if (a['state'] == "ok") {
			var ov;
			var yv;
			var vi;
			var ri;
			for (var i = 1; i <= 5; i++) {
				if (ov = document.getElementById('bv_vote_others_'+i))
					ov.src = (i <= a['avg_vote']) ? img_star_on.src : img_star_off.src;
				if (yv = document.getElementById('bv_vote_yours_'+i))
					yv.src = (i <= a['vote']) ? img_star_on.src : img_star_off.src;
				if (vi = document.getElementById('bv_vote_interactive'))
					vi.style.display="none";
				if (ri = document.getElementById('bv_vote_result'))
					ri.style.display="inline";
			}
		}
	},

	save_comment: function(result) {
		show_result('bv_comment', result);
	},

	send_media: function(result) {
		show_result('bv_mail_friend', result);
	},

	contact_user: function(result) {
		show_result('bv_contact', result);
	},

	load_exif: function(result) {
		var a = result.parseJSON();
		var p = document.getElementById('bv_exif_list');
		p.innerHTML = '';
		for (key in a) {
			if (key != 'toJSONString') {
				var li = document.createElement('li');
				var t = document.createTextNode(key+": "+a[key]);
				li.appendChild(t);
				p.appendChild(li);
			}
		}
		togglePers('bv_exif');
	},

	alarm: function(result) {
		show_result('bv_alarm', result);
	},

	load_list: function(result) {
		
		var a = result.parseJSON();
		var state = a['state'];
		var target = a['target'];
		var content = a['html'];
		var page = a['page'];
		var pagecount = a['pagecount'];
		var key = a['key'];
		var path = a['path'];
		var elem;
		if (elem = document.getElementById(target)) {
			
			elem.innerHTML = content;
			
			if (document.getElementById('bv_nav_left_'+key) && document.getElementById('bv_nav_right_'+key)) {
				if (page > 1) {
					document.getElementById('bv_nav_left_link_'+key).href = "javascript:rjs.load_list('bv_box_"+key+"', '"+path+"/"+(page-1)+"');";
					document.getElementById('bv_nav_left_'+key).style.visibility = 'visible';
				}
				else {
					document.getElementById('bv_nav_left_'+key).style.visibility = 'hidden';
				}
			
				if (pagecount > page) {
					document.getElementById('bv_nav_right_link_'+key).href = "javascript:rjs.load_list('bv_box_"+key+"', '"+path+"/"+(page+1)+"');";
					document.getElementById('bv_nav_right_'+key).style.visibility = 'visible';
				}
				else {
					document.getElementById('bv_nav_right_'+key).style.visibility = 'hidden';
				}
			}
			
		}
	},
	
	load_viewers: function(result) {
		
		var a = result.parseJSON();
		var state = a['state'];
		var target = a['target'];
		var content = a['html'];
		var page = a['page'];
		var pagecount = a['pagecount'];
		var path = a['path'];
		var media_id = a['media_id'];
		var elem;
		if (elem = document.getElementById(target)) {

			elem.innerHTML = content;
			
			if (document.getElementById('bv_nav_left_viewers') && document.getElementById('bv_nav_right_viewers')) {
				if (page > 1) {
					document.getElementById('bv_nav_left_viewers_link').href = "javascript:rjs.load_viewers('"+target+"', "+media_id+", "+(page-1)+");";
					document.getElementById('bv_nav_left_viewers').style.visibility = 'visible';
				}
				else {
					document.getElementById('bv_nav_left_viewers').style.visibility = 'hidden';
				}
			
				if (pagecount > page) {
					document.getElementById('bv_nav_right_viewers_link').href = "javascript:rjs.load_viewers('"+target+"', "+media_id+", "+(page+1)+");";
					document.getElementById('bv_nav_right_viewers').style.visibility = 'visible';
				}
				else {
					document.getElementById('bv_nav_right_viewers').style.visibility = 'hidden';
				}
			}
			
		}
	},

	conact_allowed: function(result) {
		var a = result.parseJSON();
		var f = document.getElementById('bv_contact_form');
		if (a['state'] == "ok") {
			f.style.display = "inline";
		} else {
			show_result('bv_contact', result);
			f.parentNode.removeChild(f);
		}
		togglePers('bv_contact');
	},
	
	get_user_tags: function(result) {
		var a = result.parseJSON();
		var f = document.getElementById('media_user_tags');
		if (a['state'] == "ok") {
			f.value = a['tagstring'];
		}
	},
	
	save_user_tags: function(result) {
		var a = result.parseJSON();
		if (a['state'] == "ok") {
			togglePers('bv_tag_it');
			if (a['changed'] == 1) window.location.reload();
		}
	}
	
}
var rjs = new ajax(rjsCallback);

function show_result(topic, result) {
	var a;
	var form;
	var parent;

	// Rueckgabe JSON parsen
	a = result.parseJSON();

	// Formular- und uebergeordneten Knoten finden
	if (form = document.getElementById(topic+'_form')) {
		parent = form.parentNode;

		// Welche Aktion ausfuehren?
		var action = a['link_action'] ? a['link_action'] : "show";
			

		// Vorlage fuer Rueckgabe clonen und befuellen
		var template = document.getElementById('bv_media_nav_result');
		var message = template.cloneNode(true);
		message.getElementsByTagName("span")[0].innerHTML = a['message'];
		
		var ref = message.getElementsByTagName("a")[0];
		
		if (action != "none") {
			ref.setAttribute('href', "javascript: "+action+"Pers('"+topic+"');");
		}
		else {
			ref.style.display = "none";
		}

		// Formular verstecken und Nachricht ausgeben
		form.style.display = "none";
		parent.appendChild(message);
		message.style.display = "block";

		// Formular zuruecksetzen, wenn alles funktioniert hat
		if (a['state'] == "ok") {
			form.reset();
		}
	}
}

function do_vote(vote) {
	rjs.save_vote(vote);
}

function do_comment() {
	if (document.form_comment.body) {
		rjs.save_comment(document.form_comment.body.value);
	}
}

function do_send_media() {
	if (document.form_send_media.body && document.form_send_media.email) {
		rjs.send_media(document.form_send_media.nickname.value, document.form_send_media.email.value, document.form_send_media.body.value);
	}
}

function do_contact_user() {
	if (document.form_contact_user.body) {
		rjs.contact_user(document.form_contact_user.body.value);
	}
}

function do_alarm() {
	if (document.form_alarm.body) {
		rjs.alarm(document.form_alarm.body.value);
	}
}

function do_load_exif() {
	if (document.getElementById('bv_exif_list').hasChildNodes()) {
		togglePers('bv_exif');
	} else {
		rjs.load_exif();
	}
}

function do_load_list(elid, search) {
	var elem = document.getElementById(elid);
	var load = elem.innerHTML.indexOf('<!-- EMPTY -->') >= 0 && elem.style.display == 'none';
	toggleBox(elid);
	if (load) {
		rjs.load_list(elid, search);
	}
}

function do_save_user_tags(user_id, media_id) {
	if (user_id > 0 && media_id > 0) rjs.save_user_tags(user_id, media_id, document.getElementById('media_user_tags').value);
}

function contact_allowed(user_id) {
	var f = document.getElementById('bv_contact_form');
	if (f && f.style.display == "none") {
		rjs.conact_allowed(user_id);
	} else {
		togglePers('bv_contact');
	}
}

function get_user_tags(user_id, media_id) {
	if (document.getElementById('bv_tag_it').className == 'bv_pers_link bv_active')
		rjs.get_user_tags(user_id, media_id);
}
function google_ad_request_done(google_ads)
 {
  var s ="";
  var i;
  if(google_ads.length==0) {return;}
  if(google_ads.length>0)
   {
    dc_skip = parseInt(dc_skip) + google_ads.length;
    dc_px_head="13"; dc_px_text="12"; dc_px_url="12"; dc_padding_top="5"; padding_bottom="10"; 
    switch(google_ads.length)
     {
      case 1: dc_px_head=dc_g_head1; dc_px_text=dc_g_text1; dc_px_url=dc_g_url1; dc_padding_top="5"; padding_bottom="15"; break;
      case 2: dc_px_head=dc_g_head2; dc_px_text=dc_g_text2; dc_px_url=dc_g_url2; dc_padding_top="5"; padding_bottom="15"; break;
      case 3: dc_px_head=dc_g_head3; dc_px_text=dc_g_text3; dc_px_url=dc_g_url3; dc_padding_top="5"; padding_bottom="10"; break;
     }
    s+='<div id="google_ad_510x200" style="width:'+dc_g_box_width+'px; height:auto; text-align:left; background-color:'+dc_g_box_bgc+'; '+dc_g_box_border+'">' +
       '<div style="width:'+dc_g_box_width+'px; height:auto; background-color:'+dc_g_box_bgc+'; text-align:left; ">' +
       '<div style="height:20px;  background-color:' + dc_g_label_bgc + '; margin-bottom:0px;">' +
       '<div class="google_font" style="float:left; padding:5px 9px 3px 9px;">' +
       '<a style="color:'+dc_g_text_c+'; font-size:12px; font-weight:normal;text-decoration:none; outline:0; color:'+dc_g_label_fontc+'; " href="'+ google_info.feedback_url +'" target="_blank">'+dc_g_label_text+'</a>' +
       '</div><div class="clear"></div></div>' +
       '<div style="width:'+dc_g_box_width+'px; overflow:hidden; background-color:'+dc_g_box_bgc+';">' +
       '<div class="google_font" style="padding:'+dc_padding_top+'px 9px '+padding_bottom+'px 9px; text-align:left; background-color:'+dc_g_box_bgc+';">';
       for (i = 0; i < google_ads.length; i++)
        {
         s+='<a class="google_font" target="_new" href="' + google_ads[i].url + '" onmouseout="window.status=\'\';return true" onmouseover="window.status=\'go to ' + google_ads[i].visible_url + '\';return true" >' +
            '<left><span style="color:'+dc_g_head_c+'; font-size:'+dc_px_head+'px; font-weight:bold; line-height: 1.2;">' + google_ads[i].line1 + '<br /></span></a></left>' +
            '<left><span style="color:'+dc_g_text_c+'; font-size:'+dc_px_text+'px; line-height:'+dc_px_text+'px ;font-weight:normal;line-height: 1.3;">' + google_ads[i].line2 + ' ' + google_ads[i].line3 + '<br /></span></left>' +
            '<a class="google_font" target="_new" href="' + google_ads[i].url + '" onmouseout="window.status=\'\';return true" onmouseover="window.status=\'go to ' + google_ads[i].visible_url + '\';return true" >' +
            '<left><span style="color:'+dc_g_url_c+'; font-size:'+dc_px_url+'px; font-weight:lighter;">' + google_ads[i].visible_url + '<br /></span></a></left>';
         if(i<(google_ads.length-1)){s+='<left><span style="font-size:8px; font-weight:lighter;"><br /></span></a></left>'}
        } // end for
    s+='</div></div></div></div>';
    document.write(s);
    return;
  }
 }