
var 	OutFrameExtension = new Array() ;

//alert( location.href +" : "+location.hostname +" : "+location.pathname ) ;

add_outframe_extension( ".doc" )	;
add_outframe_extension( ".pdf" )	;


function	add_outframe_extension( extStr )
{
	OutFrameExtension.push(  extStr ) ;
}

function	is_link_inside( linkStr )
{
	if( linkStr.indexOf( "http://" ) >= 0 )
	{
		return(0) ;
	}

	return(1) ;
}


function	is_outframe_extension( linkStr )
{
	var i	;
	
	for( i = 0 ; i < OutFrameExtension.length ; i++ )
	{
		if( num = linkStr.indexOf( OutFrameExtension[i] ) >= 0 )
		{
			return(1)	;
		}
		else
		{
			//alert("pos:"+ num + " link:" + OutFrameExtension.length + " ext:" +  OutFrameExtension[i] ) ;
		}
	}

	if( linkStr.indexOf( "http://" ) >= 0 )
	{
		if( linkStr.indexOf( location.hostname ) < 0 )
		{
			//
			// 外部ドメインへのリンクだった
			//
			return(1)	;
		}
	}
	return(0)	;
}



new GET_RSS_RECORD()	;	

inherit( GET_RSS_RECORD, XEQST )	;  
							   

var 	RssRecord		 = new GET_RSS_RECORD() ;


var 	rss_table  = new Array()	;


