/*-----------------------------------------------------------------------------------------------------------
  redirect for N4, IE4, non W3C standard
------------------------------------------------------------------------------------------------------------*/
if(!document.getElementById)
{
  document.location.replace("nonspec.html");
}

/*-----------------------------------------------------------------------------------------------------------
  variables
------------------------------------------------------------------------------------------------------------*/
var totalDs=1092; //number of snigs in daily snigs collection
var currentWeek="111306_111906";
var firstWeek="ds_112403_113003.html";
var currentEdition="110104_110704";//Snigs Weekly edition
var issueMax=10;//number of SW editions
var total=1640; //number of snigs in snigs collection
var pretotal=total-19;

/*-----------------------------------------------------------------------------------------------------------
  nav mouse events
------------------------------------------------------------------------------------------------------------*/
function ovr(oTarget)
{
  oTarget.style.backgroundColor='#cc0000';
  oTarget.style.borderRight='1px solid #ff9933';
  oTarget.style.borderLeft='1px solid #ff9933';
  oTarget.style.cursor='hand';
}

function out(oTarget)
{
  oTarget.style.backgroundColor='#990000';
  oTarget.style.borderRight='1px solid #990000';
  oTarget.style.borderLeft='1px solid #990000'
}

function tovr(oTarget) //thumbs
{
  oTarget.style.backgroundColor='#ff9933';
  oTarget.style.cursor='hand';
  oTarget.style.color='#ffffff'
}

function tout(oTarget) //thumbs
{
  oTarget.style.backgroundColor='#ffffff';
  oTarget.style.color='#663333'
}

function swOver(oTarget) //weekly nav
{
  oTarget.style.backgroundColor='#000000';
  oTarget.style.cursor='hand';
  oTarget.style.color='#ffffff'
}

function swOut(oTarget) //weekly nav
{
  oTarget.style.backgroundColor='#ffffff';
  oTarget.style.color='#cc3300'
}

/*-----------------------------------------------------------------------------------------------------------
  preload images
------------------------------------------------------------------------------------------------------------*/
// Copyright (C) 1999 Dan Steinman
// Distributed under the terms of the GNU Library General Public License
// Available at http://www.dansteinman.com/dynduo/

function preload(imgObj,imgSrc) {
	if (document.images) {
		eval(imgObj+' = new Image()')
		eval(imgObj+'.src = "'+imgSrc+'"')
	}
}

/*-----------------------------------------------------------------------------------------------------------
  validation functions
------------------------------------------------------------------------------------------------------------*/
function getkey(e)
{
  if (e)
    return e.keyCode;
  else
    return null;
}

function goodcharacter(keychar, goods)
{
  keychar = keychar.toLowerCase();
  var goods = goods.toLowerCase();
  
  // check goodkeys
  if (goods.indexOf(keychar) != -1)
  {
    return true;
  }
  // else return false
  return false;
}

function goodchars(e, goods)
{
  var key, keychar;
  key = getkey(e);
  if (key == null)
  {
   return true;
  }
  
  // control keys
  if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
  {
   return true;
  }
  
  // get character
  keychar = String.fromCharCode(key);
  return goodcharacter(keychar, goods);
}

function isIntegers()
{
  var form=document.getElementById("num");
  var num=form.value;
	return inValidCharSet(num,"0123456789");
}

function inValidCharSet(str,charset)
{
	var result = true;
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}
	return result;
}

/*-----------------------------------------------------------------------------------------------------------
  utility functions
------------------------------------------------------------------------------------------------------------*/
function getObject(name){
	if(document.getElementById) return document.getElementById(name);
	else if(document.all) return document.all[name];
	else if(document.layers) return alert("Your browser uses the document.layers DOM\nwhich is not supported by this feature.");}

function mailer(oName,oDomain)
{
	email="mailto:"+oName+"@"+oDomain;
	window.location=email;
}
  
function foc()
{
  form=document.getElementById("num");
  form.focus();
}
  
function swapImg(oDir,oNum)
{
  var img = new getObject("i");
  if(oNum)
  {
    img.src="img/ss/ssl/"+oNum+".gif";
    hT(oNum);
    swapInfo(oNum);
    return;
  }
  var src=img.src;
  var prenum=src.split("img/ss/ssl/");
  var prestr=prenum[1];
  var qnum=prestr.split(".");
  var num=qnum[0];
  if(oDir)
  {
    var newnum=parseInt(num) + 1;
    if(newnum==(colMax + 1))
    {
      swapCol('n',newnum);
      return;
    }
  }
  else
  {
    var newnum=parseInt(num) - 1;
    if(newnum==(colMax - 20))
    {
      swapCol('',newnum);
      return;
    }
  }
  img.src="img/ss/ssl/"+newnum+".gif";
  hT(newnum);
  swapInfo(newnum);
}

