// snowscript package 1


// empty onload handler
function prepare() {
    return 0;
}

// getElementById shortcut
function gE(id) {
    return document.getElementById(id);
}


// count object properties
function numProps(obj) {
    var c=0;
    for (i in obj) c++;
    return c;
}

// a better getElementsByClass function by Daniel Glazman
// http://daniel.glazman.free.fr/weblog/newarchive/2003_06_01_glazblogarc.html#s95320189
function getElementsByClass(scope,needle) {
  var my_array = scope.getElementsByTagName("*");
  var retvalue = new Array();
  var i,j;
  for (i = 0, j = 0; i < my_array.length; i++)
  {
    var c = " " + my_array[i].className + " ";
    if (c.indexOf(" " + needle + " ") != -1)
      retvalue[j++] = my_array[i];
  }
  return retvalue;
}


// random number in range
function rnd(mn,mx)
{
var rg=mx-mn;
var n = Math.floor(Math.random()*rg)+mn;
return n;
}

// choose one thing from a list
function choose(things) {
    var l=things.length;
    var n=Math.floor(Math.random()*l);
    return things[n];
}

// rotate random (faint) background colors
function rotateBG(objId) {
    if (document.getElementById(objId)) {
        var obj=document.getElementById(objId);
        var col="#";
    
        for (i=0;i<3;i++) {
            col+=choose(["fa","fb","fc","fd","fe"]);
        }
        obj.style.backgroundColor=col;
    }
}

// start color rotation
//setTimeout("if (document.body.className.indexOf(\"texticity\")!=-1) {setInterval(\"rotateBG('mainContent')\",5000); }",5000);


// parse params from query string
function getArgs() {
    var args = new Object();
    var query = location.search.substring(1);  // Get query string.
    var pairs = query.split(",");              // Break at comma.
    for(var i = 0; i < pairs.length; i++) {
	var pos = pairs[i].indexOf('=');           // Look for "name=value".
	if (pos == -1) continue;                   // If not found, skip.
	var argname = pairs[i].substring(0,pos);   // Extract the name.
	var value = pairs[i].substring(pos+1);     // Extract the value.
	args[argname] = unescape(value);           // Store as a property.
    }
    return args;                               // Return the object.
}


// open a small window, center it
function openBox(url,title,width,height)
{
var screenX=Math.floor((screen.width)/2)-Math.floor(width/2);
var screenY=Math.floor((screen.height)/2)-Math.floor(height/2)-20;
var top=screenY;
var left=screenX;
var features="'"+'toolbar=no,scrollbars=auto,status=no,top='+ top+',left='+ left+',screenX='+ screenX+',screenY='+ screenY+',width='+ width+',height='+ height+"'";
eval("window.open(url,title,features);");
}


// generate randomized variation on site name
function genTitle() { 
    var n1="snow swatch smack spat spot splotch snatch snort snake snooze snit floe stick slice slit snot sled snag snail swarm sleet shoe snap seven storm snob snore slew snip snare sneeze snack sneer glow sloe"; 
    var n2="better butter batter beauty bitter buffer binder budgie bummer bungle beaker beaver badger pucker bubble buttle bundle buzzer puffer bunter blitter buckle bugger bumble blunder bunker blender"; 
    var n3="flips flies flukes fleas flumes froths fries fruits frights frets friars friends fizz frogs flutes floats flops flues fluff flights flows fumes freeze finds files slides flints flares floors fleece frowns frocks flirts thighs spies size cries fries fronds";
    var nouns1=n1.split(' '); var nouns2=n2.split(' '); var nouns3=n3.split(' '); 
    n1=nouns1.length; n2=nouns2.length; n3=nouns3.length; 
    var x1=rnd(0,n1);
    var x2=rnd(0,n2);
    var x3=rnd(0,n3);
    var tt="a "+nouns1[x1]+" of "+nouns2[x2]+nouns3[x3]; 
    return tt; 
} 


// soundbites: open a sound file in an iframe, id="player"

function play(url) {
    document.getElementById('player').contentWindow.location.replace(url);
}
