
// ss:style se:edition sl:languace sc:condition sr:rarity so:colour

function USC_debug(x)
{ //alert(x);
}

function USC_getVarList()
{
  return "ss|se|sl|sc|sr|so".split('|');
}

// [expires] - expiration date (defaults to end of current session)
// [path] - path for which the cooki (defaults to path of calling document)
// [domain] - domain for which the cookie is valid (domain of calling document)
// [secure] - Boolean if the cookie transmission requires a secure transmission
function USC_setCookie(name, value, expires, path, domain, secure) {
  var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  USC_debug("COOKIE Set:["+curCookie+"]");
  document.cookie = curCookie;
}

function USC_setSimpleCookie(name, value)
{
  USC_debug("Cookie Set:"+name+"=["+value+"]");
  USC_setCookie(name, value,"","","","");
}

// name - name of the desired cookie
// * return string containing value of specified cookie or null if cookie does not exist
function USC_getCookie(name)
{
  var dc = document.cookie;
  USC_debug("COOKIE Return:["+dc+"]");
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1)
  {
    begin = dc.indexOf(prefix);
    if (begin != 0)
    { USC_debug("Cookie Get:"+name+"=null");
      return null;
    }
  }
  else
  { begin += 2;
  }
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  var ToReturn=unescape(dc.substring(begin + prefix.length, end));
  USC_debug("Cookie Get:"+name+"="+ToReturn);
  return ToReturn;
}

