function sethomepage(url) {
    if (window.sidebar) // firefox
    {
        var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
        prefs.setCharPref('browser.startup.homepage', url);
    }
    else if (document.all)// ie
    {
        document.body.style.behavior = 'url(#default#homepage)';
        document.body.setHomePage(url);
    }
}

/***********************************************
* Bookmark site script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

/* Modified to support Opera */
function bookmarksite(title, url) {
    if (window.sidebar) // firefox
        window.sidebar.addPanel(title, url, "");
    else if (window.opera && window.print) { // opera
        var elem = document.createElement('a');
        elem.setAttribute('href', url);
        elem.setAttribute('title', title);
        elem.setAttribute('rel', 'sidebar');
        elem.click();
    }
    else if (document.all)// ie
        window.external.AddFavorite(url, title);
}

function start()
{
if(window.screen.width < 900)
    document.body.style.marginLeft="0px";
}

function popup(name,url,width,height)
{
    var top = (window.screen.height/2)-(height/2)-20;
    var left = (window.screen.width/2)-(width/2);
    var win=window.open(url,name,'width='+width+',height='+height+',left='+left+',top='+top+',toolbar=0,status=0,menubar=0,scrollbars=0,location=0,resizable=0');
    win.focus();
}

function show_hide(txt_id)
{
    if (document.getElementById(txt_id).style.display=='none')
    	document.getElementById(txt_id).style.display='block';
    else
	    document.getElementById(txt_id).style.display='none';
}

function saveImageAs(imgOrURL)
{
    if (typeof imgOrURL == 'object')
    {
    imgOrURL = imgOrURL.src;
    }
    
    //window.open("pic_save.aspx?src="+imgOrURL);
    //document.execCommand('SaveAs','1',imgOrURL);
    
    str="height=1,width=1,scrollbars=0,toolbar=0,menubar=0,scrollbars=0,top=10,left=5000";
    window.win=open(imgOrURL,"save",str);
    setTimeout('win.document.execCommand("SaveAs",true);', 400);
    setTimeout('window.win.close();',800);
}

// ===================================================================
// Author: Matt Kruse <matt@mattkruse.com>
// WWW: http://www.mattkruse.com/
//
// NOTICE: You may use this code for any purpose, commercial or
// private, without any further permission from the author. You may
// remove this notice from your final code if you wish, however it is
// appreciated by the author if at least my web site address is kept.
//
// You may *NOT* re-distribute this code in any way except through its
// use. That means, you can include it in your product, or your web
// site, or any other form where the code is actually being used. You
// may not put the plain javascript up on your site for download or
// include it in your javascript libraries for download. 
// If you wish to share this code with others, please just point them
// to the URL instead.
// Please DO NOT link directly to my .js files from your site. Copy
// the files to your server and use them there. Thank you.
// ===================================================================

