
var now = new Date();
var one_year= new Date(now.getTime() + 1000 * 60 * 60 * 24 * 365);

CFCFcities="Montréal,Québec";
CKYcities="Winnipeg";
ATVcities="Moncton,Saint John,Sydney,Halifax";
CFTOcities="Toronto";
CKCOcities="Kitchener";
CJOHcities="Ottawa";
MCTVCTcities="North Bay,Sault Ste. Marie,Sudbury,Timmins";
CFCNcities="Calgary,Lethbridge,Edmonton";
SASKCTcities="Prince Albert,Regina,Saskatoon,Yorkton";
CIVTcities="Vancouver";
ASNcities="Atlantic Canada";

function guessTimezone(){
 var MyTZ = "CFTO";
 var dayLightSavingsTime = isDayLightSavingsTime();
 dayLightSavingsTime = true;
 var today = new Date();
 var currentOffset = (today.getTimezoneOffset() / 60) ;
 if(dayLightSavingsTime){currentOffset = currentOffset + 1;}

 switch(currentOffset){
 case 5: MyTZ ="Toronto";break;
 case 6: MyTZ ="Winnipeg";break;
 case 7: MyTZ ="Calgary";break;
 case 8: MyTZ ="Vancouver";break;
 case 4: MyTZ ="Halifax";break;
 case 3.5:   MyTZ ="Saint John";break;
 default:    MyTZ ="Toronto";break;
 }
 return MyTZ;
 }

function isDayLightSavingsTime(){
 dt = true;
 var today = new Date();
 var thisMonth = today.getMonth();
 var thisDate = today.getDate();
 var thisDay = today.getDay();

 var gmt = new Date;
 var lsm = new Date;
 var lso = new Date;
 lsm.setMonth(2); // April
 lsm.setDate(1);
 var day = lsm.getDay();// day of week of 1st
 lsm.setDate(8-day); // first Sunday
 lso.setMonth(10); // October
 lso.setDate(3);
 day = lso.getDay();
 lso.setDate(31-day);
 if (gmt < lsm || gmt >= lso) {
 dt = false;
 }
 return dt;
}

var myCity = getCookie("ctvUserCity");
if((!myCity)||(myCity.length<=4)||(myCity=="SASKCT")){myCity="Toronto";}

var myArea = cityToArea(myCity);
if (myArea=="na"){
myCity = guessTimezone();
myArea = cityToArea(myCity)
}

function getCookie (cookieName) {
  var cookieValue = null;
  var posName = document.cookie.indexOf(escape(cookieName) + '=');
  if (posName != -1) {
    var posValue = posName + (escape(cookieName) + '=').length;
    var endPos = document.cookie.indexOf(';', posValue);
    if (endPos != -1) {
      cookieValue = unescape(document.cookie.substring(posValue,endPos));
    } else {
      cookieValue = unescape(document.cookie.substring(posValue));
    }
  }
  return cookieValue;
}


function changeCity(_cityI,_page){
  _city=_cityI.value;
  area = cityToArea(_city);
  setCookie("ctvUserArea",area,one_year,"/");
  setCookie("ctvUserCity",_city,one_year,"/");
  myCity = getCookie("ctvUserCity");
  if (myCity==null){
  // alert("To get your local TV Listings, your browser must be set to accept cookies.\n");
	  myCity = guessTimezone();
  }
  if(_page == "home"){ showHide('homeWhatsOn');
  }
else if(_page=="tvlist"){
var cityCode = getCityCodeFromCity(_city);
window.location.href="/generic/generated/tvlist/" + cityCode + "tvlist.html";
}
  else  { getLocation(myCity,_page);  }
}



