function is_array(obj) {
	if (obj)
	{
		if (obj.length)
			return true;
		else
			return false;
	}
}

function replace(s, t, u) 
{
   /*
   **  Replace a token in a string
   **    s  string to be processed
   **    t  token to be found and removed
   **    u  token to be inserted
   **  returns new String
   */
   i = s.indexOf(t);
   r = "";
   if (i == -1) return s;
   r += s.substring(0,i) + u;
   if ( i + t.length < s.length)
     r += replace(s.substring(i + t.length, s.length), t, u);
   return r;
}


/**
* Change class name.
* 
* @author	Diederick Huijbers <diederick@netexpo.nl>
* @version	2003.09.23 11.38
* @param	object	The element.
* @param	string 	The name of the class.
*/
function Css(el)
{
	if (el.className == 'button_admin')
	{
		el.className = 'button_highlight';
	}
	else
	{
		el.className = 'button_admin';
	}
}

	
	
/**
* This function disables or enables the single buttons.
*
* @author	Diederick Huijbers <diederick@netexpo.nl>
* @version	2003.10.01
* @param
*/
var frm = ''; // The id of the list form.
var single = new Array(); // id's of the single buttons.
var is_checked = false; // Is set to true if a radio is checked in the list.
var checked_el = ''; // The checked element.

var folderID = "";
ie = document.all?1:0
ns4 = document.layers?1:0
 
function SetSingleButtons(buttons_array)
{
	if (is_checked == true)
	{
		
		// Enable single buttons.
		EnableSingleButtons(buttons_array);
	}
}	

	
function InitList(buttons)
{	
	DisableSingleButtons(buttons);
}

function EnableSingleButtons(buttons_array)
{
	if (is_array(buttons_array)) for (x in buttons_array)
	{	
		
		var el = document.getElementById(buttons_array[x])
		el.className='button';
		el.onmousedown=function () {
		this.style.backgroundImage='url(/shared/images/engine/item_button_bg_clicked.gif)';
		};
		el.onmouseout=function () {
		this.style.backgroundImage='url(/shared/images/engine/item_button_bg.gif)';
		};
		el.onfocus=function () {
		if(this.blur)this.blur();
		};
		
//		var old_onclick = (el.onclick) ? el.onclick : function () {};
		

		// one function with confirm (if), one without (else)
		if (buttons_array[x] == 'del_button' || buttons_array[x] == 'del_from_cat_button')
		{
			el.onclick = function () 
			{
				if(!confirm('Weet u het zeker?')) return false;
				
				//old_onclick();
				
				// check if the item array exists. if not, there is only one item
				if (document.items_form.item.length)
				{
					for(var y=0; y<document.items_form.item.length; y++)
					{
						if (document.items_form.item[y].checked)
							this.href = this.href+'&item='+document.items_form.item[y].value; 
					}
					return true;
				}
				else
				{
					if (document.items_form.item.checked)
							this.href = this.href+'&item='+document.items_form.item.value;
					return true;
				}
			};
		}
		
		else
		{
			el.onclick = function () 
			{
				
				//old_onclick();
				
				// check if the item array exists. if not, there is only one item
				if (document.items_form.item.length)
				{
					for(var y=0; y<document.items_form.item.length; y++)
					{
						if (document.items_form.item[y].checked)
						{
							this.href = this.href+'&item='+document.items_form.item[y].value; 
						}
					}
					return true;
				}
				else
				{
					if (document.items_form.item.checked)
							this.href = this.href+'&item='+document.items_form.item.value;
					return true;
				}
			};
		}
	}
}

function DisableSingleButtons(buttons)
{
	if (is_array(buttons)) for (var x = 0; x < buttons.length; x++)
	{	
		var el  = document.getElementById(single[x]);
		//el.disabled = true;	
		el.className='button_disabled';
		//var old_onclick = (el.onclick) ? el.onclick : function () {};
		el.onclick = function () {return false;};
		el.onfocus=function () {if(this.blur)this.blur();};
	}
}	

/**
* Set the checked variable to true.
*
* @author	Diederick Huijbers <diederick@netexpo.nl>
* @version	2003.10.01 12.04
* @param	string	The id of the element.
*/	
function SC(el)
{
	is_checked = true;
	checked_el = el;
	SetSingleButtons(single);
	el_str = document.getElementById(el);
	dL(el_str);
	hL(el_str);
}

function hL(e){
	if (ie)
	{
		while (e.tagName!="TR")
		{e=e.parentElement;}
	}
	else
	{
		while (e.tagName!="TR")
		{e=e.parentNode;}
	}
	e.className = "selected_row";
}
	
