function urlencode (str) {
    str = (str+'').toString();
    return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').
                                                                    replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
}
function urldecode (str) {
    return decodeURIComponent((str + '').replace(/\+/g, '%20'));
}
var fi = {
	selected : [
		0,0
	],
	config : [
		{
			name:"FOXX&reg;20",
			submenu : [
				{
					name     : "Europa",
					chart    : '/logicalLine.php?type=chart&wkn=A0G88Y',
					dataUrl  : '/logicalLine.php?type=data&wkn=A0G88Y'
				},
				{
					name     : "Welt",
					chart    : '/logicalLine.php?type=chart&wkn=A0G88Z',
					dataUrl  : '/logicalLine.php?type=data&wkn=A0G88Z'
				}
			]
		},
		{
			name:"FOXX&reg;10",
			submenu : [
				{
					name     : "Deutschland",
					chart    : '/logicalLine.php?type=chart&wkn=A0XW5M',
					dataUrl  : '/logicalLine.php?type=data&wkn=A0XW5M'
				},
				{
					name     : "Emerg.Markets",
					chart    : '/logicalLine.php?type=chart&wkn=A0XW5N',
					dataUrl  : '/logicalLine.php?type=data&wkn=A0XW5N'
				}
			]
		}
	],
	onload : function() {
		fi.build();
		jQuery("#box_fondsindizes a").click(function () {
			var rel = jQuery(this).attr("rel").split("|");
			fi.selected[0] = rel[1];
			fi.selected[1] = rel[2];
			fi.onload();
		});
	},
	handleClick : function() {

	},
	build : function() {
		var html = '<table><tbody><tr><td><ul class="nav-markets">';
		html += fi.buildList(0, fi.config);
		html += "</ul></td></tr>";
		html += '<tr style="height:92px"><td style="text-align:center;"><img id="chartImg" width="170" border="0" src="'+fi.config[fi.selected[0]].submenu[fi.selected[1]].chart+'" /></td></tr>';
		html += '<tr id="fiStockDevelopment"><td></td></tr>'
		html += '<tr><td><ul class="nav-markets">';
		html += fi.buildList(1, fi.config[fi.selected[0]].submenu);
		html += "</ul></td></tr>";
		html += "</table>";
		jQuery("#box_fondsindizes > div").html(html);
		jQuery.ajax({
			url : fi.config[fi.selected[0]].submenu[fi.selected[1]].dataUrl ,
			dataType:"json",
			success : function(res) {
				jQuery("#fiStockDevelopment td").html("<table><tr><td>"+res.date+"</td><td>"+res.stock+"</td><td class='"+res.direction+"'>"+res.delta+"</td></tr></table>");
			}
		});
	},
	buildList : function(level, list) {

		var r = "";
		for(var i=0;i<list.length;i++) {
			var selected = "";
			if(i == fi.selected[level]) {
				selected = ' class="active"';
			}
			var rel = "fi|"+i+"|0";
			if(level == 1) {
				rel = "fi|"+fi.selected[0]+"|"+i;
			}
			r += '<li '+selected+'><a rel="'+rel+'">'+list[i].name+'</a></li>';
		}
		return r;
	}
}
var currentPagerPage = null;