function getCityCodeFromCity(_city){
  switch(_city){
		case 'Montréal':   cityCode ="CFCF";break;
		case 'Québec':     cityCode ="CFCF";break;
		case 'Winnipeg':   cityCode ="CKY";break;
		case 'Halifax':    cityCode ="ATV";break;
		case 'Moncton':    cityCode ="ATV";break;
		case 'Saint John': cityCode ="ATV";break;
		case 'Sydney':     cityCode ="ATV";break;
		case 'Toronto':    cityCode ="CFTO";break;
		case 'North Bay':  cityCode ="MCTVCT";break;
		case 'Sault Ste. Marie': cityCode ="MCTVCT";break;
		case 'Sudbury':    cityCode ="MCTVCT";break;
		case 'Timmins':    cityCode ="MCTVCT";break;
		case 'Kitchener':  cityCode ="CKCO";break;
		case 'Ottawa':     cityCode ="CJOH";break;
		case 'Calgary':    cityCode ="CFCN";break;
		case 'Lethbridge': cityCode ="CFCN";break;
		case 'Edmonton':   cityCode ="CFRN";break;
		case 'Prince Albert': cityCode ="SASKCT";break;
		case 'Regina':     cityCode ="SASKCT";break;
		case 'Saskatoon':  cityCode ="SASKCT";break;
		case 'Yorkton':    cityCode ="SASKCT";break;
		case 'Vancouver':   cityCode ="CIVT";break;
                case 'Atlantic Canada': cityCode="ASN";break;
		default: cityCode="CFTO";break;
	}
	return cityCode;
}

function getLocation(_city, _page){
  city=getCityCodeFromCity(_city);
  switch (_page){
    case 'home':   window.location.href = "/home"; break;
    case 'tvlist': window.location.href = "/generic/generated/tvlist/"+city+_page+".html"; break;
    case 'show':   window.location.href = "/generic/generated/shows/home.html"; break;
    default: window.location.href = "/generic/generated/tvlist/"+city+_page+".html"; break;
  }
}

function printList(_city,_page,_next) {
  window.open('/generic/generated/tvlist/'+_city+_page+_next+".html", 'PopUpPrintList', 'height=564,width=646,menubar=yes,toolbar=yes,navbar=no,scrollbars=yes,resizable=yes');
  return false;
}

function checkValidCity(_city,_area){
  if (((_city==null)||(_city==""))||((_area==null)||(_area==""))){
myCity = guessTimezone();
myArea = cityToArea(myCity);
  }else{
    myArea = cityToArea(_city);
  }
}

function cityToArea(_city){
  // CFCN,CFRN,,CIVT,,CKY,,SASKCT,,MCTVCT,CFTO,CKCO,CJOH,,CFCF,,ATV
  // CFCN CFRN CIVT CKY SASKCT MCTVCT CFTO CKCO CJOH CFCF ATV
  if (CFCNcities.indexOf(_city)!=-1){
    area="CFCN";
  } else if (CIVTcities.indexOf(_city)!=-1){
    area="CIVT";
  } else if (CKYcities.indexOf(_city)!=-1){
    area="CKY";
  } else if (SASKCTcities.indexOf(_city)!=-1){
    area="SASKCT";
  } else if (CKCOcities.indexOf(_city)!=-1){
    area="CKCO";
  } else if (CJOHcities.indexOf(_city)!=-1){
    area="CJOH";
  } else if (MCTVCTcities.indexOf(_city)!=-1){
    area="MCTVCT";
  } else if (CFTOcities.indexOf(_city)!=-1){
    area="CFTO";
  } else if (CFCFcities.indexOf(_city)!=-1){
    area="CFCF";
  } else if (ATVcities.indexOf(_city)!=-1){
    area="ATV";
  } else if (ASNcities.indexOf(_city)!=-1){
    area="ASN";
  } else {
    area = "na";
  }
  return area;
}

function getCityByCookie(_city){
	if (_city=="CIVT"){
		dw="Vancouver";
	}else if (_city=="CFRN"){
		dw="Edmonton";
	}else if (_city=="CFCN"){
		dw="Calgary/Lethbridge";
	}else if (_city=="SASKCT"){
		dw="Saskatchewan";
	}else if (_city=="CKY"){
		dw="Winnipeg";
	}else if (_city=="MCTVCT"){
		dw="Northern Ontario";
	}else if (_city=="CFTO"){
		dw="Toronto";
	}else if (_city=="CKCO"){
		dw="Kitchener";
	}else if (_city=="CJOH"){
		dw="Ottawa";
	}else if (_city=="CFCF"){
		dw="Montreal";
	}else if (_city=="ATV"){
		dw="Atlantic Canada";
        }else if (_city=="ASN"){
                dw="Atlantic Canada";
	}else{
		dw="Unknown City";
	}
  //return dw;
  return _city;
}

