
try{document.execCommand("BackgroundImageCache",false,true);} catch(err){}

//————————————————————————————————————————————————————————————————————
function $(sId) { if (sId) return document.getElementById(sId); }	// shortcut to document.getElementById()
$I = function(el, inner) { $(el).innerHTML=inner; }		// Sets innerHTML
$IA= function(el, inner) { $(el).innerHTML+=inner; }	// Appends innerHTML
$S = function(el) { return $(el).style; }				// Returns style

//————————————————————————————————————————————————————————————————————
function toggle_show(id) {
	if ((obj=$(id))==null) return;
	obj.style.display = (obj.style.display=='none') ? '' : 'none';
}

//————————————————————————————————————————————————————————————————————
function writeflash(src,width,height,xparams) {
	if (typeof(xparams)=='undefined') xparams='';
	if (xparams.indexOf('quality')==-1) xparams+=' quality=high';
	document.write('<EMBED src="'+src+'" WIDTH='+width+' HEIGHT='+height+' '+xparams+' TYPE=application/x-shockwave-flash PLUGINSPAGE=http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash></EMBED>');
}


//————————————————————————————————————————————————————————————————————
function Aj() {
	this.noIndicator = false;
	this.noLoadingInd= false;
	this.loadingIndTimer;
}
//————————————————————————————————————————————————————————————————————
Aj.prototype.createRequest = function() {
	var _this=this;
	if (this.rq && this.rq.readyState<4) {	// abort previous request
		this.rq.onreadystatechange = new function() {};
		this.rq.abort();
	}
	if (!this.rq && window.XMLHttpRequest) this.rq = new XMLHttpRequest();				// native XMLHttpRequest object
	else if (window.ActiveXObject) this.rq = new ActiveXObject("Microsoft.XMLHTTP");	// IE/Windows ActiveX version
	if (!this.rq) { alert("Can't create Request Object."); return; }

	if (!this.noIndicator)  this.indicatorShow();
	if (!this.noLoadingInd && typeof(this.target)=='string' && this.target!='eval' && this.target!=1) {
		if (this.loadingIndTimer) window.clearTimeout(this.loadingIndTimer);
		this.loadingIndTimer = window.setTimeout(function(){_this.loadingShow();}, 300);
	}
	
	this.rq.onreadystatechange = function() { _this.onStateChange(_this); }
	return this.rq;
}
//————————————————————————————————————————————————————————————————————
Aj.prototype.get = function(url, target) {
	debug('Aj.get('+url+', '+target+')');
	//if (!$(target)) { alert('Target not found'); return; }
	this.url = url;
	this.target = target;
	this.rq = this.createRequest();
	this.rq.open('GET', url, true);
	this.rq.send(null);
}
//————————————————————————————————————————————————————————————————————
Aj.prototype.post = function(url, postData, target) {
	debug('Aj.post('+url+', '+postData+', '+target+')');
	if (typeof(target)=='string' && target!='eval' && target!=1 && !$(target)) { alert('Target not found'); return; }
	this.url = url;
	this.target = target;
	this.rq = this.createRequest();
	this.rq.open('POST', url, true);
	this.rq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");	// charset=utf8
	//req.setRequestHeader('Accept-Charset', 'windows-1255');
	this.rq.setRequestHeader("Content-length", postData.length);
	this.rq.setRequestHeader("Accept", "text/xml");
	this.rq.send(postData);
}
//————————————————————————————————————————————————————————————————————
Aj.prototype.onStateChange = function(_this) {
	if (_this.rq.readyState!=4) return;
	if (typeof(target)=='string' && target!='eval' && target!=1 && !$(target)) { alert('Target not found'); return; }
	if (!_this.noIndicator) _this.indicatorHide();
	if (!_this.noLoadingInd) {
		if (this.loadingIndTimer) window.clearTimeout(this.loadingIndTimer);
		if (this.loadingIndOn) _this.loadingHide();
	}
	
	debug('Aj.onStateChange: readyState='+_this.rq.readyState+'\n status='+_this.rq.status+'\n responseText='+_this.rq.responseText);
	if (_this.rq.status<200 || _this.rq.status>300) {	// error
		responseText = "Request error: \n status: "+_this.rq.status+" \n text: "+_this.rq.statusText;	// set error text
		if (!_this.target) alert(responseText);  return;
	}
	responseText = _this.rq.responseText;
	if (typeof(_this.respond)=='function') _this.respond(responseText);
}
//————————————————————————————————————————————————————————————————————
Aj.prototype.respond = function(responseText) {	// default respond function
	if (!this.target) return;
	if (typeof(this.target)=='string' && this.target!='eval' && this.target!=1) {
		this.target=$(this.target);
		if (!this.target) { alert('Target not found.'); return; }
	}
	
	if (this.target==1) {
		this.runMulti(responseText);
	
	}else if (this.target=='eval' && responseText) {	// evaluate
		try { eval(responseText); }
		catch(e) { alert('Eval Error: '+e.description); }
		
	}else if (typeof(this.target)=='object') {
		if (typeof(this.target.value)!='undefined') this.target.value = responseText;	// set value for forms objects
		else this.target.innerHTML = responseText;							// set innerHTML for other

		// Run scripts		
		scripts=this.target.getElementsByTagName('script');
		if (scripts.length) for (var i=0; i<scripts.length; i++) {
			try{eval(scripts[i].innerHTML);} catch(e){alert('Eval Error: '+e.description);}
		}
	}
}

