var PATH_VESSEL_SUBTYPE = "/?cmd=companies/sl_vessel_subtype.xml.2&vtype=";

function _action(sActionName, nParam)
{
        if(typeof jQuery == 'undefined'){
	        if($('_action')) {$('_action').value=sActionName;}
	        if($('_action_param')) {$('_action_param').value=nParam;}
	        $('frm').submit();
        }else{
        	if($('#_action')) {$('#_action').val(sActionName);}
	        if($('#_action_param')) {$('#_action_param').val(nParam);}
	        $('#frm').get(0).submit();
        }
}

function _ctrlCompanyOpen(ctrlName, sActive)
{
        if (!ctrlName) ctrlName = "company_id";
        var sFeatures = "top=200,left=200,height=250,width=575,status=yes,toolbar=no,menubar=no,location=no";
        var cmd = "/?cmd=_control/company.2&ctrl=" + ctrlName;
        if (sActive != "") cmd += "&active=" + sActive;
        var wnd=window.open(cmd, "ctrlCompany", sFeatures);
        wnd.focus();
}

function vesseltype_onchange(cboVesselType, cboVesselSubtype)
{
        cboVesselSubtype.SetNewDataPath(PATH_VESSEL_SUBTYPE + cboVesselType.value);
}

/*        CHECKBOX CONTROL        =============================================                */
function _chkOnClick(rChk, rChildCtrl)
{
        if (rChk.checked) rChildCtrl.value = rChk.value;
        else rChildCtrl.value = 0;
}
/*        END CHECKBOX CONTROL        =============================================                */

/* Code for Counting remain of symbols in textarea */
function storeCaret (textEl) {
  if (textEl.createTextRange)
    textEl.caretPos = document.selection.createRange().duplicate();
}
function insertAtCaret (textEl, text) {
  if (textEl.createTextRange && textEl.caretPos) {
    var caretPos = textEl.caretPos;
    caretPos.text =
      caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?
        text + ' ' : text;
  }
  else
    textEl.value  = text;
}
function checkLimit(oText, limit)
{
        if (typeof(oText) != "object")
                return false;

        storeCaret(oText);

        if (!(event.type == "keypress" && event.keyCode == 8)
                && !((event.type == "keyup" || event.type == "keydown") && event.keyCode == 46))
        {
                var len = oText.innerText.length;
                if (event.type == "paste")
                {
                        var pasteTxt = window.clipboardData.getData("Text");
                        insertAtCaret(oText, pasteTxt.substring(0, limit - len));

                        event.returnValue = false;
                }
                else if (event.type == "drop")
                {
                        if (event.dataTransfer.dropEffect == "copy"
                                || (event.dataTransfer.dropEffect == "none" && event.ctrlKey == true))
                        {
                                var pasteTxt = event.dataTransfer.getData('Text');
                                pasteTxt = pasteTxt.substring(0, limit - len);
                                var oRange = oText.createTextRange();
                                oRange.moveToPoint(event.x, event.y);
                                oRange.text = pasteTxt;
                                oRange.select();

                                event.returnValue = false;
                        }
                }
                else if (limit <= len)
                {
                        event.returnValue = false;
                }
        }
        updateRemain(oText, limit);
}

function updateRemain(oText, limit)
{
        if (window.event)
        {
                event.cancelBubble = true;
        }

        if (!$('oText'))
        {
                return false;
        }
        var oLimit = document.getElementById($('oText').id + "_limit");
        var len = $('oText').innerText.length;
        if (event != null && event.type == "cut")
        {
                len -= document.selection.createRange().text.length;
        }
        if (limit < len)
                oLimit.value = "0";
        else
                oLimit.value = limit - len;
}

function initLimiter(name, lim)
{
        var o = document.getElementById(name);
        o = document.getElementById(name);
        var t = 'updateRemain(this, ' + lim + ');';
        o.oncut = new Function(t);
        //o.change = new Function(t);
        t = 'checkLimit(this, ' + lim + ');';
        o.onkeypress = new Function(t);
        o.onpaste = new Function(t);
        o.onkeyup = new Function(t);
        o.ondrop = new Function(t);
        t = 'storeCaret(this);';
        o.onselect = new Function(t);
        o.onclick = new Function(t);
        o.oncut();
}

function setCountSymbols(elem){
	if(elem.value.length > 2000) return false;
	else $('count_symbols').innerHTML = " "+elem.value.length+" ";
}
/* end of Code for Counting remain of symbols in textarea */