/**
* Deselect the row
*
* @author	Diederick Huijbers <diederick@netexpo.nl>
* @version	2003.10.01 12.27
*/	
function dL(e)
{
	frm_el = document.forms[frm];	
	if (ie)
	{
		for (var x=0; x < document.forms[frm].elements.length; x++)
		{
			var type = document.forms[frm].elements[x].type;
			if (type == 'radio')
			{
				e = document.forms[frm].elements[x];
				while (e.tagName!="TR")
					{e=e.parentElement;}
				e.className = "";
			}
		}
	}
	else  // netscape code
	{
		// Toegevoegd 13-10-2003 door Mark
		// Ik heb geen idee wat hier gebeurt, maar het werkt wel.
		for (var x=0; x < document.forms[frm].elements.length; x++)
		{
			var type = document.forms[frm].elements[x].type;
			if (type == 'radio')
			{
				e = document.forms[frm].elements[x];
				while (e.tagName!="TR")
					{e=e.parentNode;}
				e.className = "";
			}
		}
		// einde toevoeging
	}
}


	/**
	* Print the properties of an object.
	*
	* @version	2003.10.08
	* @param
	*/	
	/*
	function printr(obj, parent) 
	{
  		for (var i in obj) 
  		{
      		if (parent) { msg = parent + "." + i + "\n" + obj[i]; } else { var msg = i + "\n" + obj[i]; }
      		if (!confirm(msg)) { return; }
      		if (typeof obj[i] == "object") { 
         	if (parent) { printr(obj[i], parent + "." + i); } else { printr(obj[i], i); }
      	}
   }
   */
   
   
function SetCookie(cookieName,cookieValue,nDays) 
{
 var today = new Date();
 var expire = new Date();
 if (nDays==null || nDays==0) nDays=1;
 expire.setTime(today.getTime() + 3600000*24*nDays);

 document.cookie = cookieName+"="+escape(cookieValue)
                 + ";expires="+expire.toGMTString() + '; path=/;domain=.scalemodelstore.com';
}

function ReadCookie(cookieName) 
{
 var theCookie=""+document.cookie;
 var ind=theCookie.indexOf(cookieName);
 if (ind==-1 || cookieName=="") return ""; 
 var ind1=theCookie.indexOf(';',ind);
 if (ind1==-1) ind1=theCookie.length; 
 return unescape(theCookie.substring(ind+cookieName.length+1,ind1));
}


function move(fbox, tbox)
{
	// cleanup!
	var arrFbox = new Array();
	var arrTbox = new Array();
	var arrTboxText = new Array();
	var arrFboxText = new Array();
	var arrLookup = new Array();
	var arrClass = new Array();
	var i;
	for (i = 0; i < tbox.options.length; i++) 
	{
		arrLookup[tbox.options[i].value] = tbox.options[i].value;
		arrClass[tbox.options[i].value] = tbox.options[i].className;
		arrTbox[i] = tbox.options[i].value;
		arrTboxText[i] = tbox.options[i].text;
	}
	var fLength = 0;
	var tLength = arrTbox.length;
	for(i = 0; i < fbox.options.length; i++) 
	{
		arrLookup[fbox.options[i].value] = fbox.options[i].value;
		arrClass[fbox.options[i].value] = fbox.options[i].className;
		if (fbox.options[i].selected && fbox.options[i].value != "") 
		{
			arrTbox[tLength] = fbox.options[i].value;
			arrTboxText[tLength] = fbox.options[i].text;
			tLength++;
		}
		else 
		{
			arrFbox[fLength] = fbox.options[i].value;
			arrFboxText[fLength] = fbox.options[i].text;
			fLength++;
		}
	}
	//arrFbox.sort();
	//arrTbox.sort();
	fbox.length = 0;
	tbox.length = 0;
	var c;
	for(c = 0; c < arrFbox.length; c++) 
	{
		var no = new Option();
		no.value = arrLookup[arrFbox[c]];
		no.className = arrClass[arrFbox[c]];
		no.text = arrFboxText[c];
		fbox[c] = no;
	}
	for(c = 0; c < arrTbox.length; c++) 
	{
		var no = new Option();
		no.value = arrLookup[arrTbox[c]];
		no.className = arrClass[arrTbox[c]];
		no.text = arrTboxText[c];
		tbox[c] = no;
	}
}


// select all categories before submitting form
function SelectOptions(obj)
{
 		for (var i=0; i<obj.options.length; i++) 
			obj.options[i].selected = true;
}

// call url as an external javascript
function CallUrl(url)
{
  var tag = document.createElement("script");
  tag.type="text/javascript";
  tag.src = url;
  document.getElementsByTagName("head")[0].appendChild(tag);
  window.status='';
  return true;
}

function Pause(milliseconds)
{
	d = new Date() //today's date
	while (1)
	{
		mill=new Date() // Date Now
		diff = mill-d //difference in milliseconds
		if( diff > milliseconds ) 
		{
			break;
		}
	}
}

