

var databasepath = window.location.protocol == "http:" ? "http://www.n-tv.de/stat/wm2010/data/" : "resources/dummy/wm2010/"
if( window.location.href.indexOf("dt-data")>-1 || window.location.href.indexOf("ntv-test")>-1){
  databasepath = "/stat/wm2010/data/"
}

var scheduleSetup = new Object({
  urlJSON: databasepath + "md3a/onl1.json",
  data: new Object(),
  dataSuccess: false,
  dispatch: function(setup){
  wmDebug.log("scheduleSetup:");
  wmDebug.log(this);
  if($(".jq_wm_schedule").length>0){
      schedule_dispatcher();
  }
  if($(".jq_wm_schedule_today").length>0){
      schedule_today_dispatcher();
  }
  if($(".jq_wm_schedule_applet").length>0){
    schedule_applet_dispatcher();
  }

  if($(".jq_wm_way").length>0){
    way_dispatcher();
  }

  }
});

var rankingSetup = new Object({
  urlJSON: databasepath + "md5/dpa/onl1.json",
  data: new Object(),
  dataSuccess: false,
  dispatch: function(setup){
  wmDebug.log("rankingSetup:");
  wmDebug.log(this);
  ranking_dispatcher();
  }
});

var scorerSetup = new Object({
	  urlJSON: databasepath + "md4a/onl1.json",
	  data: new Object(),
	  dataSuccess: false,
	  dispatch: function(setup){
	  wmDebug.log("scorerSetup:");
	  wmDebug.log(this);
	  scorer_dispatcher(this);
	  }
	});

var teamSetup = new Object();
var matchSetup = new Object();
var matchTickerSetup = new Object();

var isWmInit = false;
var isWmRefresh = false;
var needRefresh = false;
var refreshCounter = 0;
//var wmImageRand = Math.round( (new Date()).getTime()/(1000 * 60 * 60) );
var wmImageRand = 1;
var wmRandom = -1;
var isKickOffTimeData = false;

var wmMappingArticle = {
  "success": false,
  "data": {}
};



var wmDebug = {
    "hasFirebug": "console" in window && "firebug" in window.console,
    "debug": false,
    "log": function( message ) {
      if( this.debug && this.hasFirebug ) {
        console.debug( message );
      }
    }
}



// ######## core ##############



function wm_init(){

    if( window.location.href.indexOf("debugwm")>-1 ){
      wmDebug.debug = true;
    }

  wmRandom = Math.round( (new Date()).getTime()/10000 );

/*
  if( ivw_code == "home" ){
	  var wm_naviHead = '';
	  wm_naviHead += '<div class="wm_navi">';
	  wm_naviHead += '<MAP NAME="wm_naviHead">';
	  wm_naviHead += '<AREA SHAPE="rect" ALT="DWS" COORDS="419,0,570,60" HREF="http://ad.doubleclick.net/clk;225804878;6685193;z" TARGET="_blank">';
	  wm_naviHead += '</MAP>';
	  wm_naviHead += '<img USEMAP="#wm_naviHead" src="http://www.n-tv.de/stat/wm2010/images/wm_naviHead_688.png?"' + wmImageRand + ' alt="" border="0"/><ul class="clearfix">';
	  wm_naviHead += '<li><a href="http://www.n-tv.de/sport/FussballWM/">AKTUELL</a></li>';
	  wm_naviHead += '<li><a href="http://www.n-tv.de/sport/FussballWM/Meldungen/">MELDUNGEN</a></li>';
	  //wm_naviHead += '<li><a href="http://www.n-tv.de/sport/FussballWM/Wunschkonzert/">WUNSCHKONZERT</a></li>';
	  wm_naviHead += '<li><a href="http://www.n-tv.de/861697">SPIELPLAN</a></li>';
	  wm_naviHead += '<li><a href="http://www.n-tv.de/mediathek/bilderserien/wm/">BILDER</a></li>';
	  wm_naviHead += '<li><a href="http://www.n-tv.de/909082">SPIELORTE</a></li>';
	  wm_naviHead += '<li><a href="http://www.n-tv.de/sport/FussballWM/Teams/">TEAMS</a></li>';
	  wm_naviHead += '<li><a href="http://www.n-tv.de/917646">TORJ&Auml;GER</a></li>';
	  wm_naviHead += '<li class="last"><a href="http://www.n-tv.de/sport/FussballWM/Lexikon/">LEXIKON</a></li>';
	  wm_naviHead += '</ul>';
	  wm_naviHead += '</div>';
	  $("#wrapper_content").prepend(wm_naviHead);

	  wm_dwsZP = new Image();
	  wm_dwsZP.src = 'http://ad.doubleclick.net/adj/nntv.de/;adid=225804871;sz=1x1;ord=' + nRandom + '?';
	  wm_dwsZP_agentur = new Image();
	  wm_dwsZP_agentur.src = 'http://ad2.adfarm1.adition.com/banner?sid=157700&kid=126355&ts=' + nRandom + '?';

  }
*/


  if( $(".jq_wm_schedule").length>0 || $(".jq_wm_way").length>0 || $(".jq_wm_schedule_today").length>0 ){

	  var mapJSON = window.location.protocol == "http:" ? "http://www.n-tv.de/?service=wmMap" : "resources/dummy/wm2010/mapArticle.json";
    //var mapJSON = window.location.protocol == "http:" ? "http://www.n-tv.de/?service=wmMap&" + wmRandom : "resources/dummy/wm2010/mapArticle.json?" + wmRandom;
    //var mapJSON = "resources/dummy/wm2010/mapArticle.json";

    $.ajax({
      url: mapJSON,
      dataType: "json",
      success: function( data ){
        wmMappingArticle.success = true;
        wmMappingArticle.data = data.wmMapping;
        wmDebug.log("wmMappingArticle:");
        wmDebug.log(wmMappingArticle);
        wm_init_elements();
        },
        error: function( e ){
        wmDebug.log(e);
        wmMappingArticle.success = false;
        wmDebug.log("wmMappingArticle: Error");
        wmDebug.log(e);
        wm_init_elements();
        }
    });
  }
  else{
    wm_init_elements();
  }
}


function wm_init_elements(mode){

  wmRandom = Math.round( (new Date()).getTime()/10000 );


  if( mode=="refresh" ){
    isWmRefresh = true;
    refreshCounter ++;
  }

  wmDebug.log("init_elements: " + refreshCounter);

  //if( ($(".jq_wm_schedule").length>0 || $(".jq_wm_way").length>0 || $(".jq_wm_schedule_today").length>0 || $(".jq_wm_schedule_applet").length>0 ) && !isWmInit ){
  if( ($(".jq_wm_schedule").length>0 || $(".jq_wm_way").length>0 || $(".jq_wm_schedule_today").length>0 || $(".jq_wm_schedule_applet").length>0 ) && (needRefresh || !isWmInit) ){
    getData( scheduleSetup );
  }

  //if( $(".jq_wm_ranking").length>0  && !isWmInit ){
  if( $(".jq_wm_ranking").length>0  && (needRefresh || !isWmInit) ){
    getData( rankingSetup );
  }

  //if( $(".jq_wm_topscorer").length>0  && !isWmInit ){
  if( $(".jq_wm_topscorer").length>0  && (needRefresh || !isWmInit) ){
	getData( scorerSetup );
  }





  if( $(".jq_wm_match").length>0 && (needRefresh || !isWmInit) ){

	  var evalNeedRefresh = false;

      $(".jq_wm_match").each( function(index){

        var eventID = $(this).attr("id").substr(6);

        if(matchSetup[$(this).attr("id")] && matchSetup[$(this).attr("id")].data.matchInfo.period != "FullTime"){
        	evalNeedRefresh = true;
        }

        if(!matchSetup[$(this).attr("id")]){

            var viewFull = true;

            if( (ivw_code != "home" && ivw_code != "sp_fbwm_i" && typeof wmIsExtArt == "undefined") || (index==0 && $(".jq_wm_match").length>1) ){
            	viewFull = false;
            }

	        matchSetup[$(this).attr("id")] = new Object({
	          container: $(this),
	          urlJSON: databasepath + "md6/" + eventID + "_onl1.json",
	          data: new Object(),
	          dataSuccess: false,
	          viewFull: viewFull,
	          dispatch: function(setup){
		          if( this.data.matchInfo.period != "FullTime"){
			          needRefresh = true;
		          }
		          wmDebug.log("matchSetup:");
		          wmDebug.log(this);
		          match_dispatcher(setup);
	          }
	        });
        }
        getData( matchSetup[$(this).attr("id")] );





        if(!matchTickerSetup[$(this).attr("id")]){
	          matchTickerSetup[$(this).attr("id")] = new Object({
	            container: $(this).parent(".wm_match").find(".wm_match_ticker .wm_tickerview"),
	            urlJSON: databasepath + "md1/de/dpa/" + eventID + "_onl1.json",
	            data: new Object(),
	            dataSuccess: false,
	            dispatch: function(setup){
	            wmDebug.log("matchTickerSetup:");
	            wmDebug.log(this);
	            matchTicker_dispatcher(setup);
	           }
	         });
        }
        getData( matchTickerSetup[$(this).attr("id")] );




      });


      needRefresh = !evalNeedRefresh ? false : true;
      wmDebug.log("needRefresh: " + needRefresh);
  }




  if( $(".jq_wm_team").length>0  && !isWmInit ){
      $(".jq_wm_team").each( function(){
        var teamID = $(this).attr("id").substr(5);

        teamSetup[$(this).attr("id")] = new Object({
          container: $(this),
          urlJSON: databasepath + "md7/de/" + teamID + "_onl1.json",
          //urlJSON: ddatapath + teamID + "_onl1.json",
          data: new Object(),
          dataSuccess: false,
          dispatch: function(setup){
          wmDebug.log("teamSetup:");
          wmDebug.log(this);
          team_dispatcher(setup);
          }
        });
        getData( teamSetup[$(this).attr("id")] );
      });
  }


  $("#wm_groupview ul li").each( function(){
    $(this).click( function(){
      $('#wm_groupview .jq_wm_schedule').schedule_filter( $(this).attr("title"), false, this );
      $('#wm_groupview .jq_wm_ranking').schedule_filter( $(this).attr("title"), false, this );
    });
  });

  $(".group_tab_applet ul li").each( function(){
      $(this).click( function(){
        $('.jq_wm_schedule_applet').schedule_filter( $(this).attr("title"));

        $(".group_tab_applet ul li").each( function(){
          $(this).removeClass("active");
        });

        $(this).addClass("active");


      });
    });





  if( needRefresh || !isWmInit ){
      //var refreshInterval = window.location.href.substr( window.location.href.indexOf("autorefresh=")+12);
      //refreshInterval = Math.abs(refreshInterval);
      //if(!refreshInterval || refreshInterval<5000){
        refreshInterval = 30000;
      //}

      window.setTimeout("wm_init_elements('refresh')", refreshInterval);
  }


  isWmInit = true;
}



