  /////////////////////////////////////////////////////////////////////////////////////////////
  //  File: ModuleSoccerCountdown.js  v1                                                     //
  //  Author: 2008 Q2E GmbH                                                                 //
  //  Copyright: (c) 2008 Q2E GmbH                                                           //
  //  Last Change: 27.09.2008                                                                //
  //  Description: SoccerCountdown Module JavaScript     with servertime correction                                        //
  /////////////////////////////////////////////////////////////////////////////////////////////

 /* Possible format strings:
 	Y=year, m=month, d=day, H=hour, i=minute, s=second

 -->	YmdHis
 -->	mdHis
 -->	dHis
 -->	His
 -->	is
 -->	s
 */

  // function to add leading_zero
  function Zero(number) {
	number=number.toString();

    if(number.length < 2) {
      number = "0" + number;
	}
    
    if(number < 1 ) {
        number = "00";
  	}

    return number ;
  }

  function calcage(dnow, dthen, format) {
    var dnow = new Date();
    diff = new Date(dthen-dnow);
    secs = Math.floor(diff.valueOf()/1000);

    // calc day
	if(format == "d"){
	 diff = ((Math.floor(secs/86400))%100000).toString();
	}
    // calc hour
	if(format == "h"){
	 diff = ((Math.floor(secs/86400))%100000).toString();
	 diff = diff*24;
	}
    // calc minute
	if(format == "m"){
	 diff = ((Math.floor(secs/86400))%100000).toString();
	 diff = diff*24*60;
	}

	if(format == "s"){
	 diff = ((Math.floor(secs/86400))%100000).toString();
	 diff = diff*24*60*60;
	}
    return diff ;
  }

// date - Date object
function fixDate(date) {
        var base = new Date(0)
        var skew = base.getTime()
        if (skew > 0)
                date.setTime(date.getTime() - skew)
}


