
/*------------------subnavi.htm--------------*/

/* subNavi */

var ClassSubNavi = Class.create();

ClassSubNavi.prototype = {

	initialize: function(el, opts){

		if($(el.trigger) == undefined || $(el.target) == undefined ){ return 0; }
		this.elem = $(el.trigger);
		this.target =  $(el.target);
		this.elem.observe( 'mouseover',
			this.showNavi.bindAsEventListener(this)
		);
	},
	showNavi: function(e){
		Element.stopObserving(this.elem);
		this.target.show();

		this.elem.observe( 'mouseout',
			this.hideNavi.bindAsEventListener(this)
		);

	},
	hideNavi: function(e){
		Element.stopObserving(this.elem);
		this.target.hide();

		this.elem.observe( 'mouseover',
			this.showNavi.bindAsEventListener(this)
		);

	},

	create: function(elem, opts){
		return new ClassSubNavi(elem, opts);
	}
};

var arraySubnavi = [
	{ 
		trigger : "tab_business",
		target : "tab_business_popup"
	},
	{ 
		trigger : "tab_tech",
		target : "tab_tech_popup"
	},
	{ 
		trigger : "tab_dashboard",
		target : "tab_dashboard_popup"
	}
];
var itemsSubnavi;

Event.observe(document, "dom:loaded", function(){
	itemsSubnavi = arraySubnavi.collect( ClassSubNavi.prototype.create );
});
	




/*--------------script_style_accordion.htm------------------*/

function setAccordionEffect(target){
	if(target == undefined){ target= "ul.script_kwad_accordion li"; }

	$$(target).invoke(
		'observe',
		'mouseover',
		function (evt){
			var el = Event.findElement(evt, "li")
			if( ! el.hasClassName("script_kwad_visible") ){
				$A(el.parentNode.getElementsByTagName("li")).each( function(e){
					e.removeClassName("script_kwad_visible");
				});
			}
			el.addClassName("script_kwad_visible");
		}
	);
}

document.observe("dom:loaded", function(){
	setAccordionEffect();
});

/*--------------script_style_harakiri.htm------------------*/

/*　記事にハラキリ枠を表示するのに使うJS
-------------------------------------------*/

function showHarakiri(){
	var cntParagraph=0;
	var tmpchildren = $('block_story').childNodes;
	var children = [];
	for(var i = 0; i< tmpchildren.length; i++){
		if(tmpchildren[i].nodeType == 1 ) {
			children.push( tmpchildren[i]);
		}
	}

	for(var i = 0; i< children.length; i++){
		if(children[i].tagName == "P" || children[i].tagName == "H4"|| children[i].tagName == "H3" ) {
			cntParagraph++;
		}else{
			cntParagraph = 0;
		}
		if( cntParagraph > 2 ){
			var addNode = document.createElement('div');


			addNode.className = "style_kwad_default clearfix";

			var html= [];


			html.push('<div class="style_kwad_default_inner">');
			html.push('	<div class="kwad_default_header">');
			html.push('		<span class="title">'+ jsonHarakiriData.title +'</span>');
			html.push('	</div><!--/kwad_default_header-->');
			html.push('	<div class="kwad_default_content">');
			html.push('		<ul class="script_kwad_accordion">');

			jsonHarakiriData.list.each( function(e){

				html.push('			<li>');
				html.push('				<a class="clearfix" href="' + e.url + '">');
				html.push('				<span id="kwad_default_list_title" class="kwad_default_list_title">'+ e.title + '</span>');
				html.push('				<span class="kwad_default_list_desc">');
				if(e.image){
					html.push('				<img src="' + e.image + '" />');
				}
				html.push('				' + e.summary);
				html.push('				</span>');
				html.push('				</a>');
				html.push('			</li>');

			});

			html.push('		</ul>');
			html.push('	</div><!--kwad_default_content-->');
			html.push('</div><!--/block_kwad_default_inner-->');


			addNode.innerHTML = html.join("\n");


			$('block_story').insertBefore( addNode , children[i]);
			break;
		}
	}
}