function match_render(data){


  var teamHomeTricotExt = "_home";
  var teamHomeFontColor = scheduleTeams[data.teamHome.teamId]["fontColourHome"];
  var teamAwayTricotExt = "_away";
  var teamAwayFontColor = scheduleTeams[data.teamAway.teamId]["fontColourAway"];

  if(data.matchInfo.kickOff){
	  if(data.matchInfo.kickOff.SwitchTeamHomeTricot){
		  teamHomeTricotExt = "_away";
		  teamHomeFontColor = scheduleTeams[data.teamHome.teamId]["fontColourAway"];
	  }
	  if(data.matchInfo.kickOff.SwitchTeamAwayTricot){
		  teamAwayTricotExt = "_home";
		  teamAwayFontColor = scheduleTeams[data.teamAway.teamId]["fontColourHome"];
	  }
  }


  match_evalFormationPlace( data );

  var dummy;

  if(!scheduleTeams[data.teamAway.teamId]){
    data.teamAway.teamId = 0;
  }
  if(!scheduleTeams[data.teamHome.teamId]){
    data.teamHome.teamId = 0;
  }


  dummy = new Array();

  dummy.push('<div class="renderedData">');
  dummy.push('<div class="info clearfix">');
  dummy.push('<strong class="category">' + getDate(data.matchInfo.date)[0] + " " + getDate(data.matchInfo.date)[1] + ' - ' + match_getVenueName(data) + (match_isLive( data ) ? " - <span class='live'>Live</span>" : "") + '</strong>');
  dummy.push('<span class="switchView"><a class="big"></a></span>');
  dummy.push('</div>');
  dummy.push('<div class="display">');

  dummy.push( getTeamFlagImageMatch(data.teamHome.teamId, "home") );
  dummy.push('<span class="name_home">' + scheduleTeams[data.teamHome.teamId]["nameLong"] + '</span>');
  dummy.push( '<span class="score_home">' + match_getScore(data.teamHome) + '</span>' );
  if(data.teamHome.goal){
    dummy.push('<ul class="scorer_home">');
    for ( var value in data.teamHome.goal ){
      dummy.push('<li>' + match_getPlayerName( data, data.teamHome.goal[value].playerId ) + ' (' + data.teamHome.goal[value].time + '.)</li>');
    }
    dummy.push('</ul>');
  }

  dummy.push( getTeamFlagImageMatch(data.teamAway.teamId, "away") );
  dummy.push('<span class="name_away">' + scheduleTeams[data.teamAway.teamId]["nameLong"] + '</span>');
  dummy.push( '<span class="score_away">' + match_getScore(data.teamAway) + '</span>' );
  if(data.teamAway.goal){
      dummy.push('<ul class="scorer_away">');
      for ( var value in data.teamAway.goal ){
        dummy.push('<li>' + match_getPlayerName( data, data.teamAway.goal[value].playerId ) + ' (' + data.teamAway.goal[value].time + '.)</li>');
      }
      dummy.push('</ul>');
    }

  //dummy.push('<span class="minute">' + match_getMatchTime(data) + (match_isLive( data ) ? " <img src=\"http://www.n-tv.de/stat/wm2010/images/live_icon.png\"/>" : "") + '</span>');
  dummy.push('<span class="minute">' + match_getMatchTime(data) + '</span>');
  dummy.push('<span class="score_last">' + match_scoreLastPeriod( data ) + '</span>');

  dummy.push('</div>');

  if( data.teamHome.shootOut || data.teamAway.shootOut ){
	  dummy.push('<div class="shootOut clearfix">');
	  dummy.push('<div class="headline">Elfmeterschie&szlig;en</div>');

	  dummy.push('<div class="shootOut_home clearfix">');
	  for ( var value in data.teamHome.shootOut ){
          var player = data.teamHome.player[data.teamHome.shootOut[value].playerId];
          dummy.push('<div class="player">');
          dummy.push('<div class="tricot" style="background-image: url(http://www.n-tv.de/stat/wm2010/tricot/tricot_' + scheduleTeams[data.teamHome.teamId]["nameClear"] + teamHomeTricotExt + '.png?'+wmImageRand+');">');
          dummy.push('<span class="number" style="color:' + teamHomeFontColor + ';">' + (player?player.shirtNumber:"") + '</span>');
          dummy.push('</div>');
          if(data.teamHome.shootOut[value].outcome){
        	  dummy.push('<div class="info ' + data.teamHome.shootOut[value].outcome +'"></div>');
          }
          dummy.push('</div>');
	  }
	  dummy.push('</div>');
	  dummy.push('<div class="shootOut_away clearfix">');
	  for ( var value in data.teamAway.shootOut ){
          var player = data.teamAway.player[data.teamAway.shootOut[value].playerId];
          dummy.push('<div class="player">');
          dummy.push('<div class="tricot" style="background-image: url(http://www.n-tv.de/stat/wm2010/tricot/tricot_' + scheduleTeams[data.teamAway.teamId]["nameClear"] + teamAwayTricotExt + '.png?'+wmImageRand+');">');
          dummy.push('<span class="number" style="color:' + teamAwayFontColor + ';">' + player.shirtNumber + '</span>');
          dummy.push('</div>');
          if(data.teamAway.shootOut[value].outcome){
        	  dummy.push('<div class="info ' + data.teamAway.shootOut[value].outcome +'"></div>');
          }
          dummy.push('</div>');
	  }
	  dummy.push('</div>');

	  dummy.push('</div>');
  }


  dummy.push('<div class="teams clearfix">');
    dummy.push('<div class="referee">' + match_getOfficial( data ) + '</div>');

    dummy.push('<div class="team_home">');

      dummy.push('<div class="formation ' + scheduleTeams[data.teamHome.teamId]["nameClear"] + '">');
        dummy.push('<div class="place f' + data.teamHome.formationUsed + '">');
          for ( var value in data.teamHome.player ){
            var player = data.teamHome.player[value];
            if( player.formationPlace>0 ){
                dummy.push('<div class="player place' + player.formationPlace + '">');
                dummy.push('<div class="tricot" style="background-image: url(http://www.n-tv.de/stat/wm2010/tricot/tricot_' + scheduleTeams[data.teamHome.teamId]["nameClear"] + teamHomeTricotExt + '.png?'+wmImageRand+');">');
                    dummy.push('<span class="number" style="color:' + teamHomeFontColor + ';">' + player.shirtNumber + '</span>');
                    dummy.push('<span class="name">' + match_getPlayerName(data,value) + '</span>');
                  dummy.push('</div>');
                  dummy.push('<div class="info clearfix">' + match_getPlayerInfo(data, data.teamHome, value) + '</div>');
                dummy.push('</div>');
            }
          }
          dummy.push('</div>');

          dummy.push('<div class="clearfix">');
          for ( var value in data.teamHome.player ){
            var player = data.teamHome.player[value];
            if( player.formationPlace==-1 ){
                dummy.push('<div class="player">');
                dummy.push('<div class="tricot" style="background-image: url(http://www.n-tv.de/stat/wm2010/tricot/tricot_' + scheduleTeams[data.teamHome.teamId]["nameClear"] + teamHomeTricotExt + '.png?'+wmImageRand+');">');
                    dummy.push('<span class="number" style="color:' + teamHomeFontColor + ';">' + player.shirtNumber + '</span>');
                    dummy.push('<span class="name">' + match_getPlayerName(data, value) + '</span>');
                  dummy.push('</div>');
                  dummy.push('<div class="info clearfix">' + match_getPlayerInfo(data, data.teamHome, value) + '</div>');
                dummy.push('</div>');
            }
          }
        dummy.push('</div>');
      dummy.push('</div>');

    dummy.push('</div>');

    dummy.push('<div class="team_away">');

    dummy.push('<div class="formation ' + scheduleTeams[data.teamAway.teamId]["nameClear"] + '">');
      dummy.push('<div class="place f' + data.teamAway.formationUsed + '">');
        for ( var value in data.teamAway.player ){
          var player = data.teamAway.player[value];
          if( player.formationPlace>0 ){
              dummy.push('<div class="player place' + player.formationPlace + '">');
                dummy.push('<div class="tricot" style="background-image: url(http://www.n-tv.de/stat/wm2010/tricot/tricot_' + scheduleTeams[data.teamAway.teamId]["nameClear"] + teamAwayTricotExt + '.png?'+wmImageRand+');">');
                  dummy.push('<span class="number" style="color:' + teamAwayFontColor + ';">' + player.shirtNumber + '</span>');
                  dummy.push('<span class="name">' + match_getPlayerName(data,value) + '</span>');
                dummy.push('</div>');
                dummy.push('<div class="info clearfix">' + match_getPlayerInfo(data, data.teamAway, value) + '</div>');
              dummy.push('</div>');
          }
        }
        dummy.push('</div>');

        dummy.push('<div class="clearfix">');
        for ( var value in data.teamAway.player ){
          var player = data.teamAway.player[value];
          if( player.formationPlace==-1 ){
              dummy.push('<div class="player">');
              dummy.push('<div class="tricot" style="background-image: url(http://www.n-tv.de/stat/wm2010/tricot/tricot_' + scheduleTeams[data.teamAway.teamId]["nameClear"] + teamAwayTricotExt + '.png?'+wmImageRand+');">');
                dummy.push('<span class="number" style="color:' + teamAwayFontColor + ';">' + player.shirtNumber + '</span>');
                dummy.push('<span class="name">' + match_getPlayerName(data, value) + '</span>');
                dummy.push('</div>');
                dummy.push('<div class="info clearfix">' + match_getPlayerInfo(data, data.teamAway, value) + '</div>');
              dummy.push('</div>');
          }
        }
      dummy.push('</div>');
    dummy.push('</div>');

  dummy.push('</div>');

  dummy.push('</div>');
  dummy.push('</div>');

  return dummy.join("");

}