function swapCol(oDir,oNum)
{ 
  var loc=document.location.href;
  var section=loc.split("snigscol");
  var urlstart=section[0];
  var col=section[1];
  if(oDir)
  {
    if(oNum && oNum==total + 1)
    {
      oNum=1;
    }
    else
    {
      prenum=col.split("_");
      oNum=parseInt(prenum[0]) + 20;
      if(oNum==total+1)
      {
        oNum=1;
      }
    }
    var num2=oNum + 19;
    var newLoc=urlstart+"snigscol"+oNum+ "_"+num2+".html";
  }
  else
  {
    if(oNum && oNum==colMax - 20 || oNum==0)
    {
      var num1=oNum - 19;
      if(num1==-19)
      {
        oNum=total;
        num1=total-19;
      }
      newLoc=urlstart+"snigscol"+num1+"_"+oNum+".html"+"?i="+oNum;
      document.location.replace(newLoc);
      return;
    }
    else
    {
      prenum=col.split("_");
      oNum=parseInt(prenum[0]) - 20;
      if(oNum==-19)
      {
        oNum=total-19;
      }
    }
    var num2=oNum + 19;
    var newLoc=urlstart+"snigscol"+oNum+"_"+num2+".html";
     
  }
  document.location.replace(newLoc);
}

function hT(oTarget)
{
  var z = new getObject(sT);
  z.style.borderColor="#ffffff";
  var v="t"+oTarget;
  var u = new getObject(v);
  u.style.borderColor="#cc3300";
  sT=v;
}

function swapInfo(oTarget)
{
  var z = new getObject(sH);
  z.style.display="none";
  var v="h"+oTarget;
  var u = new getObject(v);
  u.style.display="inline";
  sH=v;
  var t = new getObject(sI);
  t.style.display="none";
  s="i"+oTarget;
  var r = new getObject(s);
  r.style.display="inline";
  sI=s;
}

function swapDsImg(oNum,oDir)
{
  var img = new getObject("i");
  if(oNum)
  {
    img.src="img/ds/"+oNum+".gif";
    hT(oNum);
    swapDsInfo(oNum);
    return;
  }
  var src=img.src;
  var prenum=src.split("img/ds/");
  var prestr=prenum[1];
  var qnum=prestr.split(".");
  var num=qnum[0];
  if(oDir)//forward
  {
    if(parseInt(num)==totalDs)
    {
      document.location.replace(firstWeek);
      return;
    }
    var newnum=parseInt(num) + 1;
    if(newnum==(colMaxDs + 1))
    {
      var oLoc="ds_"+nW+".html";
      document.location.replace(oLoc);
      return;
    }
  }
  else//backward
  {
    var newnum=parseInt(num) - 1;
    if(newnum==(colMaxDs - 7))
    {
      if(newnum==0)
      {
        newnum=totalDs;
      }
      var oLoc="ds_"+pW+".html?i="+newnum;
      document.location.replace(oLoc);
      return;
    }
  }
  img.src="img/ds/"+newnum+".gif";
  hT(newnum);
  swapDsInfo(newnum);
}

function swapDsInfo(oTarget)
{
  var t = new getObject(sI);
  t.style.display="none";
  s="i"+oTarget;
  var r = new getObject(s);
  r.style.display="inline";
  sI=s;
  var d = r.className;
  formatDsDate(d);
}

function formatDsDate(oDate)
{
  oNums=oDate.split("_");
  oMonth=oNums[0];
  oDay=oNums[1];
  oYear=oNums[2];
  if(oMonth=="1"){oMonth="Jan.";}
  else if(oMonth=="2"){oMonth="Feb.";}
  else if(oMonth=="3"){oMonth="Mar.";}
  else if(oMonth=="4"){oMonth="Apr.";}
  else if(oMonth=="5"){oMonth="May";}
  else if(oMonth=="6"){oMonth="Jun.";}
  else if(oMonth=="7"){oMonth="Jul.";}
  else if(oMonth=="8"){oMonth="Aug.";}
  else if(oMonth=="9"){oMonth="Sep.";}
  else if(oMonth=="10"){oMonth="Oct.";}
  else if(oMonth=="11"){oMonth="Nov.";}
  else if(oMonth=="12"){oMonth="Dec.";}
  theDate=oMonth+"&nbsp;"+oDay+",&nbsp;"+"20"+oYear;
  var date = document.getElementById("d");
  date.innerHTML=theDate;
}

function findSnigDs(oTarget)
{
  if(oTarget)
  {
    var prenum=oTarget.split("=");
    var num=prenum[1];
    swapDsImg(num)
    return;
  }
}

function swapImgColor(oTarget)
{
  var img = new getObject("i");
  var src=img.src;
  var prenum=src.split("img/ss/ssl/");
  var prestr=prenum[1];
  var qnum=prestr.split(".");
  var num=qnum[0];
  if(prestr.indexOf("color")==-1)
  {
    img.src="img/ss/ssl/"+num+"color.jpg";
    var t = new getObject(oTarget);
    t.innerHTML="b&amp;w&nbsp;version";
  }
  else
  {
    qnum=num.split("color");
    newnum=qnum[0];
    img.src="img/ss/ssl/"+newnum+".gif";
    var t = new getObject(oTarget);
    t.innerHTML="color&nbsp;version";
  }
}

