/* -----------------------------------------------
Author: SANYO-INDUSTRIES
----------------------------------------------- */

/**********************************************************
* styleSwitcher
*/

function StyleSwitcher(){}

StyleSwitcher.prototype = {
	cookieName:'fontcss',
	expires:365,
	initialize:function(id,prefix,expires){
		this.prefix = prefix;
		this.triggerElements = [];
		var parent = document.getElementById(id);
		var a = parent.getElementsByTagName('A');

		var len = a.length;
		for(var i = 0; i < len; i++){
			if(a[i].className.indexOf(prefix) != -1){
				this.triggerElements[this.triggerElements.length] = a[i];
			}
		}

		var len = this.triggerElements.length;
		for(var i = 0; i < len; i++) {
			this.triggerElements[i].ins = this;
			this.triggerElements[i].onclick = function() {
				var cls = this.ins.getOneClassName(this.className,prefix);
				if(cls.indexOf(prefix) != -1){
					this.ins.setEffectiveStyle(cls,prefix);
				}
				return false;
			}
		}
	},
	getOneClassName:function(clsName,indexStr){
		var classes = clsName.split(" ");
		var len = classes.length;
		for(var i = 0; i < len; i++){
			if(classes[i].indexOf(indexStr) != -1){
				return classes[i];
			}
		}
	},
	getClassNameOfEffectiveStyle:function(prefix){
		var  lks = document.getElementsByTagName('link')
		var  len = lks.length;
		for(var i = 0; i < len; i++){
			if(lks[i].getAttribute("rel").indexOf("alternate") != -1 &&
			lks[i].className.indexOf(prefix) != -1 && lks[i].disabled == false){
				return this.getOneClassName(lks[i].className,prefix);
				break;
			}
		}
	},
	setEffectiveStyle:function(cls,prefix){
		var  lks = document.getElementsByTagName('link')
		var  len = lks.length;
		for(var i = 0; i < len; i++){
			if(lks[i].getAttribute("rel").indexOf("alternate") != -1 &&
			lks[i].className.indexOf(prefix) != -1){
				lks[i].disabled = true;
				if(lks[i].className.indexOf(cls) != -1) {
					lks[i].disabled = false;
				}
			}
		}
		this.setCookie(this.cookieName,cls,this.expires,"/");
	},
	getCookie:function(name){
		var arg = name + "=";
		var alen = arg.length;
		var clen = document.cookie.length;
		var i = 0;
		while (i < clen){
			var j = i + alen;
			if(document.cookie.substring(i, j) == arg){
				return this.getCookieVal(j);
			}
			i = document.cookie.indexOf(" ", i) + 1;
			if(i == 0) break; 
		}
		return null;
	},
	setCookie:function(name, value, expires, path, domain, secure){
		if(expires) {
			var date = new Date();
			date.setTime(date.getTime()+(expires*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		document.cookie = name + "=" + escape (value) +
			((expires) ? "; expires=" + expires : "") +
			((path) ? "; path=" + path : "") +
			((domain) ? "; domain=" + domain : "") +
			((secure) ? "; secure" : "");
	},
	getCookieVal:function(offset){
		var endstr = document.cookie.indexOf (";", offset);
		if(endstr == -1){
			endstr = document.cookie.length;
		}
		return unescape(document.cookie.substring(offset, endstr));
	}
}

var styleSwitcher = new StyleSwitcher();

function uaStyleSwitcher() {
	styleSwitcher.initialize('readability','readability-',365);
}

window.onunload = function() {
	var cls = styleSwitcher.getClassNameOfEffectiveStyle(styleSwitcher.prefix);
	styleSwitcher.setCookie(styleSwitcher.cookieName, cls, styleSwitcher.expires,"/");
}

styleSwitcher.cookie = styleSwitcher.getCookie(styleSwitcher.cookieName);

if(styleSwitcher.cookie) {
	styleSwitcher.setEffectiveStyle(styleSwitcher.cookie,'readability-');
}



/**********************************************************
* 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:4,
	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();
}



/**********************************************************
* parent window
*/

winNameAr=new Array();
function pwinChange(val){
	if((navigator.userAgent.indexOf("Mac") > -1)){
		if(winNameAr.length <= 0 && window.opener){
			if(window.opener.top.frames.length > 0){ winNameAr=new Array(window.opener.top); window.opener.top.location.href = val; window.opener.focus();}
			else{window.opener.location.href = val; window.opener.focus();}
		}else{
			uaName = navigator.appName.toUpperCase();
			if(uaName.indexOf("NETSCAPE") > -1){
				var winname=winNameAr[0];
				if(winNameAr.length > 0 && winname && !winname.closed){winname.location.href = val; winname.focus();}
				else{w=window.open(val,"main");w.focus(); winNameAr=new Array(w);}
			}else{
				if(typeof winNameAr[0] == 'object' && typeof winNameAr[0].document == 'object'){
					var winname=winNameAr[0];
					if(winNameAr.length > 0 && winname.window){ winname.location.href = val; winname.focus();}
					else{w=window.open(val,"main");w.focus(); winNameAr=new Array(w);}
				}else{w=window.open(val,"main");w.focus(); winNameAr=new Array(w);}
			}
		}
	}else{
		if(winNameAr.length <= 0 && window.opener && !window.opener.closed){
			if(window.opener.top.frames.length > 0){ winNameAr=new Array(window.opener.top); window.opener.top.location.href = val; window.opener.focus();}
			else{parent.opener.location.href = val; parent.opener.focus();}
		}else{
			var winname=winNameAr[0];
			if(winNameAr.length > 0 && winname && !winname.closed){winname.location.href = val; winname.focus();}
			else{w=window.open(val,"main");w.focus(); winNameAr=new Array(w);}
		}
	}
}



/**********************************************************
* 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();
}





