var ageSurfin = {
	searchResultMessage : 'クリックして商品を選択してください<BR/>',
	items : null,
	item_id : null,
	item_title : null,
	img_url : null,
	img_height : null,
	img_width : null,
	now_page : 1,
	load : function(){
		document.getElementById('step2').style.display='none';
		document.getElementById('step3').style.display='none';
	},
	initParams : function(){
		this.items = null;
		this.item_id = null;
		this.item_title = null;
		this.img_url = null;
		this.img_height = null;
		this.img_width = null;
		document.getElementById('searchresult').innerHTML = '';
		document.getElementById('searchresult').style.borderColor = "#ffffff";
		document.getElementById('searchresult').style.width = "0px";
		document.getElementById('searchresult').style.height = "0px";
	},
	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;
    	}
  	},
	selectStore : function(){
		this.initParams();
		var aid = document.getElementById('aid');
		if(this.getStore() == '0'){
			aid.disabled = true;
		}
		aid.disabled = false;
		this.now_page = 1;

		this.hidePagingArea();
		document.getElementById('step2').style.display='block';
		document.getElementById('step3').style.display='none';
		document.getElementById('keyword').focus();
		
	},
	hidePagingArea : function(){
		document.getElementById('totalnum').innerHTML = '';
  		document.getElementById('prevp').innerHTML = '　　　';
  		document.getElementById('totalpage').innerHTML = '';
  		document.getElementById('nextp').innerHTML = '';
	},
	checkAge : function(){
		var agey = document.getElementById('agey');
		var agem = document.getElementById('agem');
		if(agey.options[agey.selectedIndex].value == '0' || agey.options[agey.selectedIndex].value == '1' ){
			agem.disabled = false;
		}else{
			agem.selectedIndex = 0;
			agem.disabled = true;
		}
	},
	getStore : function(){
		if(document.getElementById('store0').checked){
			return '0';
		}
		if(document.getElementById('store1').checked){
			return '1';
		}
		if(document.getElementById('store2').checked){
			return '2';
		}
	},
	getAge : function(){
		var agey = document.getElementById('agey');
		var agem = document.getElementById('agem');
		return agey.options[agey.selectedIndex].value + agem.options[agem.selectedIndex].value;
	},
	createUndo : function(){
		document.getElementById('create').style.display = 'block';
		document.getElementById('created').style.display = 'none';
		document.getElementById('source').value = '';
	},
	createSource : function(){
		document.getElementById('create').style.display = 'none';
		document.getElementById('created').style.display = 'block';
	
		var source = document.getElementById('source');
		var url = 'http://www.age-surf.in/show.php?age='+ this.getAge() +'&title='+ encodeURI(this.item_title) +
		                   '&sid='+ this.getStore() +'&aid='+ document.getElementById('aid').value +'&iid='+ 
		                   encodeURIComponent(this.item_id) + '&iurl='+ this.img_url +
                           this.getColorByType()
                           +'&ih=' + this.img_height + '&iw=' + this.img_width;
		source.value = '<iframe src="'+ url +'" width="400" height="140" hspace="0" vspace="0" marginheight="0" marginwidth=0 allowtransparency="true" padding="0" frameborder="no" scrolling="no">';
		source.value += '</iframe>';
		
		document.getElementById('preview').innerHTML = source.value;

	},
	getColorByType : function(){
		if(document.getElementById('color0').checked){
			return '&a=D3D3D3&b=D3D3D3&c=696969&d=DCDCDC&e=5&f=696969&g=0000FF&h=000000&i=808080';
		}else if(document.getElementById('color1').checked){
			return '&a=8FBC8F&b=8FBC8F&c=FFFFFF&d=66CDAA&e=4&f=FFFFFF&g=0000FF&h=000000&i=696969';
		}else if(document.getElementById('color2').checked){
			return '&a=00008B&b=00008B&c=FFFFFF&d=000080&e=2&f=FFFFFF&g=0000FF&h=FFFFFF&i=DCDCDC';
		}else if(document.getElementById('color3').checked){
			return '&a=FFA500&b=FFA500&c=FFFFFF&d=FFD700&e=1&f=FFFFFF&g=0000FF&h=000000&i=808080';
		}else if(document.getElementById('color4').checked){
			return '&a=FFC0CB&b=FFC0CB&c=696969&d=FFC0CB&e=3&f=696969&g=0000FF&h=000000&i=808080';
		}else {//DEFAULT COLOR TYPE
			return '&a=D3D3D3&b=D3D3D3&c=696969&d=DCDCDC&e=5&f=696969&g=0000FF&h=000000&i=808080';
		}
	},
	makePagingArea:function(keyword,totalnum,totalpage,page,funcName){
	  document.getElementById('totalnum').innerHTML = '全' + totalnum + '件';
  	  if(page > 1){
  		document.getElementById('prevp').innerHTML = '<a href="javascript:ageSurfin.'+funcName+'(\''+keyword + '\',' + (page - 1) + ');" >&laquo;前へ</a>';
  	  }else{
  		document.getElementById('prevp').innerHTML = '　　　';
  	  }
  	  document.getElementById('totalpage').innerHTML = page +'/' + totalpage + 'ページ';
  	  if(page  < totalpage ){
  		document.getElementById('nextp').innerHTML = '<a href="javascript:ageSurfin.'+funcName+'(\''+keyword + '\',' + (page + 1) + ');" >次へ&raquo;</a>';
  	  }else{
  		document.getElementById('nextp').innerHTML = '';
      }
	},
	doSearch : function(){
		var keyword = document.getElementById('keyword').value;
		document.getElementById('searchresult').style.borderColor = "#ffa500";
		document.getElementById('searchresult').style.width = "640px";
		document.getElementById('searchresult').style.height = "410px";
		document.getElementById('searchresult').style.overflow = "auto";
		document.getElementById('searchresult').innerHTML = '検索中....';
		if(keyword.length == 0){
			this.showNoKeyword();
			return;
		}
		if(this.getStore() == '0'){
			this.searchAkasugu(keyword,this.now_page);
		}else if(this.getStore() == '1'){
			this.searchRakutenBooks(keyword,this.now_page);
		}else if(this.getStore() == '2'){
			this.searchAmazon(keyword,this.now_page);
		}
	},
	searchAkasugu : function(keyword,page){
		var httpObj = this.createHttpRequest();
		var data = "";
		httpObj.open('GET' , './search/searchAkasugu.cgi?keyword=' + encodeURI(keyword)+'&start='+(( page -1) * 16 + 1 ), true);
		httpObj.onreadystatechange = function(){ 
  			if (httpObj.readyState==4){ 
    			ajaxOnLoaded(httpObj);
  			}
		}
		httpObj.send(data) ;
		function ajaxOnLoaded(obj){
  			var resdata = eval('('+obj.responseText+')');
  
  			var totalnum = resdata.results.results_available;
  			
  			ageSurfin.makePagingArea(keyword,totalnum,( parseInt(totalnum/16) + 1 ),page,'searchAkasugu');
  			
  			ageSurfin.items = resdata.results.item;
 			document.getElementById('searchresult').innerHTML = ageSurfin.searchResultMessage;
 			if(ageSurfin.items.length == 0){
 				ageSurfin.showNoResult();
 				return;
 			}
   			for(i = 0;i<ageSurfin.items.length;i++){
  				document.getElementById('searchresult').innerHTML += '<div class="items" onmouseover="javascript:this.style.background=\'#fff8dc\';"onmouseout="javascript:this.style.background=\'white\';" onclick="javascript:ageSurfin.selectItem(\''+i+'\');" title="'+ ageSurfin.items[i].name +'"><img src="' + ageSurfin.items[i].image.pc + '" height="100" width="100" title="'+ ageSurfin.items[i].name +'"><br/>' + ageSurfin.getGoodSizeTitle(ageSurfin.items[i].name) + '</div>';
  			}
  			
  			ageSurfin.now_page = page ;
		}
	},
	searchRakutenBooks : function(keyword,page){
		var httpObj = this.createHttpRequest();
		var data = "";
		httpObj.open('GET' , './search/searchRakutenBooks.cgi?keyword=' + encodeURI(keyword) + '&page=' + page , true);
		httpObj.onreadystatechange = function(){ 
  			if (httpObj.readyState==4){ 
    			ajaxOnLoaded(httpObj);
  			}
		}
		httpObj.send(data) ;
		function ajaxOnLoaded(obj){
  			var resdata = eval('('+obj.responseText+')');
  			
  			var totalnum = resdata.Body.BookSearch.count;
    		var totalpage = resdata.Body.BookSearch.pageCount;
    		ageSurfin.makePagingArea(keyword,totalnum,totalpage,page,'searchRakutenBooks');
  			
  			ageSurfin.items = resdata.Body.BookSearch.Items.Item;
  			document.getElementById('searchresult').innerHTML = ageSurfin.searchResultMessage;
 			if(ageSurfin.items.length == 0){
 				ageSurfin.showNoResult();
 				return;
 			}
  			for(i = 0;i<ageSurfin.items.length;i++){
  				document.getElementById('searchresult').innerHTML += '<div class="items" onmouseover="javascript:this.style.background=\'#fff8dc\';"onmouseout="javascript:this.style.background=\'white\';" onclick="javascript:ageSurfin.selectItem(\''+i+'\');" title="'+ ageSurfin.items[i].itemName +'"><img src="' + ageSurfin.items[i].mediumImageUrl + '" title="'+ ageSurfin.items[i].itemName +'"><br/>' + ageSurfin.getGoodSizeTitle(ageSurfin.items[i].itemName) + '</div>';
  			}
  			
  			ageSurfin.now_page = page ;
  			
		}
	},
	searchAmazon : function(keyword,page){
    	var url = "./search/searchAmazon.cgi?keywords=" + encodeURI(keyword) + '&page=' + page;
    	var http = new JKL.ParseXML( url );
    	var func = function ( data ) {
    		
    		var totalnum = data.ItemSearchResponse.Items.TotalResults;
    		var totalpage = data.ItemSearchResponse.Items.TotalPages;
    		ageSurfin.makePagingArea(keyword,totalnum,totalpage,page,'searchAmazon');
    		
	       	ageSurfin.items =data.ItemSearchResponse.Items.Item;
  			document.getElementById('searchresult').innerHTML = ageSurfin.searchResultMessage;
 			if(ageSurfin.items.length == 0){
 				ageSurfin.showNoResult();
 				return;
 			}
  			for(i = 0;i<ageSurfin.items.length;i++){
  				var h = '100';
  				var w = '100';
  				var imgurl = 'img/noimg.gif';
  				try{
					h = ageSurfin.items[i].MediumImage.Height['#text'];
  					w = ageSurfin.items[i].MediumImage.Width['#text']
  					imgurl = ageSurfin.items[i].MediumImage.URL;
  				}catch(e){
  					
  				}
	  			var imgsize = ageSurfin.getCleanSize(h ,w);
  				document.getElementById('searchresult').innerHTML += '<div class="items" onmouseover="javascript:this.style.background=\'#fff8dc\';"onmouseout="javascript:this.style.background=\'white\';" onclick="javascript:ageSurfin.selectItem(\''+i+'\');" title="'+ ageSurfin.items[i].ItemAttributes.Title +'" ><img src="' + imgurl + '" height="'+imgsize[0]+'" width="'+imgsize[1]+'" title="'+ ageSurfin.items[i].ItemAttributes.Title +'"><br/>' + ageSurfin.getGoodSizeTitle(ageSurfin.items[i].ItemAttributes.Title) + '</div>';
  			}
  			ageSurfin.now_page = page ;
  			
    	}
    	http.async( func );
    	http.parse();
	},
	showNoResult : function (){
		document.getElementById('searchresult').innerHTML = '検索結果が0件でした';
		document.getElementById('searchresult').style.height = "50px";
	},
	showNoKeyword : function (){
		document.getElementById('searchresult').innerHTML = '検索キーワードを入力してください';
		document.getElementById('searchresult').style.height = "50px";
		document.getElementById('keyword').focus();
	},
	getGoodSizeTitle : function(title){
		if(title.length > 30){
			return title.substr(0,30) + '...';
		}
		return title;
	},
	getCleanSize :function (height,width){
		if( ( height > 100 && width <= 100 ) || (height > 100 && width > 100 && height > width)){
			width = parseInt(width * 100 / height);
			height = 100;
		}else if( ( width > 100 && height <= 100 ) || (height > 100 && width > 100 && height <= width) ){
			height = parseInt(height * 100 / width);
			width = 100;
		}
		return [height,width];
	},
	selectItem : function(i){
		this.hidePagingArea();
		
		document.getElementById('searchresult').style.borderColor = "#ffffff";
		document.getElementById('searchresult').style.height = "200px";
		document.getElementById('searchresult').style.overflow = "visible";
		
		if(this.getStore() == '0'){
	  		document.getElementById('searchresult').innerHTML = '<div class="items"><img src="' + ageSurfin.items[i].image.pc + '" height="100" width="100"id="itemimg" ><br/>' + ageSurfin.items[i].name + '</div>';
	  		this.item_title = ageSurfin.items[i].name;
  			this.item_id = ageSurfin.items[i].urls.pc;
  			this.img_url = ageSurfin.items[i].image.pc;
		}else if(this.getStore() == '1'){
	  		document.getElementById('searchresult').innerHTML = '<div class="items"><img src="' + ageSurfin.items[i].mediumImageUrl + '" id="itemimg"><br/>' + ageSurfin.items[i].itemName + '</div>';	
	  		this.item_title = ageSurfin.items[i].itemName;
  			this.item_id = ageSurfin.items[i].itemUrl;
  			this.img_url = ageSurfin.items[i].mediumImageUrl;
		}else if(this.getStore() == '2'){
  			var h = '100';
  			var w = '100';
  			var imgurl = 'img/noimg.gif';
  			try{
				h = ageSurfin.items[i].MediumImage.Height['#text'];
  				w = ageSurfin.items[i].MediumImage.Width['#text']
  				imgurl = ageSurfin.items[i].MediumImage.URL;
  			}catch(e){
  				
  			}
	  		var imgsize = ageSurfin.getCleanSize(h ,w);
			document.getElementById('searchresult').innerHTML = '<div class="items"><img src="' + imgurl + '" height="'+imgsize[0]+'" width="'+imgsize[1]+'" id="itemimg"><br/>' + ageSurfin.items[i].ItemAttributes.Title + '</div>';
	  		this.item_title = ageSurfin.items[i].ItemAttributes.Title;
  			this.item_id = 'http://www.amazon.co.jp/gp/product/'+ageSurfin.items[i].ASIN;
  			this.img_url = imgurl ;
		}
  			this.img_height = document.getElementById('itemimg').height;
  			this.img_width =  document.getElementById('itemimg').width;
  			document.getElementById('step3').style.display = 'block';
  			this.showAffi();  			
	},
	showAffi :function(){
		if(this.getStore() == '0'){
			document.getElementById('affi').style.display = 'none';
		}else{
			document.getElementById('affi').style.display = 'block';
		}
	}
}