//////////////////////////////////////////////////////////////////
/// Image rollover
//////////////////////////////////////////////////////////////////
function initRollovers() {
	if (!document.getElementById) return
	
	var aPreLoad = new Array();
	var sTempSrc;
	var aImages = document.getElementsByTagName('img');
	var imputBtn = document.getElementsByTagName('input');

	for (var i = 0; i < aImages.length; i++) {		
		if (aImages[i].className == 'rollover') {
			var src = aImages[i].getAttribute('src');
			var ftype = src.substring(src.lastIndexOf('.'), src.length);
			var hsrc = src.replace(ftype, '_ov'+ftype);

			aImages[i].setAttribute('hsrc', hsrc);
			
			aPreLoad[i] = new Image();
			aPreLoad[i].src = hsrc;
			
			aImages[i].onmouseover = function() {
				sTempSrc = this.getAttribute('src');
				this.setAttribute('src', this.getAttribute('hsrc'));
			}	
			
			aImages[i].onmouseout = function() {
				if (!sTempSrc) sTempSrc = this.getAttribute('src').replace('_ov'+ftype, ftype);
				this.setAttribute('src', sTempSrc);
			}
		}
	}

	for (var i = 0; i < imputBtn.length; i++) {		
		if (imputBtn[i].className == 'rollover') {
			var src = imputBtn[i].getAttribute('src');
			var ftype = src.substring(src.lastIndexOf('.'), src.length);
			var hsrc = src.replace(ftype, '_ov'+ftype);

			imputBtn[i].setAttribute('hsrc', hsrc);
			
			aPreLoad[i] = new Image();
			aPreLoad[i].src = hsrc;
			
			imputBtn[i].onmouseover = function() {
				sTempSrc = this.getAttribute('src');
				this.setAttribute('src', this.getAttribute('hsrc'));
			}	
			
			imputBtn[i].onmouseout = function() {
				if (!sTempSrc) sTempSrc = this.getAttribute('src').replace('_ov'+ftype, ftype);
				this.setAttribute('src', sTempSrc);
			}
		}
	}
}

window.onload = initRollovers;



//////////////////////////////////////////////////////////////////
/// Window open
//////////////////////////////////////////////////////////////////

// General (800px subwhin)
function openSubWin(uri,name,event) {
	subWindow = window.open(uri,name,'location=no,directories=no,toolbar=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=820,height=600');
	subWindow.focus();
	
	if(event.preventDefault){
		event.preventDefault();
		event.stopPropagation();
	}
	event.returnValue=false;
	event.cancelBubble=true;
}

// News and Information
function openNewsWin(url,event) {
	subWindow = window.open(url,'news','');
	subWindow.focus();
	
	if(event.preventDefault){
		event.preventDefault();
		event.stopPropagation();
	}
	event.returnValue=false;
	event.cancelBubble=true;
}

// Download User's Guide
function openDownloadWin(url,event) {
	subWindow = window.open(url,'download','location=no,directories=no,toolbar=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=820,height=600');
	subWindow.focus();
	
	if(event.preventDefault){
		event.preventDefault();
		event.stopPropagation();
	}
	event.returnValue=false;
	event.cancelBubble=true;
}

// Map
function openMapWin(url,event) {
	subWindow = window.open(url,'download','location=no,directories=no,toolbar=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=490,height=500');
	subWindow.focus();
	
	if(event.preventDefault){
		event.preventDefault();
		event.stopPropagation();
	}
	event.returnValue=false;
	event.cancelBubble=true;
}




//////////////////////////////////////////////////////////////////
/// Text field default
//////////////////////////////////////////////////////////////////
function defaultText(id){
	var el = document.getElementById(id);
	var vlText = el.value;
	if(vlText=="Site Search") el.value="";
}