//————————————————————————————————————————————————————————————————————
Aj.prototype.runMulti = function(responseText) {
	tempObj	= document.createElement('div');	// create temp object
	tempObj.innerHTML = '&nbsp;' + responseText;

	e=tempObj.getElementsByTagName('x');
	for (var i = 0; i<e.length; i++) {
		if (e[i].getAttribute('js')) { try{eval(e[i].getAttribute('js'));} catch(e){alert('Eval Error: '+e.description);} } // run javascript
		else if (obj=$(e[i].id)) {
			if (e[i].getAttribute('h')) obj.innerHTML = e[i].getAttribute('h');						// set innerHTML
			else if (at=e[i].getAttribute('p')) {val=e[i].getAttribute('v'); try{eval('obj.'+at+'=val;');} catch(e){alert('Eval Error: '+e.description);} }	// set property/attribute
			else if (e[i].getAttribute('ha')) obj.innerHTML+=e[i].getAttribute('ha');					// append innerHTML
			else if (e[i].getAttribute('hp')) obj.innerHTML =e[i].getAttribute('hp') + obj.innerHTML;	// prepend innerHTML
		}else alert("runMulti: Object '"+e[i].id+"' Not found");
	}
	scripts=tempObj.getElementsByTagName('script');
	for (var i=0; i<scripts.length; i++) { try{eval(scripts[i].innerHTML);} catch(e){alert('Eval Error: '+e.description);} }
	tempObj=null;	// clear temp object
}


//————————————————————————————————————————————————————————————————————
Aj.prototype.loadingShow = function() {
	this.loadingIndOn=true;

	// hideSelects
	if (document.getElementsByTagName && navigator.userAgent.indexOf('MSIE 7')<0 && !window.opera) {
		sl=$(this.target).getElementsByTagName("SELECT");
		for (a=0;a<sl.length;a++) sl[a].style.visibility="hidden";
	}

	$(this.target).style.filter ='progid:DXImageTransform.Microsoft.Alpha(opacity=50); progid:DXImageTransform.Microsoft.Blur(PixelRadius=2,MakeShadow=false)';
	$(this.target).style.opacity='0.50';	//FF

	if (!$('AjLoading')) {
		var div	= document.createElement('div');
		div.id				= 'AjLoading';
		div.style.position	= 'absolute';
		div.style.padding	= '3px';
		div.style.width		= '130px';
		div.style.height	= '50px';
		div.style.textAlign	= 'center';
		div.style.border	= '1px solid #9BAFDE';
		div.style.display	= 'none';
		div.style.backgroundColor ='#EEF4FD';
		div.innerHTML		= "<img border=0 src='skin/icons/loading_big.gif'><br>טוען";
		document.body.appendChild(div);
	}else $('AjLoading').style.display='';

	targetPos=getPos($(this.target));	//get target element position
	$('AjLoading').style.top  = targetPos.y + Math.round($(this.target).offsetHeight/2 - 30)+'px';
	$('AjLoading').style.left = targetPos.x + Math.round($(this.target).offsetWidth/2 - 65) +'px';
	$('AjLoading').style.display='';
}
Aj.prototype.loadingHide = function() {
	this.loadingIndOn=false;
	if ($('AjLoading')) $('AjLoading').style.display='none';
	$(this.target).style.filter='';
	$(this.target).style.opacity='1';
}