function match_getScore( team ){

	var score = team.score;

    for ( var value in team.shootOut ){

    	if( team.shootOut[value].outcome == "Scored" ){
    		score++;
    	}
    }

    score = score + "";

	var html = "";

	html = '<img src="http://www.n-tv.de/stat/wm2010/matchscore/' + score.substr(0,1) + '.png" alt=""/>';

	if (score>9){
	  html += '<img src="http://www.n-tv.de/stat/wm2010/matchscore/' + score.substr(1,1) + '.png" alt=""/>';
	}
	return html;
}

function match_getMatchTime( data ){

  var matchTime = "";

  var getMatchMinute = function(addMinute){

    var minute = "";

    if( data.matchInfo.kickOff ){
      if( data.matchInfo.kickOff[data.matchInfo.period] ){
        var now = new Date();
        var nowStd = now.getUTCHours()+2;
        var nowMin = now.getUTCMinutes();
        nowMin = (nowStd*60) + nowMin;

        var periodStartStd = Math.abs(data.matchInfo.kickOff[data.matchInfo.period].split(":")[0]);
        var periodStartMin = Math.abs(data.matchInfo.kickOff[data.matchInfo.period].split(":")[1]);
        periodStartMin = (periodStartStd*60) + periodStartMin;

        var minute = nowMin-periodStartMin+addMinute;

      }
    }
    if( minute == "" ){
      minute = data.matchInfo.matchTime;
      //minute += "/" + data.matchInfo.matchTime;
    }

    if( minute != "" ){
      minute += ". min";
    }

    return minute;
  };

  /*
  PreMatch
  FirstHalf
  HalfTime
  SecondHalf
  ExtraFirstHalf
  ExtraSecondHalf
  ShootOut
  FullTime
  */

  switch ( data.matchInfo.period ){
    case "PreMatch":
      matchTime = "Anpfiff: " + getDate(data.matchInfo.date)[1];
      break;

    case "FirstHalf":
      matchTime = getMatchMinute(0);
      break;

    case "HalfTime":
      matchTime = "Halbzeitpause";
      break;

    case "SecondHalf":
      matchTime = getMatchMinute(45);
      break;

    case "ExtraFirstHalf":
      matchTime = getMatchMinute(90);
      break;

    case "ExtraSecondHalf":
      matchTime = getMatchMinute(105);
      break;

    case "ShootOut":
      matchTime = "Elfmeterschie&szlig;en";
      break;

    case "FullTime":
    	if(data.matchInfo.winner){
    		matchTime = "Spiel beendet";
    	}else{
    		matchTime = "Spielpause";
    	}
      break;

    default:
      matchTime = "";
      break;

  }

  return matchTime;

}


function match_getOfficial( data ){
  var official = "";
  if(data.matchInfo.matchOfficial){
    if(data.matchInfo.matchOfficial.firstName){
      //official = data.matchInfo.matchOfficial.firstName;
    }
    if(data.matchInfo.matchOfficial.lastName){
      official += " " + data.matchInfo.matchOfficial.lastName;
    }
  }
  return official;
}

function match_getVenueName( data ){
  var venue = "";
  if(data.matchInfo.venueId){
    for ( var value in scheduleLocations ){
      if( scheduleLocations[value].optaId == data.matchInfo.venueId ){
        venue = scheduleLocations[value].city + ": " + scheduleLocations[value].stadium;
      }
    }
  }
  return venue;
}

function match_scoreLastPeriod( data ){

  var scoreAll = {
    "FirstHalf": {
      "teamHome": 0,
      "teamAway": 0
    },
    "SecondHalf": {
      "teamHome": 0,
      "teamAway": 0
    },
    "ExtraFirstHalf": {
      "teamHome": 0,
      "teamAway": 0
    },
    "ExtraSecondHalf": {
      "teamHome": 0,
      "teamAway": 0
    },
    "ShootOut": {
      "teamHome": 0,
      "teamAway": 0
    }
  };

  for ( var value in data.teamHome.goal ){
    scoreAll[ data.teamHome.goal[value].period ].teamHome ++;
  }
  for ( var value in data.teamAway.goal ){
    scoreAll[ data.teamAway.goal[value].period ].teamAway ++;
  }

  /*
  PreMatch
  FirstHalf
  HalfTime
  SecondHalf
  ExtraFirstHalf
  ExtraSecondHalf
  ShootOut
  FullTime
  */
  var scoreHome = "-";
  var scoreAway = "-";

  switch ( data.matchInfo.period ){
    case "SecondHalf":
      scoreHome = scoreAll.FirstHalf.teamHome;
      scoreAway = scoreAll.FirstHalf.teamAway;
      break;

    case "ExtraFirstHalf":
      scoreHome = scoreAll.FirstHalf.teamHome + scoreAll.SecondHalf.teamHome;
      scoreAway = scoreAll.FirstHalf.teamAway + scoreAll.SecondHalf.teamAway;
      break;

    case "ExtraSecondHalf":
      scoreHome = scoreAll.FirstHalf.teamHome + scoreAll.SecondHalf.teamHome;
      scoreAway = scoreAll.FirstHalf.teamAway + scoreAll.SecondHalf.teamAway;
      break;

    case "ShootOut":
      scoreHome = scoreAll.FirstHalf.teamHome + scoreAll.SecondHalf.teamHome + scoreAll.ExtraFirstHalf.teamHome + scoreAll.ExtraSecondHalf.teamHome;
      scoreAway = scoreAll.FirstHalf.teamAway + scoreAll.SecondHalf.teamAway + scoreAll.ExtraFirstHalf.teamAway + scoreAll.ExtraSecondHalf.teamAway;
      break;

    case "FullTime":
      scoreHome = scoreAll.FirstHalf.teamHome + scoreAll.SecondHalf.teamHome + scoreAll.ExtraFirstHalf.teamHome + scoreAll.ExtraSecondHalf.teamHome;
      scoreAway = scoreAll.FirstHalf.teamAway + scoreAll.SecondHalf.teamAway + scoreAll.ExtraFirstHalf.teamAway + scoreAll.ExtraSecondHalf.teamAway;
      break;
  }


  var periodInfo = "";
  if (data.matchInfo.resultType){
	  switch ( data.matchInfo.resultType ){
	    case "AfterExtraTime":
	    	periodInfo = " n.V.";
	    	break;

	    case "PenaltyShootout":
	    	periodInfo = " n.E.";
	    	break;
	  }
  }

  return "(" + scoreHome + ":" + scoreAway + ")" + periodInfo;

}

function match_isLive( data ){

  var status = true;

  if( data.matchInfo.period=="PreMatch" || data.matchInfo.period=="FullTime" ){
    status = false;
  }

  return status;
}

function match_evalFormationPlace( data ){

    for ( var value in data.teamHome.substitution ){
      var playerOn = data.teamHome.substitution[value].subOn;
      var playerOff = data.teamHome.substitution[value].subOff;
      data.teamHome.player[playerOn].formationPlace = data.teamHome.player[playerOff].formationPlace;
      data.teamHome.player[playerOff].formationPlace = -1;
      if(data.teamHome.substitution[value].time=="45" && data.teamHome.substitution[value].period==2){
    	  data.teamHome.substitution[value].time = "46";
      }
    }

    for ( var value in data.teamAway.substitution ){
      var playerOn = data.teamAway.substitution[value].subOn;
      var playerOff = data.teamAway.substitution[value].subOff;
      data.teamAway.player[playerOn].formationPlace = data.teamAway.player[playerOff].formationPlace;
      data.teamAway.player[playerOff].formationPlace = -1;
      if(data.teamAway.substitution[value].time=="45" && data.teamAway.substitution[value].period==2){
    	  data.teamAway.substitution[value].time = "46";
      }
    }

    for ( var value in data.teamHome.booking ){
    	if(data.teamHome.booking[value].cardType=="SecondYellow" || data.teamHome.booking[value].cardType=="StraightRed"){
    		var player = data.teamHome.booking[value].playerId;
    		data.teamHome.player[player].formationPlace = -1;
    	}
    }

    for ( var value in data.teamAway.booking ){
    	if(data.teamAway.booking[value].cardType=="SecondYellow" || data.teamAway.booking[value].cardType=="StraightRed"){
    		var player = data.teamAway.booking[value].playerId;
    		data.teamAway.player[player].formationPlace = -1;
    	}
    }

}

function match_getPlayerInfo( data, team, playerId ){

    var dummy;
    var event = new Array();

    for ( var value in data.teamHome.goal ){
      if( data.teamHome.goal[value].playerId == playerId ){
        event.push( [ data.teamHome.goal[value].time, data.teamHome.goal[value].type ] );
      }
    }
    for ( var value in data.teamAway.goal ){
      if( data.teamAway.goal[value].playerId == playerId ){
        event.push( [ data.teamAway.goal[value].time, data.teamAway.goal[value].type ] );
      }
    }

    for ( var value in team.booking ){
      if( team.booking[value].playerId == playerId ){
        event.push( [ team.booking[value].time, team.booking[value].cardType ] );
      }
    }

    for ( var value in team.substitution ){
      if( team.substitution[value].subOn == playerId ){
        event.push( [ team.substitution[value].time, "in" ] );
      }
      if( team.substitution[value].subOff == playerId ){
        event.push( [ team.substitution[value].time, "out" ] );
      }
    }

    dummy = new Array;
    for ( var i=0; i < event.length; ++i ){
      dummy.push('<span class="' + event[i][1] + '">' + event[i][0] + '.</span>');
    }

    return dummy.join("");

  }


function match_getPlayerName( data, playerId ){

    var player = null;
    var playerName = "";
    if( data.teamHome.player[playerId] ){
      player = data.teamHome.player[playerId];
    }else{
      if( data.teamAway.player[playerId] ){
        player = data.teamAway.player[playerId];
      }
    }

    if( player ){
      playerName = player.knownName ? player.knownName : player.lastName;
    }

    return playerName;

  }


