function bookmarkURL(title)
{
    if (title == '')
        title = document.title;

    try{
        window.external.AddFavorite(document.location.href,title);
    }
    catch (e)
    {
        try{
            window.sidebar.addPanel(title, document.location.href,"");
        }
        catch(e1){}
    }
}

function $(id)
{
    return document.getElementById(id);
}


function sendJAction() 
{
    //arguments[0] - action
    //arguments[1] - module, if empty - current module
    //other arguments - parameters, ex. sendJAction('update', 'user', 'id', 5);
    //         sendJAction('update', '', 'id', 5, 'pid', 10);
    el = document.getElementById('xForm');
    if (el)
    {
        document.body.removeChild(el);
    }

    var xForm = document.createElement('FORM');
    var elemAction = document.createElement('INPUT');

    xForm.id = 'xForm';

    elemAction.setAttribute('type', 'hidden');
    elemAction.setAttribute('name', 'action');
    elemAction.setAttribute('value', arguments[0]);
    xForm.appendChild(elemAction);

    var Form = document.getElementById("mainform");
    var elemModule = document.createElement('INPUT');
    elemModule.setAttribute('name', 'module');
    elemModule.setAttribute('type', 'hidden');
    if (arguments[1])
        elemModule.setAttribute('value', arguments[1]);
    else 
        elemModule.setAttribute('value', Form.module.value);
    xForm.appendChild(elemModule);


    for (var i=2; i<arguments.length; i+=2)
    {
        var elem = document.createElement('INPUT');
        elem.setAttribute('name', arguments[i]);
        elem.setAttribute('type', 'hidden');
        try{elem.setAttribute('value', arguments[i+1]); }catch(e){};
        xForm.appendChild(elem);
    }
    xForm.setAttribute('method', 'post');
    xForm.target = '_self';

    document.body.appendChild(xForm);

    xForm.submit();
}

function Trim(str)
{
var re1 = /^\s*/;
var re2 = /\s*$/;
return str.replace(re1, "").replace(re2, "");
}