//————————————————————————————————————————————————————————————————————
Aj.prototype.indicatorShow = function() {
	if (!$('AjIndicator')) {
		var div	= document.createElement('SPAN');
		div.id				= 'AjIndicator';
		div.style.position	= 'absolute';
		div.style.top		= '1px';
		div.style.right		= '1px';
		div.innerHTML		= "<img src='skin/icons/loading_clock2.gif'>";
		document.body.appendChild(div);
	}else $('AjIndicator').style.display='';
}
Aj.prototype.indicatorHide = function() { if ($('AjIndicator')) $('AjIndicator').style.display='none'; }

//————————————————————————————————————————————————————————————————————
Aj.prototype.formSubmit = function(form, target) {
	this.target	= target;
	var formData = this.getFormData(form);
	if (!formData) return;

	url = form.getAttribute('action');
	if ((url==null) || (url=='')) url = location.href;

	if (form.getAttribute('method').toLowerCase() == 'get') {	// GET
		url += ( (url.indexOf("?")!=-1) ? "&" : "?" ) + formData;
		this.get(url, target);
	}else {	// POST
		this.post(url, formData, target);
	}
  return false;
}
//————————————————————————————————————————————————————————————————————
Aj.prototype.getFormData = function(form) {
	if (typeof(form)=='string') {	// get form by name
		if (document.forms[form] && document.forms[form].elements) form = document.forms[form];
		else { alert('Form '+form+' not found.'); return; }
	}
	this.form	= form;
	
	var formData = '';
	for (var i = 0; i < form.elements.length; i++) {
		var el = form.elements[i];
		if ( (typeof(el.type)=='undefined') || (typeof(el.name)=='undefined') || !el.name || el.disabled) {}
		else if (el.type.toLowerCase()=='select-multiple') {
			for (var j=0; j<el.options.length; j++) {
				var op = el.options[j];
				if (op.selected) formData += el.name+"="+encodeURIComponent(op.value)+'&';
			}
		}
		else if (el.type.toLowerCase()=='select-one' && el.selectedIndex!=-1) {
			if (el.value!='') formData += el.name+'='+encodeURIComponent(el.value)+'&';
			//if (el.value=='undefined' || el.value==null || el.value=='') el_value=el.options[el.selectedIndex].text;
        }
		else if (el.type.toLowerCase()=='textarea' && el.value!='') formData += el.name+'='+encodeURIComponent(el.value)+'&';
        else if (el.tagName.toLowerCase()=='input' && el.value!='') {
			if (el.type.toLowerCase()=='checkbox' || el.type.toLowerCase()=='radio') { if (el.checked) formData += el.name+'='+encodeURIComponent(el.value)+'&'; }
			else if (el.type.toLowerCase()!='submit' && el.type.toLowerCase()!='button') formData += el.name+'='+encodeURIComponent(el.value)+'&';
        }
    }
  return formData;
}
//====================================================================================


//————————————————————————————————————————————————————————————————————
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent) { curleft+=obj.offsetLeft; curtop+=obj.offsetTop; }
	}
 return [curleft,curtop];
}

function getPos(obj) {
	var pos = {x: obj.offsetLeft||0, y: obj.offsetTop||0};
	while(obj = obj.offsetParent) {
		pos.x+=obj.offsetLeft||0;
		pos.y+=obj.offsetTop||0;
	}
 return pos;
}

function findPosX(obj) {
	var curleft = 0;
	if(obj.offsetParent) while(1) {
			curleft += obj.offsetLeft;
			if(!obj.offsetParent) break;
			obj = obj.offsetParent;
	}else if(obj.x) curleft += obj.x;
 return curleft;
}

function findPosY(obj) {
	var curtop = 0;
	if(obj.offsetParent) while(1) {
		curtop += obj.offsetTop;
		if(!obj.offsetParent) break;
		obj = obj.offsetParent;
	}else if(obj.y) curtop += obj.y;
 return curtop;
}