//////////////////////////////////////////////////////////////////
/// Images preload
//////////////////////////////////////////////////////////////////
	var preloadImgURL = new Array(
	"/en/common/images/gnavi_01_ov.gif",
	"/en/common/images/gnavi_02_ov.gif",
	"/en/common/images/gnavi_03_ov.gif",
	"/en/common/images/gnavi_04_ov.gif",
	"/en/common/images/gnavi_05_ov.gif",
	"/en/common/images/gnavi_06_ov.gif",
	"/en/common/images/gnavi_01_cur.gif",
	"/en/common/images/gnavi_02_cur.gif",
	"/en/common/images/gnavi_03_cur.gif",
	"/en/common/images/gnavi_04_cur.gif",
	"/en/common/images/gnavi_05_cur.gif",
	"/en/common/images/gnavi_06_cur.gif",
	"/en/images/index_gnavi_01_ov.gif",
	"/en/images/index_gnavi_02_ov.gif",
	"/en/images/index_gnavi_03_ov.gif",
	"/en/images/index_gnavi_04_ov.gif",
	"/en/images/index_gnavi_05_ov.gif",
	"/en/images/index_gnavi_06_ov.gif",
	"/en/images/index_gnavi_01_cur.gif",
	"/en/images/index_gnavi_02_cur.gif",
	"/en/images/index_gnavi_03_cur.gif",
	"/en/images/index_gnavi_04_cur.gif",
	"/en/images/index_gnavi_05_cur.gif",
	"/en/images/index_gnavi_06_cur.gif");

	var preloadImg = new Array(preloadImgURL.length);
	
	for(i = 0; i < preloadImg.length; i++){
		preloadImg[i] = new Image();
		preloadImg[i].src = preloadImgURL[i];
	}



//////////////////////////////////////////////////////////////////
/// Scroll
//////////////////////////////////////////////////////////////////
var ss = {
  fixAllLinks: function() {
    var allLinks = document.getElementsByTagName('a');
    for (var i=0;i<allLinks.length;i++) {
      var lnk = allLinks[i];
      if ((lnk.href && lnk.href.indexOf('#') != -1) && 
          ( (lnk.pathname == location.pathname) ||
	    ('/'+lnk.pathname == location.pathname) ) && 
          (lnk.search == location.search)) {
        ss.addEvent(lnk,'click',ss.smoothScroll);
      }
    }
  },

  smoothScroll: function(e) {
    if (window.event) {
      target = window.event.srcElement;
    } else if (e) {
      target = e.target;
    } else return;
    if (target.nodeName.toLowerCase() != 'a') {
      target = target.parentNode;
    }
    if (target.nodeName.toLowerCase() != 'a') return;
    anchor = target.hash.substr(1);
    var allLinks = document.getElementsByTagName('a');
    var destinationLink = null;
    for (var i=0;i<allLinks.length;i++) {
      var lnk = allLinks[i];
      if (lnk.name && (lnk.name == anchor)) {
        destinationLink = lnk;
        break;
      }
    }
    if (!destinationLink) return true;
  
    var destx = destinationLink.offsetLeft; 
    var desty = destinationLink.offsetTop;
    var thisNode = destinationLink;
    while (thisNode.offsetParent && 
          (thisNode.offsetParent != document.body)) {
      thisNode = thisNode.offsetParent;
      destx += thisNode.offsetLeft;
      desty += thisNode.offsetTop;
    }
    clearInterval(ss.INTERVAL);
  
    cypos = ss.getCurrentYPos();
  
    ss_stepsize = parseInt((desty-cypos)/ss.STEPS);
    ss.INTERVAL = setInterval('ss.scrollWindow('+ss_stepsize+','+desty+',"'+anchor+'")',10);
    if (window.event) {
      window.event.cancelBubble = true;
      window.event.returnValue = false;
    }
    if (e && e.preventDefault && e.stopPropagation) {
      e.preventDefault();
      e.stopPropagation();
    }
  },

  scrollWindow: function(scramount,dest,anchor) {
    wascypos = ss.getCurrentYPos();
    isAbove = (wascypos < dest);
    window.scrollTo(0,wascypos + scramount);
    iscypos = ss.getCurrentYPos();
    isAboveNow = (iscypos < dest);
    if ((isAbove != isAboveNow) || (wascypos == iscypos)) {
      window.scrollTo(0,dest);
      clearInterval(ss.INTERVAL);
      location.hash = anchor;
    }
  },

  getCurrentYPos: function() {
    if (document.body && document.body.scrollTop)
      return document.body.scrollTop;
    if (document.documentElement && document.documentElement.scrollTop)
      return document.documentElement.scrollTop;
    if (window.pageYOffset)
      return window.pageYOffset;
    return 0;
  },

  addEvent: function(elm, evType, fn, useCapture) {
    if (elm.addEventListener){
      elm.addEventListener(evType, fn, useCapture);
      return true;
    } else if (elm.attachEvent){
      var r = elm.attachEvent("on"+evType, fn);
      return r;
    } else {
      alert("Handler could not be removed");
    }
  } 
}