/*--------------script_style_blinddown.htm------------------*/

/* blinddown */

var EffectToggle = Class.create();

EffectToggle.prototype ={
	initialize: function(el, opts){
		if($(el.trigger) == undefined || $(el.target) == undefined ){ return(0); } 
		this.invokeEle = $(el.trigger);
		this.targetEle = $(el.target); 
		if(el.extend != null){
			this.extendEle = $(el.extend);
			this.extendEleOrigHeight = parseInt($(el.extend).getStyle("height").replace(/px/, "")); 
			this.targetEleOrigHeight = parseInt($(el.target).getStyle("height").replace(/px/, ""));
		}


		this.targetEle.setStyle({
			'display' : 'none'
		});

		this.invokeEle.setStyle({
			'fontWeight': 'bold',
			'cursor': 'pointer'
		});

		this.invokeEle.observe('click',	this.toggle.bindAsEventListener(this));
	},
	
	toggle : function(e){

		if(this.targetEle.getStyle("display") == "none"){
			if(this.extendEle){
				new Effect.Parallel([

					new Effect.Morph(this.extendEle, {
						style:{
							height: this.extendEleOrigHeight + "px"
						},
						sync: true
					})
					
				], {duration: 0.5 });
				new Effect.BlindDown(this.targetEle, { delay: 0.6, duration: 0.5});
			}else{
				new Effect.BlindDown(this.targetEle, { duration: 0.5 });
			}
			
		}else{
			this.targetEle.setStyle({"display": "none"});
			if(this.extendEle){
				this.extendEle.setStyle({"height" : (this.extendEleOrigHeight - this.targetEleOrigHeight) + "px" });
			}
		}
	
	},
	
	create: function(elem, opts){
		return new EffectToggle(elem, opts);
	}
};

var arrayEffectToggle = [
	{ 
		trigger : "toggle_externallinks",
		target : "block_externallinks"
	},
	{ 
		trigger : "toggle_glossary_index",
		target : "glossary_index"
	}
];
var itemsEffectToggle;

document.observe("dom:loaded", function(){
	itemsEffectToggle = arrayEffectToggle.collect( EffectToggle.prototype.create );
});



/*--------------script_style_selector.htm------------------*/

/* invokeSelector */

function invokeSelector(){
	var invokeElements = $$(".script_selector li");
	var targetElements = $$(".script_selectBox");

	invokeElements.each(
		function(el1, i1){

			el1.observe("click", 
				function(){
					targetElements.each(function(el2, i2){
						if (i1 == i2) {
							invokeElements[i2].addClassName('on');
							targetElements[i2].addClassName('on');
						} else {
							invokeElements[i2].removeClassName('on');
							targetElements[i2].removeClassName('on');
						}
					});
				}
			);
		}
	);
}


/*
document.observe("dom:loaded", function(){
	invokeSelector();
});
*/

Event.observe(window , "load", invokeSelector);

/*--------------script_style_adblinddown.htm------------------*/

document.observe("dom:loaded", function(){
	if($('ad_blinddown') != undefined ){
		new Effect.SlideDown($('ad_blinddown'), {duration: 0.5, delay: 1});
	}
});



/*--------------script_emergency.htm------------------*/

new function(){
	if($('emergencyboard_msg') != undefined){
		var msg = $('emergencyboard_msg').innerHTML;
		setTimeout(dispChar, 500, msg, 0);
	}
}

function dispChar(msg, count){
	if(count == 0 ){ $('emergencyboard_msg').innerHTML = "";}
if(count > msg.length){
		count = 0;
		setTimeout(dispChar, 5000, msg, count); 
	}else{
		$('emergencyboard_msg').innerHTML = $('emergencyboard_msg').innerHTML + msg.substr(count, 1);
		count++;
		setTimeout(dispChar, 100, msg, count);
	}
}


/*--------------script_keyboard_shortcut.htm------------------*/

//-----------------------------
// keyboard shortcut
//-----------------------------