// -------------------------------------------------------------------
// autoComplete (text_input, select_input, ["text"|"value"], [true|false])
//   Use this function when you have a SELECT box of values and a text
//   input box with a fill-in value. Often, onChange of the SELECT box
//   will fill in the selected value into the text input (working like
//   a Windows combo box). Using this function, typing into the text
//   box will auto-select the best match in the SELECT box and do
//   auto-complete in supported browsers.
//   Arguments:
//      field = text input field object
//      select = select list object containing valid values
//      property = either "text" or "value". This chooses which of the
//                 SELECT properties gets filled into the text box -
//                 the 'value' or 'text' of the selected option
//      forcematch = true or false. Set to 'true' to not allow any text
//                 in the text box that does not match an option. Only
//                 supported in IE (possible future Netscape).
// -------------------------------------------------------------------
function autoComplete (field, select, property, forcematch) {
	var found = false;
	for (var i = 0; i < select.options.length; i++) {
	if (select.options[i][property].toUpperCase().indexOf(field.value.toUpperCase()) == 0) {
		found=true; break;
		}
	}
	if (found) { select.selectedIndex = i; }
	else { select.selectedIndex = -1; }
	if (field.createTextRange) {
		if (forcematch && !found) {
			field.value=field.value.substring(0,field.value.length-1); 
			return;
			}
		var cursorKeys ="8;46;37;38;39;40;33;34;35;36;45;";
		if (cursorKeys.indexOf(event.keyCode+";") == -1) {
			var r1 = field.createTextRange();
			var oldValue = r1.text;
			var newValue = found ? select.options[i][property] : oldValue;
			if (newValue != field.value) {
				field.value = newValue;
				var rNew = field.createTextRange();
				rNew.moveStart('character', oldValue.length) ;
				rNew.select();
				}
			}
		}
	}


	/***********************************************
	* Pausing up-down scroller- © Dynamic Drive (www.dynamicdrive.com)
	* This notice MUST stay intact for legal use
	* Visit http://www.dynamicdrive.com/ for this script and 100s more.
	***********************************************/

	function pausescroller(content, divId, divClass, delay) {
	    this.content = content //message array content
	    this.tickerid = divId //ID of ticker div to display information
	    this.delay = delay //Delay between msg change, in miliseconds.
	    this.mouseoverBol = 0 //Boolean to indicate whether mouse is currently over scroller (and pause it if it is)
	    this.hiddendivpointer = 1 //index of message array for hidden div
	    document.write('<div id="' + divId + '" class="' + divClass + '" style="position: relative; overflow: hidden"><div class="innerDiv" style="position: absolute; width: 100%" id="' + divId + '1">' + content[0] + '</div><div class="innerDiv" style="position: absolute; width: 100%; visibility: hidden" id="' + divId + '2">' + content[1] + '</div></div>')
	    var scrollerinstance = this
	    if (window.addEventListener) //run onload in DOM2 browsers
	        window.addEventListener("load", function () { scrollerinstance.initialize() }, false)
	    else if (window.attachEvent) //run onload in IE5.5+
	        window.attachEvent("onload", function () { scrollerinstance.initialize() })
	    else if (document.getElementById) //if legacy DOM browsers, just start scroller after 0.5 sec
	        setTimeout(function () { scrollerinstance.initialize() }, 500)
	}

	// -------------------------------------------------------------------
	// initialize()- Initialize scroller method.
	// -Get div objects, set initial positions, start up down animation
	// -------------------------------------------------------------------

	pausescroller.prototype.initialize = function () {
	    this.tickerdiv = document.getElementById(this.tickerid)
	    this.visiblediv = document.getElementById(this.tickerid + "1")
	    this.hiddendiv = document.getElementById(this.tickerid + "2")
	    this.visibledivtop = parseInt(pausescroller.getCSSpadding(this.tickerdiv))
	    //set width of inner DIVs to outer DIV's width minus padding (padding assumed to be top padding x 2)
	    this.visiblediv.style.width = this.hiddendiv.style.width = this.tickerdiv.offsetWidth - (this.visibledivtop * 2) + "px"
	    this.getinline(this.visiblediv, this.hiddendiv)
	    this.hiddendiv.style.visibility = "visible"
	    var scrollerinstance = this
	    document.getElementById(this.tickerid).onmouseover = function () { scrollerinstance.mouseoverBol = 1 }
	    document.getElementById(this.tickerid).onmouseout = function () { scrollerinstance.mouseoverBol = 0 }
	    if (window.attachEvent) //Clean up loose references in IE
	        window.attachEvent("onunload", function () { scrollerinstance.tickerdiv.onmouseover = scrollerinstance.tickerdiv.onmouseout = null })
	    setTimeout(function () { scrollerinstance.animateup() }, this.delay)
	}


	// -------------------------------------------------------------------
	// animateup()- Move the two inner divs of the scroller up and in sync
	// -------------------------------------------------------------------

	pausescroller.prototype.animateup = function () {
	    var scrollerinstance = this
	    if (parseInt(this.hiddendiv.style.top) > (this.visibledivtop + 5)) {
	        this.visiblediv.style.top = parseInt(this.visiblediv.style.top) - 5 + "px"
	        this.hiddendiv.style.top = parseInt(this.hiddendiv.style.top) - 5 + "px"
	        setTimeout(function () { scrollerinstance.animateup() }, 50)
	    }
	    else {
	        this.getinline(this.hiddendiv, this.visiblediv)
	        this.swapdivs()
	        setTimeout(function () { scrollerinstance.setmessage() }, this.delay)
	    }
	}

	// -------------------------------------------------------------------
	// swapdivs()- Swap between which is the visible and which is the hidden div
	// -------------------------------------------------------------------

	pausescroller.prototype.swapdivs = function () {
	    var tempcontainer = this.visiblediv
	    this.visiblediv = this.hiddendiv
	    this.hiddendiv = tempcontainer
	}

	pausescroller.prototype.getinline = function (div1, div2) {
	    div1.style.top = this.visibledivtop + "px"
	    div2.style.top = Math.max(div1.parentNode.offsetHeight, div1.offsetHeight) + "px"
	}

	// -------------------------------------------------------------------
	// setmessage()- Populate the hidden div with the next message before it's visible
	// -------------------------------------------------------------------

	pausescroller.prototype.setmessage = function () {
	    var scrollerinstance = this
	    if (this.mouseoverBol == 1) //if mouse is currently over scoller, do nothing (pause it)
	        setTimeout(function () { scrollerinstance.setmessage() }, 100)
	    else {
	        var i = this.hiddendivpointer
	        var ceiling = this.content.length
	        this.hiddendivpointer = (i + 1 > ceiling - 1) ? 0 : i + 1
	        this.hiddendiv.innerHTML = this.content[this.hiddendivpointer]
	        this.animateup()
	    }
	}

	pausescroller.getCSSpadding = function (tickerobj) { //get CSS padding value, if any
	    if (tickerobj.currentStyle)
	        return tickerobj.currentStyle["paddingTop"]
	    else if (window.getComputedStyle) //if DOM2
	        return window.getComputedStyle(tickerobj, "").getPropertyValue("padding-top")
	    else
	        return 0
	}