ss.STEPS = 15;

ss.addEvent(window,"load",ss.fixAllLinks);


//////////////////////////////////////////////////////////////////
/// SoftwareUpdate
//////////////////////////////////////////////////////////////////

var loadData=function(){

/*
init
------------------------------------------------------------*/
var txt_error='<p class="xmlerror">xml loading failed.</p>'; //error text
var path = "/mb/system/xml/fotaInfo_en.xml"; //xml path

var flag = arguments[0]; //The array is put out and divided by the argument.
//argument type is [Number] - list page
//argument type is [String] - detail page
//argument type is [Other]  - list area

/*
call xml
------------------------------------------------------------*/
var ajxReq=function(path){
	requestFile('','GET',path,true);
}
var requestFile=function(data,method,fileName,async){
	var httpoj=createHttpRequest();
	httpoj.open(method,fileName,async);
	httpoj.onreadystatechange=function(){
		if(httpoj.readyState==4){
			mainOperation(httpoj.responseXML);
		}
	}
	httpoj.send(data);
}
var createHttpRequest=function(){
	if(window.ActiveXObject){
		try{
			return new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				return new ActiveXObject("Microsoft.XMLHTTP");
			}catch(e2){
				return null;
			};
		};
	}else if(window.XMLHttpRequest){
		return new XMLHttpRequest();
	}else{
		return null;
	}
}


/*
Oparation
------------------------------------------------------------*/
var mainOperation=function(oj){
	if(oj){
		/* success process------------------------------*/
		makeList(oj);
	}else{
		/* failure process------------------------------*/
		dispHtml(txt_error);
	}
}



//////////////////////////////////////////////////////////////////
/// sub function
//////////////////////////////////////////////////////////////////

//Plastic operation on character string
function datetransform(datestr) {
//	dottedStr = datestr.slice(0,4)+"."+datestr.slice(4,6)+"."+datestr.slice(6,8);
	dottedStr = strMonth[eval(datestr.slice(4,6))-1]+"&nbsp;"+datestr.slice(6,8)+','+datestr.slice(0,4);
	return dottedStr;
}

//Get Now Date
function getNow(rlength) {
	nowDate = new Date();
	nowY = ""+nowDate.getFullYear();
	nowM = ""+(nowDate.getMonth()+1);
	if(nowM.length<2){nowM = "0"+nowM;};
	nowD = ""+nowDate.getDate();
	if(nowD.length<2){nowD = "0"+nowD;};
	nowH = ""+nowDate.getHours();
	if(nowH.length<2){nowH = "0"+nowH;};
	nowMin = ""+nowDate.getMinutes();
	if(nowMin.length<2){nowMin = "0"+nowMin;};
	
	return nowY+nowM+nowD+nowH+nowMin;
}

var strMonth=[
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
];