function checkForm2()
{
    var Form;
    
    if (arguments[0])
    {
        if (typeof arguments[0] == 'object')
        {
            Form = arguments[0];
        }
    }
    if (!Form)
        Form = document.getElementById(arguments[0]?arguments[0]:'mainform');

    if (Form != null)
    {

        var tElement = Form.getElementsByTagName("INPUT");
        for (var i=0; i<tElement.length; i++)
        {
		tElement[i].value=Trim(tElement[i].value);
            if (tElement[i].type == "text" || tElement[i].type == "password")
            {
                if ((tElement[i].getAttribute('req') != null) && (tElement[i].getAttribute('req') != '') && (tElement[i].value == '' && tElement[i].getAttribute('maynull') != '1'))
                {
                    alert(tElement[i].getAttribute('req'));
                    tElement[i].focus();
                    return false;
                }
                if ((tElement[i].getAttribute('req') != null) && (tElement[i].getAttribute('req') != '') && (tElement[i].type == 'checkbox') && !tElement[i].checked)
                {
                    alert(tElement[i].getAttribute('req'));

                    
                    tElement[i].focus();
                    return false;
                }
                if ((tElement[i].getAttribute('equal') != null) && (tElement[i].getAttribute('equal') != '')  && tElement[i].value!='')
                {
                    var t = tElement[i].getAttribute('equal');
                    eval("var tt = Form." + t);
                    if ((tt != null) && ((tt.value != tElement[i].value) && !(tElement[i].getAttribute('maynull') == '1' && tElement[i].value=='' && tt.value=='')))
                    {
                        alert(tElement[i].getAttribute('equaltext'));
                        tt.focus();
                        return false;
                    }
                }

                if ((tElement[i].getAttribute('is_email') != null) && (tElement[i].getAttribute('is_email') != '')  && tElement[i].value!='')
                {
                    var re = /^[0-9a-zA-Z&]([-_.]?[0-9a-zA-Z&])*@[0-9a-zA-Z&]([-.]?[0-9a-zA-Z&])*\.[a-zA-Z]{2,4}?$/; //[a-wyz][a-z](g|l|m|pa|t|u|v|fo)?
                    if (!tElement[i].value.match(re)) {
                        alert(tElement[i].getAttribute('is_email'));
                        tElement[i].focus();
                        return false;
                    }
                }
                
                if ((tElement[i].getAttribute('minlength') != null) && (tElement[i].getAttribute('minlength') != '') && (tElement[i].value.length < tElement[i].getAttribute('minlength'))&& !(tElement[i].getAttribute('maynull') == '1' && tElement[i].value=='' && tt.value==''))
                {
                    
                    alert(tElement[i].getAttribute('mintext'));
                    tElement[i].focus();
                    return false;
                }
            }
            else
            {
                if ((tElement[i].getAttribute('req') != null))
                {
                    var selected = false;
                    var all_group = document.getElementsByName(tElement[i].name);
                    for (var j=0; j<all_group.length; j++)
                        if (all_group[j].checked)
                            selected = true;
                    
                    if (!selected)
                    {
                        var v;
                        if (tElement[i].required && tElement != 'undefined')
                            v = 'Required field';
                        else
                            v = tElement[i].getAttribute('req'); 
                        alert(v);
                        tElement[i].focus();
                        return false;
                    }
                }
            }
        }

        tElement = Form.getElementsByTagName("SELECT");
        for (var i=0; i<tElement.length; i++)
        {
            if ((tElement[i].getAttribute('req') != null) && (tElement[i].getAttribute('req') != '') && (tElement[i].value == ''))
            {
                alert(tElement[i].getAttribute('req'));
                tElement[i].focus();
                return false;
            }
        }


        tElement = Form.getElementsByTagName("TEXTAREA");
        for (var i=0; i<tElement.length; i++)
        {
            if ((tElement[i].getAttribute('req') != null) && (tElement[i].getAttribute('req') != '') && (tElement[i].value == ''))
            {
                alert(tElement[i].getAttribute('req'));
                tElement[i].focus();
                return false;
            }
        }
        return true;
    }
    else
    {
        return false;
    }

}
function checkForm2_with_chk()
{
    var Form;
    if (arguments[0])
    {
        if (typeof arguments[0] == 'object')
        {
            Form = arguments[0];
        }
    }
    if (!Form)
        Form = document.getElementById(arguments[0]?arguments[0]:'mainform');

    if (Form != null)
    {

        var tElement = Form.getElementsByTagName("INPUT");
        for (var i=0; i<tElement.length; i++)
        {                                         
            if (tElement[i].type == "text" || tElement[i].type == "password")
            {
            	tElement[i].value=Trim(tElement[i].value);
                if ((tElement[i].getAttribute('req') != null) && (tElement[i].getAttribute('req') != '') && (tElement[i].value == '' && tElement[i].getAttribute('maynull') != '1'))
                {
                    alert(tElement[i].getAttribute('req'));
                    tElement[i].focus();
                    return false;
                }
                if ((tElement[i].getAttribute('req') != null) && (tElement[i].getAttribute('req') != '') && (tElement[i].type == 'checkbox') && !tElement[i].checked)
                {
                    alert(tElement[i].getAttribute('req'));

                    
                    tElement[i].focus();
                    return false;
                }
                if ((tElement[i].getAttribute('equal') != null) && (tElement[i].getAttribute('equal') != ''))
                {
                    var t = tElement[i].getAttribute('equal');
                    eval("var tt = Form." + t);
                    if ((tt != null) && ((tt.value != tElement[i].value) && !(tElement[i].getAttribute('maynull') == '1' && tElement[i].value=='' && tt.value=='')))
                    {
                        alert(tElement[i].getAttribute('equaltext'));
                        tt.focus();
                        return false;
                    }
                }

                if ((tElement[i].getAttribute('is_email') != null) && (tElement[i].getAttribute('is_email') != ''))
                {
                    var re = /^[0-9a-zA-Z&]([-_.]?[0-9a-zA-Z&])*@[0-9a-zA-Z&]([-.]?[0-9a-zA-Z&])*\.[a-zA-Z]{2,4}?$/;//[a-wyz][a-z](g|l|m|pa|t|u|v|fo)?
                    if (!tElement[i].value.match(re)) {
                        alert(tElement[i].getAttribute('is_email'));
                        tElement[i].focus();
                        return false;
                    }
                }
                
                if ((tElement[i].getAttribute('minlength') != null) && (tElement[i].getAttribute('minlength') != '') && (tElement[i].value.length < tElement[i].getAttribute('minlength'))&& !(tElement[i].getAttribute('maynull') == '1' && tElement[i].value=='' && tt.value==''))
                {
                    
                    alert(tElement[i].getAttribute('mintext'));
                    tElement[i].focus();
                    return false;
                }
            }
            else if (tElement[i].type == "checkbox" && tElement[i].getAttribute('req') == 'require')
            {
              var count_boxes = tElement[i].getAttribute('count_boxes');
              var prefix_boxes = tElement[i].getAttribute('prefix_boxes');
              var check_selected = false;
              for (var j=1; j<=count_boxes; j++)
              {
                if(document.getElementById(prefix_boxes + "_" + j).checked)
                {
                  check_selected = true;
                }
              }
              if (!check_selected)
              {
                v = tElement[i].getAttribute('error_message');
                alert(v);
                return false;
              }
              
            } 
            else
            {
            
                if ((tElement[i].getAttribute('req') != null))
                {
                    var selected = false;
                    var all_group = document.getElementsByName(tElement[i].name);
                    for (var j=0; j<all_group.length; j++)
                        if (all_group[j].checked)
                            selected = true;
                    
                    if (!selected)
                    {
                        var v;
                        if (tElement[i].required && tElement != 'undefined')
                            v = 'Required field';
                        else
                            v = tElement[i].getAttribute('req'); 
                        alert(v);
                        tElement[i].focus();
                        return false;
                    }
                }
            }
        }

        tElement = Form.getElementsByTagName("SELECT");
        for (var i=0; i<tElement.length; i++)
        {
            if ((tElement[i].getAttribute('req') != null) && (tElement[i].getAttribute('req') != '') && (tElement[i].value == ''))
            {
                alert(tElement[i].getAttribute('req'));
                tElement[i].focus();
                return false;
            }
        }


        tElement = Form.getElementsByTagName("TEXTAREA");
        for (var i=0; i<tElement.length; i++)
        {
            if ((tElement[i].getAttribute('req') != null) && (tElement[i].getAttribute('req') != '') && (tElement[i].value == ''))
            {
                alert(tElement[i].getAttribute('req'));
                tElement[i].focus();
                return false;
            }
        }
        return true;
    }
    else
    {
        return false;
    }

}