function schedule_dispatcher(){

  var html = scheduleFull_render();




  $(".jq_wm_schedule").each( function(){

    var container = $(this);
    $(".renderedData", container).remove();
  $(container).append(html);

  if(isWmRefresh==false){
      $( "select", container ).bind("change",
            function(){
              var changed = this;

              $( "select", container ).each(
                function(){
                  if( this === changed ){
                    var filterStr = $("option:selected", this).attr("value");
                    $("option:selected", this).attr("selected", "select");
                    $("#wm_schedule").schedule_filter( filterStr, $(this).hasClass("fuzzy")?true:false );

                    if( filterStr == "A" || filterStr == "B" || filterStr == "B" || filterStr == "C" || filterStr == "D" || filterStr == "E" || filterStr == "F" || filterStr == "G" || filterStr == "H" ){
                      $("#wm_schedule .wm_ranking").show();
                    }else{
                      $("#wm_schedule .wm_ranking").hide();
                    }
                  }
                  else{
                    $("option", this).eq(0).attr("selected", "select");
                  }
                }
              );
            }
          );
  }

    if( $( ".isFilter", container).html()!="" ){
      $(container).schedule_filter( $( ".isFilter", container).html(), $( ".isFilter", container).hasClass("fuzzy")?true:false );
    }

  });
}



function ranking_dispatcher(){

  var html = rankingFull_render();

  $(".jq_wm_ranking").each( function(){
    var container = $(this);

    $(".renderedData", container).remove();
  $(container).append(html);

    if( $( ".isFilter", container).html()!="" ){
      $(container).schedule_filter( $( ".isFilter", container).html() );
    }

  });
}

function way_dispatcher(){

  var html = wayToFinale_render();

  $(".jq_wm_way").each( function(){
    var container = $(this);
    $(".renderedData", container).remove();
    $(container).append(html);

  });
}

function schedule_today_dispatcher(){

    var html = scheduleToday_render();

    $(".jq_wm_schedule_today").each( function(){
      var container = $(this);
      $(".renderedData", container).remove();
      $(container).append(html);

    });
  }

function schedule_applet_dispatcher(){

    var html = scheduleApplet_render();

    $(".jq_wm_schedule_applet").each( function(){
      var container = $(this);
      $(".renderedData", container).remove();
      $(container).append(html);

      if( $( ".isFilter", container).html()!="" ){
          $(container).schedule_filter( $( ".isFilter", container).html() );
        }

    });
  }



function match_dispatcher(setup){
  if(setup.container.data( "kickOff" )){
    setup.data.matchInfo.kickOff = setup.container.data( "kickOff" );
  }else{
    setup.data.matchInfo.kickOff = null;
  }

  var html = match_render(setup.data);
  $(".renderedData", setup.container).remove();
  $(setup.container).append(html);


  var metaContainer = $(setup.container).parent(".wm_match");
  var switchView = function(viewFull){
	  if( viewFull == false ){
		$(".switchView a", metaContainer).attr("class", "small");
	    $(".teams", setup.container).css("display", "none");
	    $(".wm_match_tabs", metaContainer).css("display", "none");
	    $(".wm_match_ticker", metaContainer).css("display", "none");
	    $(".wm_schedule", metaContainer).css("display", "none");
	    $(".dwsBanner", metaContainer).hide();
	  }else{
		$(".switchView a", metaContainer).attr("class", "big");
		$(".teams", setup.container).css("display", "block");
		$(".wm_match_tabs", metaContainer).css("display", "block");
		if( $(".tab_ticker a", metaContainer).hasClass("active") ){
			$(".wm_match_ticker", metaContainer).css("display", "block");
		}
		if( $(".tab_table a", metaContainer).hasClass("active") ){
			$(".wm_schedule", metaContainer).css("display", "block");
		}
		$(".dwsBanner", metaContainer).show();
	  }
  }

  switchView(setup.viewFull);




  $(".switchView a", metaContainer).click(function(){

	  if(setup.viewFull){
		  setup.viewFull= false;
	  }else{
		  setup.viewFull= true;
	  }
	  switchView(setup.viewFull);

  });




  return $(metaContainer).each(function(){
	    var that = this;
	    var ticker = $(".wm_match_ticker", this);
	    var table = $(".wm_schedule", this);
	    var tabs = $(".wm_match_tabs span", this);

	    $(tabs).click(function(){
	      $("a", tabs).removeClass("active");
	      if($(this).hasClass("tab_field")){
	    	  $(ticker).hide();
	    	  $(table).hide();
	      }
	      if($(this).hasClass("tab_table")){
	    	  $(ticker).hide();
	    	  $(table).show();
	      }
	      if($(this).hasClass("tab_ticker")){
	    	  $(ticker).show();
	    	  $(table).hide();
	      }
	      //$(this).hasClass("tab_field") ? $(ticker).hide() : $(ticker).show();
	      $("a", this).addClass("active");
	    });

  });

}


function scorer_dispatcher(setup){

  $(".jq_wm_topscorer").each( function(){

	var limit = $(this).hasClass("applet") ? 10 : 500;


	var html = scorer_render(setup.data, limit);
    var container = $(this);
    $(".renderedData", container).remove();
    $(container).append(html);

  });
}


function scorer_render(data, limit){

	var limit = limit || 10;

	var base = 'http://www.n-tv.de/ads/dpa/fb_mwm/images/';
	var html = '';

	html += '<div class="renderedData">';
	html += '<table cellspacing="0" cellpadding="0">';
	html += '<tr>';
	html += '<th class="pos"><abbr title="Position">Pos</abbr></th>';
	html += '<th class="team">Team</th>';
	html += '<th class="name">Name</th>';
	html += '<th class="age">Alter</th>';
	html += '<th class="penalty">Elfmeter</th>';
	//html += '<th class="minutes">Spielminuten</th>';
	html += '<th class="goals">Tore</th>';
	html += '</tr>';

	var sSkeleton = '';
	sSkeleton += '<tr>';
	sSkeleton += '<td class="pos"></td>';
	sSkeleton += '<td class="team"></td>';
	sSkeleton += '<td class="name"></td>';
	sSkeleton += '<td class="age"></td>';
	sSkeleton += '<td class="penalty"></td>';
	//sSkeleton += '<td class="minutes"></td>';
	sSkeleton += '<td class="goals"></td>';
	sSkeleton += '</tr>';

	var buildScorer = function( index, p ){
		if( !(index < limit) ){
			return "";
		}

		var stub = $("<div><table><tbody /></table></div>");
		$("tbody", stub).html( sSkeleton );

		$(".pos", stub).html( (index+1) + "." );

		var img = getTeamFlagImage( p.team_id );
		$(".team", stub).html( img );

		if( p.player_known_name === null ) {
			$(".name", stub).html( p.player_first_name + " " + p.player_last_name );
		}
		else {
			$(".name", stub).html( p.player_known_name );
		}

		$(".age", stub).html( p.years_old );
		$(".penalty", stub).html( p.penalty_goals ? p.penalty_goals : 0 );
		$(".minutes", stub).html( p.mins_occurred + " Min." );

		$(".goals", stub).html( p.stat );

		return $("tbody", stub).html();
	};

	$(data.player).each(function( index, player){
		html += buildScorer( index, player );
	});

	html += '</table>';
	html += '</div>';

	return html;



}

function matchTicker_dispatcher(setup){

  var html = matchTicker_render(setup.data);
  $(".renderedData", setup.container).remove();
  $(setup.container).append(html);
}

function matchTicker_render(data){

  var base = 'http://www.n-tv.de/ads/dpa/fb_mwm/images/';
  var html = '';

  var eSkeleton = '<tr>';
  eSkeleton += '<td class="time"><div class="minute" /><div class="extra" /></td>';
  eSkeleton += '<td class="goals_event"><div class="goals" /><div class="event"></div></td>';
  eSkeleton += '<td class="text"><div class="img" /><p /></td>';
  eSkeleton += '</tr>';

  html += '<div class="renderedData">';
  html += '<div class="content_block_header"></div>';
  html += '<div class="table_wrapper">';
  html += '<table cellspacing="0">';

  var buildEvent = function(index, e) {
    var event = e.event;

    var stub = $("<table />");
    stub.html(eSkeleton);

    // set event class
    if (e.css) {
      $("tr", stub).addClass(e.css);
    }

    if (index === data.event.length-1) {
      $("tr", stub).addClass("last");
    }

    // minute
    $(".minute", stub).html(e.minute + ". Min");
    if (e.extra) {
      $(".extra", stub).html("(+" + e.extra + ". Min)");
    }

    // goals
    $(".goals", stub).html(e.score.home + ":" + e.score.away);

    // text
    $(".text p", stub).html(e.text);

    // event specific icons
    var iconAlt = null;
    var iconBase = "http://www.n-tv.de/stat/wm2010/images/";
    var iconPath = null;
    switch( e.type ){
      case "4":
        // goal
        iconAlt = "Tor";
        iconPath = iconBase + "bg_textticker_goal.png";
        break;
      case "5":
        // own goal
        iconAlt = "Eigentor";
        iconPath = iconBase + "bg_textticker_goal_own.png";
        break;
      case "8":
        // yellow
        iconAlt = "gelbe Karte";
        iconPath = iconBase + "bg_textticker_yellow.png";
        break;
      case "9":
        // yellowred
        iconAlt = "gelb-rote Karte";
        iconPath = iconBase + "bg_textticker_yellow_red.png";
        break;
      case "10":
        // red
        iconAlt = "rote Karte";
        iconPath = iconBase + "bg_textticker_red.png";
        break;
      case "11":
        // subs
        iconAlt = "Auswechslung";
        iconPath = iconBase + "bg_textticker_in.png";
        break;
    }

    if( iconPath !== null ){
      $(".event", stub).html('<img src="' + iconPath + '" alt="' + iconAlt + '" />');
    }


    // player images
    if ( e.player.id !== null  ) {
      var id = e.player.id;

      $(".text .img", stub).css( {
        "background": "#f4f4f4 url('" + ( base + id.substring("1", id.length)) + ".jpg"  + "') no-repeat 50% 50%",
        "float" : "left",
        "height" : "119px",
        "margin-right": "10px",
        "width" : "90px"
      });
    }


    return $("tbody", stub).html();
  };

  // Forward
  $(data.event).each(function(index, e) {
    html += buildEvent(index, e);
  });

  html += '</table></div>';
  html += '</div>';

  return html;
}




function team_dispatcher(setup){


  var html = team_render(setup.data);
  $(".renderedData", setup.container).remove();
  $(setup.container).append(html);

}
// ######### render ############


