/* -----------------------------------------------
javascript file HITACHI KIZAI
FileName:site.js
Author:
UpdatedBy:who-when
----------------------------------------------- */

/**********************************************************
* rollover
*/

function UaRollover(){
}
UaRollover.prototype = {
 initialize:function(clses){
  var len = clses.length;
  this.storedImg = new Array();
  var elems = new Array();
 
  for(var k=0; k<len; k++){
   elems = elems.concat(this.getElementsByClassName("img", clses[k]));
   elems = elems.concat(this.getElementsByClassName("input", clses[k]));
  }

  len = elems.length;
  for(var i=0; i<len; i++){

   var elem = elems[i];
   var imgSrc = elem.src;

   if(imgSrc.indexOf("_cur.")>-1){
    continue;
   }
   var ovrStr = this.imgOvrReplace(imgSrc, true)
   this.storedImg[imgSrc] = new Image();
   this.storedImg[imgSrc].src = ovrStr;

   elem.ins = this;
   elem.onmouseover = this.mouseOverEvent;
   elem.onmouseout = this.mouseOutEvent;

  }
 },
 getElementsByClassName:function(pTagName, pClassName){
  var res = new Array();
  var tags = document.getElementsByTagName(pTagName);
  var len = tags.length;
  for(var i=0; i<len; i++){
   var classes = tags[i].className;
   if(classes.indexOf(pClassName)>-1){
    res[res.length] = tags[i];
   }
  }
  return res;
 },
 mouseOverEvent:function (){
  this.src = this.ins.imgOvrReplace(this.src, true);
 },
 mouseOutEvent:function(){
  this.src = this.ins.imgOvrReplace(this.src, false);
 },
 imgOvrReplace:function(pSrc, pIsOvr){
  var srcStr = pSrc;
  if(pIsOvr){
   if(srcStr.indexOf("-ovr")>-1){
    return srcStr;
   }
   srcStr = this.strReplace(srcStr, ".gif", "-ovr.gif");
   srcStr = this.strReplace(srcStr, ".jpg", "-ovr.jpg");
   srcStr = this.strReplace(srcStr, ".png", "-ovr.png");
  }else{
   srcStr = this.strReplace(srcStr, "-ovr.gif", ".gif");
   srcStr = this.strReplace(srcStr, "-ovr.jpg", ".jpg");
   srcStr = this.strReplace(srcStr, "-ovr.png", ".png");
  }
  return srcStr;
 },
 strReplace:function (pStr, pKey, pAlt){
  return pStr.split(pKey).join(pAlt);
 }
}


/**********************************************************
* 
*/
var uaRollover = new UaRollover();


function uaRO(){
 uaRollover.initialize(arguments);
}



/**********************************************************
* flash
*/

var FLASH_MAJOR_VERSION = 9;
var FLASH_MINOR_VERSION = 0;
var FLASH_REVISION      = 0;
var DEFAULT_FLASH_DIRECTORY = "/vinca/common/flash/";
var PLAYER_PRODUCTION_INSTALLER_DIR = "/vinca/common/flash/";
var PLAYER_PRODUCTION_INSTALLER_FILE = "playerProductInstall.swf";
var isU6r65 = true;
/**
 *  
 */
document.write('<script language="V'+'BScript" type="text/vbscript">');
document.write('Function VBGetSwfVer(i)\n');
document.write('  on error resume next\n');
document.write('  Dim swControl, swVersion\n');
document.write('  swVersion = 0\n');
document.write('  set swControl = CreateObject("ShockwaveFlash.ShockwaveFlash." + CStr(i))\n');
document.write('  if (IsObject(swControl)) then\n');
document.write('    swVersion = swControl.GetVariable("$version")\n');
document.write('  end if\n');
document.write('  VBGetSwfVer = swVersion\n');
document.write('End Function\n');
document.write('</script>\n');
/**
 * 
 */