function getBounds(tElement)
{
  var left = tElement.offsetLeft,
        top = tElement.offsetTop,
        parent;
  for (parent = tElement.offsetParent; parent; parent = parent.offsetParent)
  {
    left += parent.offsetLeft;
    top += parent.offsetTop;
  }
  return {left: left, top: top, width: tElement.offsetWidth, height: tElement.offsetHeight};
}

function setPosition()
{
    var scrollTop = document.body.scrollTop,
        tElement = arguments[0],
        tBounds = arguments[1],
        w = tElement.clientWidth,
        h = tElement.clientHeight,
        winW = document.body.clientWidth,
        winH = document.body.clientHeight,
        vPX = 0,
        tHeightNotSet = true;
    
    if ((w + tBounds.left > winW) && (winW - w + tBounds.left > w))
        tElement.style.left = tBounds.left - w + tBounds.width;
    else
        tElement.style.left = tBounds.left;

    if (h + tBounds.top > winH + scrollTop)
    {
        if (h - tBounds.top > 0)
            if (h + tBounds.top - winH - scrollTop > h - tBounds.top)
                tHeightNotSet = false;
    }
    
    if ((tBounds.top + h > winH + scrollTop) && tHeightNotSet)
        if (tBounds.top - h - scrollTop > 0)
            tHeightNotSet = false;
    
    if ((winH - tBounds.top + scrollTop - h - tBounds.height < 0) && (tBounds.top - scrollTop - h > winH - tBounds.top + scrollTop - h - tBounds.height))
        tHeightNotSet = false;

    if (tHeightNotSet)
        tElement.style.top = tBounds.top + tBounds.height + vPX
    else
        tElement.style.top = tBounds.top - h - vPX;
}


function setAddonBlockHeight(){
	// vertical align/ filling empty space
	var addon_div=$(arguments[0]); //empty div inserted in short div
	var higest=$(arguments[1]);			  //Higest div
	var shorted=$(arguments[2]);
	var dx = arguments[3];
	if (typeof(dx)=='undefined') {
		dx=0;	//for IE
	}
	if(navigator.appName=='Microsoft Internet Explorer'){dx=2;}
	newHeight=higest.offsetHeight-shorted.offsetHeight+dx;
	if (newHeight>0) {
		addon_div.style.height=newHeight+'px';
	}
	
}
function applyBlogHeights (sIdBlock1,sIdBlock2,sIdBlock1Add,sIdBlock2Add,add) {
/*	if (iYFix==null) {
		iYFix=0;
	}*/
	newHeight1=$(sIdBlock1).offsetHeight;
	newHeight2=$(sIdBlock2).offsetHeight;
	if (newHeight2>newHeight1) {
		setAddonBlockHeight(sIdBlock1Add,sIdBlock2,sIdBlock1,add);
	} else {
		setAddonBlockHeight(sIdBlock2Add,sIdBlock1,sIdBlock2,add);
	}
}