new function(){
		
	Event.observe(document, "keyup", function(evt){
		if(Event.element(evt).tagName == "INPUT"||Event.element(evt).tagName == "TEXTAREA"){ return(0);};
		//pagination next
		if( $('script_pagination_next') != undefined){
			if(evt.keyCode==78){ //key N
				var target = $('script_pagination_next');
				target.scrollTo();window.scrollBy(0,-300);
				new Effect.Highlight(target, {duration: 0.5}); 
				location.href= target.href;
			}
		}
		//pagination prev
		if( $('script_pagination_prev') != undefined){
			if(evt.keyCode == 66 ){ //key B
				var target = $('script_pagination_prev');
				target.scrollTo();window.scrollBy(0,-300);
				new Effect.Highlight(target, {duration: 0.5}); 
				location.href= target.href;
			}
		}
	});
};


/*--------------tab switch & toggle------------------*/

function switchTabs(tabNum, parentId) {
	var boxId = parentId.id;
	var tabs = document.getElementById(boxId).getElementsByTagName("a");
	for (var i = 0; i < tabs.length; i++) {
		var thisTab = tabs[i];
		if ((thisTab.id != "")) {
			document.getElementById(boxId+"_content"+i).style.display = "none";
			if (i == tabNum) {
				thisTab.className = "selected";
				document.getElementById(boxId+"_content"+i).style.display = "block";
			} else {
				thisTab.className = "";
			}
		}
	}
}


function toggleBox(id) {
	if (document.getElementById(id).style.display == "none") {
		document.getElementById(id).style.display = "block";
	} else {
		document.getElementById(id).style.display = "none";
	}
}


/*--------------search------------------*/

function site_search() {
	var fm = document.search;
	var url;
	if (fm.target.value == 'builder') {
		url = 'http://builder.japan.zdnet.com/search/';
	} else {
		url = '/search/';
	}
	url = url + '?q=' + fm.q.value;
	url = url + '&t=' + fm.t.value;

	if (fm.y1.value) {
		url = url + '&y1=' + fm.y1.value;
	}
	if (fm.m1.value) {
		url = url + '&m1=' + fm.m1.value;
	}
	if (fm.d1.value) {
		url = url + '&d1=' + fm.d1.value;
	}

	location.href = url;
}



/*--------------poll------------------*/

function poll_enableSubmit(form) {
	var elements = form.elements;
	for (var i = 0; i < elements.length; i++) {
		if (elements[i].type == 'submit') {
			elements[i].disabled = false;
		}
	}
}


/*--------------leaf right特集誘導------------------*/

/*　記事右側にbuilderの特集を表示するのに使うJS
-------------------------------------------*/

function showArticleRight(){
	var cntParagraph=0;
	var tmpchildren = $('block_story').childNodes;
	var children = [];
	for(var i = 0; i< tmpchildren.length; i++){
		if(tmpchildren[i].nodeType == 1 ) {
			children.push( tmpchildren[i]);
		}
	}

	for(var i = 0; i< children.length; i++){
		if(children[i].tagName == "P" || children[i].tagName == "H4"|| children[i].tagName == "H3" ) {
			cntParagraph++;
		}else{
			cntParagraph = 0;
		}
		if( cntParagraph > 2 ){
			var addNode = document.createElement('div');
			addNode.id = "box_article_right";
			addNode.style.clear = "right";

			var html= [];

			html.push('<div class="box_article_right_inner">');
			html.push('		<div class="right_title">最新特集<a href="/sp/">【一覧】</a></div>');

			
			for(var j = 0; j < jsonLatestFeature.length; j++){
				var imgtag = "";
				if(jsonLatestFeature[j].image){
					imgtag = '<img src="' + jsonLatestFeature[j].image + '" />';
				}
				html.push('<div class="right_item"><a href="' + jsonLatestFeature[j].url + '">' + imgtag + '<br />'+ jsonLatestFeature[j].title + '</a></div>');
			}
			

			html.push('</div>');

			addNode.innerHTML = html.join("\n");


			$('block_story').insertBefore( addNode , children[i-2]);
			break;
		}
	}
}