function UaSwfObj(){
 this.isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
 this.isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
 this.isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
 this.checkerVersion = {major:6, minor:0, revision:0};
}
UaSwfObj.prototype = {
 display:function(props){
  var majorVersion  = (props.majorVersion)?props.majorVersion:FLASH_MAJOR_VERSION;
  var minorVersion  = (props.minorVersion)?props.minorVersion:FLASH_MINOR_VERSION;
  var revision    = (props.revision)?props.revision:FLASH_REVISION;
  DEFAULT_NOFLASH_HTML = (props.noflash)?props.noflash:DEFAULT_NOFLASH_HTML;

  var hasProductInstall = this.detect(this.checkerVersion.major, this.checkerVersion.minor, this.checkerVersion.revision);
  var hasReqestedVersion = this.detect(majorVersion, minorVersion, revision);

  var html = "";
  if ( hasProductInstall && !hasReqestedVersion ) {
   if(isU6r65){
    html = this.displayInstaller(props);
   }else{
    html = this.displayAlternateContent();
   }
  } else if (hasReqestedVersion) {
   html = this.displayContent(props);
  } else {
   html = this.displayAlternateContent();
  }
  document.write(html);
 },
 displayContent:function(props){
  return this.getObjectTags(props);
 },
 displayInstaller:function(props){
  var obj = new Object();
  obj.MMredirectURL = window.location;
  obj.MMplayerType  = "ActiveX";
  obj.MMdoctitle    = "MMdoctitle";
  props.queries = obj; 
  props.dir = PLAYER_PRODUCTION_INSTALLER_DIR;
  props.src = PLAYER_PRODUCTION_INSTALLER_FILE; 
  return this.getObjectTags(props);
 },
 displayAlternateContent:function(){
  return DEFAULT_NOFLASH_HTML;
 },
 getObjectTags:function(props){
  var src   = (props.src)?props.src:"";
  var width   = (props.width)?props.width:"";
  var height  = (props.height)?props.height:"";
  var dir   = (props.dir)?props.dir:DEFAULT_FLASH_DIRECTORY;
  var bgcolor  = (props.bgcolor)?props.bgcolor:"#ffffff";
  var align  = (props.align)?props.align:"";
  var flashVers = (props.flashVers)?props.flashVers:"";
  var wmode = (props.wmode)?props.wmode:"window";
  var fname = (props.fname)?props.fname:"flashName";
  var queriesStr = (props.queries)?this.queryObjToStr(props.queries):"";

  var htmlStr = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+width+'" height="'+height+'" id="'+fname+'">';
  htmlStr += '<param name="movie" value="'+dir+src+queriesStr+flashVers+'">';
  htmlStr += '<param name="quality" value="high">';
  htmlStr += '<param name="bgcolor" value="'+bgcolor+'">';
  htmlStr += '<param name="wmode" value="'+wmode+'">';
  if(queriesStr.indexOf("MMplayerTypeEmbed")>-1){ queriesStr = queriesStr.split("ActiveX").join("PlugIn"); }
  htmlStr += '<embed src="'+dir+src+queriesStr+flashVers+'" quality="high" wmode="'+wmode+'" bgcolor="'+bgcolor+'" width="'+width+'" height="'+height+'" name="'+fname+'" aligh="middle" play="true" loop="false" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash">';
  htmlStr += '<\/embed>';
  htmlStr += '<\/object>';
  return htmlStr;
 },
 queryObjToStr:function(obj){
  if(!obj) return false;
  var queryArr = new Array();
  for(var tmp in obj){
   queryArr[queryArr.length] = tmp+"="+obj[tmp];
  }
  return (queryArr.length>0)?"?"+queryArr.join("&"):res;
 },
 GetSwfVer:function(){
  // NS/Opera version >= 3 check for Flash plugin in plugin array
  var flashVer = -1;
  
  if (navigator.plugins != null && navigator.plugins.length > 0) {
   if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
    var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
    var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;   
    var descArray = flashDescription.split(" ");
    var tempArrayMajor = descArray[2].split(".");
    var versionMajor = tempArrayMajor[0];
    var versionMinor = tempArrayMajor[1];
    if ( descArray[3] != "" ) {
     tempArrayMinor = descArray[3].split("r");
    } else {
     tempArrayMinor = descArray[4].split("r");
    }
    var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
    var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
   }
  }
  // MSN/WebTV 2.6 supports Flash 4
  else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
  // WebTV 2.5 supports Flash 3
  else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
  // older WebTV supports Flash 2
  else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
  else if ( this.isIE && this.isWin && !this.isOpera ) {
   //flashVer = ControlVersion();
  } 
  return flashVer;
 },
 detect:function(reqMajorVer, reqMinorVer, reqRevision){
   reqVer = parseFloat(reqMajorVer + "." + reqRevision);
     // loop backwards through the versions until we find the newest version 
  for (i=25;i>0;i--) { 
   if (this.isIE && this.isWin && !this.isOpera) {versionStr = VBGetSwfVer(i);}
   else {versionStr = this.GetSwfVer(i);}
   if (versionStr == -1 ) {
    return false;
   } else if (versionStr != 0) {
    if(this.isIE && this.isWin && !this.isOpera) {
     tempArray = versionStr.split(" ");
     tempString = tempArray[1];
     versionArray = tempString .split(",");
    } else {
     versionArray = versionStr.split(".");
    }
    versionMajor = versionArray[0];
    versionMinor = versionArray[1];
    versionRevision = versionArray[2];
    //
    versionString = versionMajor + "." + versionRevision;
    versionNum = parseFloat(versionString);
    //
    if(versionMajor == reqMajorVer) {
     if(versionMinor == reqMinorVer) {return (versionRevision >= reqRevision);}
     else{return (versionMinor > reqMinorVer);}
    }else {
     isU6r65 = (versionMajor>=6 && versionMinor>=0 && versionRevision>=65);
//alert(versionMajor+"."+versionMinor+"."+versionRevision);
     return (versionMajor > reqMajorVer);
    }
    //
   }
  }
 }
}
var uaSwfObj = new UaSwfObj();