function setDay(newDay){
	var today = new Date();
	dayNumber = today.getDay();
	spotlightDay = newDay - dayNumber;
	if(spotlightDay <0){spotlightDay = 7 + spotlightDay}
	showSpotlight(spotlightDay,newDay);
}

function showSpotlight(spotlightDay,navDay){
	navDay = navDay - 1;
	if(navDay < 0){ navDay = 7 + navDay}
	spotlightNavItems =  document.getElementById("comingUpNav").getElementsByTagName("td");
	for (i=0; i<7; i++){
		spotlightNavItems[i].style.backgroundColor="#DCDCDC";
		spotlightNavItems[i].style.color="black";
	}
	spotlightNavItems[(navDay)].style.backgroundColor="#B71C00";
	spotlightNavItems[(navDay)].style.color="white";


	spotlightAreaArray = document.getElementById("spotlightContainer").getElementsByTagName("table");
		for (i=0; i<7; i++){
			/* hide days */
		document.getElementById("comingUpGroup" + i).style.display="none";
			/* hide areas */
		var currentSpotlightAreaDay = document.getElementById("comingUpGroup" + i).getElementsByTagName("div");
			for (j=0; j<currentSpotlightAreaDay.length; j++){
			currentSpotlightAreaDay[(j)].style.display = "none";
			}

		}
		/* show spotlight day */
	document.getElementById("comingUpGroup" + spotlightDay).style.display="block";

		/* show spotlight area */
	document.getElementById("spotlight" + myArea + spotlightDay).style.display="block";

}

function setBlockCity(myCity)
{
if(myCity == "Toronto"){
//document.getElementById("weatherCity").innerHTML = "<a href='http://toronto.ctv.ca/weather'>"+myCity+"</a>";
document.getElementById("NewsCategory").style.display = "block";
document.getElementById("NewsCategoryVancouver").style.display = "none";
document.getElementById("NewsCategoryEdmonton").style.display = "none";
document.getElementById("NewsCategoryWinnipeg").style.display = "none";
document.getElementById("NewsCategoryOttawa").style.display = "none";
document.getElementById("NewsCategoryCalgary").style.display = "none";
document.getElementById("NewsCategoryMontréal").style.display = "none";
}
else if (myCity == "Vancouver"){
//document.getElementById("weatherCity").innerHTML = "<a href='http://toronto.ctv.ca/weather'>"+myCity+"</a>";
document.getElementById("NewsCategory").style.display = "none";
document.getElementById("NewsCategoryVancouver").style.display = "block";
document.getElementById("NewsCategoryEdmonton").style.display = "none";
document.getElementById("NewsCategoryWinnipeg").style.display = "none";
document.getElementById("NewsCategoryOttawa").style.display = "none";
document.getElementById("NewsCategoryCalgary").style.display = "none";
document.getElementById("NewsCategoryMontréal").style.display = "none";
}
else if (myCity == "Edmonton"){
//document.getElementById("weatherCity").innerHTML = "<a href='http://toronto.ctv.ca/weather'>"+myCity+"</a>";
document.getElementById("NewsCategory").style.display = "none";
document.getElementById("NewsCategoryVancouver").style.display = "none";
document.getElementById("NewsCategoryEdmonton").style.display = "block";
document.getElementById("NewsCategoryWinnipeg").style.display = "none";
document.getElementById("NewsCategoryOttawa").style.display = "none";
document.getElementById("NewsCategoryCalgary").style.display = "none";
document.getElementById("NewsCategoryMontréal").style.display = "none";
}
else if (myCity == "Winnipeg"){
//document.getElementById("weatherCity").innerHTML = "<a href='http://toronto.ctv.ca/weather'>"+myCity+"</a>";
document.getElementById("NewsCategory").style.display = "none";
document.getElementById("NewsCategoryVancouver").style.display = "none";
document.getElementById("NewsCategoryEdmonton").style.display = "none";
document.getElementById("NewsCategoryWinnipeg").style.display = "block";
document.getElementById("NewsCategoryOttawa").style.display = "none";
document.getElementById("NewsCategoryCalgary").style.display = "none";
document.getElementById("NewsCategoryMontréal").style.display = "none";
}
else if (myCity == "Ottawa"){
//document.getElementById("weatherCity").innerHTML = "<a href='http://toronto.ctv.ca/weather'>"+myCity+"</a>";
document.getElementById("NewsCategory").style.display = "none";
document.getElementById("NewsCategoryVancouver").style.display = "none";
document.getElementById("NewsCategoryEdmonton").style.display = "none";
document.getElementById("NewsCategoryWinnipeg").style.display = "none";
document.getElementById("NewsCategoryOttawa").style.display = "block";
document.getElementById("NewsCategoryMontréal").style.display = "none";
document.getElementById("NewsCategoryCalgary").style.display = "none";
}
else if (myCity == "Calgary"){
//document.getElementById("weatherCity").innerHTML = "<a href='http://toronto.ctv.ca/weather'>"+myCity+"</a>";
document.getElementById("NewsCategory").style.display = "none";
document.getElementById("NewsCategoryVancouver").style.display = "none";
document.getElementById("NewsCategoryEdmonton").style.display = "none";
document.getElementById("NewsCategoryWinnipeg").style.display = "none";
document.getElementById("NewsCategoryOttawa").style.display = "none";
document.getElementById("NewsCategoryCalgary").style.display = "block";
document.getElementById("NewsCategoryMontréal").style.display = "none";
}
else if (myCity == "Montréal"){
//document.getElementById("weatherCity").innerHTML = "<a href='http://toronto.ctv.ca/weather'>"+myCity+"</a>";
document.getElementById("NewsCategory").style.display = "none";
document.getElementById("NewsCategoryVancouver").style.display = "none";
document.getElementById("NewsCategoryEdmonton").style.display = "none";
document.getElementById("NewsCategoryWinnipeg").style.display = "none";
document.getElementById("NewsCategoryOttawa").style.display = "none";
document.getElementById("NewsCategoryCalgary").style.display = "none";
document.getElementById("NewsCategoryMontréal").style.display = "block";
}
else{
// document.getElementById("weatherCity").innerHTML = "<a href='/servlet/HTMLTemplate/!ctvDynNews/News/Weather?City="+myCity+"'>"+myCity+"</a>";
document.getElementById("NewsCategory").style.display = "none";
document.getElementById("NewsCategoryVancouver").style.display = "none";
document.getElementById("NewsCategoryEdmonton").style.display = "none";
document.getElementById("NewsCategoryWinnipeg").style.display = "none";
document.getElementById("NewsCategoryOttawa").style.display = "none";
document.getElementById("NewsCategoryCalgary").style.display = "none";
document.getElementById("NewsCategoryMontréal").style.display = "none";
}
}

