Array.prototype.timerMap = function(fn, cnt) {
    var i=-1;
    var arr = this;
    //var res_fn = $handler();
    var res = [];
    var tm = window.setInterval(function() {
            var j = cnt;
            while(j--) {
                do { i++; } while(i<arr.length && arr[i]==undefined);
                if(i<arr.length)
                    res[i] = fn(arr[i]);
                else {
                    //res_fn(res);
                    if(tm!=null) {
                        window.clearInterval(tm);
                        tm = null;
                    }
                }
            }
        }, 10);
    return {
            position: function() {
                return i;
            },
            finished: function() {
                return tm==null;
            },
            cancel: function() {
                window.clearInterval(tm);
                tm = null;
            }/*,
            onfinish: res_fn*/
        }
}

function ptProcessTag(tag, tagList) {
    var arr = tag.split(" ");
    var attr = {};
    for (var i = 1; i < arr.length; i++) {
        var x = arr[i].split("=", 2);
        attr[x[0].toLowerCase()] = x[1];
    }
    if (tagList[arr[0].toLowerCase()])
        return (tagList[arr[0].toLowerCase()])(attr);
    else
        return "{" + tag + "}";
}

function fromSequence(seq) {
    var arr= new Array(seq.length);
    for (var i= seq.length; i-->0;)
        if (i in seq)
            arr[i]= seq[i];
    return arr;
};

