function openWindow(theURL,width,height,scrollbar,windowname) {
  if (!scrollbar) scrollbar = 'no';
  if (!width) width = 400;
  if (!height) height = 600;
  if (!windowname) windowname = 'window'; 
  window.open(theURL,windowname,'status=0,toolbar=0,location=0,menubar=0,resizable=0,scrollbars='+scrollbar+',width='+width+',height='+height);
}




/*
 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
 * Digest Algorithm, as defined in RFC 1321.
 * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
 * Distributed under the BSD License
 * See http://pajhome.org.uk/crypt/md5 for more info.
 */

/*
 * Configurable variables. You may need to tweak these to be compatible with
 * the server-side, but the defaults work in most cases.
 */
var hexcase = 0;  /* hex output format. 0 - lowercase; 1 - uppercase        */
var b64pad  = ""; /* base-64 pad character. "=" for strict RFC compliance   */
var chrsz   = 8;  /* bits per input character. 8 - ASCII; 16 - Unicode      */

/*
 * These are the functions you'll usually want to call
 * They take string arguments and return either hex or base-64 encoded strings
 */
function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}
function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }

/*
 * Perform a simple self-test to see if the VM is working
 */
function md5_vm_test()
{
  return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
}

/*
 * Calculate the MD5 of an array of little-endian words, and a bit length
 */
function core_md5(x, len)
{
  /* append padding */
  x[len >> 5] |= 0x80 << ((len) % 32);
  x[(((len + 64) >>> 9) << 4) + 14] = len;

  var a =  1732584193;
  var b = -271733879;
  var c = -1732584194;
  var d =  271733878;

  for(var i = 0; i < x.length; i += 16)
  {
    var olda = a;
    var oldb = b;
    var oldc = c;
    var oldd = d;

    a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
    d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
    c = md5_ff(c, d, a, b, x[i+ 2], 17,  606105819);
    b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
    a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
    d = md5_ff(d, a, b, c, x[i+ 5], 12,  1200080426);
    c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
    b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
    a = md5_ff(a, b, c, d, x[i+ 8], 7 ,  1770035416);
    d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
    c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
    b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
    a = md5_ff(a, b, c, d, x[i+12], 7 ,  1804603682);
    d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
    c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
    b = md5_ff(b, c, d, a, x[i+15], 22,  1236535329);

    a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
    d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
    c = md5_gg(c, d, a, b, x[i+11], 14,  643717713);
    b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
    a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
    d = md5_gg(d, a, b, c, x[i+10], 9 ,  38016083);
    c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
    b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
    a = md5_gg(a, b, c, d, x[i+ 9], 5 ,  568446438);
    d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
    c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
    b = md5_gg(b, c, d, a, x[i+ 8], 20,  1163531501);
    a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
    d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
    c = md5_gg(c, d, a, b, x[i+ 7], 14,  1735328473);
    b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);

    a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
    d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
    c = md5_hh(c, d, a, b, x[i+11], 16,  1839030562);
    b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
    a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
    d = md5_hh(d, a, b, c, x[i+ 4], 11,  1272893353);
    c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
    b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
    a = md5_hh(a, b, c, d, x[i+13], 4 ,  681279174);
    d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
    c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
    b = md5_hh(b, c, d, a, x[i+ 6], 23,  76029189);
    a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
    d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
    c = md5_hh(c, d, a, b, x[i+15], 16,  530742520);
    b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);

    a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
    d = md5_ii(d, a, b, c, x[i+ 7], 10,  1126891415);
    c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
    b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
    a = md5_ii(a, b, c, d, x[i+12], 6 ,  1700485571);
    d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
    c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
    b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
    a = md5_ii(a, b, c, d, x[i+ 8], 6 ,  1873313359);
    d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
    c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
    b = md5_ii(b, c, d, a, x[i+13], 21,  1309151649);
    a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
    d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
    c = md5_ii(c, d, a, b, x[i+ 2], 15,  718787259);
    b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);

    a = safe_add(a, olda);
    b = safe_add(b, oldb);
    c = safe_add(c, oldc);
    d = safe_add(d, oldd);
  }
  return Array(a, b, c, d);

}

/*
 * These functions implement the four basic operations the algorithm uses.
 */