function team_render(data) {

  var base = 'http://www.n-tv.de/ads/dpa/fb_mwm/images/';
  var html = '';
  var pSkeleton = '';
  pSkeleton += '<div class="player clearfix span-2">';
  pSkeleton += '<div class="portrait" />';
  pSkeleton += '<table cellspacing="0">';
  pSkeleton += '<caption></caption>';
  pSkeleton += '<tr><th scope="row">Gr&ouml;&szlig;e:</th><td class="height"></td></tr>';
  pSkeleton += '<tr><th scope="row">Gewicht:</th><td class="weight"></td></tr>';
  pSkeleton += '<tr><th scope="row">Alter:</th><td class="age"></td></tr>';
  pSkeleton += '<tr><th scope="row">L&auml;ndersp:</th><td class="matches"></td></tr>';
  pSkeleton += '<tr><th scope="row">Tore:</th><td class="goals"></td></tr>';
  pSkeleton += '</table>';
  pSkeleton += '</div>';


  html += '<div class="renderedData">';
  html += '<strong class="category">Aufstellung ' + data.name + '</strong>';

  var team = data.team;

  var buildPlayer = function( index, p ){
    var player = p.player;

    var stub = $("<div />");

    stub.html( pSkeleton );

    $(".portrait", stub).css({
      "background-image": "url(" + base + player.id.substring("1", player.id.length) + ".jpg" + ")",
      "background-position": "50% 50%"
    });

    $("caption", stub).html( player.name + '<small>' + player.team + '</small>' );
    $(".height", stub).html( player.height + " cm" );
    $(".weight", stub).html( player.weight + " kg" );
    $(".age", stub).html( player.age + " J." );
    $(".matches", stub).html( player.matches_career_offset );
    $(".goals", stub).html( player.goals_career_offset );

    if( index != 0 && (index+1) % 3 == 0 ){
      $(".player", stub).addClass("last");
      $(stub).append('<div class="span-6 last"></div>');
    }

    return $(stub).html();
  };



  // Goalkeeper
  html += '<div class="hl span-6 last">Tor</div>';
  var players = '';
  $(team.goalkeeper).each(function( index, player){

    players += buildPlayer( index, player );
  });
  html += '<div class="players clearfix">' + players + '</div>';

  // Abwehr
  html += '<div class="hl span-6 last">Abwehr</div>';
  var players = '';
  $(team.defender).each(function( index, player){
    players += buildPlayer( index, player );
  });
  html += '<div class="players clearfix">' + players + '</div>';

  // Midfield
  html += '<div class="hl span-6 last">Mittelfeld</div>';
  var players = '';
  $(team.midfielder).each(function( index, player){
    players += buildPlayer( index, player );
  });
  html += '<div class="players clearfix">' + players + '</div>';

  // Forward
  html += '<div class="hl span-6 last">Sturm</div>';
  var players = '';
  $(team.forward).each(function( index, player){
    players += buildPlayer( index, player );
  });
  html += '<div class="players clearfix">' + players + '</div>';




  html += '</div>';

  return html;
}


function getWayMatch(scheduleAll, name){


  var playoff = {
		    "AF1": 318289,
		    "AF2": 318290,
		    "AF3": 318291,
		    "AF4": 318292,
		    "AF5": 318293,
		    "AF6": 318294,
		    "AF7": 318295,
		    "AF8": 318296,
		    "VF1": 318297,
		    "VF2": 318298,
		    "VF3": 318299,
		    "VF4": 318300,
		    "HF1": 318301,
		    "HF2": 318302,
		    "THIRD": 318303,
		    "FI": 318304
  };

  var matchID = playoff[name];


	var matchInfo = {
		"teamClass": " inactive",
		"resultClass": " result_inactive",
		"result": getDate(scheduleAll[matchID]["date"], "short")[0] + ' ' + getDate(scheduleAll[matchID]["date"], "short")[1] + '<br />',
		"teamHome": scheduleAll[matchID].round>4?getTeam( scheduleAll[matchID]["teamHome_teamId"], "placeHolderNo"):getTeam( scheduleAll[matchID]["teamHome_teamId"], "placeHolderShort"),
		"teamAway": scheduleAll[matchID].round>4?getTeam( scheduleAll[matchID]["teamAway_teamId"], "placeHolderNo"):getTeam( scheduleAll[matchID]["teamAway_teamId"], "placeHolderShort")
	}
	if( scheduleAll[matchID]["status"]=="FULL" ){
		matchInfo.teamClass = "";
		matchInfo.resultClass = " result";
	}
	if( scheduleAll[matchID]["status"]!="PRE-MATCH" ){
		matchInfo.result = getScore(scheduleAll[matchID]) + '<br />';
	}

	var html = new Array();
	html.push('<div class="' + name + '_teamHome team' + matchInfo.teamClass + '">' + getTeamFlagImage(scheduleAll[matchID]["teamHome_teamId"], true) + matchInfo.teamHome +  '</div>');
	html.push('<div class="' + name + '_result' +  matchInfo.resultClass + '">');
	  html.push(  matchInfo.result );
	  html.push( getLinks(scheduleAll[matchID]["eventId"]) ),
	  //html.push('<span class="gallery">Bilderserie</span><span class="report">Spielbericht</span><span class="statistic">Statistik</span>');
	html.push('</div>');
	html.push('<div class="' + name + '_teamAway team' +  matchInfo.teamClass + '">' + getTeamFlagImage(scheduleAll[matchID]["teamAway_teamId"], true) + matchInfo.teamAway + '</div>');


	return html.join("");
}

function wayToFinale_render() {

    var scheduleAll = new Object();
    scheduleAll = scheduleSetup.data;

  var html = new Array();

  html.push('<div class="renderedData">');

  html.push( getWayMatch(scheduleAll, "AF1") );
  html.push( getWayMatch(scheduleAll, "AF2") );
  html.push( getWayMatch(scheduleAll, "AF3") );
  html.push( getWayMatch(scheduleAll, "AF4") );
  html.push( getWayMatch(scheduleAll, "AF5") );
  html.push( getWayMatch(scheduleAll, "AF6") );
  html.push( getWayMatch(scheduleAll, "AF7") );
  html.push( getWayMatch(scheduleAll, "AF8") );
  html.push( getWayMatch(scheduleAll, "VF1") );
  html.push( getWayMatch(scheduleAll, "VF2") );
  html.push( getWayMatch(scheduleAll, "VF3") );
  html.push( getWayMatch(scheduleAll, "VF4") );
  html.push( getWayMatch(scheduleAll, "HF1") );
  html.push( getWayMatch(scheduleAll, "HF2") );
  html.push( getWayMatch(scheduleAll, "FI") );

  html.push('<div class="THIRD_type"><strong>Spiel um den dritten Platz</strong></div>');
  html.push( getWayMatch(scheduleAll, "THIRD") );

  html.push('</div>');

  return html.join("");

}


function scheduleApplet_render() {

    var scheduleAll = new Object();
    scheduleAll = scheduleSetup.data;

    var html = "";
    var dummy;

    dummy = new Array();
    dummy.push('<div class="renderedData">');

    dummy.push("<table>");

    for ( var value in scheduleAll ){
      dummy.push("<tr class=\"date\">");
      dummy.push("<td class=\"group\">" + scheduleAll[value]["group"] + "</td><td colspan=\"6\"><strong>" + getDate(scheduleAll[value]["date"])[0] + " - " + getDate(scheduleAll[value]["date"])[1] + "</strong> - " + scheduleLocations[scheduleAll[value]["venueId"]].city + "</td>");
      dummy.push("</tr>");
      dummy.push("<tr>");
      dummy.push("<td class=\"date\"><strong>" + getDate(scheduleAll[value]["date"])[1] + "</strong> - " + scheduleLocations[scheduleAll[value]["venueId"]].city + "</td>");
      dummy.push("<td class=\"team align_right\">" + getTeam(scheduleAll[value]["teamHome_teamId"]) + "</td>");
      dummy.push("<td class=\"teamFlag\">" + getTeamFlagImage(scheduleAll[value]["teamHome_teamId"]) + "</td>");
      dummy.push("<td class=\"score\">" + getScore(scheduleAll[value]) + "</td>");
      dummy.push("<td class=\"teamFlag\">" + getTeamFlagImage(scheduleAll[value]["teamAway_teamId"]) + "</td>");
      dummy.push("<td class=\"team\">" + getTeam(scheduleAll[value]["teamAway_teamId"]) + "</td>");
      dummy.push("<td class=\"links\">" + getLinks(scheduleAll[value]["eventId"]) + "</td>");
      dummy.push("<td class=\"group\">" + scheduleAll[value]["group"] + "</td>");
      dummy.push("</tr>");
    }


    dummy.push('</table>');
    dummy.push('</div>');

    html = dummy.join("");



    return html;
  }


function scheduleToday_render() {

    var scheduleAll = new Object();

    var date = new Date();
    var today = "2010-0" + (date.getMonth()+1) + "-" + (date.getDate()<10?"0"+date.getDate():date.getDate());
   // var today = "2010-0" + (date.getMonth()+1) + "-" + "12";


    for ( var value in scheduleSetup.data ){
      if( scheduleSetup.data[value].date.indexOf(today)>-1 ){
        scheduleAll[value] = scheduleSetup.data[value];
      }
    }

    var html = "";

    var dummy;


    dummy = new Array();
    dummy.push('<div class="renderedData">');

    dummy.push("<table>");

    for ( var value in scheduleAll ){
      dummy.push("<tr class=\"date\">");
      dummy.push("<td colspan=\"7\"><strong>" + getDate(scheduleAll[value]["date"])[1] + "</strong> - " + scheduleLocations[scheduleAll[value]["venueId"]].city + "</td>");
      dummy.push("</tr>");
      dummy.push("<tr>");
      dummy.push("<td class=\"date\"><strong>" + getDate(scheduleAll[value]["date"])[1] + "</strong> - " + scheduleLocations[scheduleAll[value]["venueId"]].city + "</td>");
      dummy.push("<td class=\"team align_right\">" + getTeam(scheduleAll[value]["teamHome_teamId"]) + "</td>");
      dummy.push("<td class=\"teamFlag\">" + getTeamFlagImage(scheduleAll[value]["teamHome_teamId"]) + "</td>");
      dummy.push("<td class=\"score\">" + getScore(scheduleAll[value]) + "</td>");
      dummy.push("<td class=\"teamFlag\">" + getTeamFlagImage(scheduleAll[value]["teamAway_teamId"]) + "</td>");
      dummy.push("<td class=\"team\">" + getTeam(scheduleAll[value]["teamAway_teamId"]) + "</td>");
      dummy.push("<td class=\"links\">" + getLinks(scheduleAll[value]["eventId"]) + "</td>");
      dummy.push("</tr>");
    }


    dummy.push('</table>');
    dummy.push('</div>');

    html = dummy.join("");



    return html;
  }