/**********************************************************
* pagescroll
*/


function ScrollClass() {
}
ScrollClass.prototype ={

 offset:new Object(),
 speed:12,
 timer:0,
 objCover:"",
 objBody:"",
 direction:new Object(),
 isCompatMode:document.compatMode == "CSS1Compat",
 major:parseInt(navigator.appVersion),
 minor:parseFloat(navigator.appVersion),
 isIE:navigator.userAgent.indexOf("MSIE") != -1,
 isOpera:window.opera,
 isMozilla:navigator.userAgent.indexOf("Gecko") != -1,
 isNN :navigator.userAgent.indexOf("Netscape") != -1,
 isMac:navigator.userAgent.indexOf("Mac") != -1,
 isSafari:navigator.userAgent.indexOf("Safari") != -1,

 setScrollSpeed:function(num){
  if(typeof num == "number") {
   this.speed = num;
  }
 },
 getScrollSpeed:function(){
  return this.speed;
 },
 getMaxScroll:function(){
  var pos = new Object();
  var sc  = new Object();
  if(this.isNN || this.isSafari || this.isOpera || (this.isMac && this.isMozilla)) {
   pos.x = this.major <= 5 ? document.documentElement.offsetWidth - window.innerWidth + 16 : document.documentElement.offsetWidth - window.innerWidth + 17;
   pos.y = this.major <= 5 ? document.documentElement.offsetHeight - window.innerHeight + 16 : document.documentElement.offsetHeight - window.innerHeight + 17;
  } else {
   if(this.isMac) {
    pos.x = document.body.offsetWidth- document.body.clientWidth + 1;
    pos.y = document.body.offsetHeight - document.body.clientHeight + 1;
   } else {
    pos.x = this.isCompatMode ? document.documentElement.scrollWidth - document.documentElement.clientWidth : document.body.scrollWidth - document.body.clientWidth;
    pos.y = this.isCompatMode ? document.documentElement.scrollHeight - document.documentElement.clientHeight : document.body.scrollHeight - document.body.clientHeight;
   }
  }
  if(pos.x < 0) { sc.x = 0; }
  if(pos.y < 0) { sc.y = 0; }
  return {x:pos.x, y:pos.y };
 },
 getScrollLeft:function(){
  if(this.isIE) {
   return this.isCompatMode ? document.documentElement.scrollLeft : document.body.scrollLeft;
  } else {
   return window.pageXOffset ? window.pageXOffset : 0;
  }
 },
 getScrollTop:function(){
  if(this.isIE) {
   return this.isCompatMode ? document.documentElement.scrollTop : document.body.scrollTop;
  } else {
   return window.pageYOffset ? window.pageYOffset : 0;
  }
 },
 scrollTo:function(){
  clearTimeout(this.timer);
  this.offset.x = null;
  this.offset.y = null;
  var toX = this.parse("x", this.findAnchor(arguments[0]) ? this.getAnchorPos(arguments[0]).x : arguments[0]);
  var toY = this.parse("y", this.findAnchor(arguments[1]) ? this.getAnchorPos(arguments[1]).y : arguments[1]);
  this.direction.is_x = toX - this.getScrollLeft() >= 0 ? true : false;
  this.direction.is_y = toY - this.getScrollTop() >= 0 ? true : false;
  this.pageScroll(toX, toY);
 },
 findAnchor:function(id){
  return (document.getElementById(id) || document.anchors[id]);
 },
 getAnchorPos:function(id){
  if(document.getElementById(id)) {
   var element = document.getElementById(id);
   var obj = new Object();
   do {
    obj.x = (!obj.x) ? element.offsetLeft : obj.x + element.offsetLeft;
    obj.y = (!obj.y) ? element.offsetTop : obj.y + element.offsetTop;
   } while((element = element.offsetParent) != null);
   return {x:obj.x < 0 ? 0 : obj.x, y:obj.y };
  } else if(document.layers) {
   var element = document.anchors[id];
   return {x:element.x, y:element.y };
  } else {
   return {x:0, y:0};
  }
 },
 parse:function(direction, value){
  var maxScroll = this.getMaxScroll();
  var range = {min_x:0, max_x:maxScroll.x, min_y:0, max_y:maxScroll.y };
  switch(direction) {
   case "x":
    if(typeof value == "boolean") {
     return value ? 0 : this.getScrollLeft();
    } else if(typeof value == "number") {
     if(!this.isOpera) {
      if(value < 0) {
       return 0;
      } else if(value > range.max_x) {
       return range.max_x;
      }
     }
     return value;
    } else if(typeof value == "string") {
     switch(value) {
      case "left": return 0;
      case "center": return Math.floor(range.max_x / 2);
      case "right": return range.max_x;
      default: this.getScrollLeft();
     }
    }
    return this.getScrollLeft();
    break;
   case "y":
    if(typeof value == "boolean") {
     return value ? 0 : this.getScrollTop();
    } else if(typeof value == "number") {
     if(value < 0) {
      return 0;
     } else if(value > range.max_y) {
      return range.max_y;
     }
     return value;
    } else if(typeof value == "string") {
     switch(value) {
      case "top": return 0;
      case "middle": return Math.floor(range.max_y / 2);
      case "bottom": return range.max_y;
      default: this.getScrollTop();
     }
    }
    return this.getScrollTop();
    break;
  }
 },
 pageScroll:function(toX, toY){
  clearTimeout(this.timer);
  var dX = this.direction.is_x;
  var dY = this.direction.is_y;
  var scX = this.getScrollLeft();
  var scY = this.getScrollTop();
  var cuX = dX ? Math.ceil((toX - scX) / this.speed) : Math.floor((toX - scX) / this.speed);
  var cuY = dY ? Math.ceil((toY - scY) / this.speed) : Math.floor((toY - scY) / this.speed);
  if(((dX && scX + cuX < toX -1) || (!dX && scX + cuX > toX + 1)) || ((dY && scY + cuY < toY - 1) || (!dY && scY + cuY > toY +1))) {
   if(this.offset.x != null && this.offset.y != null) {
    if(this.offset.x == scX && this.offset.y == scY) {
     scroll.allCover('off');
     return;
    } else if((dX && this.offset.x > scX) || (!dX && this.offset.x < scX)) {
     scroll.allCover('off');
     return;
    } else if((dY && this.offset.y > scY) || (!dY && this.offset.y < scY)) {
     scroll.allCover('off');
     return;
    }
   }
   window.scrollTo(scX + cuX, scY + cuY);
   this.timer = setTimeout("ScrollClass.prototype.pageScroll("+toX+","+toY+")",this.speed);
   this.offset.x = scX;
   this.offset.y = scY;
  } else {
   scroll.allCover('off');
   clearTimeout(this.timer);
   window.scrollTo(toX, toY);
   return false;
  }
 },
 allCover:function(display){
  if(display == 'on') {
   this.objCover = document.createElement("div");
   this.objBody.appendChild(this.objCover);
   this.objCover.style.width =  100 + '%';
   this.objCover.style.height = this.setCover() + 'px';
   this.objCover.style.position = 'absolute';
   this.objCover.style.zIndex = 999;
   this.objCover.style.top = 0;
   this.objCover.style.left = 0;
   return true;
  }else if (display == 'off' && this.objCover) {
   this.objBody.removeChild(this.objCover);
   return false;
  }
 },
 setCover:function(){
  if (window.innerHeight && window.scrollMaxY) { 
   return window.innerHeight + window.scrollMaxY;
  } else if (document.body.scrollHeight > document.body.offsetHeight){
   return document.body.scrollHeight;
  } else {
   return document.body.offsetHeight;
  }
 },
 autoSetUp:function() {
  if(!document.getElementsByTagName){ return; }
  this.objBody = document.getElementsByTagName("body").item(0);
  this.setCover();
  var anch    = document.getElementsByTagName('a');
  var path;
  for (var i = 0; i < anch.length; i++) {
   path = anch[i].getAttribute('href');
   if(path.indexOf('#') != -1 && (!path.split('#')[0] || path.split('#')[0] == location.href.split('#')[0])){
    anch[i].onclick = function(){
     scroll.allCover('on');
     scroll.scrollTo(0, this.getAttribute('href').split('#')[1]);
     return false;
    }
   }
  }
 }
}

var scroll = new ScrollClass();

function uaScroll(){
 scroll.autoSetUp();
}



/**********************************************************
* popup
*/

function subWin(html,width,height) {
 var width = 'width=' + width;
 var height = 'height=' + height;
 var config = ',scrollbars=yes,menubar=yes,toolbar=no,resizable=yes';
 var set = width + ',' + height + config;
 SubWindow=window.open(html,"subwin01",set);
 SubWindow.focus();
}