function	GET_RSS_RECORD()
{
	var 	myself = GET_RSS_RECORD ;

	/*
		XML が all を指定の時は "misc" と "ir" の２つの XML を読み込んでからソートする必要がある。
		その場合は、２つのファイルを読み込み終わってから初めて表示処理が動く。
		なので、this.execute() は２回動作する。
	*/

	myself.prototype.__construct = function()
	{
		this.xml_max	 = 1 ;
		this.xml_current = 0 ;
		this.xml_list	 = new Array() ;
		this.counter	 = 0 ;

		this.set_limit( 10 ) ;

		//alert( "PATH=" + location.hostname +	location.pathname )	;

		if( location.hostname.indexOf("localhost") >= 0 ) 
		{
			if( location.pathname.indexOf( "/test" ) >= 0 )
			{ 
				this.set_base( "/spc/test")  ;
			}
			else
			{
				this.set_base( "/spc")	;
			}
		}
		else if( location.hostname.indexOf("www.big-porter.jp")   >= 0	) 
		{
			this.set_base( "http://www.big-porter.jp/test/spc/spc" )	;
		}
		else if( location.hostname.indexOf("www.chame2.com")   >= 0  ) 
		{
			this.set_base( "http://www.chame2.com/spc" )	;
		}
		else if( location.hostname.indexOf("www.sekisuiplastics.co.jp")  >= 0  )
		{
			if( location.pathname.indexOf( "/test" ) >= 0 )
			{ 
				this.set_base( "/test" ) ;
			}
			else
			{
				this.set_base( "" ) ;
			}
		}
		else
		{
			this.set_base( "" ) ;
		}
	}

	myself.prototype.set_code = function( code )
	{
		this.code  = code	;
	}

	myself.prototype.set_xml = function( xml_name )
	{
		var  yearStr ;

		if(xml_name.search(/all/i) != -1)  
		{
			yearStr = xml_name.slice(0,4)	;

			this.xml_list.push( yearStr + "_misc.xml" )    ; 
			this.xml_list.push( yearStr + "_ir.xml" )	   ; 
		}	   
		else
		{
			this.xml_name  = xml_name	;

			this.xml_list.push(xml_name)	; 
		}
	}


	myself.prototype.set_limit = function( xml_limit )
	{
		this.xml_limit	= xml_limit ;
	}

	myself.prototype.set_base = function( base_url )
	{
		this.base_url  = base_url	;
	}

	myself.prototype.set_type = function( type )
	{
		this.control_type  = type	;
	}

	myself.prototype._set_application_code = function()
	{
		this.xml_name = this.xml_list[ this.xml_current ]	;

		this.set_request_process( this.base_url + "/rss/"+ this.xml_name  + "?code=dummy");
		
		if( this.get_request_process().indexOf( "/test" ) >= 0 )
		{
			//alert( "XML_Directory>" + this.get_request_process()) ;
		}
	}

	myself.prototype._get_properties = function()	
	{
		var i,j ;
		var name,link,datetime,displaywindow  ;
		var target_spec 				;
		var pos ;
		
		this.item = this.get_property( "item" ) ;

		for( i = 0 ; i < this.item.length  ; i++ , this.counter++ )
		{
			displaywindow = null ;

			var rss_data = new rss_contents() ;

			for( j = 0 ; j < this.item [i].childNodes.length ; j++ )
			{
				if( this.item [i].childNodes[j].childNodes.length == 1 )
				{
					switch( this.item [i].childNodes[j].nodeName )
					{
						case	"my:displaywindow"	:	rss_data.displaywindow	= this.item [i].childNodes[j].childNodes[0].nodeValue ;break   ;
						case	"window"			:	rss_data.displaywindow	= this.item [i].childNodes[j].childNodes[0].nodeValue ;break   ;

						case	"title" 	:	rss_data.name	  = this.item [i].childNodes[j].childNodes[0].nodeValue ;break	 ;
						case	"link"		:	rss_data.link	  = this.item [i].childNodes[j].childNodes[0].nodeValue ;break	 ;

						case	"dc:date"	:	rss_data.dateStr  = this.item [i].childNodes[j].childNodes[0].nodeValue.replace( /\-/g , "/" ) ; ;

												rss_data.dateStr  = rss_data.dateStr.replace( /\+(\d+):(\d+)/  ,"") ;
												rss_data.dateStr  = rss_data.dateStr.replace( /T/  ," ") ;


												rss_data.datetime = new Date(rss_data.dateStr) ;

												break	;
					}
				}
			}
			rss_data.seqno = this.counter	;
			rss_table.push(rss_data)		; 
		}
		this.xml_current++ ;
		
		if( this.xml_current == this.xml_list.length )
		{
			rss_table.sort(sort_rss_contents) ;

			this.display_rss() ;
			
			return(1)	;
		}
		else
		{
			this.execute() ;
		}
	}


	myself.prototype._application_process = function()	
	{
	}

	myself.prototype.display_rss = function()  
	{
		var i	;
	
		for( i = 0 ; i < rss_table.length && i < this.xml_limit ; i++ )
		{
			rss_data = rss_table[i] ;

			//テーブルタグ定義
			var table_tag = document.createElement("table") ;
			var tr_tag	  = document.createElement("tr")	;
			var td_tag1   = document.createElement("td")	;
			var td_tag2   = document.createElement("td")	;

			var tbody	  = document.createElement('tbody');
			
			document.getElementById("create_table").appendChild( table_tag );

			table_tag.className = "newsUnit";
			table_tag.summary	= "新着情報";

			table_tag.appendChild( tbody );
			tbody.appendChild(tr_tag);

			target_spec = "' target='_top'>" ;
		
			if( is_outframe_extension(rss_data.link) )
			{
				target_spec = "' target='_blank'>" ;
			}

			if( rss_data.displaywindow	)
			{
				switch( rss_data.displaywindow )
				{
					case	'independent'	:	target_spec = "' target='_blank'>" ;	break	;
					case	'create'		:	target_spec = "' target='_blank'>" ;	break	;
					case	'inherit'		:	target_spec = "' target='_top'  >" ;	break	;
				}
			}

			if( is_link_inside( rss_data.link ) )
			{
				rss_data.link = this.base_url + rss_data.link ;
			}

			td_tag1.className = "date";
			td_tag1.innerHTML = "<a href='" + rss_data.link + target_spec + rss_data.datetime.getFullYear() 
							+ "-"  + (rss_data.datetime.getMonth()+1)	
							+ "-"  + rss_data.datetime.getDate() 
							+ "</a>";
			tr_tag.appendChild( td_tag1 );

			td_tag2.className = "newsTxt";
			td_tag2.innerHTML = "<a href='" + rss_data.link + target_spec + rss_data.name + "</a>";
			tr_tag.appendChild( td_tag2 );
		}
	}
	this.__construct() ;
}


function sort_rss_contents(a,b)
{
	var aTime = a.datetime.getTime() ;
	var bTime = b.datetime.getTime() ;

	if( aTime < bTime )
	{
		return(1)  ;
	}

	if( aTime == bTime )
	{
		if( a.seqno < b.seqno )
		{
			return(1)  ;
		}
		else if( a.seqno == b.seqno )
		{
			return(0)  ;
		}
		else if( a.seqno > b.seqno )
		{
			return(-1)	;
		}

		return(0)  ;
	}

	if( aTime > bTime )
	{
		return(-1)	;
	}
}

function rss_contents()
{
	var name	 ;
	var link	 ;
	var dateStr  ;
	var datetime ;
	var displaywindow  ;
	var seqno	 ;
}