//————————————————————————————————————————————————————————————————————
function ajLoad(url, target, postData) {
	debug('ajLoad('+url+', '+target+', '+postData+')');

	if (target) {
		if (typeof(target)=='string') target=$(target);
		if (!target) alert(target+'not found');
		//if (typeof(target)=='object' && target.value=='undefined' && target.innerHTML) target.innerHTML = '<i>Loading...</i>';
	}

	if (window.XMLHttpRequest) req = new XMLHttpRequest();							// native XMLHttpRequest object
	else if (window.ActiveXObject) req = new ActiveXObject("Microsoft.XMLHTTP");	// IE/Windows ActiveX version
	if (!req) { alert("Can't create Request Object.\nUpdate your Browser to newer version."); return; }

	if (req) {
		req.onreadystatechange = function() {ajDone(target);};

		if (postData) {
			req.open('POST', url, true);
			req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");	// charset=utf8
			//req.setRequestHeader('Accept-Charset', 'windows-1255');
			req.setRequestHeader("Content-length", postData.length);
			req.setRequestHeader("Accept", "text/xml");
			req.send(postData);
		}else {
			req.open('GET', url, true);
			req.send(null);
		}
	}
}

//————————————————————————————————————————————————————————————————————
function ajDone(target) {
	if (req.readyState!=4) return;
	req.onreadystatechange = new function() {};//stop IE memory leak;
	if (req.status==200) responseText = req.responseText;
	else {
		responseText = "error: \n"+req.status+" \n"+req.statusText;	// set error text
		if (!target) { alert(responseText); return; }
	}

	debug('ajax responseText='+responseText);

	if (target) {
		if (typeof(target.value)!='undefined') target.value = responseText;	// set value for forms objects
		else target.innerHTML = responseText;			// set innerHTML for other
	}else if (responseText) {	// run eval
		try { eval(responseText); }
		catch(err) { alert('Eval Error: '+err.description); }
	}
}


//————————————————————————————————————————————————————————————————————
function ajSubmit(form, target) {
	if (typeof(form)=='string') {	// get form by name
		if (document.forms[form] && document.forms[form].elements) form = document.forms[form];
		else { alert('Form '+form+' not found.'); return; }
	}
	var result = ajGetFormData(form);

	url = form.getAttribute('action');
	if ((url==null) || (url=='')) url = location.href;

	if (form.getAttribute('method').toLowerCase() == 'post') {	// POST
		ajLoad(url, target, result);
	}else {	// GET
		url += (url.indexOf("?")!=-1) ? "&" : "?";
		url += result;
		ajLoad(url, target);
	}
  return false;
}

//————————————————————————————————————————————————————————————————————
function ajGetFormData(form) {
	var result = "";
	for (var i = 0; i < form.elements.length; i++) {
		var el = form.elements[i];
		if (typeof(el.type)=='undefined') {}
		else if (el.type.toLowerCase()=='select-multiple') {
			for (var j=0; j<el.options.length; j++) {
				var op = el.options[j];
				if (op.selected) result += el.name+"="+encodeURIComponent(op.value)+'&';
			}
		}
		else if (el.type.toLowerCase()=='select-one' && el.selectedIndex!=-1) {
			if (el.value!='') result += el.name+'='+encodeURIComponent(el.value)+'&';
			//if (el.value=='undefined' || el.value==null || el.value=='') el_value=el.options[el.selectedIndex].text;
        }
		else if (el.type.toLowerCase()=='textarea' && el.value!='') result += el.name+'='+encodeURIComponent(el.value)+'&';
        else if (el.tagName.toLowerCase()=='input' && el.value!='') {
			if (el.type.toLowerCase()=='checkbox' || el.type.toLowerCase()=='radio') { if (el.checked) result += el.name+'='+encodeURIComponent(el.value)+'&'; }
			else if (el.type.toLowerCase()!='submit' && el.type.toLowerCase()!='button') result += el.name+'='+encodeURIComponent(el.value)+'&';
        }
    }
  return result;
}


//————————————————————————————————————————————————————————————————————
function debug(text, forceOn) {
	if (!forceOn) { if (typeof(debugOn)=='undefined') return; if (!debugOn) return; }
	if (!text) return;
	
	text=text.replace(/</g, '&lt;');
	text=text.replace(/>/g, '&gt;');
	
	if (!window.top.debugWindow || window.top.debugWindow.closed) {
		window.top.debugWindow = window.open("", "Debug", "width=500,height=400,scrollbars=yes,status=yes,resizable=yes");	//left=0,top=0,
		window.top.debugWindow.opener = self;
		window.top.debugWindow.document.open();
		window.top.debugWindow.document.write("<HTML><HEAD><TITLE>Debug Window</TITLE></HEAD><BODY><PRE>\n");
		window.top.debugWindow.document.write(text+"<hr>\n");
	}else window.top.debugWindow.document.write(text+"<hr>\n");
}