function scheduleFull_render() {

  var scheduleAll = new Object();
  scheduleAll = scheduleSetup.data;

  var scheduleTable = "";
  var scheduleFilter = "";
  var allHTML;

  var game;

  var dummy;
  var filter_dummy = {
      date: {},
      group: {},
      location: {},
      team: {}
    };
  var filter = {
    date: [],
    group: [],
    location: [],
    team: []
  };

  dummy = new Array();
  dummy.push("<table class='renderedData'>");
  dummy.push("<thead>");
  dummy.push("<tr><th class=\"date\">Datum &amp; Uhrzeit</th><th class=\"align_center group\">Gruppe</th><th class='round'>Runde</th><th colspan=\"5\" class=\"align_center\">Partie</th><th>&nbsp;</th>");
  dummy.push("</thead>");
  dummy.push("<tbody>");

  var lastround = 0;

  for ( var value in scheduleAll ){

    var group_dummy = "";
    var filter_group_dummy = "";
    if( scheduleAll[value]["group"] ){
      group_dummy = scheduleAll[value]["group"];
      filter_group_dummy = scheduleAll[value]["group"];
    }else{
      group_dummy = scheduleRound[ scheduleAll[value]["round"] ]["short"];
      filter_group_dummy = scheduleRound[ scheduleAll[value]["round"] ]["long"];
    }

    var round_dummy = "";
    if( scheduleAll[value]["round"] < 4 ){
      round_dummy = "Gruppenspiele Runde " + scheduleAll[value]["round"];
    }else{
      round_dummy = scheduleRound[ scheduleAll[value]["round"] ]["long"];
    }


    game = {
      "date": getDate(scheduleAll[value]["date"]),
      "group": group_dummy,
      "teamHome": getTeam(scheduleAll[value]["teamHome_teamId"]),
      "teamHomeFlag": getTeamFlagImage(scheduleAll[value]["teamHome_teamId"]),
      "teamAway": getTeam(scheduleAll[value]["teamAway_teamId"]),
      "teamAwayFlag": getTeamFlagImage(scheduleAll[value]["teamAway_teamId"]),
      "links": getLinks(scheduleAll[value]["eventId"]),
      "round": round_dummy
    };

    if( scheduleAll[value]["round"] > lastround){
      dummy.push("<tr class='round'>");
      dummy.push("<td colspan='8'>" + game.round + "</td>");
      dummy.push("</tr>");
      lastround = scheduleAll[value]["round"];
    }

    dummy.push("<tr>");
    dummy.push("<td class=\"date\">" + game.date[0] + " - " + game.date[1] + (wmDebug.debug ? "<br/>eventID: "+scheduleAll[value]["eventId"] : "") + "</td>");
    dummy.push("<td class=\"group\">" + game.group + "</td>");
    dummy.push("<td class=\"round\">" + game.round + "</td>");
    dummy.push("<td class=\"team align_right\">" + game.teamHome + "</td>");
    dummy.push("<td class=\"teamFlag\">" + game.teamHomeFlag + "</td>");
    dummy.push("<td class=\"score\">" + getScore(scheduleAll[value]) + "</td>");
    dummy.push("<td class=\"teamFlag\">" + game.teamAwayFlag + "</td>");
    dummy.push("<td class=\"team\">" + game.teamAway + "</td>");
    dummy.push("<td class=\"links\">" + game.links + "</td>");
    dummy.push("<td class=\"venueId\">" + scheduleAll[value]["venueId"] + "</td>");
    dummy.push("</tr>");

    filter_dummy.date[game.round] = 1;
    filter_dummy.date[game.date[0]] = 1;

    filter_dummy.group[filter_group_dummy] = 1;
    if(game.teamHomeFlag != "&nbsp;"){filter_dummy.team[game.teamHome] = 1;}
    if(game.teamAwayFlag != "&nbsp;"){filter_dummy.team[game.teamAway] = 1;}

  }
  dummy.push("</tbody>");
  dummy.push("</table>");
  scheduleTable = dummy.join("");

  for (var value in filter_dummy.date){
    if( value!="" ){filter.date.push(value);}
  }
  for (var value in filter_dummy.group){
    if( value!="" ){filter.group.push(value);}
  }
  for (var value in filter_dummy.team){
    if( value!="" ){filter.team.push(value);}
  }
  filter.team.sort();


  dummy = new Array();
  dummy.push("<form class='filter'>");
  dummy.push("<label class=\"first\">");
  dummy.push("Datum");
  dummy.push("<select class=\"fuzzy\">");
  dummy.push("<option value=\"\">alle</option>");
  for (var i = 0; i < filter.date.length; ++i){
    if( filter.date[i].indexOf(",") > -1 ){
      dummy.push("<option value=\"" + filter.date[i] + "\">&nbsp;&nbsp;&nbsp;" + filter.date[i] + "</option>");
    }else{
      dummy.push("<option value=\"" + filter.date[i] + "\">" + filter.date[i] + "</option>");
    }
  }
  dummy.push("</select>");
  dummy.push("</label>");
  dummy.push("<label>");
  dummy.push("Team");
  dummy.push("<select>");
  dummy.push("<option value=\"\">alle</option>");
  for (var i = 0; i < filter.team.length; ++i){
    dummy.push("<option value=\"" + filter.team[i] + "\">" + filter.team[i] + "</option>");
  }
  dummy.push("</select>");
  dummy.push("</label>");
  dummy.push("<label>");
  dummy.push("Gruppe");
  dummy.push("<select>");
  dummy.push("<option value=\"\">alle</option>");
  for (var i = 0; i < filter.group.length; ++i){
    dummy.push("<option value=\"" + filter.group[i] + "\">" + filter.group[i] + "</option>");
  }
  dummy.push("</select>");
  dummy.push("</label>");
  dummy.push("</form>");
  scheduleFilter = isWmRefresh ? "" : dummy.join("");

  allHTML = scheduleFilter + scheduleTable;


  return allHTML;
}


function getScore( game ){

  var teamHome_score_total = game.teamHome_score_total ? game.teamHome_score_total : "-";
  var teamAway_score_total = game.teamAway_score_total ? game.teamAway_score_total : "-";

  var teamHome_score_last = "-";
  if( game.teamHome_score_period1 && game.teamHome_score_period2 ){
    teamHome_score_last = game.teamHome_score_period1;
    teamHome_score_last = game.teamHome_score_period3 ? Math.abs(teamHome_score_last) + Math.abs(game.teamHome_score_period2) : teamHome_score_last;
    teamHome_score_last = game.teamHome_score_period5 ? Math.abs(teamHome_score_last) + Math.abs(game.teamHome_score_period3) + Math.abs(game.teamHome_score_period4) : teamHome_score_last;
  }

  var teamAway_score_last = "-";
  if( game.teamAway_score_period1 && game.teamAway_score_period2 ){
    teamAway_score_last = game.teamAway_score_period1;
    teamAway_score_last = game.teamAway_score_period3 ? Math.abs(teamAway_score_last) + Math.abs(game.teamAway_score_period2) : teamAway_score_last;
    teamAway_score_last = game.teamAway_score_period5 ? Math.abs(teamAway_score_last) + Math.abs(game.teamAway_score_period3) + Math.abs(game.teamAway_score_period4) : teamAway_score_last;
  }


  var periodInfo = game.teamHome_score_period4?" n.V.":"";
  if(game.teamHome_score_period5){
	  periodInfo = " n.E.";
  }

  return teamHome_score_total + ":" + teamAway_score_total + " (" + teamHome_score_last + ":" + teamAway_score_last + ")" + periodInfo;

}


function rankingFull_render() {

  var rankingAll = new Object();
  rankingAll = rankingSetup.data;


  var container = $(this);
  var allHTML = "";
  var dummy;

  dummy = new Array();

  dummy.push("<table class='renderedData'>");

  dummy.push("<tr>");
  dummy.push("<thead>");
  dummy.push("<th class=\"rank\">Position</th>");
  dummy.push("<th class=\"team\" colspan='2'>Team</th>");
  dummy.push("<th class=\"games\">Spiele</th>");
  dummy.push("<th class=\"goals\">Tore</th>");
  dummy.push("<th class=\"points\">Punkte</th>");
  dummy.push("<th class=\"group\">Gruppe</th>");
  dummy.push("</thead>");
  dummy.push("</tr>");

  for ( var value in rankingAll ){
    dummy.push("<tr>");
    dummy.push("<td class=\"rank\">" + rankingAll[value]["rank"] + ".</td>");
    dummy.push("<td class=\"teamFlag\">" + getTeamFlagImage(rankingAll[value]["teamId"]) + "</td>");
    dummy.push("<td class=\"team\">" + getTeam(rankingAll[value]["teamId"]) + "</td>");
    dummy.push("<td class=\"games\">" + rankingAll[value]["gamesPlayed"] + "</td>");
    dummy.push("<td class=\"goals\">" + rankingAll[value]["goals"] + ":" + rankingAll[value]["goalsConceded"] + "</td>");
    dummy.push("<td class=\"points\">" + rankingAll[value]["points"] + "</td>");

    dummy.push("<td class=\"group\">" + rankingAll[value]["group"] + "</td>");
    dummy.push("</tr>");
  }
  dummy.push("</table>");


  allHTML = dummy.join("");

  return(allHTML);
}



// ######## jquery ################

(function($) {


  $.fn.venues_init = function() {

    var container = $(this);
    var navi = $(".venue_imgMap", container);
    var activeVenue = "v_1";

    $("div", navi).bind( "mouseover", function(){
      var venue = $(this).attr("class");
      $( "a", navi).hide();
      $( "a." + venue, navi ).css("display", "block");
    });

    $("div", navi).bind( "mouseout", function(){
      $( "a", navi).hide();
    });

    $(".venue_imgMap img", container).bind( "mouseout", function(){
      $( "a." + activeVenue, navi ).css("display", "block");
    });

    $("div", navi).bind( "click", function(){
      var venue = $(this).attr("class");
      var venueID = venue.substr(2);
      $( ".venue", container).hide();
      $( "div." + venue, container ).show();
      $( ".jq_wm_schedule", container ).schedule_filter( venueID );
      activeVenue = venue;
    });


/*
    $("a", navi).bind( "click", function(){
        var venue = $(this).attr("class");
        var venueID = venue.substr(2);
        $( ".venue", container).hide();
        $( "div." + venue, container ).show();
        $( ".jq_wm_schedule", container ).schedule_filter( venueID );
    });
*/

  };

  $.fn.schedule_filter = function( filter, fuzzy, tab ) {

    if ( tab ){
      $( "li", "#wm_groupview" ).each(
        function(){
          $(this).removeClass( "active" );
        }
      );
      $(tab).addClass( "active" );
    }

    if(filter){
      $( "tbody tr", this ).each(
        function( i, tr ){
          $(tr).hide();
          $( "td", this ).each(
              function( i, td ){
                if( $(td).text() == filter || ( fuzzy==true && $(td).text().indexOf(filter)>-1 ) ){
                  $(tr).show();
                }
              }
          );
        }
      );

      $( ".isFilter", this).html(filter) ;
      if( fuzzy==true ){
        $( ".isFilter", this).addClass("fuzzy");
      }else{
        $( ".isFilter", this).removeClass("fuzzy");
      }


    }else{
      $( "tbody tr", this ).show();
    }
  };


})(jQuery);