/*
make list
------------------------------------------------------------*/
var basicList;
var makeList=function(oj){

	var parentNd = oj.getElementsByTagName("item");
	var itemCount = oj.getElementsByTagName("item_count").item(0).firstChild.nodeValue;
	var newitemCount;
	var needArry = new Array(newitemCount);
	var hideLine = new Array();
	for(i = 0; i < itemCount; i++) { needArry[i] = [' ', ' ', ' ', ' ',' ']; }
	for(i=0;i<itemCount;i++) {
	//publish_start
		var ps = parentNd.item(i).getElementsByTagName("publish_start").item(0).firstChild.nodeValue;
		var ps8 = ps.slice(0,8);
		var ps12 = ps.slice(0,12);
	//publish_end
		var pe = parentNd.item(i).getElementsByTagName("publish_end").item(0).firstChild.nodeValue;
		pe = pe.slice(0,12);
		if(ps12<=getNow() && pe >=getNow()) { //[publish OK]
			needArry[i][0] = parentNd.item(i).getElementsByTagName("view_date").item(0).firstChild.nodeValue;
			needArry[i][1] = parentNd.item(i).getElementsByTagName("title").item(0).firstChild.nodeValue;
			needArry[i][2] = parentNd.item(i).getElementsByTagName("url").item(0).firstChild.nodeValue;
			needArry[i][4] = parentNd.item(i).getElementsByTagName("msname").item(0).firstChild.nodeValue;
			
			//update check
			var lastmod = parentNd.item(i).getElementsByTagName("last_mod_time").item(0).firstChild.nodeValue;
			if(lastmod>ps8){
						needArry[i][0] = lastmod;
						needArry[i][1] = "[Updated] "+needArry[i][1];
			}

		} else { //[publish NG]
				hideLine.push(i);
		}//end publish check
		
	} //end parent for

//delete Empty Array elements
	var basehideLine = needArry.length;
	for(p in hideLine) {
		lineNum = hideLine[p] - (basehideLine - needArry.length);
		needArry.splice(lineNum,1);
	}

	basicList = needArry;
	
//reverse sort
	basicList.sort().reverse();

//setting
	var dispStr="";
	var limit = 3;

switch(typeof(flag)){
case "number":
//YearList-----------------------------------------------------------------------
		dispStr += "<div class=\"infoList mt40\">";
	for(var i=0;i<basicList.length;i++) {
		if(flag==basicList[i][0].slice(0,4)){
			dispStr += "<dl><dt>"+datetransform(basicList[i][0])+"</dt>";
			dispStr += "<dd><a href=\""+basicList[i][2]+"\">"+basicList[i][1]+"</a></dd></dl>";
		}
	}
		dispStr += "</div>";
break;

case "string":
//ProductNumber------------------------------------------------------------------
		pnTOP = "<h2 id=\"software\" class=\"line\"><img src=\"/en/products/images/ti_software.gif\" alt=\"Software Update\" width=\"209\" height=\"26\" /></h2>";
		pnTOP += "<div class=\"contents\">";
		pnTOP += "<div class=\"infoList mt20\">";
	var pnMID = "";
	for(var i=0;i<basicList.length;i++) {
		re = new RegExp(flag);
		if(basicList[i][4].match(re)){
			pnMID += "<dl><dt>"+datetransform(basicList[i][0])+"</dt>";
			pnMID += "<dd><a href=\""+basicList[i][2]+"\">"+basicList[i][1]+"</a></dd></dl>";
		}
	}
		pnBTM = "</div></div>";
	
	//before 2008 update data
	var past = document.getElementById("infoListPast");

	if(pnMID) { //exists 2009
		if(past){ //and exists 2008
			pnMID += past.innerHTML;
			past.innerHTML = "";
		}
		dispStr = pnTOP+pnMID+pnBTM;
		document.getElementById("updateBtn").style.display = "block";
	} else { //doesen't exists 2009
		if(past){ //and exists 2008
			pnMID = document.getElementById("infoListPast").innerHTML;
			past.innerHTML = "";
			dispStr = pnTOP+pnMID+pnBTM;
			document.getElementById("updateBtn").style.display = "block";
		}
	}
break;

default:
//NewestNews---------------------------------------------------------------------

if(basicList.length<limit) { limit = basicList.length; } //In case of five or less

	for(var i=0;i<limit;i++) {
			dispStr += "<dl><dt>"+datetransform(basicList[i][0])+"</dt>";
			dispStr += "<dd><a href=\""+basicList[i][2]+"\">"+basicList[i][1]+"</a></dd></dl>";
	}
 break;
}

//document write
	document.getElementById("outputList").innerHTML = dispStr;
}


/*
text output
------------------------------------------------------------*/
var dispHtml=function(oj){
	document.getElementById("outputList").innerHTML=oj;
}

/*
Movement
------------------------------------------------------------*/
	ajxReq(path);
}

