//履歴
var his=new Array();
var newhis="";
function add_history(){
	obj=get_obj("history");
	if(obj != null){
		var element = get_obj('root4');
		var style = (element.currentStyle || document.defaultView.getComputedStyle(element, '')).backgroundColor;

		newhis="<a href='"+location.pathname+"' onclick='return frame_out_right(\""+location.pathname+"\");'>"+obj.innerHTML.replace("color:","background-color:"+style+";color:")+"</a>";
		
		his[0]=ReadCookie("h0");
		his[1]=ReadCookie("h1");
		his[2]=ReadCookie("h2");
		his[3]=ReadCookie("h3");
		his[4]=ReadCookie("h4");
		his[5]=ReadCookie("h5");
		for(i=0;i<his.length;i++){
			if(his[i]==newhis){
				his.splice(i,1);
			}
		}
		for(i=5;i>0;i--){
			his[i]=his[i-1];
		}
		his[0]=newhis;
		for(i=0;i<his.length;i++){
			if(his[i]){
				WriteCookie("h"+String(i),his[i],0);
			}
		}
	}
}
function disp_history(){
	var out="";
	if(his.length>0){
		for(i=1;i<his.length;i++){
			out=out+(his[i]).replace("root4","his"+String(i));
		}
	}
	get_obj("history_list").innerHTML=out;
	for(i=1;i<6;i++){
		if(get_obj('his'+String(i))){
			obj=get_obj('his'+String(i));
			obj.style.left="0px";
			obj.style.top=String(150+i*30)+"px";
		}
	}
}
//クッキー
function ReadCookie(key) {
     var sCookie = document.cookie;    // Cookie文字列
     var aData = sCookie.split(";");       // ";"で区切って"キー=値"の配列にする
     var oExp = new RegExp(" ", "g");   // すべての半角スペースを表す正規表現
     key = key.replace(oExp, "");          // 引数keyから半角スペースを除去

     var i = 0;
     while (aData[i]) {                           /* 語句ごとの処理 : マッチする要素を探す */
          var aWord = aData[i].split("=");                         // さらに"="で区切る
          aWord[0] = aWord[0].replace(oExp, "");              // 半角スペース除去
          if (key == aWord[0]) return unescape(aWord[1]); // マッチしたら値を返す
          if (++i >= aData.length) break;                          // 要素数を超えたら抜ける
     }
     return "";                                   // 見つからない時は空文字を返す
}
function WriteCookie(key, value, days) {
     var str = key + "=" + escape(value) + ";";         // 書き出す値１ : key=value
     if (days != 0) {                                                 /* 日数 0 の時は省略 */
          var dt = new Date();                                   // 現在の日時
          dt.setDate(dt.getDate() + days);                   // days日後の日時
          str += "expires=" + dt.toGMTString() + ";"; // 書き出す値２ : 有効期限
     }
     document.cookie = str;                                   // Cookie に書き出し
}
function DeleteCookie(key) 
{
     var dt = new Date();                                         // 現在の日時
     var str = key + "=;expires=" + dt.toGMTString(); // Cookie 文字列
     document.cookie = str;                                    // Cookie に書き出し
}
//フレームイン
var firip;
function frame_in_right(){
	firip=setInterval(_frame_in_right,50);
}
function _frame_in_right(){
	obj=get_obj("sq_wrapper");
	fobj=get_obj("foot_box");
	tab=parseInt(obj.style.marginLeft);
	if(tab==1){
		tab=0;
		clearInterval(firip);
	}else{
		tab=Math.floor(tab*0.7);
	}
	obj.style.marginLeft=String(tab)+"%";
	fobj.style.bottom=String(Math.floor((120*tab)/100)*-1)+"px";
}
//フレームアウト
var forip;
var jump_url;