$(document).ready(function() {
	if(jQuery("#box_index-indikationen").length > 0) {
		runIndikationenRefresh();
	}
	jQuery("a.autoforward").each(function() {
		if(jQuery(this).attr("target") == "_blank") {
			var w = window.open(jQuery(this).attr("href"));
			w.focus();
		} else {
			location.href = jQuery(this).attr("href");
		}
	});
	var jetzt = new Date();
	try {
		jQuery("div.thumb a").zoomimage({
				opacity: 0, //caption opacity
				border: 0, // border arround the image
				shadow: 0, // shadow size
				duration: 300, // animation duration
				prevent: 0, // pixels to move the mouse before the image is dragged
				controls: false, // display controls
				caption: false, // display caption
				hideSource: false,
				centered: false,
				className: false,
				onLoad: function(){return false},
				beforeZoomIn: function(){return false},
				onZoomIn: function(){return false},
				beforeZoomOut: function(){return false},
				onZoomOut: function(){return false},
				onFocus: function(){return false},
				controlsTrigger: 'focus',
				easing: 'linear',
				preload: 'click'
		});
		fi.onload();
	} catch(e) {}
	try {
		//jQuery('#partnerCenters').hide(); throw "void";
		jQuery('#partnerCenters li').shuffle()
		jQuery('#partnerCenters').simplyScroll({
			className: 'simply-scroll',
			frameRate: 24, //No of movements per second
			speed: 1, //No of pixels per frame
			horizontal: true,
			autoMode: 'loop',
			pauseOnHover: false,
			startOnLoad: false, //use this if having rendering problems (safari 3 + Mac OSX?)
			localJsonSource: '', //format [{"src":"images/pic.jpg","title":"title","link":"http://"},{etc..}]
			flickrFeed: '',
			jsonImgWidth: 130,
			jsonImgHeight: 100
		});
		jQuery("div.jcarousel-button").click(function() {
			location.href="/PartnerCenter/index.html";
		});
//		jQuery('#partnerCenters').jca_rousel({
//	    	wrap: 'circular',
//	    	scroll:1,
//	    	animation:2000,
//	    	visible:7,
//	    	auto:1
//	    });
	} catch(e) {}
    jQuery('.ajaxContent').each(function () {
    	var div = $(this);
    	var target = div.attr("id");
    	if(target.substring(0,1)!="/") {
    		target = "/".target;
    	}
    	div.load(
    		target,
    		function() {
    			if(div.attr("id").match(/fondsnote/)) {
    				setUpFondsnote();
    			}
				if(jQuery("#box_maerkte").length > 0) {
					if(jQuery("#box_maerkte h3 div").length ==0) {
						var jetzt=new Date();
						jQuery("#box_maerkte h3").append("<div class='time'>"+jetzt.getHours()+":"+jetzt.getMinutes()+"</div>");
						runMaerkteRefresh();
						window.setInterval(runMaerkteRefresh, 60000);
					}
				}
    		}
    	);
    });

    makeSupPageListClickable();
	/*
	 * @todo still needed?
    var listPages = Math.ceil(listItems.length / 10);
    if(listItems.length > 10 && jQuery("body").attr("class") != "Home" && !jQuery("body").hasClass("PartnerCenterList")) {
    	listItems.parent().parent().append("<div id='Pager' />");
    	setPager(1);
    }
    */
    jQuery("body.PartnerCenterList ul.pagelist li").shuffle();
    jQuery('form[action="/ajax.php"]').submit(function() {
    	jQuery.scrollTo('form[action="/ajax.php"]', 300);
    	jQuery.post(
    		"/ajax.php",
    		$(this).serialize(),
    		handleAjaxForm
    	);
    	return false;
    });
    jQuery('form#articleSearch').submit(function() {
    	var searchVal = urlencode(jQuery(this).find("input.text").val());
    	location.href = "#q="+searchVal;
    	jQuery("#body .cols2_1_1 .col1,#body .cols2_1 .col1").load(
    		"/articleSearch.php?q="+searchVal,
    		function() {
    		}
    	);
    	return false;
    }).find("input.text").focus(function() {
    	if(jQuery(this).val()=="Artikelsuche") {
    		jQuery(this).val("");
    	}
    });
    try {
	    var queryForQuery = location.hash.match(/#q=(.*)/);
    	if(queryForQuery[1]!="") {
    		jQuery('form#articleSearch input.text').val(urldecode(queryForQuery[1]).replace(/\W/g, ' '));
    	}
    	jQuery('form#articleSearch').trigger("submit");
    } catch(e) {}

   jQuery('form#fondsSearch input.text').focus(function() {
    	if(jQuery(this).val()=="Name, WKN, Text") {
    		jQuery(this).val("");
    	}
    });
    var littleNavi = jQuery("body.littleNavi div#littleNavi div");
    if(littleNavi.length > 0) {
		for(var i=0;i<littleNavi.length;i++) {
			if(i>0) {
				jQuery(littleNavi[i]).hide();
			}
		}
		jQuery("div#littleNavi > ul > li > a:eq(0)").addClass("active");
		jQuery("div#littleNavi > ul > li > a").click(function () {
			jQuery("div#littleNavi > ul > li > a").removeClass("active");
			jQuery(this).addClass("active");
			var target = $(this).attr("href").substring(1);
			if(jQuery("div#littleNavi #"+target).css("display") == "none") {
				jQuery("div#littleNavi > div:visible").hide();
				jQuery("div#littleNavi #"+target).slideDown();
			}
			return false;
		});
		jQuery("div#littleNavi dl a").click(function () {
			var target = $(this).attr("href").substring(1);
			var container = jQuery("#"+target).closest("div");
			if(container.css("display") == "none") {
				jQuery("div#littleNavi dt").removeClass("active");
				var id = container.attr("id");
				jQuery("div#littleNavi > ul > li > a[href=#"+id+"]").trigger("click");
				jQuery.scrollTo("#"+target, {
					offset: -200,
					duration: 300
				});
				jQuery("div#littleNavi dt#"+target).addClass("active");
			}
			return false;
		});
	}
	try {
		jQuery("#sitemap > ul").treeview();
	} catch(e) {}
	jQuery("div.functions li.send a").click(function() {
		jQuery.scrollTo("#newsMenu", 300);
		jQuery("#sendForm").slideToggle();
		jQuery("#to").focus();
		return false;
	});
	jQuery("div#whoiswho a").click(function() {
	});
	if(jQuery("body").attr("id") == "whoiswho") {
		jQuery("#details").hide();
		jQuery("#articleSearch input.text").focus(function() {
	    	if(jQuery(this).val()=="Name") {
	    		jQuery(this).val("");
	    	}
		});
		jQuery("body#whoiswho ul#abcList a").click(function() {
			$(this).parent().parent().find("a").removeClass("active");
			wiwiSelectChar(
				$(this).addClass("active").html()
			);
		});
		if(jQuery("body#whoiswho input.text").keyup(function() {
			wiwFilter($(this).val());
		}).length > 0) {
			jQuery("body#whoiswho ul#abcList a:contains('A')").trigger("click");
		}
		jQuery("body#whoiswho form").submit(function() {
			wiwFilter(jQuery("body#whoiswho input.text").val(), true);
			return false;
		});
		jQuery("body#whoiswho .col1 div.box a").shuffle();
		jQuery("body#whoiswho .col3 div.box a").shuffle();
		jQuery("ul#wiwlist li a").click(function () {
			if(jQuery(this).hasClass("altLink")) {
				return true;
			} else {
				jQuery("#details").load(
					jQuery(this).attr("href"),
					function() {
						jQuery("#details").fadeIn();
	//					jQuery.scrollTo("#details", {duration:300});
						jQuery("#list").fadeOut();
						jQuery("a#whoiswhoback").click(function() {
							jQuery("#details").fadeOut();
							jQuery("#list").fadeIn();
							jQuery.scrollTo("body", {duration:300});
							return false;
						});
					}
				);
				return false;
			}
		});
	}
	if(!checkPagerHash()) {
		jQuery("div.paging").each(function() {
			currentPagerPage = 1;
			jQuery(this).load(
				"/pager.php?t="+jQuery(this).attr("id")+"&p=1",
				setUpSubPagePager
			);
		});
	}
    jQuery('.ajaxContentWebForm').each(function () {
		jQuery.ajax({
		  type: 'GET',
		  url: $(this).attr("id"),
		  success:onAjaxContentWebFormLoad
		});
    });
	/*
    jQuery.ajax({
    	type:"GET",
    	url:"/browseAndEdit.php?jetzt="+jetzt.toString(),
    	success:function(res) {
    		if(res.length > 0) {
    			jQuery("body").append('<div id="browseAndEdit">'+res+'</div>');
    			jQuery("#browseAndEdit").slideDown();
    		}
    	}
    });
    */
});
function runIndikationenRefresh() {
	var jetzt = new Date();
	$.getJSON('/vwd.php?w=json&t='+jetzt.toString(), function(data) {
		var i = 0;
		try {
			$("#box_index-indikationen tr").each(function() {
				if(i == 2 || i==1 || i==4) {
					data[i].value = data[i].value.substring(0,data[i].value.length-3);
				}
				var valueRow = $(this).find("td:eq(1)");
				var oldVal = valueRow.find("span").html();
				$(this).find("td:eq(2)").html(data[i].delta+"%").attr("class", "third "+data[i].direction);
				$(this).find("td:eq(0) a").attr("style", "color:#333;");
				var img = "/design/web/images/realtime/";				
				if(oldVal) {
					if(gToFloat(oldVal) > gToFloat(data[i].value) || gToFloat(oldVal) < gToFloat(data[i].value)) {
						var oldImgSrc = valueRow.find("img").attr("src");
						if(gToFloat(oldVal) > gToFloat(data[i].value)) {
							$(this).find("td").effect("highlight", {color:"#ff9999"}, 2000);
							if(oldImgSrc.indexOf("gruen")>0) {
								img += "pfeil_animiert_gruennachrot.gif";
							} else {
								img += "pfeil_animiert_rot.gif";
							}					
						} else {
							$(this).find("td").effect("highlight", {color:"#99ff99"}, 2000);
							if(oldImgSrc.indexOf("gruen")>0) {
								img += "pfeil_animiert_gruen.gif";
							} else {
								img += "pfeil_animiert_rotnachgruen.gif";
							}
						}
						valueRow.html("<span>"+ data[i].value + " </span><img width='10' height='10' src='"+img+"?j="+jetzt.toString()+"'/>");
					}
				} else {
					if(data[i].direction == "down") {
						img += "pfeil_rot.gif";
					} else {
						img += "pfeil_gruen.gif";
					}
					valueRow.html("<span>" + data[i].value + " </span><img width='10' height='10' src='"+img+"?j="+jetzt.toString()+"'/>");
				}

				i++;
			});
		} catch (e) { }
		window.setTimeout(runIndikationenRefresh, 1500);
	});
}
function gToFloat(input) {
	try {
		return parseFloat(input.replace('.','').replace(',','.'));
	} catch(e) {
		return 0;
	}

}
function runMaerkteRefresh() {
	jQuery("#box_maerkte table img").each(function () {
		var jetzt = new Date();
		jQuery("#box_maerkte div.time").html(pad(jetzt.getHours())+":"+pad(jetzt.getMinutes()));
		$(this).attr("src", $(this).attr("src").replace(/&j=.*&?/, "")+"&j="+jetzt.toString());
	});
}
function pad(input) {
	if(String(input).length==1) {
		return "0"+String(input);
	} else {
	 	return input;
	}
}
function onAjaxContentWebFormLoad(res) {
  	jQuery('.ajaxContentWebForm').html(jQuery("<html>"+res.split("\n").join("").match(/<body.*body>/gm)+"</html>").find("div.messages,div.node>div.content,div.webform-confirmation"));
  	setUpForm();

}
function setUpForm() {
	jQuery('.ajaxContentWebForm').find("form").submit(function() {
		try {
			location.href="#body";
			jQuery.ajax({
			  type: 'POST',
			  url: $(this).attr("action"),
			  data: $(this).serialize(),
			  success:onAjaxContentWebFormLoad
			});
		} catch(e) {
		}
 		return false;
	});
}
function checkPagerHash() {
	var res = jQuery("div.paging");
	if(res.length > 0) {
		var toGoTo = 0;
		if(location.hash != "") {
			if(currentPagerPage) {
				if(Number(location.hash.substring(1)) != currentPagerPage) {
					toGoTo = location.hash.substring(1);
				}
			} else {
				toGoTo = location.hash.substring(1);
			}
		}
		if(toGoTo > 0) {
			res.parent().load(
				"/pager.php?t="+res.attr("id")+"&l=1&p="+toGoTo,
				setUpSubPagePager
			);
			return true;
		} else {
			return false;
		}
	} else {
		return false;
	}
}
function makeSupPageListClickable() {
	jQuery('ul.pagelist li').css("cursor","pointer").click(function () {
	  	if(jQuery(this).find("h3 a").attr("target") == "_blank") {
			var w = window.open(jQuery(this).find("h3 a").attr("href"));
			w.focus();
			return false; //prevent double opening if the link is clicked directly
		} else {
			location.href = jQuery(this).find("h3 a").attr("href");
		}		
	});
}
function setUpSubPagePager() {
	makeSupPageListClickable();
	jQuery("div.paging a").click(function () {
		jQuery.scrollTo("#body", 300);
		var href = jQuery(this).attr("href");
		var res  = href.match(/\/pager.php\?t.*p=([0-9]+)/);
		if(res[1]) {
			location.href = "#"+res[1];
		}
		currentPagerPage = Number(res[1]);
		jQuery(this).parents("div.paging").parent().load(
			href,
			setUpSubPagePager
		);
		return false;
	});
}
function handleAjaxForm(data, textStatus, XMLHttpRequest) {
	var res = jQuery.parseJSON(data);
	jQuery("div.messages").html(res.message).removeClass("error").addClass(res.status).slideDown();
	if(res.status == "status") {
		jQuery("fieldset").slideUp();
	} else {

	}
}
function setPager(destPage) {
    var listItems = jQuery('ul.pagelist li');
    var listPages = Math.ceil(listItems.length / 10);
	for(var i=0;i<listItems.length;i++) {
		if(i>(destPage)*10 || i<(destPage-1)*10) {
			$(listItems[i]).hide();
		} else {
			$(listItems[i]).show();
		}
	}
	jQuery("#Pager").pager({
		pagenumber:destPage,
		pagecount:listPages,
		buttonClickCallback:setPager
	});
}

function wiwiSelectChar(myChar) {
	jQuery("div#searchCountContainer").hide();
	jQuery("div#searchCountContainer").hide();
	if(myChar == "") {
		jQuery("ul#wiwlist li").show();
	} else {
		jQuery("ul#wiwlist li").hide();
		jQuery("ul#wiwlist li."+myChar).show()
	}
}
function wiwFilter(query, force) {
	if(query == "Name" || query.length < 3 && !force) {
		return;
	} else {
		jQuery("ul#wiwlist li").hide();
		jQuery("ul#wiwlist li a").each(function() {
			if($(this).text().toUpperCase().indexOf(query.toUpperCase()) >=0) {
				$(this).parent().show();
			}
		});
		var len = jQuery("ul#wiwlist li:visible").length;
		if(len == 0) {
			jQuery("div#message").show();
			jQuery("div#searchCountContainer").hide();
		} else {
			jQuery("div#message").hide();
			var mes = " "+len.toString()+" Ergebnis";
			if(len>1) {
				mes = "wurden "+mes+"se";
			} else {
				mes = "wurde "+mes;
			}
			jQuery("span#searchCount").html(mes+" gefunden.");
			jQuery("div#searchCountContainer").show();
		}
	}
}
var USFtime = 0;
var USFinstrumentId = 1618673;

function USFsetInstrumentId(id,object,nr) {
	for(i=0;i<=3;i++) {
		document.getElementById('mNavPoint'+i).className = '';
	}
	USFinstrumentId = id;
	document.getElementById('mNavPoint'+nr).className = 'active';
	document.getElementById('tNavPoint0').className = 'active';
	document.getElementById('tNavPoint1').className = '';
	document.getElementById('tNavPoint2').className = '';
	document.getElementById('tNavPoint3').className = '';
	USFupdateChart();
}

function USFupdateChart() {
	document.getElementById('USFchartImg').src = 'http://business.customer.gatrixx.com/euroadvisor/3055/chartNG.gfn?u=5537250&amp;height=111&amp;width=170&amp;chartType=8&amp;subProperty=1&amp;time='+USFtime+'&amp;instrumentId='+USFinstrumentId;
}

function USFupdateChartTime(USFtime,nr) {
	document.getElementById('USFchartImg').src = 'http://business.customer.gatrixx.com/euroadvisor/3055/chartNG.gfn?u=5537250&amp;height=111&amp;width=170&amp;chartType=8&amp;subProperty=1&amp;time='+USFtime+'&amp;instrumentId='+USFinstrumentId;
	for(i=0;i<=3;i++) {
		document.getElementById('tNavPoint'+i).className = '';
	}
	document.getElementById('tNavPoint'+nr).className = 'active';
}
function setUpFondsnote() {
	$("#fondsnote .footNavi a").click(function () {
		$("#fondsnote ul.nav-markets li").removeClass("active");
		$(this).parent().addClass("active");
		$("#fondsnote table:visible").hide();
		$("#fondsnote table#"+$(this).attr("rel")).show();
	});
}
function addPiwikTracking(link) {
	var link = jQuery(link);
	var parts = link.attr("rel").split("[");
	var text = parts[parts.length - 1];
	text = text.replace("]","");
	text = window.location.href.replace(".html","") + "/" + text;
	piwikTracker.trackLink(text,"download");
}

