function $(e){if(typeof e=='string')e=document.getElementById(e);return e};
function collect(a,f){var n=[];for(var i=0;i<a.length;i++){var v=f(a[i]);if(v!=null)n.push(v)}return n};
ajax={};
ajax.x=function(){try{return new ActiveXObject('Msxml2.XMLHTTP')}catch(e){try{return new ActiveXObject('Microsoft.XMLHTTP')}catch(e){return new XMLHttpRequest()}}};
ajax.serialize=function(f){var g=function(n){return f.getElementsByTagName(n)};var nv=function(e){if(e.name)return encodeURIComponent(e.name)+'='+encodeURIComponent(e.value);else return ''};var i=collect(g('input'),function(i){if((i.type!='radio'&&i.type!='checkbox')||i.checked)return nv(i)});var s=collect(g('select'),nv);var t=collect(g('textarea'),nv);return i.concat(s).concat(t).join('&');};
ajax.send=function(u,f,m,a){var x=ajax.x();x.open(m,u,true);x.onreadystatechange=function(){if(x.readyState==4)f(x.responseText)};if(m=='POST')x.setRequestHeader('Content-type','application/x-www-form-urlencoded');x.send(a)};
ajax.get=function(url,func){ajax.send(url,func,'GET')};
ajax.gets=function(url){var x=ajax.x();x.open('GET',url,false);x.send(null);return x.responseText};
ajax.post=function(url,func,args){ajax.send(url,func,'POST',args)};
ajax.update=function(url,elm){var e=$(elm);var f=function(r){e.innerHTML=r};ajax.get(url,f)};
ajax.submit=function(url,elm,frm){var e=$(elm);var f=function(r){e.innerHTML=r};ajax.post(url,f,ajax.serialize(frm))};


var imgsize=10;
function imgResize(imgid)
{ img=document.getElementById(imgid);
  if(!img.owidth)
  { img.owidth=img.width;
    img.oheight=img.height;
  }
  if(event.wheelDelta>=120 && imgsize<30)
    imgsize++;
  else if(event.wheelDelta<=-120 && imgsize>5)
    imgsize--;
  img.width=Math.ceil(img.owidth*imgsize/10);
  img.height=Math.ceil(img.oheight*imgsize/10);
  img.title=imgsize+"0%";
  return false;
}


function moveForm(id)
{ var cform=document.getElementById("comment_form");
  var where=document.getElementById("comm"+id); //.parentNode;
  where.appendChild(cform); 
  where.blur();
}


function addToText(field,text)
{ field.value+=text; 
  if(document.selectionEnd)
  { var start=document.selectionStart;
    var end=document.selectionEnd;
    if(end-start)
      field.value+="''"+document.value.substr(start,end-start)+"''";
  }else
  { var s=document.selection;
    var r=s.createRange();
    if(r.text)
      field.value+="''"+r.text+"''";
  }
//  field.focus();
} 


function blockTrigger(id)
{ var openEl=document.getElementById(id+"_open");
  var closeEl=document.getElementById(id+"_close");
  if(openEl.style.display!="block") 
  { openEl.style.display="block";
    if(closeEl)
      closeEl.style.display="none";
  }else
  { openEl.style.display="none";
    if(closeEl)
      closeEl.style.display="block";
  }
  return;	
}

function bannerTrigger(mode)
{ return;
  var coll=document.getElementsByTagName("div"); 
  for(lc=0;lc<coll.length;lc++)
    if(coll[lc].className.indexOf("banner")!=-1)
      coll[lc].style.display=mode;
  return;	
}

function ctrlEnterSubmit(form,event)
{ if((event.ctrlKey) && ((event.keyCode==10)||(event.keyCode==13)))
    form.submit();
}

function textCharsCounter(text,text_counter,wlimit,limit)
{ if(limit == undefined)limit=text.maxLength;
  if(wlimit == undefined)wlimit=50;
  if(text.value.length>=wlimit)
  { text_counter.style.display="block";
    text_counter.style.textAlign="right";
    text_counter.value=limit-text.value.length;
  }else text_counter.style.display="none";
//  if(text.value.length>=limit)return false;
  return true;
}
function checkEmail(field,message)
{ var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
  if(!filter.test(field.value))
  { alert(message);
    field.focus();
    return false;
  }
  return true;
}

function checkValidChars(text)
{ var parsed=true;
  var validchars="abcdefghijklmnopqrstuvwxyz0123456789@.-";
  for(var i=0;i<text.length; i++)
  { var letter=text.charAt(i).toLowerCase();
    if(validchars.indexOf(letter)!=-1)continue;
    parsed=false;
    break;
  }
  return parsed;
}

function checkMaxChars(field,maxchars,message)
{ if(field.value.length<maxchars)
  { alert(message);
    field.focus();
    return false;
  }
  return true;
}
function checkNotEmpty(field,message)
{ if(field.value=="")
  { alert(message);
    field.focus();
    return false;
  }
  return true;
}

function addToTextWiki(field,message,tagLeft,tagRight)
{ text=prompt(message,'');
  if(text==undefined)return;
  field.value+=tagLeft+text+tagRight; 
  field.focus();
} 


function modTextWiki(field,tagLeft,tagRight)
{ field.focus(); 
  if(field.selectionEnd)
  { var start=field.selectionStart;
    var end=field.selectionEnd;
    field.value=field.value.substr(0,start) 
      + tagLeft
      + field.value.substr(start,end-start)
      + tagRight
      + field.value.substr(end,field.value.length-end);
    field.setSelectionRange(start+tagLeft.length,end+tagLeft.length);
  }else
  { var s=document.selection;
    var r=s.createRange();
    var empty=1;
    if(r.text)
      empty=0; 
    r.text=tagLeft+r.text+tagRight;
    r=s.createRange();
    if(empty)
      r.moveEnd("character",-tagRight.length);
    r.select();
  }
}

// banner

var bannerTimeout;
var bannerY=-640;
var bannerH=60;
var bannerM=0;

function moveBanner()
{ var banner=document.getElementById('banner_java');
  if(bannerM)
  { if(bannerH==690)
      return;
    bannerH=bannerH+5;
    banner.style.height=bannerH+'px';
    if(bannerY<(bannerH-690))
       bannerY=bannerH-690;
  }else
  { if(bannerH>60)
    { bannerH=bannerH-20;
      if(bannerH<60)
        bannerH=60;
      banner.style.height=bannerH+'px';
      bannerY=bannerH-690;
    }else
    { if(bannerY==0)
        return; 
      bannerY++;
    }
  }
  banner.style.backgroundPosition='0 '+bannerY+'px';
  startBannerAnim();
}

function startBannerAnim() 
{ bannerTimeout=setTimeout("moveBanner()",10);
}
function stopBannerAnim(event) 
{ clearTimeout(bannerTimeout);
}
function startBannerOpen()
{ bannerM=1;
  startBannerAnim();
}
function stopBannerOpen()
{ bannerM=0;
  startBannerAnim();
}