function frame_out_right(url){
	jump_url=url;
	forip=setInterval(_frame_out_right,50);
	return false;
}
function _frame_out_right(){
	obj=get_obj("sq_wrapper");
	fobj=get_obj("foot_box");

	tab=parseInt(obj.style.marginLeft);
	if(tab==0){
		tab=1;
	}else{
		tab=Math.floor(tab*2.5);
		if(tab>100){
			tab=100;
			clearInterval(forip);
			location.href=jump_url;
		}
	}
	obj.style.marginLeft=String(tab)+"%";
	if(get_obj("root1") != null){
		robj=get_obj("root4");
		
		for(i=1;i!=5;i++){
			if(his[i].search(jump_url+"'")!=-1){
				break;
			}
		}
		hobj=get_obj("his"+String(i));
		
		fobj.style.bottom=String(Math.floor((120*tab)/100)*-1)+"px";
		robj.style.top=String(90+Math.floor((90*tab)/100))+"px";
		get_obj("root1").style.left=String(Math.floor((-120*tab)/100))+"px";
		get_obj("root2").style.left=String(Math.floor((-120*tab)/100))+"px";
		get_obj("root3").style.left=String(Math.floor((-120*tab)/100))+"px";
		if(hobj !=null){
			hobj.style.left=String(Math.floor((-120*tab)/100))+"px";
		}
		i=1;
		while(get_obj('his'+String(i)) !=null){
			obj=get_obj('his'+String(i));
			obj.style.top=String(Math.floor(150+i*30+(30*tab)/100))+"px";
			i=i+1;
		}
	}
}
var pct_h=0;
var pct_w=0;
var work_teletype_text="";
var work_teletype_ontext="";
function draw_graph(p0,p1,p2,p3){
	document.write("<div style='width:20%;height:16px;float:left;text-align:right;'>"+p0+"</div><div style='width:80%;height:16px;float:left;'>");
	document.write("<div class='base_color4' style='width:"+String(p1)+"%;height:12px;float:left;color:#FFF;'>"+String(p1)+"</div>");
	document.write("<div class='base_color2' style='width:"+String(p2)+"%;height:12px;float:left;color:#FFF;'>"+String(p2)+"</div>");
	document.write("<div class='base_color1' style='width:"+String(p3)+"%;height:12px;float:left;color:#FFF;'>"+String(p3)+"</div>");
	document.write("</div><br />");
}
function root_in_ini(){
	root_iv=setInterval(root_in,20);
}
function b_cursor_ini(){
	flug_bcur=true;
	bcur_iv=setInterval(b_cursor_toggle,600);
}
function b_cursor_toggle(){
	if(flug_bcur){
		t="black";
		flug_bcur=false;
	}else{
		t="white";
		flug_bcur=true;
	}
	get_obj("b_cursor").style.backgroundColor=t;
}
function light_box_on(){
	e=get_obj("light_box");
	t="<div style='position:fixed;top:0px;left:0px;z-index:10;width:100%;height:100%;background-color:#000;filter: alpha(opacity=90);-moz-opacity:0.9;opacity:0.9;' ></div><div style='position:absolute;top:0px;left:0px;z-index:11;width:100%;height:100%;' ><img src='img/";
	if(flug_rev){
		t=t+pct[work_point][work_select_no];
	}else{
		t=t+rvs[work_point][work_select_no];
	}
	e.innerHTML=t+"' /></div><div style='position:fixed;top:0px;left:0px;z-index:12;width:100%;height:100%;' ><div style='position:absolute;right:10px;top:10px;color:#999;font-size:9px;cursor:pointer;' onclick='light_box_off();'>close</div></div>";
	
}
function light_box_movie_on(t){
	var m=t.split(":");
	e=get_obj("light_box");
	p="<div style='position:fixed;top:0px;left:0px;z-index:10;width:100%;height:100%;background-color:#000;filter: alpha(opacity=90);-moz-opacity:0.9;opacity:0.9;' ></div><div style='position:absolute;top:50px;left:0px;z-index:11;width:100%;height:100%;' >";
	p=p+'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+m[2]+'" height="'+m[3]+'" id="FLVPlayer">';
	p=p+'<param name="movie" value="movie/FLVPlayer_Progressive.swf" />';
	p=p+'<param name="quality" value="high" />';
	p=p+'<param name="wmode" value="opaque" />';
	p=p+'<param name="scale" value="noscale" />';
	p=p+'<param name="salign" value="lt" />';
	p=p+'<param name="FlashVars" value="&amp;MM_ComponentVersion=1&amp;skinName=movie/Clear_Skin_3&amp;streamName='+m[1]+'&amp;autoPlay=true&amp;autoRewind=false" />';
	p=p+'<param name="swfversion" value="8,0,0,0" />';
	
	p=p+'<param name="expressinstall" value="js/expressInstall.swf" />';
	
	p=p+'<!--[if !IE]>-->';
	p=p+'<object type="application/x-shockwave-flash" data="movie/FLVPlayer_Progressive.swf" width="'+m[2]+'" height="'+m[3]+'">';
	p=p+'<!--<![endif]-->';
	p=p+'<param name="quality" value="high" />';
	p=p+'<param name="wmode" value="opaque" />';
	p=p+'<param name="scale" value="noscale" />';
	p=p+'<param name="salign" value="lt" />';
	p=p+'<param name="FlashVars" value="&amp;MM_ComponentVersion=1&amp;skinName=movie/Clear_Skin_3&amp;streamName='+m[1]+'&amp;autoPlay=true&amp;autoRewind=false" />';
	p=p+'<param name="swfversion" value="8,0,0,0" />';
	p=p+'<param name="expressinstall" value="js/expressInstall.swf" />';
	p=p+'<div>';
	p=p+'<h4>このページのコンテンツには、Adobe Flash Player の最新バージョンが必要です。</h4>';
	p=p+'<p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Adobe Flash Player を取得" /></a></p>';
	p=p+'</div>';
	p=p+'<!--[if !IE]>-->';
	p=p+'</object>';
	p=p+'<!--<![endif]-->';
	p=p+'</object>';
	e.innerHTML=p+"</div><div style='position:fixed;top:0px;left:0px;z-index:12;width:100%;' ><div style='position:absolute;right:10px;top:10px;color:#999;font-size:9px;cursor:pointer;' onclick='light_box_off();'>close</div>";
	
}
function light_box_off(){
	get_obj("light_box").innerHTML="";
}
function work_ini(){
	work_point=3;
	work_select_no=0;
	work_iv=setInterval(work_sqroll,100);
	work_print();
	setInterval(work_teletype,30);
}
function work_sqroll(){
	var h,e;
	e=get_obj("work_category");
	h=parseInt(e.style.top);
	if(h!=400-work_point*110){
		h=h-Math.floor((h-(400-work_point*110))/2);
	}
	if(Math.abs(Math.abs(h)-Math.abs(400-work_point*110))<2){
		h=400-work_point*110;
	}
	e.style.top=String(h)+"px";
	
	e=get_obj("work_print_box");
	h=parseInt(e.style.left);
	if(work_select_no*-110+100 !=h){
		h=h-Math.floor((h-(work_select_no*-110+110))/2);
		if(Math.abs(Math.abs(h)-Math.abs(work_select_no*-110+110))<2){
			h=work_select_no*-110+110;
		}
		e.style.left=String(h)+"px";
	}
}
function work_left(){
	work_select_no=work_select_no-7;
	if(work_select_no<0){
		work_select_no=0;
	}
	work_rl_disp();
	work_display(work_point,work_select_no);
}
function work_right(){
	work_select_no=work_select_no+7;
	work_rl_disp();
	work_display(work_point,work_select_no);
}
function work_jump(no){
	work_point=no;
	work_print();
}
function work_jump2(){
	if(work_point!=2){
		work_point=work_point+1;
	}
	work_print();
}
function work_select(no){
	work_select_no=no;
	work_display(work_point,work_select_no);
	work_rl_disp();
}
function work_rl_disp(){
	e=get_obj("work_print_box");
	h=110-work_select_no*110;
	if(h<0){
		t="<img src='img/sw_left.png' style='cursor:pointer;width:65px;height:50px;' />";
	}else{
		t="";
	}
	get_obj("work_left_sw").innerHTML=t;
	if(h+parseInt(e.style.width)>940){
		t="<img src='img/sw_right.png' style='cursor:pointer;width:65px;height:50px;' />";
	}else{
		t="";
	}
	get_obj("work_right_sw").innerHTML=t;	
}
function work_print(){
	box="";
	work_select_no=0;
	for(var i=0;(i in pct[work_point]);i++){
		box=box+"<div style='float:left;width:100px;height:30px;margin-right:10px;cursor:pointer;' onclick='work_select("+String(i)+")'><table><tr><td  class='base_color1' style='width:100px;height:30px;line-height:1;text-align:center;vertical-align:middle;-moz-user-select: none;-khtml-user-select: none;-webkit-user-select: none;'>"+ttl[work_point][i]+"</td></tr></table></div>";
	}
	get_obj("work_print_box").innerHTML=box;
	get_obj("work_print_box").style.width=String((i +2)*100)+"px";
	work_no=0;
	work_display(work_point,work_no);
	work_rl_disp();
}
function work_display(ct,no){
	if(pct[ct][no].length>0){
		get_obj("work_pct").innerHTML="<img id='work_img' src='img/loadinfo.net.gif' onload='work_pct_load("+ct+","+no+");' />";
	}else if(mv[ct][no].substr(0,1)=="1"){
	m=mv[ct][no].split(":");

	p='<div id="flashContent" style="background-color:#000000;">';
	p=p+'<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="'+m[2]+'" height="'+m[3]+'" id="'+m[1]+'" align="middle">';
	p=p+'<param name="movie" value="movie/'+m[1]+'.swf" />';
	p=p+'<param name="quality" value="high" />';
	p=p+'<param name="bgcolor" value="#000000" />';
	p=p+'<param name="play" value="true" />';
	p=p+'<param name="loop" value="false" />';
	p=p+'<param name="wmode" value="window" />';
	p=p+'<param name="scale" value="showall" />';
	p=p+'<param name="menu" value="true" />';
	p=p+'<param name="devicefont" value="false" />';
	p=p+'<param name="salign" value="" />';
	p=p+'<param name="allowScriptAccess" value="sameDomain" />';
	p=p+'<!--[if !IE]>-->';
	p=p+'<object type="application/x-shockwave-flash" data="movie/'+m[1]+'.swf" width="'+m[2]+'" height="'+m[3]+'">';
	p=p+'<param name="movie" value="movie/'+m[1]+'.swf" />';
	p=p+'<param name="quality" value="high" />';
	p=p+'<param name="bgcolor" value="#000000" />';
	p=p+'<param name="play" value="true" />';
	p=p+'<param name="loop" value="false" />';
	p=p+'<param name="wmode" value="window" />';
	p=p+'<param name="scale" value="showall" />';
	p=p+'<param name="menu" value="true" />';
	p=p+'<param name="devicefont" value="false" />';
	p=p+'<param name="salign" value="" />';
	p=p+'<param name="allowScriptAccess" value="sameDomain" />';
	p=p+'<!--<![endif]-->';
	p=p+'<a href="http://www.adobe.com/go/getflash"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Adobe Flash Player を取得" /></a>';
	p=p+'<!--[if !IE]>-->';
	p=p+'</object>';
	p=p+'<!--<![endif]--></object></div>';

	get_obj("work_pct").innerHTML=p;
	get_obj("work_data").innerHTML="";work_teletype_ontext="";
	work_teletype_text=data[ct][no];
	get_obj("work_reverse_sw").innerHTML="";
	}else{
		get_obj("work_pct").innerHTML="<span style='color:#fff;'>NOW PRINTING</span>";
		get_obj("work_data").innerHTML="";work_teletype_ontext="";
		work_teletype_text=data[ct][no];
	}
}
function work_teletype(){
	if(work_teletype_ontext.length != work_teletype_text.length){
		work_teletype_ontext=work_teletype_text.substr(0,work_teletype_ontext.length+1);
		if(work_teletype_ontext.substr(work_teletype_ontext.length-1,1)=="<"){
			work_teletype_ontext=work_teletype_text.substr(0,work_teletype_ontext.length+5);
		}
		get_obj("work_data").innerHTML=work_teletype_ontext;
	}
}
function work_pct_load(ct,no){
	t="<img id='work_img' style='display:none;cursor:pointer;' src='img/"+pct[ct][no]+"' onload='work_img_size();' onclick='";
	if(lk[ct][no].length>0){
		t=t+"window.open(\""+lk[ct][no]+"\",\"amadare_works\");";
	}else if(mv[ct][no].length>0){
		t=t+"light_box_movie_on(\""+mv[ct][no]+"\");";
	}else{
		t=t+"light_box_on();";
	}
	t=t+"' />";
	get_obj("work_pct").innerHTML=t;
	if(rvs[ct][no].length>0){
		get_obj("work_reverse_sw").innerHTML="<img src='img/sw_reverse.png' style='width:33px;height:33px;cursor:pointer;'  onclick='work_reverse();' />";
		flug_rev=true;
		get_obj("work_data").innerHTML="";work_teletype_ontext="";
		work_teletype_text=data[ct][no]+"<br />[FRONT SIDE]";
	}else{
		get_obj("work_reverse_sw").innerHTML="";
		get_obj("work_data").innerHTML="";work_teletype_ontext="";
		work_teletype_text=data[ct][no];
		flug_rev=true;
	}
}

