/** Open popup window.
 * @param string url       url to open in popup window
 * @param string name      window name
 * @param int    width     window width
 * @param int    height    window height
 * @param bool   bIsResize true - window resizable, false - fixed size
 */
function openWin(url, name, width, height, bIsResize){
  if (!width)
        width = screen.width*0.9;
  if (!height)
        height = screen.height*0.75;
  var IsReize = bIsResize?1:0;
  var newWindow = window.open(url, name, 'left=' + Math.ceil((0+screen.width - width)/2) + ',top=' + Math.ceil((0+screen.height - height)/2) + ',width=' + width + ',height=' + height + ',location=0,toolbar=0,directories=0,status=0,menubar=0,scrollbars=1,resizable='+bIsResize+',channelmode=0,fullscreen=0');
  return false;
}


/** Selects/deselects all checkbox with given name
 * @param string name checbox name
 * @param bool   val  true - select, false - deselect boxes
 */
function selectAll(name, val)
{
    var a = document.getElementsByName(name);
    if (a) 
        for(var i=0; i<a.length; ++i) 
        {
            a[i].checked = val;
        }
}
function isAllSelected(name)
{
    var a = document.getElementsByName(name);
    if (a) 
    {
        for(var i=0; i<a.length; ++i) 
        {
            if (a[i].checked != true) return false;
        }
        return true;
    }
    return false;
}
function isAnySelected(name)
{
    var a = document.getElementsByName(name);
    if (a) 
    {
        for(var i=0; i<a.length; ++i) 
        {
            if (a[i].checked == true) return true;
        }
    }
    return false;
}

/** Returns value of selected item (singel or first for multiselect)
 *  in SELECT element.
 * @param string sName select element name
 * @return mixed selected element value or 0 - if none selected
 */
function getSelectedId( sName )
{
    var a = document.getElementsByName(sName);
    for (var i=0; i<a.length; ++i)
        if (a[i].checked) return a[i].value;
    return 0;
}

/** Clear form elements. Used insted reset() when neede clear elements
 *  but not reset to start values.
 * @param string formName name form to clear
 */
function clearForm(formName)
{
    formName.reset();
    var a = formName.elements;
    for(var i=0; i<a.length; ++i)
    {
        var type_input = a[i].type.toLowerCase();
        if(type_input == 'select-one') {
            a[i].selectedIndex = 0;
        } else if (type_input == 'checkbox') {
            a[i].checked = false;
        } else if (type_input == 'file') {
        } else if (type_input == 'submit') {
        } else if (type_input == 'button') {
        } else {
            a[i].value = '';
        }
    }
}



/** Inserts text in textarea (replaces selection or insert to the end of text)
 * @param object oTextArea textarea object
 * @param string sText     text to insert
 * @return bool true
 */
function insertToTextArea(oTextArea, sText) 
{
    //for IE
    if (document.selection) 
    {
            oTextArea.focus();
            oSel = document.selection.createRange();
            oSel.text = sText;
    }
    //for MOZILLA/NETSCAPE
    else if (oTextArea.selectionStart || oTextArea.selectionStart == "0") 
    {
            var startPos  = oTextArea.selectionStart;
            var endPos    = oTextArea.selectionEnd;
            var str       = oTextArea.value;

            oTextArea.value = str.substring(0, startPos) + sText + str.substring(endPos, str.length);
    }
    else 
    {
            oTextArea.value += sText;
    }

    return true;
}

function setCookie(name, value)
{
    var cookie_date = new Date ( 2099, 01, 01 );
    document.cookie = name+"="+value+"; expires=" + cookie_date.toGMTString();
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function textCounter(field, cntfield, maxlimit) 
{
    if (!field) return;
    if (field.value.length > maxlimit) 
    {
        field.value = field.value.substring(0, maxlimit);
    }
    document.getElementById(cntfield).innerHTML = field.value.length;
}

function autotab(original, destination, keyCode)
{
    if (keyCode && keyCode >= 32 && keyCode != 46 && original.getAttribute && original.value.length == original.getAttribute("maxlength"))
    {
        destination.focus();
        destination.select();
    }
}

function $(element) 
{
    return document.getElementById(element);
} 

function copy_to_clipboard(text, msg)  
{  
    if(window.clipboardData)  
    {  
        window.clipboardData.setData('text',text);  
    }  
    else  
    {  
        var clipboarddiv=document.getElementById('divclipboardswf');  
        if(clipboarddiv==null)  
        {  
            clipboarddiv=document.createElement('div');  
            clipboarddiv.setAttribute("name", "divclipboardswf");  
            clipboarddiv.setAttribute("id", "divclipboardswf");  
            document.body.appendChild(clipboarddiv);  
        }  
        clipboarddiv.innerHTML='<embed src="/flash/clipboard.swf" FlashVars="clipboard='+  
        encodeURIComponent(text)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';  
    }  
    alert(msg);  
    return false;  
}