// ######## get data ###############


function getData( setup ) {

  $.ajax({
    //url: setup.urlJSON + "?" + wmRandom,
    url: setup.urlJSON,
    dataType: 'json',
    success: function( data ){
        setup.data = data.soccerFeed;
        setup.dataSuccess = true;
        setup.dispatch(setup);
      },
      error: function( e ){
        setup.dataSuccess = false;
      }
  });


}



// ######## get strings ############

function getDate(dateString, format){

  //2010-06-11T16:00:00+02:00
  //20100611T150000+0100

  dateString = dateString.replace(/-/g, "").replace(/:/g, "");

  var localSpread = Math.abs(dateString.substr(16,2));

  var year = Math.abs(dateString.substr(0,4));
  var monthStr = dateString.substr(4,2);
  var month = Math.abs(monthStr)-1;
  var dayStr = dateString.substr(6,2);
  var day = Math.abs(dayStr);
  var hourStr = dateString.substr(9,2);
  var hour = Math.abs(hourStr);
  if(localSpread==1){
	  hour = hour+localSpread;
  }

  var minuteStr = dateString.substr(11,2);
  var minute = Math.abs(minuteStr);
  var second = Math.abs(dateString.substr(13,2));

/*
  var year = Math.abs(dateString.substring(0,4));
  var monthStr = dateString.substring(5,7);
  var month = Math.abs(monthStr)-1;
  var dayStr = dateString.substring(8,10);
  var day = Math.abs(dayStr);
  var hourStr = dateString.substring(11,13);
  var hour = Math.abs(hourStr);
  var minuteStr = dateString.substring(14,16);
  var minute = Math.abs(minuteStr);
  var second = Math.abs(dateString.substring(17,19));
*/

  var date = new Date(year, month, day, hour, minute, second);
  var weekday = new Array ( "So", "Mo", "Di", "Mi", "Do", "Fr", "Sa" )[date.getDay()];


  var monthFull = new Array ("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember")[month];


  var formatDate = weekday + ", " + dayStr + ". " + monthFull;
  var formatTime = hour + ":" + minuteStr + " Uhr";

  if(format == "short"){
    formatDate = dayStr + ". " + monthStr + ".";
    formatTime = hour + ":" + minuteStr + "h";
  }


  return [formatDate, formatTime];
}


function getTeam(teamId, type){

  var teamName = "";
  if(scheduleTeams[teamId]){
	  if(type == "short" || (type == "placeHolderShort" && typeof scheduleTeams[teamId].letterCode == "undefined") ){
		  teamName = scheduleTeams[teamId]["nameShort"];
	  }else{
		  if(type == "placeHolderNo" && typeof scheduleTeams[teamId].letterCode == "undefined"){
			  teamName = "&nbsp;";
		  }else{
			  teamName = scheduleTeams[teamId]["nameLong"];
		  }
	  }
   }
  return teamName;

}

function getTeamFlagImage(teamId, getDummy){

	  var teamFlagImage = "&nbsp;";
	  if(scheduleTeams[teamId] && scheduleTeams[teamId]["nameClear"]){
	    teamFlagImage = "<img src=\"http://www.n-tv.de/stat/wm2010/flaggen/" + scheduleTeams[teamId]["nameClear"] + ".gif?" + wmImageRand + "\" alt=\"\"/>";
	  }else{
		  if(getDummy){
			  teamFlagImage = '<img src="http://www.n-tv.de/stat/wm2010/flaggen/default.gif" alt="" />';
		  }
	  }
	  return teamFlagImage;
}

function getTeamFlagImageMatch(teamId, side){

  var teamFlagImage = "&nbsp;";
  if(scheduleTeams[teamId] && scheduleTeams[teamId]["nameClear"]){
    if( side == "away" ){
      teamFlagImage = "<img class='flag_away' src='http://www.n-tv.de/stat/wm2010/flaggen/matchdisplay/" + scheduleTeams[teamId]["nameClear"] + "_away.png' alt=''/>";
    }else{
      teamFlagImage = "<img class='flag_home' src='http://www.n-tv.de/stat/wm2010/flaggen/matchdisplay/" + scheduleTeams[teamId]["nameClear"] + "_home.png' alt=''/>";
    }
  }
  return teamFlagImage;
}

function getLocation(venueId){

  var locationName = "";
  var locationLink = "";
  var html = "";
  if(scheduleLocations[venueId]){
    locationName = scheduleLocations[venueId]["city"];
    locationLink = scheduleLocations[venueId]["link"];
    html = "<a href=\"" + locationLink + "\" title=\"" + locationName + "\">" + locationName + "</a>";
  }
  return html;

}

function getLinks(eventId){

  var html = '';

  var matchInfo = '<span class="statistic"></span>';
  var matchReport = '<span class="report"></span>';
  var matchGal = '<span class="gallery"></span>';



    if( wmMappingArticle.data.matchInfoList && wmMappingArticle.data.matchInfoList[eventId] ){
      matchInfo = '<span class="statistic"><a href="' + wmMappingArticle.data.matchInfoList[eventId] + '">&nbsp;</a></span>';
    }

    if( wmMappingArticle.data.matchReportList && wmMappingArticle.data.matchReportList[eventId] ){
      matchReport = '<span class="report"><a href="' + wmMappingArticle.data.matchReportList[eventId] + '">&nbsp;</a></span>';
    }
    if( wmMappingArticle.data.matchGalList && wmMappingArticle.data.matchGalList[eventId] ){
      matchGal = '<span class="gallery"><a href="' + wmMappingArticle.data.matchGalList[eventId] + '">&nbsp;</a></span>';
    }

  html = matchInfo + matchReport + matchGal;

  return html;

}

//######## static Objects #################

