/*
 * Copyright (c) 2008 AKEEBO CORPORATION. All Rights Reserved.
 *
 * This software is the confidential and proprietary information ("Confidential Information") 
 * of AKEEBO CORPORATION ("AKEEBO CORP"). Any disclosure or use of such Confidential Information other 
 * than in accordance with the terms of the license under which it was received is strictly 
 * prohibited.
 *
 * AKEEBO CORP MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF 
 * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
 * OR NON-INFRINGEMENT. AKEEBO CORP SHALL NOT BE LIABLE FOR ANY DAMAGES
 * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
 * THIS SOFTWARE OR ITS DERIVATIVES.
 */
 
/////////////////////////////////////////////////////////////////////
// keyHandler.js

var boxLocked = false;
var vodActive = false;
	
////////////////////////////////////
// EVENT HANDLERS

function keyAction(e) {
	if(e.keyCode) 
		keyCodeNum = e.keyCode;
	else 
		keyCodeNum = e.which;	
	//alert(keyCodeNum);
//	alert(screen.availHeight);
//	alert(screen.availWidth);
	keyActionHandler(keyCodeNum);
	
}

function keyActionHandler(keyCodeNum) {
	if(keyCodeNum == rckbHOME || keyCodeNum == rckbHOMEPAGE)
		keyCodeNum = rcMENU;
	else if(keyCodeNum == rcRKBZERO)
		keyCodeNum = rcZERO;	
	else if(keyCodeNum == rcRKBONE)
		keyCodeNum = rcONE;	
	else if(keyCodeNum == rcRKBTWO)
		keyCodeNum = rcTWO;	
	else if(keyCodeNum == rcRKBTHREE)
		keyCodeNum = rcTHREE;	
	else if(keyCodeNum == rcRKBFOUR)
		keyCodeNum = rcFOUR;	
	else if(keyCodeNum == rcRKBFIVE)
		keyCodeNum = rcFIVE;	
	else if(keyCodeNum == rcRKBSIX)
		keyCodeNum = rcSIX;	
	else if(keyCodeNum == rcRKBSEVEN)
		keyCodeNum = rcSEVEN;	
	else if(keyCodeNum == rcRKBEIGHT)
		keyCodeNum = rcEIGHT;	
	else if(keyCodeNum == rcRKBNINE)
		keyCodeNum = rcNINE;	
	else if(keyCodeNum == rcRKBPLUS)
		keyCodeNum = rcCHANNELPLUS;	
	else if(keyCodeNum == rcRKBMINUS)
		keyCodeNum = rcCHANNELMINUS;	
	else if(keyCodeNum == rcRKBNLEFT)
		keyCodeNum = rcLEFT;	
	else if(keyCodeNum == rcRKBNRIGHT)
		keyCodeNum = rcRIGHT;	
	else if(keyCodeNum == rcRKBNUP)
		keyCodeNum = rcUP;	
	else if(keyCodeNum == rcRKBNDOWN)
		keyCodeNum = rcDOWN;
				
//	else if(keyCodeNum == rcLASTCH)
//		keyCodeNum = rcLASTCH;	
		
	if(boxLocked == true) {
		authenticate(keyCodeNum);
		return 0;
	}
	if(bItsAllDark && (keyCodeNum == rcOK || keyCodeNum == rcLEFT || keyCodeNum == rcRIGHT || keyCodeNum == rcUP || keyCodeNum == rcDOWN )) {
		//launchViewer();
		clearAdInterval();
		if(adPanelActive) {
			adKeyHandler(keyCodeNum);
			return 0;
		}
		hideAdPanel();
		showMiniPanel();
		return 0;
	}
	if(vodActive) {
		vodKeyHandler(keyCodeNum);
		return 0;
	}
	if(horoscopeActive) {
		horoKeyHandler(keyCodeNum);
		return 0;
	}
	if(photoStudioActive) {
		photoStudioKeyHandler(keyCodeNum);
		return 0;
	}
	if(newsActive) {
		newsKeyHandler(keyCodeNum);
		return 0;
	}
	
	if(videoActive) {
		videoKeyHandler(keyCodeNum);
		return 0;
	}
	if(gameActive) {
		gamePanelKeyHandler(keyCodeNum);
		return 0;
	}
	switch(keyCodeNum) {
		case rcLEFT:
			if(menuActive) {
				if(guidePage == 1) {					
					if(noWidget == 1){
						guidePage = 3;
						channelCurrentIndex =0;
						selLiveTv();
						return;
					}
					else if(document.getElementById("widgetIcon") != null)
						document.getElementById("widgetIcon").style.background = "";
						if(moveCursor == 1) { // 
							moveCursor = 2; // on live tv
							guidePage = 3;
							channelCurrentIndex =0;
							selLiveTv();
							return;
						} 
						if(moveCursor == 2) { // on left
							try {
								document.getElementById("wrarrow").src= wrarrowImg.src;
								document.getElementById("wlarrow").src= wlSelImg.src;
								moveCursor = 1;
							} catch(x) {
								
							}
							return;
						}
						if(moveCursor == 3) { // on image
							try {
								document.getElementById("widgetIcon").style.background = "#fcf3b8";
								document.getElementById("wrarrow").src= wrarrowImg.src;
								moveCursor = 2;
							} catch(x) {
								
							}
							return;
						}
					} else if(guidePage == 2) {
						guidePage = 1;
						moveCursor = 2;
						selWidgetPanel();
					} else if(guidePage == 3) {
						guidePage = 2;
						tagCurrentIndex =0;
						selTagPanel();
					}
 			}
			break;
		case rcRIGHT:
			if(menuActive) {
				if(guidePage == 1) {
					if(noWidget == 1){
						guidePage=2;
						tagCurrentIndex =0;
						selTagPanel();
						return;
						
					} else if(document.getElementById("widgetIcon") != null)
							document.getElementById("widgetIcon").style.background = "";
						if((wrecords.wRecords[currImage].id).length == 0) {
							moveCursor = 2;
						}
						if(moveCursor == 1) {
							document.getElementById("widgetIcon").style.background = "#fcf3b8";
							document.getElementById("wlarrow").src= wlarrowImg.src;
							moveCursor = 2;
							return;
						} 
						if(moveCursor == 2) {
							moveCursor = 3;
						 	document.getElementById("wlarrow").src= wlarrowImg.src;
							document.getElementById("wrarrow").src= wrSelImg.src;
						  return;
						}
						if(moveCursor == 3) {
							document.getElementById("wrarrow").src= wrarrowImg.src;
							moveCursor = 2;
							guidePage=2;
							tagCurrentIndex =0;
							selTagPanel();
							return;
						}
					} else if(guidePage == 2) {
						guidePage=3;
						channelCurrentIndex =0;					
						getCatChannels(tagCurrentCursor);
					} else if(guidePage == 3) {
						guidePage = 1;
						moveCursor = 2;
						selWidgetPanel();
					}
 			}
			break;
		case rcUP:
			if(miniGuidePanel) {
				updateLayer3(2);
				return;						
			}
			if(menuActive) {
				if(guidePage == 1) {
					
				} else if(guidePage == 2) {
					if(tagCurrentIndex == 0){
						return;						
					}
					tagCurrentIndex--;
					if(tagCurrentCursor != 0) { // move cursor
						unSelCurTag(tagCurrentCursor); 
						tagCurrentCursor--;					
						selCurTag(tagCurrentCursor); 
					} else { // scroll
						var start = tagCurrentIndex; 
						var end = tagCurrentIndex + 4;	
						scrollTag(start, end);							
					}
					curTagClick = tagCurrentIndex - tagCurrentCursor;	
					
				} else if(guidePage == 3) {
					
					if(channelCurrentIndex == 0) { // first one		
//						channelCurrentIndex = totalCurChannels + 1;							
						return;
					} 
					channelCurrentIndex--;
					if(channelCurrentCursor != 0) { // move cursor
						unSelCurChannel(channelCurrentCursor); 
						channelCurrentCursor--;	
										
						selCurChannel(channelCurrentCursor); 
					} else { // scroll
						var start = channelCurrentIndex; 
						var end = channelCurrentIndex + 4;	
						scrollChannels(start, end);							
					}		
					curChannelClick = channelCurrentIndex - channelCurrentCursor;
				} 
 			}     
			break;
		case rcDOWN:
			if(miniGuidePanel){
				updateLayer3(1);
				return;					
			}
			if(menuActive) {
				if(guidePage == 1) {
					
				} else if(guidePage == 2) { 
					if(tagCurrentIndex == gTotalCat) { // last onevar    gTotalCat
//						channelCurrentIndex = -1;												
						break;
					} 
					tagCurrentIndex++;
					if(tagCurrentCursor < 4) { // move cursor it should be lesser value
					 	unSelCurTag(tagCurrentCursor); 
//					 	(channelCurrentIndex == 0) ? (channelCurrentCursor = -1) : "";
						tagCurrentCursor++;					
						selCurTag(tagCurrentCursor); 
					} else { // scroll
						var start = tagCurrentIndex - 4; 
						var end = tagCurrentIndex;		
						scrollTag(start, end);							
					}		
					curTagClick = tagCurrentIndex - tagCurrentCursor;					
					
				} else if(guidePage == 3) {
					
					if(channelCurrentIndex == totalCurChannels) { // last one
//						channelCurrentIndex = -1;												
						break;
					} 
					channelCurrentIndex++;
					if(channelCurrentCursor < 4) { // move cursor it should be lesser value
					 	unSelCurChannel(channelCurrentCursor); 
//					 	(channelCurrentIndex == 0) ? (channelCurrentCursor = -1) : "";
						channelCurrentCursor++;	
									
						selCurChannel(channelCurrentCursor); 
					} else { // scroll
						var start = channelCurrentIndex - 4; 
						var end = channelCurrentIndex;		
						scrollChannels(start, end);							
					}		
					curChannelClick = channelCurrentIndex - channelCurrentCursor;	
				}
 			}
			break;
		case rcOK:
			if(miniGuidePanel){
				miniChSelector();
				return;					
			}
			if(menuActive) {
				if(guidePage == 1) {
					if(moveCursor == 1) { // left arrow
						--currImage;
						if((currImage < 0)) {
							currImage = countImage;
						}
						var useGraphic = wrecords.wRecords[currImage].useGraphic;
						useGraphic = useGraphic.substring(0, (useGraphic.length-1));
						document.getElementById("wrarrow").src= wrarrowImg.src;
						document.getElementById("wlarrow").src= wlSelImg.src;						
						document.getElementById("widgetTitle").innerHTML = "";
						document.getElementById("widgetTitle").innerHTML = wrecords.wRecords[currImage].title ;
						document.getElementById("widgetIcon").innerHTML = '<img class="imagePanel" alt="'+ wrecords.wRecords[currImage].title + '" id="widgetIcon1" style="height:92px;width:90px;" src=' + (useGraphic == 1 ? "/ImageHandler?value="+ wrecords.wRecords[currImage].id + "&icon=1&imageType=2" : "/view/tv/images/widgets/wImages/widgetNA.png") + '  />';
//						widgetsInfo(currImage);
					}
					if(moveCursor == 2) {
						var widgetType = wrecords.wRecords[currImage].type;
						var widgetId = wrecords.wRecords[currImage].id;		
						if(widgetType == 7) {
							weatherActive =true;
							//getWeatherDetails(widgetId);
							launchWeatherPanel(widgetId);
							return;
						}
						if(widgetType == 6) {
							if(widgetId == 58) {								
								videoondemand = true;
								vodActive = true;
								launchVodPanel();
								return;
							}
						}
						if(widgetType == 3) {
							getRssWidgetDetails(widgetId, 1, -1);
							return;
						}
						if(widgetId == 27) {
							launchHoroscope();
							return;
						}
						if(widgetId == 40) {
							launchPhotoStudioPanel();
							return;
						}
						if(widgetId == 57) {
							launchVideoPanel();
							return;
						}
						if(widgetType == 20) {
							launchGamePanel();
							return;
						}
						//showWeatherPanel();
					} 
					if(moveCursor == 3) { // right arrow
						++currImage;
						if(currImage > countImage) {
							currImage = 0;
						}
						var useGraphic = wrecords.wRecords[currImage].useGraphic;
						useGraphic = useGraphic.substring(0, (useGraphic.length-1));
						document.getElementById("wlarrow").src= wlarrowImg.src;
						document.getElementById("wrarrow").src= wrSelImg.src;
						document.getElementById("widgetTitle").innerHTML = "";
						document.getElementById("widgetTitle").innerHTML = wrecords.wRecords[currImage].title ;
						document.getElementById("widgetIcon").innerHTML = '<img class="imagePanel" alt="'+ wrecords.wRecords[currImage].title + '" id="widgetIcon1" style="height:92px;width:90px;" src=' + (useGraphic == 1 ? ("/ImageHandler?value="+ wrecords.wRecords[currImage].id + "&icon=1&imageType=2") : ("/view/tv/images/widgets/wImages/widgetNA.png")) + ' />';
				
					}
				} else if(guidePage == 2) {
					guidePage=3;
						channelCurrentIndex =0;					
						getCatChannels(tagCurrentCursor);
					
				} else if(guidePage == 3) {					
					openSelChannels(channelCurrentCursor);
						
								
//					for(var i=0; i<channelOrderCache.length; ++i) {
//						if(channelOrderCache[i] == selChannelOrderCache[gSelectedChannel]) {
//							nLastSelectedChannel = nSelectedChannel;	
//							nSelectedChannel = nOldChannel = nCurrentChannel = i;	//							
//							switchChannel();
//							channelChanged = true;			
//							launchViewer();									
//							menuActive = false;									
//							break;
//						}					
//					}	
					
				}
 			}
			break;
		case rcMENU:
		//alert(menuActive);alert(miniGuidePanel);
		if(miniGuidePanel){
			clearAdCache();
			bItsAllDark = false;
			clearAdInterval();
			exitAdPanel();
			miniGuidePanel =false;
			guidePage =3;			
			menuActive =true;
			homePanel(3);
			//fadeStop();
			return;
		}
//		alert(weatherActive + " : " + menuActive);
			if(menuActive) {
				if(weatherActive) {
					bItsAllDark = false;
					weatherActive = false;
//					launchGuide();
					showGuidePanel();
				}
				openSelChannels(0);
//				menuActive = false;
//				launchViewer();
			} else {
				clearAdCache();
				clearAdInterval();
				exitAdPanel();
				bItsAllDark = false;
				menuActive = true;
				launchGuide();
				showGuidePanel();
			}
			break;		
	}
	
}
// keyHandler.js 
/////////////////////////////////////////////////////////////////////