//————————————————————————————————————————————————————————————————————
function Dump(d,ml,l) {
	if (l == null) l = 1;
	if (!ml) ml=2;
	if (l>ml && (typeof(d)=="object")) return typeof(d)+'\n';
	var s = '';
	if (typeof(d) == "object") {
		s += typeof(d) + " {\n";
		err=false;
		try { for (var k in d) {} }
		catch (err) { }
		if (!err) {
			for (var k in d) {
				if (k!='top' && k!='window' && k!='document' && k!='frames' && k!='self') {
					for (var i=0; i<l; i++) s += "    ";
					s += k+': '+ Dump(d[k],ml,l+1);
				}
			}
		}
		for (var i=0; i<l-1; i++) s += '    ';
		s += '}\n'
	} else {
		s += '' + d + '\n';
	}

	if (l==1) debug(s,true);
	else return s;
}


//————————————————————————————————————————————————————————————————————
if (typeof(encodeURIComponent)!='function') window.encodeURIComponent = function(str) {
	if (!str) return;
	var newStr='';
	var Regxp = /[^!'-*.0-9A-Z_a-z~-]/g;
	for (var i=0; i<str.length; i++) {
		ch=str.charAt(i);
		if (Regxp.test(ch)) {
			c = ch.charCodeAt(0);
			newStr += (c<16?'%0'+c.toString(16):c<128?'%'+c.toString(16):c<2048?'%'+(c>>6|192).toString(16)+'%'+(c&63|128).toString(16):'%'+(c>>12|224).toString(16)+'%'+(c>>6&63|128).toString(16)+'%'+(c&63|128).toString(16)).toUpperCase();
		}else newStr += ch;
	}
	return newStr;
}

/*
if (typeof(encodeURIComponent)!='function') function encodeURIComponent(str) {
	return str.replace(/[^!'-*.0-9A-Z_a-z~-]/g,function(s){
			var c=s.charCodeAt(0);
			return (c<16?'%0'+c.toString(16):c<128?'%'+c.toString(16):c<2048?'%'+(c>>6|192).toString(16)+'%'+(c&63|128).toString(16):'%'+(c>>12|224).toString(16)+'%'+(c>>6&63|128).toString(16)+'%'+(c&63|128).toString(16)).toUpperCase();
		}
	)
}
if (typeof(encodeURI)!='function') window.encodeURI = function(str) {
	return str.replace(/[^!#$&-;=?-Z_a-z~]/g,function(s){
		var c=s.charCodeAt(0);
		return (c<16?"%0"+c.toString(16):c<128?"%"+c.toString(16):c<2048?"%"+(c>>6|192).toString(16)+"%"+(c&63|128).toString(16):"%"+(c>>12|224).toString(16)+"%"+(c>>6&63|128).toString(16)+"%"+(c&63|128).toString(16)).toUpperCase()
	})
}
if (typeof(decodeURI)!='function') window.decodeURI = window.decodeURIComponent = function(str) {
	return str.replace(/%(E(0%[AB]|[1-CEF]%[89AB]|D%[89])[0-9A-F]|C[2-9A-F]|D[0-9A-F])%[89AB][0-9A-F]|%[0-7][0-9A-F]/ig,function(s){
		var c=parseInt(s.substring(1),16);
		return String.fromCharCode(c<128?c:c<224?(c&31)<<6|parseInt(s.substring(4),16)&63:((c&15)<<6|parseInt(s.substring(4),16)&63)<<6|parseInt(s.substring(7),16)&63)
	})
}
*/


function trim(str) { return str.replace(/^\s+|\s+$/g,""); }
if(!String.prototype.trim) String.prototype.trim = function() { return this.replace(/^\s*/,'').replace(/\s*$/, ''); }

//———————————————————————————————————————————————————————————————————
function addEvent(el, evType, fn) {
	if (typeof(el)!='object') {alert('addEvent: el is not an object, el='+el); return;}
	if (el.addEventListener) { el.addEventListener(evType, fn, false); return true; 	}
	else if (el.attachEvent) { var r = el.attachEvent('on'+evType, fn); return r; }
	else { el['on'+evType] = fn; }
}

//———————————————————————————————————————————————————————————————————
function removeEvent(el, evType, fn) {
	if (typeof(el)!='object') {alert('removeEvent: el is not an object, el='+el); return;}
	if (el.removeEventListener) { el.removeEventListener(evType, fn, false); return true; 	}
	else if (el.detachEvent) { var r = el.detachEvent('on'+evType, fn); return r; }
	else { el['on'+evType] = null; }
}