function work_reverse(){
	e=get_obj("work_img");
	if(flug_rev){
		e.src="img/"+rvs[work_point][work_select_no];
		get_obj("work_data").innerHTML="";work_teletype_ontext="";
		work_teletype_text=data[work_point][work_select_no]+"<br />[BACK SIDE]";
		flug_rev=false;
	}else{
		e.src="img/"+pct[work_point][work_select_no];
		get_obj("work_data").innerHTML="";work_teletype_ontext="";
		work_teletype_text=data[work_point][work_select_no]+"<br />[FRONT SIDE]";
		flug_rev=true;
	}
}
function work_img_size(){
	var img = new Image();
	img.src =　"img/"+pct[work_point][work_select_no];
	pct_h = img.height;
	pct_w = img.width;
	e=get_obj("work_img");
	if(pct_w>pct_h){
		e.style.width="400px";
	}else{
		e.style.height="400px";
	}
	e.style.display="inline";
}
function root_in(){
	if(parseInt(get_obj("root1").style.left)<0){
		get_obj("root1").style.left=String(Math.floor(Math.abs(parseInt(get_obj("root1").style.left))/2)*-1)+"px";
	}else if(parseInt(get_obj("root2").style.left)<0){
		get_obj("root2").style.left=String(Math.floor(Math.abs(parseInt(get_obj("root2").style.left))/2)*-1)+"px";
	}else if(parseInt(get_obj("root3").style.left)<0){
		get_obj("root3").style.left=String(Math.floor(Math.abs(parseInt(get_obj("root3").style.left))/2)*-1)+"px";
	}else if(parseInt(get_obj("root4").style.left)<0){
		get_obj("root4").style.left=String(Math.floor(Math.abs(parseInt(get_obj("root4").style.left))/2)*-1)+"px";
	}else{
			clearInterval(root_iv);
	}
}
function sqroll(){
	e=get_obj("dev_pcts");
	l = parseInt(e.style.marginLeft);
	l=l-1;
	if(l==-6581){
		l=0;
	}
	e.style.marginLeft=String(l)+"px";
}
function pctchange(){
	e=get_obj("timg");
	e.src="img/t0"+String(Math.floor( Math.random() * 10 ))+".png";
}
function sq_ini(){
	sq_timesq=setInterval(sqroll,100);
}
function get_obj(id){
	if (document.all) {
		return document.all(id);
	} else {
		return document.getElementById(id);
	}
}
function catch_copy_print(){
	var dt = new Date(); 
	y=dt.getYear();
	if (y < 2000) { y += 1900; }

	if(copy_f==true){
		a="0"+String(Math.floor( Math.random() * 35 ));
		document.write("<div class='menu_text' style='margin:0 auto;width:908px;height:40px;text-align:right;background-image:url(img/c"+a.slice(-2)+".png);'>");
	}else{
		document.write('<div class="menu_text" style="margin:0 auto;width:908px;height:40px;text-align:right;">');
		get_obj("foot_box").style.backgroundImage="url(img/foot_box.png)";
	}
	document.write('<div style="float:right;padding-top:17px;padding-right:5px;height:10px;"><span style="line-height:1.1;">Copyright(C)2008-'+String(y)+' Production AMADARE allrights reserved.<br />TEL:096.285.5822 FAX:096.285.5823 <a href="mailto:info@amadare.co.jp">MAIL:info@amadare.co.jp</a></span></div></div>');
}
function jobtime(){
	var now = new Date();
	var week =now.getDay(); // 曜日
	var hour = now.getHours(); // 時
	if(week==0){
		comment="本日はお休みなのでお電話にでられそうもありませんが、";
	}else{
		switch(hour){
			case 0:
			case 1:
			case 2:
			case 3:
			case 4:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
				comment="このお時間は電話に出ることはできませんが、";
				break;
			case 8:
				comment="あと1時間もすれば誰か電話に出ると思いますので、";
				break;
			case 7:
				comment="あと2時間ほどで電話に出られると思いますので、";
				break;
			case 5:
			case 6:
				comment="さすがにこの時間はまだ会社に誰もいませんが、";
				break;
			default:
				comment="";
				break;
		}
	}
	get_obj("job_time").innerHTML=comment;
}
function daytime(){
	var now = new Date();
	var hour = now.getHours(); // 時
	switch(hour){
		case 0:
		case 1:
		case 2:
		case 3:
		case 23:
			comment="深夜ではありますが、少々お時間を頂いてご説明させていただきます。";
			break;
		case 20:
		case 21:
		case 22:
			comment="こんなお時間ですが、少々お時間を頂いてご説明させていただきます。";
			break;
		case 4:
		case 5:
		case 6:
			comment="早朝ではありますが、少々お時間を頂いてご説明させていただきます。";
			break;
		case 7:
			comment="あと2時間ほどで電話に出られると思いますので、このページのご説明で不足の場合にはご遠慮なくお電話下さい。";
			break;
		case 8:
			comment="あと1時間ほどで電話に出られると思いますので、このページのご説明で不足の場合にはご遠慮なくお電話下さい。";
			break;
		case 12:
			comment="お昼休みの時間に大変恐縮ですが、少々お時間を頂いてご説明させていただきます。";
			break;
		default:
			comment="少々お時間を頂いてご説明させていただきますが、このページで不足な点・説明不足な点がございましたら、ただいま営業時間中ですのでご遠慮なくメールやお電話でお問い合せ下さい。";
			break;
	}
	get_obj("day_time").innerHTML=comment;
}
var line_xy=Array();
var line_ip;
var line_obj1;
var line_obj2;
function line(xy1,xy2){
	line_obj1=xy1;
	line_obj2=xy2;
	for(var i=0;i<20;i++){
		document.write("<div id='line"+String(i)+"' style='position:absolute;background-color:#ff0000;width:2px;height:2px;z-index:2001;'></div>");
	}
	line_ip=setInterval(_line,200);
}
function _line(){
	xy1_xy=getAbsolutePosition(line_obj1);
	xy2_xy=getAbsolutePosition(line_obj2);
	xy2_xy.y=xy2_xy.y+getScrollPosition().y;
	for(i=0;i<20;i++){
		obj=get_obj("line"+String(i));
		obj.style.top=String(Math.floor((xy1_xy.y-xy2_xy.y)*i/20+xy2_xy.y))+"px";
		obj.style.left=String(Math.floor((xy1_xy.x-xy2_xy.x)*i/20+xy2_xy.x))+"px";
	}
}
function getScrollPosition() {
	var obj = new Object();
	obj.x = document.documentElement.scrollLeft || document.body.scrollLeft;
	obj.y = document.documentElement.scrollTop || document.body.scrollTop;
	return obj;
}