var lc_counter=0;

  function lc_countdown(in_string, in_servertime, lc_diff, in_format, lc_liveticker_start_before) {
    // date string array
	//in_string = next play time
    lang_vars = countdown_lang_vars;
	var intervalltime = 1000; // time out period

//generate servertime
// servertime - localtime in seconds
if(lc_counter == 0){

	var in_year_tempnow = in_servertime, in_month_tempnow=in_servertime, in_day_tempnow=in_servertime, in_hour_tempnow=in_servertime, in_minute_tempnow=in_servertime, in_second_tempnow=in_servertime; // Enddate in MEZ
    // explode string
    in_year_now = in_year_tempnow.substr(0,4);
    in_month_now = in_month_tempnow.substr(5,2);
    in_day_now = in_day_tempnow.substr(8,2);
    in_hour_now = in_hour_tempnow.substr(11,2);
    in_minute_now = in_minute_tempnow.substr(14,2);
    in_second_now = in_second_tempnow.substr(17,2);
	var serverdate = new Date(in_year_now,in_month_now-1,in_day_now,in_hour_now,in_minute_now,in_second_now);
	actualdate = new Date();

	var lc_diff = actualdate.getTime() - serverdate.getTime();

	if(lc_diff < 0){
	  lc_diff2= lc_diff*-1;
	  var now = new Date();
	  fixDate(now);
	  now.setTime(now.getTime()+lc_diff2);
	//var now = new Date(now_temp);
    }
    if(lc_diff > 0){
 	  var now= new Date();
	  fixDate(now);
	  now.setTime(now.getTime() - lc_diff);
	//var now = new Date(now_temp);
    }
	//variables for first run
	lc_counter= lc_counter+1;
}
else
{
  if(lc_diff < 0){
	lc_diff2= lc_diff*-1;
	var now = new Date();
	fixDate(now);
	now.setTime(now.getTime() + lc_diff2);
	//var now = new Date(now_temp);
  }
  if(lc_diff > 0){
 	var now= new Date();
	fixDate(now);
	now.setTime(now.getTime() - lc_diff);
	//var now = new Date(now_temp);
  }
}


    //generate Enddate
    var in_year = in_string, in_month=in_string, in_day=in_string, in_hour=in_string, in_minute=in_string, in_second=in_string; // Enddate in MEZ

    // explode string
    in_year = in_year.substr(0,4);
    in_month = in_month.substr(5,2);
    in_day = in_day.substr(8,2);
    in_hour = in_hour.substr(11,2);
    in_minute = in_minute.substr(14,2);
    in_second = in_second.substr(17,2);
	var enddate = new Date(in_year,in_month-1,in_day,in_hour,in_minute,in_second);

	//var now = new Date(); // current date
	var now_2=now; // current date
	var enddate_2=enddate;

    // calculate timestamp until enddate
	if(now < enddate)  {
	  var lc_year=0, lc_month=0, lc_day=0, lc_hour=0, lc_minute=0, lc_second=0;

      // lc_year
	  while(now<enddate) {
		lc_year++;
		now.setFullYear(now.getFullYear()+1);
	  }
	  now.setFullYear(now.getFullYear()-1);
	  lc_year--;
	 
	  // lc_month
	  var tmp_now = new Date;
	  while(tmp_now<enddate) {
		tmp_now.setMonth(tmp_now.getMonth()+1);
		if(tmp_now.getMonth()-now.getMonth() == 1)
		  lc_month++;
	  }
	  lc_month--;

	  // lc_day
	  while(now.getTime()+(24*60*60*1000)<enddate) {
		lc_day++;
		now.setTime(now.getTime()+(24*60*60*1000));
	  }

	  // lc_hour
	  lc_hour=Math.floor((enddate-now)/(60*60*1000));
	  now.setTime(now.getTime()+lc_hour*60*60*1000);

	  // lc_minute
	  lc_minute=Math.floor((enddate-now)/(60*1000));
	  now.setTime(now.getTime()+lc_minute*60*1000);

	  // lc_second
	  lc_second=Math.floor((enddate-now)/1000);

	  //Zero =  add leading Zero to Number
	  //show string in existing element in given Format
	  switch(in_format) {
        case "YmdHis":
		  //if-statement when countdown = 00:00:00
		  if(lc_year < 1 && lc_month < 1 && lc_day < 1 && lc_hour < 1 && lc_minute < 1 && lc_second < 1){
			var timeof_string = 1;
			}
	      document.getElementById('lc_year').innerHTML = Zero(lc_year);
	      document.getElementById('lc_month').innerHTML = Zero(lc_month);
          document.getElementById('lc_day').innerHTML = Zero(lc_day);
          document.getElementById('lc_hour').innerHTML = Zero(lc_hour);
          document.getElementById('lc_minute').innerHTML = Zero(lc_minute);
          document.getElementById('lc_second').innerHTML = Zero(lc_second);
          break;

		case "mdHis":
		  //if-statement when countdown = 00:00:00
		  if(lc_month < 1 && lc_day < 1 && lc_hour < 1 && lc_minute < 1 && lc_second < 1){
			var timeof_string = 1;
			}
	      lc_month=lc_month+lc_year*12; //month=month * 12
	      document.getElementById('lc_month').innerHTML = Zero(lc_month);
          document.getElementById('lc_day').innerHTML = Zero(lc_day);
          document.getElementById('lc_hour').innerHTML = Zero(lc_hour);
          document.getElementById('lc_minute').innerHTML = Zero(lc_minute);
          document.getElementById('lc_second').innerHTML = Zero(lc_second);
          break;

		case "dHis":
		  //if-statement when countdown = 00:00:00
		  if(lc_day < 1 && lc_hour < 1 && lc_minute < 1 && lc_second < 1){
			var timeof_string = 1;
			}
	      lc_day=calcage(now_2,enddate_2,'d');
          document.getElementById('lc_day').innerHTML = Zero(lc_day);
          document.getElementById('lc_hour').innerHTML = Zero(lc_hour);
          document.getElementById('lc_minute').innerHTML = Zero(lc_minute);
          document.getElementById('lc_second').innerHTML = Zero(lc_second);
          break;

		case "His":
		  //if-statement when countdown = 00:00:00
	      lc_hour=lc_hour+calcage(now_2,enddate_2,'h');

		  if(lc_hour < 1 && lc_minute < 1 && lc_second < 1){
			var timeof_string = 1;
			}

	      document.getElementById('lc_hour').innerHTML = Zero(lc_hour);
          document.getElementById('lc_minute').innerHTML = Zero(lc_minute);
          document.getElementById('lc_second').innerHTML = Zero(lc_second);
          break;

		case "is":
		  //if-statement when countdown = 00:00:00
		  if(lc_minute < 1 && lc_second < 1){
			var timeof_string = 1;
			}
	      lc_minute=lc_minute+lc_hour*60+calcage(now_2,enddate_2,'m');
          document.getElementById('lc_minute').innerHTML = Zero(lc_minute);
          document.getElementById('lc_second').innerHTML = Zero(lc_second);
          break;

	    case "s":
		  //if-statement when countdown = 00:00:00
		  if(lc_second < 1){
			var timeof_string = 1;
			}
	      lc_second=lc_second+(lc_minute+lc_hour*60)*60+calcage(now_2,enddate_2,'s');
          document.getElementById('lc_second').innerHTML = Zero(lc_second);
          break;

        default:
	      document.getElementById('lc_year').innerHTML = Zero(lc_year);
	      document.getElementById('lc_month').innerHTML = Zero(lc_month);
          document.getElementById('lc_day').innerHTML = Zero(lc_day);
          document.getElementById('lc_hour').innerHTML = Zero(lc_hour);
          document.getElementById('lc_minute').innerHTML = Zero(lc_minute);
          document.getElementById('lc_second').innerHTML = Zero(lc_second);
	  }

   var lc_year_label=lang_vars[1];
  if(lc_year == 1){
	var lc_year_label=lang_vars[0];
  }

  var lc_month_label=lang_vars[3];
  if(lc_month == 1){
	var lc_month_label=lang_vars[2]
  }

  var lc_day_label=lang_vars[5];
  if(lc_day == 1){
	var lc_day_label=lang_vars[4];
  }

  var lc_hour_label=lang_vars[7];
  if(lc_hour == 1){
	var lc_hour_label=lang_vars[6];
  }

  var lc_minute_label=lang_vars[9];
  if(lc_minute == 1){
	var lc_minute_label=lang_vars[8];
  }

  var lc_second_label=lang_vars[11];
  if(lc_second == 1){
	var lc_second_label=lang_vars[10];
  }

	  if(in_format.indexOf("Y") != -1){ document.getElementById('lc_year_label').innerHTML = lc_year_label;}
	  if(in_format.indexOf("m") != -1){ document.getElementById('lc_month_label').innerHTML = lc_month_label;}
      if(in_format.indexOf("d") != -1){ document.getElementById('lc_day_label').innerHTML = lc_day_label;}
      if(in_format.indexOf("H") != -1){ document.getElementById('lc_hour_label').innerHTML = lc_hour_label;}
      if(in_format.indexOf("i") != -1){ document.getElementById('lc_minute_label').innerHTML = lc_minute_label;}
      if(in_format.indexOf("s") != -1){ document.getElementById('lc_second_label').innerHTML = lc_second_label;}

	  //reload JS
	  setTimeout("lc_countdown('"+in_string+"','"+in_servertime+"','"+lc_diff+"','"+in_format+"','"+lc_liveticker_start_before+"')",intervalltime);
	}
	else{
	  if(in_format.indexOf("Y") != -1){ document.getElementById('lc_year').innerHTML = "--"; }
	  if(in_format.indexOf("m") != -1){ document.getElementById('lc_month').innerHTML = "--";}
      if(in_format.indexOf("d") != -1){ document.getElementById('lc_day').innerHTML = "--"; }
      if(in_format.indexOf("H") != -1){ document.getElementById('lc_hour').innerHTML = "--"; }
      if(in_format.indexOf("i") != -1){ document.getElementById('lc_minute').innerHTML = "--"; }
      if(in_format.indexOf("s") != -1){ document.getElementById('lc_second').innerHTML = "--"; }
	   }

	if(timeof_string == 1){
		//redirect browser if playtime now
	    window.location.href = '/liveticker';
	}
	//

	// activate lievticker link
	if(lc_year == 0 && lc_month == 0 && lc_day == 0 && lc_hour == 0 && lc_minute < lc_liveticker_start_before){ 
		document.getElementById("liveticker_link").style.visibility = "visible";
		document.getElementById("liveticker_link").style.display = "block";
	}

}