function ptReplace(node, tagList) {
    var re = /\{[\w\s"=]+\}/;
    if(node!=null)
    {
        var arrayNodes=fromSequence(node.childNodes)
        arrayNodes.timerMap(function(nd) {
        {

            if (nd.nodeName == "#text") {
                var nodes = [];
                var val = nd.nodeValue;
                while (val) {
                    var p = val.search(re);
                    if (p == -1) {
                        nodes.push(val);
                        val = false;
                    } else {
                        nodes.push(val.substring(0, p));
                        nodes.push(ptProcessTag(val.substring(p + 1, val.indexOf("}", p)).replace(/\s+/, " "), tagList));
                        val = val.substring(val.indexOf("}", p) + 1, val.length);
                    }
                }
                for (var i in nodes) {

                    if (nodes[i].nodeName) {
                        //console.info("1:"+nodes[i].nodeName);
                        node.insertBefore(nodes[i], nd);
                    }
                    else {
                        //sconsole.info("2:"+nodes[i]);
                        if(nodes[i].prototype==null)
                        node.insertBefore(document.createTextNode(nodes[i]), nd);
                    }
                }
                node.removeChild(nd);
            } else
                ptReplace(nd, tagList);
        }
        }, 10);
    }
}

var ptTagList = {
    image: function(attr) {
        var tags = document.getElementsByTagName("div");
        var found = false;
        for (var i = 0; i < tags.length; i++) {
            if (tags[i].className == "imageGroup") {
                tags = tags[i];
                found = true;
                break;
            }
        }
        if (!found)
            return document.createTextNode(" ");
        tags = tags.removeChild(tags.firstChild);
        if (attr.width) {
            if (/\d/.test(attr.width.substring(attr.width.length - 1, attr.width.length)))
                attr.width += "px";
            tags.firstChild.style.width = tags.style.width = attr.width;
        }
        if (attr.align) {
            attr.align = /right/i.test(attr.align) ? "right" : "left";
        } else
            attr.align = "left";
        with (tags.style) {
            display = "block";
            position = "static";
            cssFloat = tags.style.styleFloat = attr.align;
            margin = "7px";
        }
        return tags;
    }
}
var ignoreTags = {
    image: function() {
        return document.createTextNode("");
    }
}


function replaceTags()
{
   ptReplace(document.getElementById("CONTENT_value"), ptTagList);
   ptReplace(document.getElementById("main_text"), ignoreTags);
}


function fillFormWithValue()
{

    var hrefStr=window.location.href;

    if(hrefStr.indexOf('searchType=GENERAL&')!=-1)
    {

        var stIndex=hrefStr.indexOf("textValue=")+10;
        var endIndex=hrefStr.substr(stIndex).indexOf('&');
        var inputTextValue;

        if(endIndex!=-1)
        {
            inputTextValue=decodeURI(hrefStr.substr(stIndex,endIndex));
        }
        else
        {
            inputTextValue=decodeURI(hrefStr.substr(stIndex));
        }

        $("#29633046").val(inputTextValue.replace(/\+/g, ' '));
    }

}



function fillFormExtWithValues()
{

    var hrefStr=window.location.href;

    if(hrefStr.indexOf('searchType=GENERALEXT&')!=-1)
    {

        var stIndex=hrefStr.indexOf("stocknum=")+9;
        var endIndex=hrefStr.substr(stIndex).indexOf('&');
        var inputTextValue;

        if(endIndex!=-1)
        {
            inputTextValue=decodeURI(hrefStr.substr(stIndex,endIndex));
        }
        else
        {
            inputTextValue=decodeURI(hrefStr.substr(stIndex));
        }

        $("#stocknum").val(inputTextValue);

        stIndex=hrefStr.indexOf("opisnum=")+8;
        endIndex=hrefStr.substr(stIndex).indexOf('&');

        if(endIndex!=-1)
        {
            inputTextValue=decodeURI(hrefStr.substr(stIndex,endIndex));
        }
        else
        {
            inputTextValue=decodeURI(hrefStr.substr(stIndex));
        }

        $("#opisnum").val(inputTextValue);

        stIndex=hrefStr.indexOf("unitnum=")+8;
        endIndex=hrefStr.substr(stIndex).indexOf('&');

        if(endIndex!=-1)
        {
            inputTextValue=decodeURI(hrefStr.substr(stIndex,endIndex));
        }
        else
        {
            inputTextValue=decodeURI(hrefStr.substr(stIndex));
        }

        $("#unitnum").val(inputTextValue);


        stIndex=hrefStr.indexOf("fondnum=")+8;
        endIndex=hrefStr.substr(stIndex).indexOf('&');

        if(endIndex!=-1)
        {
            inputTextValue=decodeURI(hrefStr.substr(stIndex,endIndex));
        }
        else
        {
            inputTextValue=decodeURI(hrefStr.substr(stIndex));
        }

        $("#fondnum").val(inputTextValue);


        stIndex=hrefStr.indexOf("numb=")+5;
        endIndex=hrefStr.substr(stIndex).indexOf('&');

        if(endIndex!=-1)
        {
            inputTextValue=decodeURI(hrefStr.substr(stIndex,endIndex));
        }
        else
        {
            inputTextValue=decodeURI(hrefStr.substr(stIndex));
        }

        $("#numb").val(inputTextValue);


        stIndex=hrefStr.indexOf("name=")+5;
        endIndex=hrefStr.substr(stIndex).indexOf('&');

        if(endIndex!=-1)
        {
            inputTextValue=decodeURI(hrefStr.substr(stIndex,endIndex));
        }
        else
        {
            inputTextValue=decodeURI(hrefStr.substr(stIndex));
        }

        $("#name").val(inputTextValue);
    }

}


function rgiaWait() {

    /*if(jQuery.trim($("#29633046").val())!='')
    { */
        $("#myform").attr('action','generalSearch.do');
        //document.forms['myform'].action='generalSearch.do';
        $("#wait_box").css("display", "block" );

    /*}
    else
    {
        $("#myform").attr('action','');
        alert("??????? ???????? ??? ??????!");
        //document.forms['myform'].action='';
    } */

}

function enterKey(event,formName)
 {

    if((event.keyCode == 0xA)||(event.keyCode == 0xD))
       {

           if(jQuery.trim($("#unitnum").val())!='' && jQuery.trim($("#opisnum").val())!='' &&
              jQuery.trim($("#stocknum").val())!='' ||
              jQuery.trim($("#stocknum").val())!='' && jQuery.trim($("#opisnum").val())!='' ||
              jQuery.trim($("#stocknum").val())!='' ||
              jQuery.trim($("#fondnum").val())!='' &&  jQuery.trim($("#opisnum").val())!='' ||
              jQuery.trim($("#fondnum").val())!='' ||  jQuery.trim($("#name").val())!='' ||
              jQuery.trim($("#numb").val())!='')
          {
              document.forms[formName].onsubmit();
              document.forms[formName].submit();
              $("#dialogForm").dialog("close");
          }
          else
          {
              alert("\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043d\u0430\u0447\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430!");
          }

          return false;
       }
 }

function getTypeSearch()
{
    var hrefStr=window.location.href;
    if(hrefStr.indexOf('GENERALEXT&')!=-1)
    {
           var stIndex=hrefStr.indexOf("objectType=")+11;
           var endIndex=hrefStr.substr(stIndex).indexOf('&');
           var objectType="";

           if(endIndex!=-1)
           {
                objectType=decodeURI(hrefStr.substr(stIndex,endIndex));
           }
           else
           {
                objectType=decodeURI(hrefStr.substr(stIndex));
           }

           $("#objectTypeSelect").val(objectType);

           dispFields(objectType);
           fillFormExtWithValues();
    }
    else
    {
        $("#objectTypeSelect").val("10523");
        dispFields("10523");
        fillFormExtWithValues();
    }

}

  function showTextInputs(typeSearch)
  {

       dispFields(typeSearch.value);
  }


  function dispFields(type)
  {
      if(type=="10523")
       {
          $("#numb").css('display', 'inline');
          $("#numbLabel").css('display', 'inline');
          $("#numb").val('');
          $("#numbTr").css('display', '');

          $("#fondnum").css('display', 'none');
          $("#fondnumLabel").css('display', 'none');
          $("#fondnum").val('');
          $("#fondnumTr").css('display', 'none');

          $("#unitnum").css('display', 'none');
          $("#unitnumLabel").css('display', 'none');
          $("#unitnum").val('');
          $("#unitnumTr").css('display', 'none');


          $("#opisnum").css('display', 'none');
          $("#opisnumLabel").css('display', 'none');
          $("#opisnum").val('');
          $("#opisnumTr").css('display', 'none');


          $("#stocknum").css('display', 'none');
          $("#stocknumLabel").css('display', 'none');
          $("#stocknum").val('');
          $("#stocknumTr").css('display', 'none');


          $("#name").css('display', 'none');
          $("#nameLabel").css('display', 'none');
          $("#name").val('');
          $("#nameTr").css('display', 'none');



       } else if(type=="10600")
       {
          $("#numb").css('display', 'none');
          $("#numbLabel").css('display', 'none');
          $("#numb").val('');
          $("#numbTr").css('display', 'none');

          $("#fondnum").css('display', 'inline');
          $("#fondnumLabel").css('display', 'inline');
          $("#fondnum").val('');
          $("#fondnumTr").css('display', '');

          $("#unitnum").css('display', 'none');
          $("#unitnumLabel").css('display', 'none');
          $("#unitnum").val('');
          $("#unitnumTr").css('display', 'none');

          $("#opisnum").css('display', 'inline');
          $("#opisnumLabel").css('display', 'inline');
          $("#opisnum").val('');
          $("#opisnumTr").css('display', '');

          $("#stocknum").css('display', 'none');
          $("#stocknumLabel").css('display', 'none');
          $("#stocknum").val('');
          $("#stocknumTr").css('display', 'none');

          $("#name").css('display', 'none');
          $("#nameLabel").css('display', 'none');
          $("#name").val('');
          $("#nameTr").css('display', 'none');

       }else if(type=="10680")
       {
          $("#numb").css('display', 'none');
          $("#numbLabel").css('display', 'none');
          $("#numb").val('');
          $("#numbTr").css('display', 'none');

          $("#fondnum").css('display', 'none');
          $("#fondnumLabel").css('display', 'none');
          $("#fondnum").val('');
          $("#fondnumTr").css('display', 'none');

          $("#unitnum").css('display', 'inline');
          $("#unitnumLabel").css('display', 'inline');
          $("#unitnum").val('');
          $("#unitnumTr").css('display', '');

          $("#opisnum").css('display', 'inline');
          $("#opisnumLabel").css('display', 'inline');
          $("#opisnum").val('');
          $("#opisnumTr").css('display', '');

          $("#stocknum").css('display', 'inline');
          $("#stocknumLabel").css('display', 'inline');
          $("#stocknum").val('');
          $("#stocknumTr").css('display', '');

          $("#name").css('display', 'none');
          $("#nameLabel").css('display', 'none');
          $("#name").val('');
          $("#nameTr").css('display', 'none');

       } else if(type=="10340" || type=="10000" || type=="10360")
       {
          $("#numb").css('display', 'none');
          $("#numbLabel").css('display', 'none');
          $("#numb").val('');
          $("#numbTr").css('display', 'none');

          $("#fondnum").css('display', 'none');
          $("#fondnumLabel").css('display', 'none');
          $("#fondnum").val('');
          $("#fondnumTr").css('display', 'none');

          $("#unitnum").css('display', 'none');
          $("#unitnumLabel").css('display', 'none');
          $("#unitnum").val('');
          $("#unitnumTr").css('display', 'none');

          $("#opisnum").css('display', 'none');
          $("#opisnumLabel").css('display', 'none');
          $("#opisnum").val('');
          $("#opisnumTr").css('display', 'none');

          $("#stocknum").css('display', 'none');
          $("#stocknumLabel").css('display', 'none');
          $("#stocknum").val('');
          $("#stocknumTr").css('display', 'none');

          $("#name").css('display', 'inline');
          $("#nameLabel").css('display', 'inline');
          $("#name").val('');
          $("#nameTr").css('display', '');

       }
  }



function ClearForm(formName)
{
    form = document.forms[formName];

    for (var loop = 0; loop < form.elements.length; loop++)
    {

        if ( form.elements[loop].name == "numb" ||  form.elements[loop].name == "name" ||
             form.elements[loop].name == "fondnum" ||  form.elements[loop].name == "unitnum" ||
             form.elements[loop].name == "opisnum" ||  form.elements[loop].name == "stocknum" )
        {
             form.elements[loop].value = '';
        }
    }
}