function getAbsolutePosition(id){
　var element = get_obj(id);
　var xx = 0;
　var yy = 0;
　while(element){
　　xx += element.offsetLeft;
　　yy += element.offsetTop;
　　element = element.offsetParent;
　}
　return ({x : xx, y : yy});
}
/* Smooth scrolling
   Changes links that link to other parts of this page to scroll
   smoothly to those links rather than jump to them directly, which
   can be a little disorienting.
   
   sil, http://www.kryogenix.org/
   
   v1.0 2003-11-11
   v1.1 2005-06-16 wrap it up in an object
*/

var ss = {
  fixAllLinks: function() {
    // Get a list of all links in the page
    var allLinks = document.getElementsByTagName('a');
    // Walk through the list
    for (var i=0;i<allLinks.length;i++) {
      var lnk = allLinks[i];
      if ((lnk.href && lnk.href.indexOf('#') != -1) && 
          ( (lnk.pathname == location.pathname) ||
	    ('/'+lnk.pathname == location.pathname) ) && 
          (lnk.search == location.search)) {
        // If the link is internal to the page (begins in #)
        // then attach the smoothScroll function as an onclick
        // event handler
        ss.addEvent(lnk,'click',ss.smoothScroll);
      }
    }
  },

  smoothScroll: function(e) {
    // This is an event handler; get the clicked on element,
    // in a cross-browser fashion
    if (window.event) {
      target = window.event.srcElement;
    } else if (e) {
      target = e.target;
    } else return;

    // Make sure that the target is an element, not a text node
    // within an element
    if (target.nodeName.toLowerCase() != 'a') {
      target = target.parentNode;
    }
  
    // Paranoia; check this is an A tag
    if (target.nodeName.toLowerCase() != 'a') return;
  
    // Find the <a name> tag corresponding to this href
    // First strip off the hash (first character)
    anchor = target.hash.substr(1);
    // Now loop all A tags until we find one with that name
    var allLinks = document.getElementsByTagName('a');
    var destinationLink = null;
    for (var i=0;i<allLinks.length;i++) {
      var lnk = allLinks[i];
      if (lnk.name && (lnk.name == anchor)) {
        destinationLink = lnk;
        break;
      }
    }
    if (!destinationLink) destinationLink = document.getElementById(anchor);

    // If we didn't find a destination, give up and let the browser do
    // its thing
    if (!destinationLink) return true;
  
    // Find the destination's position
    var destx = destinationLink.offsetLeft; 
    var desty = destinationLink.offsetTop;
    var thisNode = destinationLink;
    while (thisNode.offsetParent && 
          (thisNode.offsetParent != document.body)) {
      thisNode = thisNode.offsetParent;
      destx += thisNode.offsetLeft;
      desty += thisNode.offsetTop;
    }
  
    // Stop any current scrolling
    clearInterval(ss.INTERVAL);
  
    cypos = ss.getCurrentYPos();
  
    ss_stepsize = parseInt((desty-cypos)/ss.STEPS);
    ss.INTERVAL =
setInterval('ss.scrollWindow('+ss_stepsize+','+desty+',"'+anchor+'")',10);
  
    // And stop the actual click happening
    if (window.event) {
      window.event.cancelBubble = true;
      window.event.returnValue = false;
    }
    if (e && e.preventDefault && e.stopPropagation) {
      e.preventDefault();
      e.stopPropagation();
    }
  },

  scrollWindow: function(scramount,dest,anchor) {
    wascypos = ss.getCurrentYPos();
    isAbove = (wascypos < dest);
    window.scrollTo(0,wascypos + scramount);
    iscypos = ss.getCurrentYPos();
    isAboveNow = (iscypos < dest);
    if ((isAbove != isAboveNow) || (wascypos == iscypos)) {
      // if we've just scrolled past the destination, or
      // we haven't moved from the last scroll (i.e., we're at the
      // bottom of the page) then scroll exactly to the link
      window.scrollTo(0,dest);
      // cancel the repeating timer
      clearInterval(ss.INTERVAL);
      // and jump to the link directly so the URL's right
      location.hash = anchor;
    }
  },

  getCurrentYPos: function() {
    if (document.body && document.body.scrollTop)
      return document.body.scrollTop;
    if (document.documentElement && document.documentElement.scrollTop)
      return document.documentElement.scrollTop;
    if (window.pageYOffset)
      return window.pageYOffset;
    return 0;
  },

  addEvent: function(elm, evType, fn, useCapture) {
    // addEvent and removeEvent
    // cross-browser event handling for IE5+,  NS6 and Mozilla
    // By Scott Andrew
    if (elm.addEventListener){
      elm.addEventListener(evType, fn, useCapture);
      return true;
    } else if (elm.attachEvent){
      var r = elm.attachEvent("on"+evType, fn);
      return r;
    } else {
      alert("Handler could not be removed");
    }
  } 
}

ss.STEPS = 25;

ss.addEvent(window,"load",ss.fixAllLinks);