// name - name of the cookie
// [path] - path of the cookie (must be same as path used to create cookie)
// [domain] - domain of the cookie (must be same as domain used to create
// * path and domain default if assigned null or omitted if no explicit a
function USC_deleteCookie(name, path, domain) {
  if (USC_getCookie(name)) {
    document.cookie = name + "=" + 
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

function USC_Url_Prefix()
{ var Url=window.location.href.toLowerCase();
  if(Url.indexOf("://www.")!=-1)
  { Url="://"+Url.substring(Url.indexOf("://www.")+7);
  }
  var Start=Url.indexOf("://");
  var End;
  var Out;
  if(Start!=-1)
  { End=Url.indexOf("/",Start+3);
    Out=unescape(Url.substring(Start+3,End));
    for(var a=0;a<10;a++)
    {  Out=Out.replace(".","_").replace("-","_").replace(":","_");
    }
    return ""+Out+"_";
  }
  return "UnkownTemplate_";
}

function USC_getVarOnUrl(varname)
{
  var Url=window.location.href;
  if(Url.indexOf("?")!=-1)
  {
    var Vars=Url.substring(Url.indexOf("?")+1);
    var VarStart=Vars.indexOf(varname+"=");
    if(VarStart!=-1)
    {
      VarStart=VarStart+varname.length+1;
      var VarEnd=Vars.indexOf("&",VarStart);
      if(VarEnd==-1)
        VarEnd=Vars.length;
      return Vars.substring(VarStart,VarEnd);
    }
    return "";
  }
  return "";
}

function USC_getVarFromCookie(varname)
{
  var selectedValue=USC_getCookie("US_"+varname);
  if(selectedValue!=null && selectedValue.length>0)
    return selectedValue;
  return "";
}
function USC_getVar(varname)
{
  var selectedValue=USC_getVarOnUrl(varname);
  USC_debug("Get Var:"+varname+"=["+selectedValue+"]");
  if(selectedValue!=null && selectedValue.length>0)
  { 
    var selectedValue2=USC_getVarFromCookie(varname);
    if(selectedValue2==null)
    { selectedValue2="";
    }
    if(selectedValue != selectedValue2)
    { 
      if(selectedValue2.length>0)
      { USC_setSimpleCookie("US_"+varname,selectedValue);
      }
    }
    return selectedValue;
  }
  return USC_getVarFromCookie(varname);
}

function USC_rebuildPageFromVars()
{
  var Query="?"+
            "ss="+USC_getVar("ss")+"&"+ // style
            "se="+USC_getVar("se")+"&"+ // edition
            "sl="+USC_getVar("sl")+"&"+ // language
            "sc="+USC_getVar("sc")+"&"+ // condition

            "sr="+USC_getVar("sr")+"&"+ // Rarity
            "so="+USC_getVar("so"); // so -s colour
  location.href=Query;
}
function USC_rebuildPageFromCookies()
{
  var Query="?"+
            "ss="+USC_getVarFromCookie("ss")
                  .replace(' ','_').replace(' ','_')+"&"+ // style
            "se="+USC_getVarFromCookie("se")
                  .replace(' ','_').replace(' ','_')+"&"+ // edition
            "sl="+USC_getVarFromCookie("sl")
                  .replace(' ','_').replace(' ','_')+"&"+ // language
            "sc="+USC_getVarFromCookie("sc")
                  .replace(' ','_').replace(' ','_')+"&"+ // condition
            "sr="+USC_getVarFromCookie("sr")
                  .replace(' ','_').replace(' ','_')+"&"+ // Rarity
            "so="+USC_getVarFromCookie("so")
                  .replace(' ','_').replace(' ','_'); // so -s colour
  location.href=Query;
}
function USC_selectBoxChange(varname)
{
  var select=document.getElementById("USC_SL_"+varname);
  USC_debug("selectBoxChange: obj ("+select+") index:"+select.selectedIndex);
//  var selectedValue=select.options[select.selectedIndex].value;
  var selectedValue=select.value;
  USC_debug("selectBoxChange:"+varname+"=["+selectedValue+"] (RET)");
  if(select.selectedIndex==0)
    selectedValue="";
  if(selectedValue.indexOf("-")!=-1)
    selectedValue="";
  USC_debug("selectBoxChange:"+varname+"=["+selectedValue+"] (PRC)");
  if(selectedValue.length>0)
  { 
    USC_setSimpleCookie("US_"+varname,selectedValue);
    USC_rebuildPageFromCookies();
  }
  else
  { 
    //USC_deleteCookie("US_"+varname,"","");
    USC_setSimpleCookie("US_"+varname,"");
    USC_rebuildPageFromCookies();
  }
}
function USC_selectBoxSetup(varname)
{
  var selectedValue=USC_getVar(varname);
  if(selectedValue!=null && selectedValue.length>0)
    document.getElementById("USC_SL_"+varname).value
             =selectedValue.replace('_',' ');
}
function USC_selectBox(varname,options)
{
var items=options.split('|');
var occ='USC_selectBoxChange("'+varname+'")';
document.writeln("<form style='margin-bottom:0;'>");
document.writeln("<select ID=USC_SL_"+varname+" onchange='"+occ+"'>");
var selectedValue=USC_getVar(varname);
if(selectedValue==null)
{ selectedValue="";
}
selectedValue=selectedValue.replace('_',' ').replace('_',' ');
for(a=0;a<items.length;a++)
{
  if(items[a]==selectedValue)
  {
    document.writeln("<option value='"+items[a]+"' selected>"+items[a]);
  }
  else
  {
    document.writeln("<option value='"+items[a]+"'>"+items[a]);
  }
}
document.writeln("</select></form>");
}

function USC_ifDoingRowRestriction(doing,notdoing)
{ if(USC_doingRowRestriction())
    return doing;
  return notdoing;
}
function USC_doingRowRestriction()
{
  var doSelect=false;
  var USC_VarList=USC_getVarList();
  for(var a=0;a<USC_VarList.length;a++)
  { VarValues[USC_VarList[a]]=USC_getVar(USC_VarList[a]);
    if(VarValues[USC_VarList[a]].length>0)
    { doSelect=true;
    }
  }
  return doSelect;
}

function USC_tableRowSelector()
{
  USC_VarList=USC_getVarList();
  var rows=document.getElementsByTagName("TR");
  var VarValues=new Array();
  var doSelect=false;
  var USC_VarList=USC_getVarList();
  for(var a=0;a<USC_VarList.length;a++)
  { VarValues[USC_VarList[a]]=USC_getVar(USC_VarList[a]);
    if(VarValues[USC_VarList[a]].length>0)
    { doSelect=true;
    }
  }
  if(doSelect==false)
  {
    USC_makeWorkTablesInvisible();
    USC_makeRestrictedTablesVisible();
    return;
  }
  var VisRowCount=0;
  for(var a=0;a<rows.length;a++)
  { 
    if(rows[a].id.indexOf("USC_R_")!=0)
        continue;
    var IncludeThisRow=true;
    for(var b=0;b<USC_VarList.length;b++)
    {
      var VarValue=VarValues[USC_VarList[b]];
      if(VarValue.length==0)
        continue;
      if(VarValue.indexOf("Not ")==0)
      {
        VarValue=VarValue.replace(' ','_').replace(' ','_').substring(4);
        if(rows[a].id.indexOf("-"+VarValue+"-")!=-1)
          IncludeThisRow=false;
      }
      else
      {
        VarValue=VarValue.replace(' ','_').replace(' ','_');
        if(rows[a].id.indexOf("-"+VarValue+"-")==-1)
          IncludeThisRow=false;
      }
    }
    if(IncludeThisRow)
    {
      rows[a].className=VisRowCount%2==0?"tre":"tro";
      VisRowCount++;
    }
    else
    {
      rows[a].className="tri";
    }
  }
  USC_makeWorkTablesInvisible();
  USC_makeRestrictedTablesVisible();
  if(VisRowCount==0)
  {
    document.writeln("No items matched your query.");
  }
}

function USC_makeRestrictedTablesVisible()
{
  var Array=document.getElementsByTagName("TABLE");
  if(Array==null)
    return;
  for(var a=0;a<Array.length;a++)
  {
    if(Array[a].className==null)
      continue;
    if(Array[a].className=="rtti")
    {  Array[a].className="rtt";
    }
  }
}
function USC_makeWorkTablesInvisible()
{
  var Array=document.getElementsByTagName("TABLE");
  if(Array==null)
    return;
  for(var a=0;a<Array.length;a++)
  {
    if(Array[a].className==null)
      continue;
    if(Array[a].className=="wtt")
    {  Array[a].className="wtti";
    }
  }
}