function md5_cmn(q, a, b, x, s, t)
{
  return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
}
function md5_ff(a, b, c, d, x, s, t)
{
  return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function md5_gg(a, b, c, d, x, s, t)
{
  return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function md5_hh(a, b, c, d, x, s, t)
{
  return md5_cmn(b ^ c ^ d, a, b, x, s, t);
}
function md5_ii(a, b, c, d, x, s, t)
{
  return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
}

/*
 * Calculate the HMAC-MD5, of a key and some data
 */
function core_hmac_md5(key, data)
{
  var bkey = str2binl(key);
  if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);

  var ipad = Array(16), opad = Array(16);
  for(var i = 0; i < 16; i++)
  {
    ipad[i] = bkey[i] ^ 0x36363636;
    opad[i] = bkey[i] ^ 0x5C5C5C5C;
  }

  var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
  return core_md5(opad.concat(hash), 512 + 128);
}

/*
 * Add integers, wrapping at 2^32. This uses 16-bit operations internally
 * to work around bugs in some JS interpreters.
 */
function safe_add(x, y)
{
  var lsw = (x & 0xFFFF) + (y & 0xFFFF);
  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
  return (msw << 16) | (lsw & 0xFFFF);
}

/*
 * Bitwise rotate a 32-bit number to the left.
 */
function bit_rol(num, cnt)
{
  return (num << cnt) | (num >>> (32 - cnt));
}

/*
 * Convert a string to an array of little-endian words
 * If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
 */
function str2binl(str)
{
  var bin = Array();
  var mask = (1 << chrsz) - 1;
  for(var i = 0; i < str.length * chrsz; i += chrsz)
    bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
  return bin;
}

/*
 * Convert an array of little-endian words to a string
 */
function binl2str(bin)
{
  var str = "";
  var mask = (1 << chrsz) - 1;
  for(var i = 0; i < bin.length * 32; i += chrsz)
    str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
  return str;
}

/*
 * Convert an array of little-endian words to a hex string.
 */
function binl2hex(binarray)
{
  var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
  var str = "";
  for(var i = 0; i < binarray.length * 4; i++)
  {
    str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
           hex_tab.charAt((binarray[i>>2] >> ((i%4)*8  )) & 0xF);
  }
  return str;
}

/*
 * Convert an array of little-endian words to a base-64 string
 */
function binl2b64(binarray)
{
  var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  var str = "";
  for(var i = 0; i < binarray.length * 4; i += 3)
  {
    var triplet = (((binarray[i   >> 2] >> 8 * ( i   %4)) & 0xFF) << 16)
                | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
                |  ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
    for(var j = 0; j < 4; j++)
    {
      if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
      else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
    }
  }
  return str;
}










function makeRequest(url,object) {
	
	xhr = new XHR(url,object);
}

//Constructor
function XHR(url,object) {
	var http_request = null;
	
	this._load(url,object);
}

XHR.prototype._load = function(url,object) {
	var _this = this;
	
	if (window.XMLHttpRequest) {
		this.http_request = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // IE
		try {
			this.http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				this.http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	
	this.http_request.onreadystatechange = function(){_this.getRequest()};
	this.http_request.open("POST", url,true);
	this.http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	this.http_request.send('xml=<root>' + ((object!=false)?get(object):'') +  '</root>');
}

XHR.prototype.getRequest = function() {
	if (this.http_request!=null) {
		if (this.http_request.readyState==4) {
			
			if (document.getElementById('textarea_code')) document.getElementById('textarea_code').value = this.http_request.responseText;
			//try {
				var output = this.http_request.responseXML.documentElement;
				process(output);
			//} catch(e) {
			//	alert('niet goed');
			//}
		}
	}
}

function process(output) {
	var node, childNode;
	
	if (output!=null && output.hasChildNodes() && output.childNodes!=null) {
		for(var i = 0;i < output.childNodes.length; i++) {
			this.node = output.childNodes[i];
			if (this.node.nodeType!=3 && this.node.hasChildNodes()) {
				eval(this.node.nodeName + "();");
			}
		}
	}
}

function showhide(object,display) {
	var html_target;
	var childNode;
	if (!object && !display) {
		for(var i = 0; i < this.node.childNodes.length; i++) {
			if (this.node.childNodes[i].nodeType!=3) {
				childNode = this.node.childNodes[i];
				html_target = document.getElementById(this.node.childNodes[i].nodeName);
				html_target.style.display = (childNode.firstChild.nodeValue=="hide" || childNode.firstChild.nodeValue=="0" || childNode.firstChild.nodeValue=="false") ? "none" : "block";
			}
		}
	} else {
		html_target = document.getElementById(object);
		html_target.style.display = (display=="hide" || display=="0" || display=="false") ? "none" : "block";
	}
}

function add() {
	var target = getNode("target");
	var html_target;
	var elements;
	if (target && target.hasChildNodes()) {
		html_target = document.getElementById(target.firstChild.nodeValue);
		
		if (html_target!=null && html_target!="undefined") {
			for(var i = 0; i < this.node.childNodes.length; i++) {
				if (this.node.childNodes[i].nodeType!=3 && this.node.childNodes[i].nodeName!="target") {
					addElements(this.node.childNodes[i],html_target);
				}
			}
		}		
	} //else foutmelding geven
}


function fill() {
	var target = getNode("target");
	var html_target;
	var childNode;
	if (target && target.hasChildNodes()) {
		eval("html_target = document." + target.firstChild.nodeValue);
		//html_target = document.getElementById(target.firstChild.nodeValue);
		if (html_target!=null && html_target!="undefined") {
			for(var i = 0; i < this.node.childNodes.length; i++) {
				childNode = node.childNodes[i];
				if (this.node.childNodes[i].nodeType!=3) {
					if (childNode.nodeName=="action") html_target.action = childNode.firstChild.nodeValue;
					else {
						eval("if (html_target." + childNode.nodeName + "!=null) html_target." + childNode.nodeName + ".value = (childNode.hasChildNodes()) ? childNode.firstChild.nodeValue : ''");
					}
				}
			}
		}
	}
}

function remove_all() {
	if (this.node.firstChild && document.getElementById(this.node.firstChild.nodeValue)!=null) {
		var element = document.getElementById(this.node.firstChild.nodeValue);
		var aantal = element.childNodes.length-1;
		while(aantal>=0) element.removeChild(element.childNodes[aantal--]);
	} //else
		//alert("kan " + node.firstChild.nodeValue + " niet vinden.");								
}

function remove() {
	if (this.node.firstChild && document.getElementById(this.node.firstChild.nodeValue)!=null) {
		document.getElementById(this.node.firstChild.nodeValue).parentNode.removeChild(document.getElementById(this.node.firstChild.nodeValue));
	} //else
		//alert("kan " + node.firstChild.nodeValue + " niet vinden.");								
}

/*function showhide(obj,hide) {
	if (el = document.getElementById(obj)) {
		el.style.display = (hide=="hide" || hide=="0" || hide=="false") ? "none" : "block";
	}
}*/


function event() {
	eval(this.node.firstChild.nodeValue);
}

function getNode(name) {
	if (this!=null && this.node!=null) {
		for(var i = 0; i< this.node.childNodes.length; i++) {
			if (name==this.node.childNodes[i].nodeName) return this.node.childNodes[i];
		}
	}
	return false;
}






//extra functies
function addElements(node,target) {
	switch(node.nodeName.toLowerCase()) {
		case "html":
		case "head":
		case "body":
		case "title":
		case "script":
		case "object":
		case "em":
		case "strong":
		case "q":
		case "cite":
		case "dfn":
		case "abbr":
		case "acronym":
		case "code":
		case "var":
		case "kbd":
		case "samp":
		case "sub":
		case "sup":
		case "del":
		case "ins":
		case "isindex":
		case "a":
		case "br":
		case "map":
		case "area":
		case "param":
		case "embed":
		case "noembed":
		case "applet":
		case "span":
		case "p":
		case "blockquote":
		case "h1":
		case "h2":
		case "h3":
		case "h4":
		case "h5":
		case "h6":
		case "dl":
		case "dt":
		case "dd":
		case "ol":
		case "ul":
		case "li":
		case "dir":
		case "menu":
		case "table":
		case "tr":
		case "th":
		case "td":
		case "colgroup":
		case "caption":
		case "thead":
		case "tbody":
		case "tfoot":
		case "button":
		case "div":
		case "pre":
		case "address":
		case "iframe":
		case "frameset":
		case "frame":
		case "noframes":
		case "big":
		case "small":
		case "tt":
		case "img":
			var element = document.createElement(node.nodeName);
			if (node.hasChildNodes()) {
				for(var e = 0; e < node.childNodes.length; e++) {
					addElements(node.childNodes[e], element);
				}
			}
			target.appendChild(element);
		break;
		
		case "onblur":
		case "onchange":
		case "onclick":
		case "ondblclick": 
		case "onfocus":
		case "onkeydown":
		case "onkeypress": 
		case "onkeyup":
		case "onmousedown":
		case "onmousemove":
		case "onmouseout":
		case "onmouseover": 
		case "onmouseup":
		case "onresize":
		case "onscroll":
			BrowserDetect.init();
			if (BrowserDetect.browser=="Explorer") {
				eval('target.' + node.nodeName + ' = function() { ' + node.firstChild.nodeValue + ' } ');
			} else {
				setAttribute(target,node.nodeName,(node.hasChildNodes())?node.firstChild.nodeValue:'',BrowserDetect.browser);
			}
		break;
		
		case "txt":
			//ce = obj.first;
			var element = document.createTextNode('');
			element.data = (node.firstChild) ? node.firstChild.nodeValue : '';
			target.appendChild(element);
		break;
		default:
			BrowserDetect.init();
			if (node.firstChild) setAttribute(target,node.nodeName,(node.hasChildNodes())?node.firstChild.nodeValue:'',BrowserDetect.browser);
		break;
		
	}
}

function setAttribute(node,name,value,browser) {
	//IE / FF verschillen... zucht
	switch(name.toLowerCase()) {
		case "classname":
		case "class":
			name = (browser=="Explorer") ? "className" : "class";
		break;
		case "id":
			name = (browser=="Explorer") ? "id" : "id";
		break;
	}
	
	if (name.toLowerCase()=="style" && browser=="Explorer") {
		node.style.cssText = value;
	} else {
		node.setAttribute(name,value,0);
	}
}


function get(obj) {
	var getstr = "";
	var i = 0;
	
	if (obj!=false && obj!=null) {
			
		if (obj.tagName.toUpperCase()!="INPUT" && obj.tagName.toUpperCase()!="TEXTAREA" && obj.tagName.toUpperCase()!="SELECT") {	
			if (obj.tagName.toUpperCase()!="FORM") {
				for (i; i<obj.childNodes.length; i++) {
					var oo = obj.childNodes[i];
					if (oo.hasChildNodes() && oo.tagName.toUpperCase()!="TEXTAREA" && oo.tagName.toUpperCase()!="SELECT") {
						getstr += get(oo);
					}
					getstr += get_element(oo);
				}
			} else {
				for (i; i<obj.elements.length; i++) {
					var oo = obj.elements[i];
					getstr += get_element(oo);
				}
			}
		} else {	
			getstr += get_element(obj);
		}
		return getstr;
	}
}

function get_element (obj) {
	var getstr = '';
	
	if (obj!=null) {
		switch(obj.tagName) {
			case "TEXTAREA":
			case "INPUT":
				switch(obj.type.toLowerCase()) {
					case "checkbox":
					   getstr +=  (obj.checked) ? "<"+obj.name + ">" + obj.value + "</" + obj.name + ">" : "";
					break;
					case "radio":
					   if (obj.checked) getstr += "<" + obj.name + ">" + obj.value + "</" + obj.name + ">";
					break;
					case "text":
					case "password":
					default:
						
					   getstr += "<"+obj.name + ">" + ((obj.value!="undefined")?obj.value:'') + "</" + obj.name + ">";
					break;
					
				}
			break;
			
			case "SELECT":
				if (obj.multiple) {
					for(i = 0;i<obj.options.length;i++) {
						getstr += "<" + obj.name + ">" + obj.options[i].value + "</" + obj.name + ">";	
					}
				} else {
					getstr += "<" + obj.name + ">" + obj.options[obj.selectedIndex].value + "</" + obj.name + ">";	
				}
			break;
		 }
	}
	return getstr;
}



function interrogate(what) {
    var output = '';
	var val;
    for (var i in what) {
		eval('val = what.' + i)
        output += i+ ' - ' + val + '\n';
	}
    document.getElementById('textarea_prop').value += "\n\n\n\n\n\n\n\n\n\n-------------" + what + "------------------------------------\n\n\n\n\n\n\n\n" + output;
}



var hexChars = "0123456789ABCDEF";
function Dec2Hex (Dec) {
	var a = Dec % 16;
	var b = (Dec - a)/16;
	hex = "" + hexChars.charAt(b) + hexChars.charAt(a);
	return hex;
}

function changbg (begin, end, steps) {   
	steps = steps -1 ;
	redA     = begin.charAt(0) + begin.charAt(1);
	red_valA = parseInt(redA,'16');
	redB     = end.charAt(0) + end.charAt(1);
	red_valB = parseInt(redB,'16');
	red_int  = ((red_valB - red_valA) / steps) * -1;
	grnA     = begin.charAt(2) + begin.charAt(3);
	grn_valA = parseInt(grnA,'16');
	grnB     = end.charAt(2) + end.charAt(3);
	grn_valB = parseInt(grnB,'16');
	grn_int  = ((grn_valB - grn_valA) / steps) * -1;
	bluA     = begin.charAt(4) + begin.charAt(5);
	blu_valA = parseInt(bluA,'16');
	bluB     = end.charAt(4) + end.charAt(5);
	blu_valB = parseInt(bluB,'16');
	blu_int  = ((blu_valB - blu_valA) / steps) * -1;
	red = red_valA;
	grn = grn_valA;
	blu = blu_valA;
	document.bgColor = begin;
	red -= red_int;
	red_round = Math.round(red);
	red_hex = Dec2Hex(red);
	grn -= grn_int;
	grn_round = Math.round(grn);
	grn_hex = Dec2Hex(grn);
	blu -= blu_int;
	blu_round = Math.round(blu);
	blu_hex = Dec2Hex(blu);
	setTimeout("changbg('" + red_hex + grn_hex + blu_hex + "','"+end+"'," + steps + ")",1);
}


var old_class = null;
function mouse(e,obj) {
	if (e.type=="mouseout") {
		obj.className = (old_class!=null) ? old_class : e.type;
		old_class = null;
	} else {
		old_class = obj.className;
		obj.className = e.type;
	}
}


























//BrowserDetect.init();
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};

$(document).ready(function() {
	
	var clone = $("#last").clone();
	
	$(".rmaSave").live("click", function() {
		
		var item = $(this);
		
		$.post("/set/return/save_product", item.parents(".rule").find(".rmaForm").serialize(), function(data) {
			
			if(data.error) {
				item.parents(".rule").find(".errorRMA").html(data.error);
				item.parents(".rule").find(".rmaForm").addClass("formerror");
				item.parents(".rule").find(".msg").html("");
			} else {
				item.parents(".rule").find(".rmaForm").removeClass("formerror");
				item.parents(".rule").find(".errorRMA").css("color", "#475385");
				item.parents(".rule").find(".errorRMA").html(data.message);
				
				var clone2 = clone.clone();	
				
				$("#parentRMA").append(clone);
				
				clone = clone2;
				
			}
			
			item.parents(".rule").find(".RMAID").val(data.ID);
			
		}, 'json');
		
	});
	
	$(".addRMA").live("click", function() {
		
		var clone2 = clone.clone();	
		
		$("#parentRMA").append(clone);
		
		clone = clone2;
		
	});
	
	$("#rma_form").keydown(function (event) {
		
		if(event.which == 13) {
			event.preventDefault();
		}
	
	})
	
	$(".ean").live("keyup", function() {
		
		var item = $(this);
		
		$.post("/set/return/get_product", $(this).serialize(), function(data) {
			
			var omschrijving = new String( data.omschrijving);
			var artikel = new String( data.nummer);
		
			item.parents(".rule").find(".omschrijving").val(omschrijving + "");
			item.parents(".rule").find(".artikel").val(artikel + "");
			
		}, 'json');
	});
	
	$(".artikel").live("keyup", function() {
		
		var item = $(this);
		
		$.post("/set/return/get_product", $(this).serialize(), function(data) {
			
			var omschrijving = new String( data.omschrijving);
			var ean = new String( data.ean);
		
			item.parents(".rule").find(".omschrijving").val(omschrijving + "");
			item.parents(".rule").find(".ean").val(ean + "");
			
		}, 'json');
	});
	
	$(".deleteRecord").live("click", function() {
		
		if(($(this).parents(".rule").find(".RMAID").val()) != "") {
			
			$.post("/set/return/remove_queuerule", $(this).parents(".rule").find(".rmaForm").serialize(), function(data) {
				
			});
			
		} 
		
		$(this).parents(".rule").remove();
		
	})
	
	
	
});
