var makerListArray = new Array();
var browserName=navigator.appName;
var browser="other";
if (browserName=="Microsoft Internet Explorer"){
	browser="IE";
}
function searchInit() {
	var body = document.getElementsByTagName('body')[0];
	var area_lens = document.getElementById('area_lens');
	var area_camera = document.getElementById('area_camera');
	dom.event.addEventListener(body, 'click', resetList);
	dom.event.addEventListener(area_lens, 'click', showMakerList);
	dom.event.addEventListener(area_camera, 'click', showMakerList);
	
	var search_box = document.getElementById('search_box');
	search_boxA = search_box.getElementsByTagName('A');
	for(var i = 0; i < search_boxA.length; i++) {
		if(search_boxA[i].className != 'listMaker') { continue; }
		dom.event.addEventListener(search_boxA[i], 'click', showItemList);
		makerListArray.push(search_boxA[i]);
	}
	
	/* リスト初期化 */
	resetList();
}



/* ||||||||||| メーカーリスト表示 ||||||||||| */
function showMakerList(evt) {	
	var target = dom.event.target(evt);
	/* メーカーリストを参照（Aタグクリックの場合とSpanタグクリックの場合あり） */
	if(target.id) { var targetElm = document.getElementById(target.className); }
	else { var targetElm = document.getElementById(target.parentNode.className); }
	
	if(targetElm.style.display == 'none') {
		resetList();
		targetElm.style.display = 'block';
		/* イベントの伝播防止 */
		dom.event.stopPropagation(evt);
	}

	/* デフォルトアクション停止 */
	dom.event.preventDefault(evt);
}



/* ||||||||||| アイテムリスト表示 ||||||||||| */
function showItemList(evt) {
	/* メーカーリストのカラー初期化 */
	resetListColor();

	/* アイテムリストが表示されている場合は一旦初期化 */
	var target = dom.event.target(evt);
	callAjaxForLensCamera(target);
	dom.event.stopPropagation(evt);
	dom.event.preventDefault(evt);
}


function selImgPerPage(selValue,selName){
	var browser=navigator.appName;
	if (browser=="Microsoft Internet Explorer"){
		document.getElementById('spanImgPerPage').innerText=selName;
		document.getElementById('number').value=selValue;
	}else{
		var domLensId=document.getElementById('spanImgPerPage');
		domLensId.textContent=selName; 
		var domLensName=document.getElementById('number');
		domLensName.value=selValue;
	}
}
function searchImage(){
	var jsUrlString="/search";
	if((lensValue=document.toppage.lens.value)!=0){
		jsUrlString=jsUrlString+"/lens/"+lensValue;
	}
	if((camValue=document.toppage.camera.value)!=0){
		jsUrlString=jsUrlString+"/camera/"+camValue;
	}
	if((userValue=document.toppage.user.value)!=0){
		jsUrlString=jsUrlString+"/user/"+userValue;
	}
	if(camTagValue=document.toppage.tag.value){
		jsUrlString=jsUrlString+"/tag/"+camTagValue;
	}
	document.toppage.pressSearchButton.value="1";
	document.toppage.action=jsUrlString;
	document.toppage.submit();
}

function swapPreiod(pramValue){
	document.toppage.period.value=pramValue;
}
function swapSort(pramValue){
	document.toppage.sort.value=pramValue;
}

function setMakerId(makerId,selectedItem){
	document.toppage.selectedMakerId.value=makerId;
	document.toppage.selectedItem.value=selectedItem;
}
 
function callAjaxForLensCamera(target){
	var makerId=document.toppage.selectedMakerId.value;
	var selectedItem=document.toppage.selectedItem.value;

	var url='/image/LensListByMaker/selMaker/'+makerId+'/browser/'+browser;
	if(selectedItem==2){
		url='/image/CameraListByMaker/selMaker/'+makerId+'/browser/'+browser;
	}

	new Ajax.Request(url,
	{asynchronous:true,
	evalScripts:false,
	evalJS:true,
	contentType: 'application/x-www-form-urlencoded',
	encoding: 'Shift-JIS',
	evalJSON:true,
	requestHeaders: ['Accept','application/json',
	'Accept-Charset','Shift-JIS', 'Accept-Encoding','Shift-JIS'],
	onComplete:function(request, json){updateJSON(request, json, target)}}); return false;
}