scheduleTeams = {
    "t522": new Object({
       "nameShort": "RSA",
       "nameLong": "S&uuml;dafrika",
       "nameClear": "suedafrika",
       "letterCode": "RSA",
       "fontColourHome": "#000000",
       "fontColourAway": "#FFFFFF"
    }),
    "t659": new Object({
       "nameShort": "MEX",
       "nameLong": "Mexiko",
       "nameClear": "mexiko",
       "letterCode": "MEX",
       "fontColourHome": "#FFFFFF",
       "fontColourAway": "#FFFFFF"
    }),
    "t837": new Object({
       "nameShort": "URU",
       "nameLong": "Uruguay",
       "nameClear": "uruguay",
       "letterCode": "URU",
       "fontColourHome": "#FFFFFF",
       "fontColourAway": "#000000"
    }),
    "t368": new Object({
       "nameShort": "FRA",
       "nameLong": "Frankreich",
       "nameClear": "frankreich",
       "letterCode": "FRA",
       "fontColourHome": "#FFFFFF",
       "fontColourAway": "#000000"
    }),
    "t632": new Object({
       "nameShort": "ARG",
       "nameLong": "Argentinien",
       "nameClear": "argentinien",
       "letterCode": "ARG",
       "fontColourHome": "#000000",
       "fontColourAway": "#FFFFFF"
    }),
    "t1216": new Object({
       "nameShort": "NGA",
       "nameLong": "Nigeria",
       "nameClear": "nigeria",
       "letterCode": "NGA",
       "fontColourHome": "#FFFFFF",
       "fontColourAway": "#000000"
    }),
    "t1041": new Object({
       "nameShort": "KOR",
       "nameLong": "S&uuml;dkorea",
       "nameClear": "suedkorea",
       "letterCode": "KOR",
       "fontColourHome": "#FFFFFF",
       "fontColourAway": "#000000"
    }),
    "t517": new Object({
       "nameShort": "GRE",
       "nameLong": "Griechenland",
       "nameClear": "griechenland",
       "letterCode": "GRE",
       "fontColourHome": "#000000",
       "fontColourAway": "#FFFFFF"
    }),
    "t114": new Object({
       "nameShort": "ENG",
       "nameLong": "England",
       "nameClear": "england",
       "letterCode": "ENG",
       "fontColourHome": "#000000",
       "fontColourAway": "#FFFFFF"
    }),
    "t596": new Object({
       "nameShort": "USA",
       "nameLong": "USA",
       "nameClear": "usa",
       "letterCode": "USA",
       "fontColourHome": "#000000",
       "fontColourAway": "#FFFFFF"
    }),
    "t1215": new Object({
       "nameShort": "ALG",
       "nameLong": "Algerien",
       "nameClear": "algerien",
       "letterCode": "ALG",
       "fontColourHome": "#000000",
       "fontColourAway": "#FFFFFF"
    }),
    "t365": new Object({
       "nameShort": "SVN",
       "nameLong": "Slowenien",
       "nameClear": "slowenien",
       "letterCode": "SVN",
       "fontColourHome": "#000000",
       "fontColourAway": "#FFFFFF"
    }),
    "t357": new Object({
       "nameShort": "GER",
       "nameLong": "Deutschland",
       "nameClear": "deutschland",
       "letterCode": "GER",
       "fontColourHome": "#000000",
       "fontColourAway": "#FFFFFF"
    }),
    "t575": new Object({
       "nameShort": "AUS",
       "nameLong": "Australien",
       "nameClear": "australien",
       "letterCode": "AUS",
       "fontColourHome": "#31584B",
       "fontColourAway": "#FFFFFF"
    }),
    "t364": new Object({
       "nameShort": "SRB",
       "nameLong": "Serbien",
       "nameClear": "serbien",
       "letterCode": "SRB",
       "fontColourHome": "#FFFFFF",
       "fontColourAway": "#000000"
    }),
    "t1219": new Object({
       "nameShort": "GHA",
       "nameLong": "Ghana",
       "nameClear": "ghana",
       "letterCode": "GHA",
       "fontColourHome": "#000000",
       "fontColourAway": "#FFFFFF"
    }),
    "t366": new Object({
       "nameShort": "NED",
       "nameLong": "Niederlande",
       "nameClear": "niederlande",
       "letterCode": "NED",
       "fontColourHome": "#FFFFFF",
       "fontColourAway": "#000000"
    }),
    "t369": new Object({
       "nameShort": "DEN",
       "nameLong": "D&auml;nemark",
       "nameClear": "daenemark",
       "letterCode": "DEN",
       "fontColourHome": "#FFFFFF",
       "fontColourAway": "#000000"
    }),
    "t1266": new Object({
       "nameShort": "JAP",
       "nameLong": "Japan",
       "nameClear": "japan",
       "letterCode": "JAP",
       "fontColourHome": "#FFFFFF",
       "fontColourAway": "#000000"
    }),
    "t494": new Object({
       "nameShort": "CMR",
       "nameLong": "Kamerun",
       "nameClear": "kamerun",
       "letterCode": "CMR",
       "fontColourHome": "#FFFFFF",
       "fontColourAway": "#000000"
    }),
    "t119": new Object({
       "nameShort": "ITA",
       "nameLong": "Italien",
       "nameClear": "italien",
       "letterCode": "ITA",
       "fontColourHome": "#FFFFFF",
       "fontColourAway": "#000000"
    }),
    "t835": new Object({
       "nameShort": "PAR",
       "nameLong": "Paraguay",
       "nameClear": "paraguay",
       "letterCode": "PAR",
       "fontColourHome": "#FFFFFF",
       "fontColourAway": "#000000"
    }),
    "t1804": new Object({
       "nameShort": "NZL",
       "nameLong": "Neuseeland",
       "nameClear": "neuseeland",
       "letterCode": "NZL",
       "fontColourHome": "#000000",
       "fontColourAway": "#FFFFFF"
    }),
    "t507": new Object({
       "nameShort": "SVK",
       "nameLong": "Slowakei",
       "nameClear": "slowakei",
       "letterCode": "SVK",
       "fontColourHome": "#FFFFFF",
       "fontColourAway": "#000000"
    }),
    "t614": new Object({
       "nameShort": "BRA",
       "nameLong": "Brasilien",
       "nameClear": "brasilien",
       "letterCode": "BRA",
       "fontColourHome": "#000000",
       "fontColourAway": "#FFFFFF"
    }),
    "t1801": new Object({
       "nameShort": "PRK",
       "nameLong": "Nordkorea",
       "nameClear": "nordkorea",
       "letterCode": "PRK",
       "fontColourHome": "#000000",
       "fontColourAway": "#FFFFFF"
    }),
    "t1221": new Object({
       "nameShort": "CIV",
       "nameLong": "Elfenbeink&uuml;ste",
       "nameClear": "elfenbeinkueste",
       "letterCode": "CIV",
       "fontColourHome": "#000000",
       "fontColourAway": "#FFFFFF"
    }),
    "t359": new Object({
       "nameShort": "POR",
       "nameLong": "Portugal",
       "nameClear": "portugal",
       "letterCode": "POR",
       "fontColourHome": "#FFFFFF",
       "fontColourAway": "#000000"
    }),
    "t118": new Object({
       "nameShort": "ESP",
       "nameLong": "Spanien",
       "nameClear": "spanien",
       "letterCode": "ESP",
       "fontColourHome": "#FFFFFF",
       "fontColourAway": "#FFFFFF"
    }),
    "t497": new Object({
       "nameShort": "SUI",
       "nameLong": "Schweiz",
       "nameClear": "schweiz",
       "letterCode": "SUI",
       "fontColourHome": "#FFFFFF",
       "fontColourAway": "#000000"
    }),
    "t847": new Object({
       "nameShort": "HON",
       "nameLong": "Honduras",
       "nameClear": "honduras",
       "letterCode": "HON",
       "fontColourHome": "#000000",
       "fontColourAway": "#FFFFFF"
    }),
    "t831": new Object({
       "nameShort": "CHI",
       "nameLong": "Chile",
       "nameClear": "chile",
       "letterCode": "CHI",
       "fontColourHome": "#FFFFFF",
       "fontColourAway": "#000000"
    }),
    "t5369": new Object({
       "nameShort": "A1",
       "nameLong": "Erster Gruppe A"
    }),
    "t5370": new Object({
       "nameShort": "A2",
       "nameLong": "Zweiter Gruppe A"
    }),
    "t5373": new Object({
       "nameShort": "B1",
       "nameLong": "Erster Gruppe B"
    }),
    "t5374": new Object({
       "nameShort": "B2",
       "nameLong": "Zweiter Gruppe B"
    }),
    "t5377": new Object({
       "nameShort": "C1",
       "nameLong": "Erster Gruppe C"
    }),
    "t5378": new Object({
       "nameShort": "C2",
       "nameLong": "Zweiter Gruppe C"
    }),
    "t5381": new Object({
       "nameShort": "D1",
       "nameLong": "Erster Gruppe D"
    }),
    "t5382": new Object({
       "nameShort": "D2",
       "nameLong": "Zweiter Gruppe D"
    }),
    "t5385": new Object({
       "nameShort": "E1",
       "nameLong": "Erster Gruppe E"
    }),
    "t5386": new Object({
       "nameShort": "E2",
       "nameLong": "Zweiter Gruppe E"
    }),
    "t5389": new Object({
       "nameShort": "F1",
       "nameLong": "Erster Gruppe F"
    }),
    "t5390": new Object({
       "nameShort": "F2",
       "nameLong": "Zweiter Gruppe F"
    }),
    "t5393": new Object({
       "nameShort": "G1",
       "nameLong": "Erster Gruppe G"
    }),
    "t5394": new Object({
       "nameShort": "G2",
       "nameLong": "Zweiter Gruppe G"
    }),
    "t5397": new Object({
       "nameShort": "H1",
       "nameLong": "Erster Gruppe H"
    }),
    "t5398": new Object({
       "nameShort": "H2",
       "nameLong": "Zweiter Gruppe H"
    }),
    "t5550": new Object({
       "nameShort": "VF1",
       "nameLong": "Viertelfinalist 1"
    }),
    "t5551": new Object({
       "nameShort": "VF2",
       "nameLong": "Viertelfinalist 2"
    }),
    "t5552": new Object({
       "nameShort": "VF3",
       "nameLong": "Viertelfinalist 3"
    }),
    "t5553": new Object({
       "nameShort": "VF4",
       "nameLong": "Viertelfinalist 4"
    }),
    "t5554": new Object({
       "nameShort": "VF5",
       "nameLong": "Viertelfinalist 5"
    }),
    "t5555": new Object({
       "nameShort": "VF6",
       "nameLong": "Viertelfinalist 6"
    }),
    "t5556": new Object({
       "nameShort": "VF7",
       "nameLong": "Viertelfinalist 7"
    }),
    "t5557": new Object({
       "nameShort": "VF8",
       "nameLong": "Viertelfinalist 8"
    }),
    "t2517": new Object({
       "nameShort": "S VF 1",
       "nameLong": "Sieger VF 1"
    }),
    "t2518": new Object({
       "nameShort": "S VF 2",
       "nameLong": "Sieger VF 2"
    }),
    "t2519": new Object({
       "nameShort": "S VF 3",
       "nameLong": "Sieger VF 3"
    }),
    "t2520": new Object({
       "nameShort": "S VF 4",
       "nameLong": "Sieger VF 4"
    }),
    "t1938": new Object({
       "nameShort": "V HF 1",
       "nameLong": "Verlierer HF 1"
    }),
    "t1939": new Object({
       "nameShort": "V HF 2",
       "nameLong": "Verlierer HF 2"
    }),
    "t2112": new Object({
       "nameShort": "S HF 1",
       "nameLong": "Sieger HF 1"
    }),
    "t2113": new Object({
       "nameShort": "S HF 2",
       "nameLong": "Sieger HF 2"
    }),
    "0": new Object({
        "nameShort": null,
        "nameLong": null,
        "nameClear": null,
        "letterCode": null,
        "fontColourHome": null,
        "fontColourAway": null
     })
  };


scheduleLocations = {
    "1": new Object({
       "city": "Johannesburg",
       "stadium": "Soccer City",
       "optaId": "v6433"
    }),
    "2": new Object({
       "city": "Johannesburg",
       "stadium": "Ellis Park",
       "optaId": "v3654"
    }),
    "3": new Object({
       "city": "Kapstadt",
       "stadium": "Green Point-Stadion",
       "optaId": "v6436"
    }),
    "4": new Object({
       "city": "Port Elizabeth",
       "stadium": "Nelson Mandela Bay-Stadion",
       "optaId": "v3167"
    }),
    "5": new Object({
       "city": "Durban",
       "stadium": "Moses Mabidha-Stadion",
       "optaId": "v2462"
    }),
    "6": new Object({
       "city": "Pretoria/Tshwane",
       "stadium": "Loftus Versfeld-Stadion",
       "optaId": "v3766"
    }),
    "7": new Object({
       "city": "Bloemfontein",
       "stadium": "Free State-Stadion",
       "optaId": "v6435"
    }),
    "8": new Object({
       "city": "Rustenburg",
       "stadium": "Royal Bafokeng-Stadion",
       "optaId": "v3764"
    }),
    "9": new Object({
       "city": "Nelspruit",
       "stadium": "Mbombela Stadion",
       "optaId": "v6434"
    }),
    "10": new Object({
       "city": "Polokwane",
       "stadium": "Peter Mokaba-Stadion",
       "optaId": "v6437"
    })
  };

scheduleRound = {
    "1": new Object({
       "short": "VR",
       "long": "Vorrunde"
    }),
    "2": new Object({
       "short": "VR",
       "long": "Vorrunde"
    }),
    "3": new Object({
       "short": "VR",
       "long": "Vorrunde"
    }),
    "4": new Object({
       "short": "AF",
       "long": "Achtelfinale"
    }),
    "5": new Object({
       "short": "VF",
       "long": "Viertelfinale"
    }),
    "6": new Object({
       "short": "HF",
       "long": "Halbfinale"
    }),
    "7": new Object({
       "short": "P3",
       "long": "Spiel um Platz 3"
    }),
    "8": new Object({
       "short": "FIN",
       "long": "Finale"
    })
  };