function swapSnigImg(oImg,oSwap1,oSwap2,oText1,oText2,oWidth1,oHeight1,oWidth2,oHeight2)
{
  var img = new getObject(oImg);
  var path=img.src;
  if(oText1.indexOf(" ")!=-1)
  {
    var words = oText1.split(" ");
    var word = words[0];
    var linker = "clicker_"+word;
  }
  else
  {
    var linker = "clicker_"+oText1;
  }
  if(path.indexOf(oSwap1)!=-1)
  {
    var clicker = new getObject(linker);
    clicker.innerHTML=oText2;
    img.src = oSwap2;
    if(oHeight2)
    {
      img.height=oHeight2;
      img.width=oWidth2;
    }
  }
  else
  {
    var clicker = new getObject(linker);
    clicker.innerHTML=oText1;
    img.src = oSwap1;
    if(oHeight1)
    {
      img.height=oHeight1;
      img.width=oWidth1;
    }
  }
}

function findSnig(oTarget)
{
  if(isIntegers())
  {
    if(oTarget)
    {
      var prenum=oTarget.split("=");
      var num=prenum[1];
      swapImg('',num)
      return;
    }
    var form=document.getElementById("num");
    var num=form.value;
    if(num.charAt(0)==0 || num>total)
    {
      if(num==""){form.focus();return;}
      alert('Please enter a number between 1 and '+total+'.');
      form.focus();
      form.select();
      return;
    }
    var oLength=num.length;
    var num1=num-(num%20)+1;
    var num2=num-(num%20)+20;
    var isDiv=((num%20)==0)?true:false;
    if(isDiv)
    {
      num1=num-19;
      num2=num;
    }
    newLoc="snigscol"+num1+"_"+num2+".html?s="+num;
    document.location.replace(newLoc);
  }
  else
  {
    alert('Please enter only whole numbers between 1 and '+total+'.');
    form.focus();
    form.select();
    return;
  }
}

function hiliteSnigsCol(oTarget)
{
  var vhref=oTarget;
  var seg=vhref.split("snigscol");
  var preloc=seg[1];
  var loc=preloc.split(".");
  var num=loc[0];
  var x=document.getElementById("navList");
  var links=x.getElementsByTagName("A");
  for (at=0;at<links.length;at++)
  {
    if(links[at].href.indexOf(num)!=-1)
    {
      links[at].style.fontWeight="bold";
      links[at].style.textDecoration="underline";
    }
  }
}

function displayIssue(oIssue)
{
  var x=document.forms['weeklyForm'].issues;
  x.options[oIssue].selected=true;
}

function randomImg(oTarget)
{
  var oTarget = document.getElementById(oTarget);
  ran_num=Math.round(Math.random()*4);
  switch (ran_num) 
  {
  case 0:
    oTarget.src = 'img/sw/thumb_quimbus.jpg';
    break;
  case 1:
    oTarget.src = 'img/sw/thumb_marketday.jpg';
    break;
  case 2:
    oTarget.src = 'img/sw/thumb_sculptor.jpg';
    break;
  case 3:
    oTarget.src = 'img/sw/thumb_glowworms.jpg';
    break;
  case 4:
    oTarget.src = 'img/sw/thumb_grass.jpg';
    break;
  }
}

function goIssue(oTarget)
{
  if(oTarget)
  {
    var x=(document.weeklyForm.issues.selectedIndex);
    if(oTarget=="next")
    {
      var y=x+1;
      if(y>issueMax)//loop through
      {
        window.location="sw_080204_080804.html";
      }
      else
      {
        window.location=document.weeklyForm.issues.options[y].value;
      }
    }
    else
    {
      var y=x-1;
      if(y<0)//go to end
      {
        window.location="snigsweekly.html";
      }
      else
      {
      window.location=document.weeklyForm.issues.options[y].value;
      }
    }
  }
  else
  {
    window.location=document.weeklyForm.issues.options[document.weeklyForm.issues.selectedIndex].value;
  }
}

function mailSnig()
{
  var loc=document.location.href;
  var sections=loc.split("ds_");
  var end=sections[1];
  var week=end.split(".");
  var snigWeek=week[0];
  var img=new getObject("i");
  var src=img.src;
  var parts=src.split("img/ds/");
  var ender=parts[1];
  var number=ender.split(".");
  var snigNum=number[0];
  var urlEnd=snigWeek+".html%3fi="+snigNum;
	var email="mailto:%20?Subject=Snig&body=%0A%20%20%20http://www.snigs.com/ds_"+urlEnd;
	window.location=email;
}