function updateJSON(request, json, target){
	var nbElementsInResponse = json.length;
	var itemList = document.getElementById(target.parentNode.parentNode.parentNode.id);
	if(itemList.lastChild.className == 'itemList') { itemList.removeChild(itemList.lastChild); }
	
	/* アイテムリストの生成・表示 */
	var frmntNode = document.createDocumentFragment();
	var ulNode = document.createElement('ul');
	ulNode.id = target.parentNode.parentNode.parentNode.className;
	ulNode.className = 'itemList';

	for (var i = 0; i < nbElementsInResponse; i++){
		var liNode = document.createElement('li');
		var aNode = document.createElement('a');
		var lensORcam=json[i][1];
		if(browser=="other"){
		    lensORcam=decodeURIComponent(escape(lensORcam));
		}
		if(ulNode.id == 'listLens') {
			aNode.href = 'javascript:setLens(\'' +json[i][0] + '\', \''  + lensORcam + '\' ,\'' + target.childNodes[0].nodeValue + '\');';
		} else if(ulNode.id == 'listCamera') {
			aNode.href = 'javascript:setCamera(\'' + json[i][0] + '\', \''  + lensORcam + '\' ,\'' +target.childNodes[0].nodeValue + '\');';
		}
		//var textNode = document.createTextNode(target.childNodes[0].nodeValue + ' ' + lensORcam);
		var textNode = document.createTextNode(lensORcam);
		aNode.appendChild(textNode);
		liNode.appendChild(aNode);
		dom.event.addEventListener(aNode, 'click', stopItemPrpgtn);
		ulNode.appendChild(liNode);
	}
	
	frmntNode.appendChild(ulNode);
	itemList.appendChild(frmntNode);
	target.parentNode.style.backgroundColor = "#DEEAB5";
}

function setLens(lensId, lensName, makerName) {
	var area_lens = document.getElementById('area_lens');
	var domLensId=document.getElementById('lens');
	domLensId.value=lensId;
	if(lensId) {
		area_lens.childNodes[0].childNodes[0].nodeValue =lensName;
	} else {
		area_lens.childNodes[0].childNodes[0].nodeValue = lensName;
	}
	resetList();
}



/* ||||||||||| カメラ名設定 ||||||||||| */
function setCamera(cameraId, cameraName, makerName) {
	var area_camera = document.getElementById('area_camera');
	var domCameraId=document.getElementById('camera');
	domCameraId.value=cameraId;
	 
	if(cameraId) {
		area_camera.childNodes[0].childNodes[0].nodeValue = makerName + ' ' + cameraName;
	} else {
		area_camera.childNodes[0].childNodes[0].nodeValue = cameraName;
	}
	resetList();
}

function resetList() {
	var search_box = document.getElementById('search_box');
	search_boxUl = search_box.getElementsByTagName('UL');
	for(var i = 0; i < search_boxUl.length; i++) {
		if(search_boxUl[i].className == 'selectList') {
			search_boxUl[i].style.display = 'none';
		}
		if(search_boxUl[i].className == 'itemList') {
			search_boxUl[i].parentNode.removeChild(search_boxUl[i].parentNode.lastChild);
		}
	}
	resetListColor();
}
/* ||||||||||| リストカラー初期化 ||||||||||| */
function resetListColor() {
	for( i = 0; i < makerListArray.length; i++ ) {
		makerListArray[i].parentNode.style.backgroundColor = "transparent";
	}
}



/* ||||||||||| アイテムリストイベントの伝播防止 ||||||||||| */
function stopItemPrpgtn(evt) {
	dom.event.stopPropagation(evt);
}

function testJavascript(paramValue){
alert(paramValue);
}