function showAllCity()
{
now = new Date();
one_year= new Date(now.getTime() + 1000 * 60 * 60 * 24 * 365);
myCity = getCookie("ctvUserCity");
myArea = cityToArea(myCity);
var defaultSpotlight = 1;
if ((myArea=="na")||(myCity==null)){
myCity = guessTimezone();
myArea = cityToArea(myCity);
}
setBlockCity(myCity);     
}



function showHide(whichWhatsOn){
now = new Date();
one_year= new Date(now.getTime() + 1000 * 60 * 60 * 24 * 365);
myCity = getCookie("ctvUserCity");
myArea = cityToArea(myCity);
var defaultSpotlight = 1;
if ((myArea=="na")||(myCity==null)){
myCity = guessTimezone();
myArea = cityToArea(myCity);
}
if(whichWhatsOn == "homeWhatsOn" || whichWhatsOn == "both"){
		whatsOnListings = document.getElementById("onTonightDiv").getElementsByTagName("table");

		whatsOn = document.getElementById("onTonightDiv").getElementsByTagName("div");
		for (i=0; i<(whatsOnListings.length); i++){

				whatsOnListings[i].style.display = "none";

				whatsOn[i].style.display = "none";
			}
		document.getElementById("whatsonMain" + myArea).style.display = "block";
		document.getElementById("whatson" + myArea).style.display = "block";
		document.getElementById("onTonightLocation").innerHTML = myCity + " ";
		//document.getElementById("onTonightLocation").innerHTML = getCityByCookie(myCity) + " ";

		document.getElementById("onTonightCustomize").elements["city"].value = myCity;
    setBlockCity(myCity);            

}
if (whichWhatsOn == "homeSpotlight" || whichWhatsOn == "both"){


	dayNumber = (now.getDay());
	showSpotlight(defaultSpotlight,dayNumber + defaultSpotlight);
	}

}

