var objectsUniqueIdCounter = 0;
function getObjUniqueId()
{
    objectsUniqueIdCounter++;
    var ret = "object-unique-id-" + objectsUniqueIdCounter + "";
    return ret;
}

var elamaMenu = null; // STUB убрать в другое место и систематизировать с остальными перемешками
var dialogSessionList = null;
var campaignNameInput;

var defaultCampaignName = "Кампания без названия";

var contextMenuesCollection = new Array();
//var keywordContextMenu = objGetKeywordMenuInst();
//var keywordStopContextMenu = objGetStopKeywordMenuInst();
// STUB можно тут для модности поставить вызовы методов Array'я
//contextMenuesCollection[contextMenuesCollection.length] = keywordContextMenu;
//contextMenuesCollection[contextMenuesCollection.length] = keywordStopContextMenu;



var fDebug = false;
var fDebugWordstat = false;
var fDebugXEP = false;

var flagCampaignHasBeenLoaded = false;

var SeemsToBeAuthorizedSmile = false;

var Console = null;

function startUp()
{
    var panel1 = addNewPanel(typePanelWordstat);
    var panel2 = addNewPanel(typePanelCampaign);
        $('#draggableindexPageHelp').draggable(
	{
	    helper: function()
	    {
		var value = "<small>1</small>"; // STUB 
		globalDragHelper = $('<div class="draghelper">' + value + '</div>');
		return globalDragHelper;
	    },
	    cursor: 'pointer',
	    cursorAt: { top: 0, left: 10}
	});
    elamaMenu = $('#elamaMenu');
    elamaMenu.dialog();
    elamaMenu.dialog("close");
    //dialogSessionList = $('#sessionList');
    //dialogSessionList.dialog();
    //dialogSessionList.dialog("close");
    setStatus("Тщт... Белка и Стрелка в упряжке, прием! Тщт...");
    var image2AutoLoadId = $(document).getUrlParam("imageAutoLoadId");
    if ((image2AutoLoadId !=null ) && (image2AutoLoadId.length>0))
    {
        BeginLoadingImage(image2AutoLoadId, "");
    }

    //var campaignNameInput = objGetFineInputInst("campaignName", "Лабел", function(stringEntered){ alert('campaign name input text entered callback');}, "Бефоре лабел");
    campaignNameInput = objGetSuperInputInst(true);
    campaignNameInput.jq.appendTo('#campaignNameContainer');
    campaignNameInput.SetValue(defaultCampaignName);
    //(sId, sButtonLabel, fTextEnteredCallback, sBeforeInputLabel)
    
    String.prototype.escapedHTML = function () {                                        
        return(                                                                 
            this.replace(/&/g,'&amp;').                                         
                replace(/>/g,'&gt;').                                           
                replace(/</g,'&lt;').                                           
                replace(/"/g,'&quot;')                                         
        );                                                                      
    };
    jQuery('#userNameProfile').attr('target','_blank');
    
    /*
    window.alert = function(msg, fCallback, callbackParams)
    {
        msg = "<br/>" + msg;
        $('<div>' + msg + '</div>').dialog({
                                                modal: true,
                                                buttons:
                                                {
                                                    "ОК":function(hz)
                                                    {
                                                        $(this).dialog("close");
                                                        if (fCallback!=null)
                                                        {
                                                            fCallback(callbackParams);
                                                        }
                                                    }
                                                },
                                                title: "еЛама как бы говорит нам:"
                                            }
                                           );
    }
                                      */
    //alert("Привет! :)");
    
    /*for (x in contextMenuesCollection)
    {
	var contextMenu = contextMenuesCollection[x];
	contextMenu.jq.appendTo('body');
	contextMenu.Initialize();
    }*/
    
    

    $('#login-window').submit(function(e)
			     {
				dialogMarkLoading ('.login-window');
				BeginProcessLoginOKButton();
				return false;
			     });
    
    if (fDebug == true)
    {
        $('<ul id="logWindow" style="font-family: impact; background-color: #000; color: #fff; font-size: 15px; position: absolute; bottom: 0; right: 0; width: 500px; height: 100px; border: 1px solid #000; overflow: scroll; z-index:1000000;">' 
        + '</ul>'
        + '<ul id="statusWindow" style="font-family: impact; background-color: #000; color: #fff; font-size: 15px; position: absolute; bottom: 0; right: 500px; width: 500px; height: 100px; border: 1px solid #000; overflow: scroll; z-index:1000000;">'
        + '</ul>').appendTo('body');
    }
    
    Console = objGetConsoleInst();
}
										function UpdateGUIAfterLogin (sLogin)
										{
											$('#iLogoffForm').removeClass("invisible");
											$('#iLogin').addClass("invisible");
											
											$('.authDefaultTrue').addClass('invisible');
											$('.authDefaultFalse').removeClass('invisible');
											
											$('#userNameProfile').text('[' + sLogin + ']');
										}
function GetJQXMLDoc(sXml)
{
    sXml = '<?xml version="1.0" encoding="UTF-8"?>' + '<root>' + sXml + '</root>'; // STUB эта операция может быть необязательной, соотв. реализовать триггер
    //alert(sXml);
    if (jQuery.browser.msie == true)
    {
	//alert("ie");
	xmldoc = new ActiveXObject('Microsoft.XMLDOM'); 
	xmldoc.async = false; 
	xmldoc.loadXML(sXml);
    }
    else
    {
	//alert("!ie");
	xmldoc = $(sXml);
    }
    return xmldoc;
}

function ProcessKeywordGlobalSmile(sKeyword)
{
    var panel = Panels[0]; // STUB ололо, остатки прошлых тем
    if (panel!=null)
    {
	var tab = panel.addWordstatTab(sKeyword);
	tab.ProcessKeyword(sKeyword);
	return tab;
    }
    return null;
/*
    var wTabs = getObjectsByType(typeWordstatTabsControl);
    if (wTabs.length > 0)
    {
	var wTab = wTabs[0];
	wTab.ProcessKeyword("сиськи");
    }
    */
}


var currentImageId = null;
function setCurrentImageCreds(sName, intId)
{
    //alert('setting campaign name to ' + sName + ' and id to ' + intId);
    campaignNameInput.SetValue(sName);
    currentImageId = intId;
}
function getCurrentImageName()
{
    return campaignNameInput.Value;
}
function getCurrentImageId()
{
    return currentImageId;
}
function trim(str) { // STUB чужая почти полностью копипаста :-P
    var chars = " ";
    return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) { // STUB чужая копипаста :-P 
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) { // STUB чужая копипаста :-P 
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function ClearKeyword(sKeyword)
{
    return sKeyword.escapedHTML();
    
}

function setStatus(statusString, bLoader, bBold)
{
        if (bLoader == null) // STUB можно и рипнуть
        {
            bLoader = false;
        }
        if (bBold == true)
        {
            statusString = "<b>" + statusString + "</b>";
        }
        if (bLoader == true)
        {
            $('#statusLoader').attr('title', statusString);
            // STUB копипаст из node.js, с заменой jq-селектора
            $('#statusLoader').each(function()
            {
		var tooltip = $(this).attr('title');
                $(this).hover(function(evt)
                    {
                        $('#elama-tooltip').text(tooltip).css(
                            {
                                left: evt.pageX + 'px',
                                top: evt.pageY + 22 + 'px'
                            });
                        $(this).attr('title','');
                    },
                    function()
                    {    
                        $(this).attr('title', tooltip);
                        $('#elama-tooltip').css(
                        {
                            left: '-9999px',
                            top: '-9999px'
                        });
                    })
            })
    
            $('#statusLoader').removeClass("invisible"); // Должно быть
            
            //$('#statusLoader').addClass("invisible");
            statusString += "...";
        }
        else
        {
            //$('#statusLoader').removeClass("invisible");
            $('#statusLoader').addClass('invisible'); // Должно быть
        }
    if (fDebug == true)
    {    
        var jqInformer = $("#statusWindow");
        $("*", jqInformer).remove();
        $("<li>" + statusString + "</li>").appendTo(jqInformer);
        jqInformer = $("#logWindow");
        $("<li>" + statusString + "</li>").appendTo(jqInformer);
    }
}

function setStatusOK(sMessage)
{
    if (sMessage!=null)
    {
        sMessage += "...";
        setStatus(sMessage, true);
    }
    
    setStatus("OK", false, true);
}
function Shadow()
{
    // STUB пока так, потом сделать чтобы ровно за выводимый объект ложился, типа ShowBehindObject(jqObject);
    $('.full-shadow').css({'z-index': 999});
    $('.full-shadow').show();
}
function UnShadow()
{
    $('.full-shadow').hide();    
}

function runtest()
{
    //alert('starting test');
    for (var i=0; i<2; i++)
    {
        var wordstatTab = addWordstatTab(addNewTab(objGetPanel(0), 'Вордстат'));
        wordstatTab.ProcessKeywordEntered();
        var campaignTab = addCampaignTab(addNewTab(objGetPanel(1), 'Кампания'));
        for (var adCounter = 0; adCounter< 3; adCounter++)
        {
            campaignTab.AddNewAd();
        }
    }
    //alert('test finished');
}

function ShowElamaMenu()
{
    //ReloadSessionsList();
    $('#elamaMenu').dialog("open");
    ShowSessionsList();
}
function SaveSession()
{
    var session = objGetSessionInst();
    session.SaveSession();
}
function ShowSessionDump()
{
    var session = objGetSessionInst();
    var sessionXMLDump = session.GetSessionXMLDump();
    //alert(sessionXMLDump);
}

function LoadNewestSession()
{
    var session = objGetSessionInst();
    session.LoadNewestSession();
}

function LoadSession(strSessionId)
{
    //alert("loading session with id " + strSessionId);
    var session = objGetSessionInst();
    session.LoadSession(strSessionId);
}

function guiGetSelectedSessionID()
{
    return $(sessionComboboxContainer[sessionComboboxContainer.selectedIndex]).attr('name');
}
function GetSelectedInboxSessionId()
{
    
}
function ShowSessionsList()
{
    var session = objGetSessionInst();
    session.ShowSessionsList();
}

function ShowDialog(strHeader, strMessage)
{
    var code = '<div>' + strMessage + '</div>';
    var el = $(code);
    el.dialog({
        title: strHeader,
        width: 250,
        height: 150,
        resizable: true,
        draggable: true,
        position: "center",
        buttons: {  
        "Отправить": function() {
            alert("Вы нажали кнопку Отправить");
        },  
          "Закрыть": function() {
            $(this).dialog("close");
            alert("Вы нажали кнопку Закрыть");
        }  
        }  
    });
}

function getObjectById(id)
{
    var obj = Objects[''+id+''];
    return obj;
}
function getObjectsByType(sType)
{
    var result = new Object();
    for (x in Objects)
    {
	var obj = Objects[x];
	if (obj.Type == sType)
	{
	    result[asSize(result)] = obj;
	}
    }
    return result;
}
	    var wordstatTabsCount = 0;
	    function AssignWordstatTabId()
	    {
		var ret = '#wordstat-tab-' + wordstatTabsCount;
		wordstatLastTabId = ret;
		wordstatTabsCount++;
		return ret;
	    }
	    function GetLastAssignedWordstatTabId()
	    {
		var ret = '#wordstat-tab-' + (wordstatTabsCount-1);
		return ret;
	    }
	    
	    function CopySelectedKeywords()
	    {
			var count = 0;
			var keywords2CopyArr = new Array();
			$(".check").each(function() { if ($(this).attr("checked") == true) { keywords2CopyArr[count] = $(this).attr("value"); count++; } });
			
			for (x in keywords2CopyArr)
			{
				CopyKeyword2BufferCurrent(keywords2CopyArr[x]);
				
			}
	    }
	    var buffer = new Array();
	    function AddKeyword2Buffer(keyword)
	    {
		if (KeywordInBuffer(keyword) == false)
		{
		    buffer[buffer.length] = keyword;
		}
	    }
	    function KeywordInBuffer(keyword)
	    {
		for (x in buffer)
		{
		    if (buffer[x] == keyword)
		    {
			return true;
		    }
		}
		return false;
	    }
	    function RedrawBufferContents()
	    {
		ClearGUIBuffer();
		LoadBufferContentsIntoGUI();
	    }
	    function ClearGUIBuffer()
	    {
		$("#buffer").children("li").remove();
	    }
	    function LoadBufferContentsIntoGUI()
	    {
		for (x in buffer)
		{
		    AddKeyword2BufferGUI(buffer[x]);
		}
	    }
	    function AddKeyword2BufferGUI(keyword)
	    {
		$('<li class="bufferKeyword">' + keyword + '</li>').appendTo('#buffer');
	    }
            function getKeyCode(e)
            {
                var code;
                if (!e) var e = window.event;
                if (e.keyCode)
                    code = e.keyCode;
                else
                    if (e.which) code = e.which;
                return code;
            }
	    
	    function AddKeyword2Clipboard(keyword)
	    {
                alert('AddKeyword2Clipboard: ' + encodeURIComponent(keyword));
		if (window.clipboardData)
		{
		    window.clipboardData.setData("Text",keyword);
		}
		else
		{
		    var flashcopier = "flashcopier";
		    if(!document.getElementById(flashcopier))
		    {
			var divholder = document.createElement('div');
			divholder.id = flashcopier;
			document.body.appendChild(divholder);
		    }
		    document.getElementById(flashcopier).innerHTML = '';
		    var divinfo = '<embed src="_clipboard.swf" FlashVars="clipboard='+encodeURIComponent(keyword)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
		    document.getElementById(flashcopier).innerHTML = divinfo;
		}
	    }
            /*
            function addWordstatTab(objTab)
            {
                
                var wordstatTab = getWordstatTabsControlInst(objTab.getNextControlId());
                objTab.addControl(wordstatTab);
                wordstatTab.Parent = objTab;
                
                return wordstatTab;
            }
           */
            function addBufferTab(objTab)
            {
                var nextControlId = objTab.getNextControlId();
                var bufferControl = getBufferControlInst(nextControlId);
                objTab.addControl(bufferControl);
                return;
            }
            /*
            function addCampaignTab(objTab)
            {
                var nextControlId = objTab.getNextControlId();
                var campaignControl = getCampaignControlInst(nextControlId);
                for (var i =0; i<3; i++)
                {
                    campaignControl.AddNewAd();
                }
                objTab.addControl(campaignControl);
                return campaignControl;
            }
           */
            function setTabContents(objTab, jqContents)
            {
                objTab.addContents(jqContents);
            }
            
            function toggleToolbar(jqToolbar, domAElement)
            {
                if (jqToolbar.is(':hidden') == false)
                {
                    jqToolbar.slideUp('slow');
                }
                else
                {
                    jqToolbar.slideDown('slow');
                }
                $(domAElement).toggleClass('inverted');
            }
            
            /**
* Function : dump()
* Arguments: The data - array,hash(associative array),object
*    The level - OPTIONAL
* Returns  : The textual representation of the array.
* This function was inspired by the print_r function of PHP.
* This will accept some data as the argument and return a
* text that will be a more readable version of the
* array/hash/object that is given.
*/
function dump(arr,level) {
var dumped_text = "";
if(!level) level = 0;

//The padding given at the beginning of the line.
var level_padding = "";
for(var j=0;j<level+1;j++) level_padding += "    ";

if(typeof(arr) == 'object') { //Array/Hashes/Objects
 for(var item in arr) {
  var value = arr[item];
 
  if(typeof(value) == 'object') { //If it is an array,
   dumped_text += level_padding + "'" + item + "' ...\n";
   dumped_text += dump(value,level+1);
  } else {
   dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
  }
 }
} else { //Stings/Chars/Numbers etc.
 dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
}
return dumped_text;
}

       var MAX_DUMP_DEPTH = 0;

       

       function dumpObj(obj, name, indent, depth) {

              if (depth > MAX_DUMP_DEPTH) {

                     return indent + name + ": <Maximum Depth Reached>\n";

              }

              if (typeof obj == "object") {

                     var child = null;

                     var output = indent + name + "\n";

                     indent += "\t";

                     for (var item in obj)

                     {

                           try {

                                  child = obj[item];

                           } catch (e) {

                                  child = "<Unable to Evaluate>";

                           }

                           if (typeof child == "object") {

                                  output += dumpObj(child, item, indent, depth + 1);

                           } else {

                                  output += indent + item + ": " + child + "\n";

                           }

                     }

                     return output;

              } else {

                     return obj;

              }

       }


var userClickedElementsStack = new Array();
var userClickCanBePushed = true;
function PushUserClick(jqElClicked, clearOldestClicks)
{
    if (clearOldestClicks == null)
    {
	clearOldestClicks = true;
    }
    if (userClickCanBePushed == true)
    {
	//alert('Pushing user click...');
	if (clearOldestClicks == true)
	{
	    ClearUserClicks();
	}
	userClickedElementsStack[userClickedElementsStack.length] = jqElClicked;
    }
    else
    {
	//alert("Ignoring pushing user click");
    }
}
function PopUserClick()
{
    //alert('Popping user click...');
    if (userClickedElementsStack.length>0)
    {
	var ret = userClickedElementsStack[0];
	userClickedElementsStack = userClickedElementsStack.splice(0, 1);
	return ret;
    }
    else
    {
	return null;
    }
}
function PopAndClickUserClick()
{
    //alert('Popping and clicking user clicks...');
    var el = PopUserClick();
    if (el == null)
    {
	if (fDebug==true)
	{
	    alert("Ошибка возврата к предыдущему действию, будьте внимательны, повторите предыдущую операцию!");
	}
	setStatus("Ошибка возврата к предыдущему действию, будьте внимательны, повторите предыдущую операцию!");
	return false;
    }
    else
    {
	userClickCanBePushed = false;
	el.click();
	userClickCanBePushed = true;
	return true;
    }
}
function ClearUserClicks()
{
    //alert('Clearing user clicks...');
    userClickedElementsStack = new Array();
}
function UserClicksExist()
{
    return userClickedElementsStack.length > 0;
}
function dialogSelect(arrElements, fCallback)
{
    // STUB копипаста этого диалога используется в dialogNewCampaignName
    var html = "<div class=\"image-select\"><ul></ul></div>"; /* Имя кампании: <input type=\"text\" /> */
    
    var jqDialog = $(html);
    var jqDialogSelectElement = $('ul', jqDialog);
    for (x in arrElements)
    {
        var elementText = arrElements[x];
        var elementId = x;
        var htmlElement = '<li><label for="im' + elementId + '"><input type="radio" value="' + elementId + '" name="imageSelect" id="im' + elementId + '" />' + elementText + '</label></li>';
        var jqElement = $(htmlElement);
        jqElement.appendTo(jqDialogSelectElement);
    }
    
    jqDialog.appendTo('body');
	$('li',jqDialog).each(function(i){
		if(i%2){
			$(this).addClass('even');
		}
		$(this).hover(function(){
			$(this).addClass('hover');
		},function(){
			$(this).removeClass('hover');
		})
	})
	$(':radio',jqDialog).each(function(){
		$(this).click(function(){
			if($(this).attr('checked') == true) {
				$(':radio',jqDialog).not(this).parents('li').removeClass('selected');
				$(this).parents('li').eq(0).addClass('selected');
			}
		})
	})
    jqDialog.dialog({
                        title: 'Выберите шаблон рекламной кампании',
                        modal:true,
                        resizable:true,
						width:620,
						height:470,
                        close: function (event, ui)
                        {
                            fCallback(null);
                        },
                        buttons:
                        {
                            "Да": function(event, ui)
                            {
                                $(':radio', jqDialogSelectElement).each (function (index, el)
                                                                            {
                                                                                el = $(el);
                                                                                if (el.attr('checked') == true)
                                                                                {
                                                                                    fCallback(el.attr('value'), el.parent('label').text());
                                                                                    jqDialog.dialog("close");
                                                                                    return;
                                                                                }
                                                                                fCallback(null);
                                                                            } );
                                                                            jqDialog.remove();
                            },
                            "Нет": function (event, ui)
                            {
                                jqDialog.dialog("close");
                                jqDialog.remove();
                            },
                            "Не знаю": function (event, ui)
                            {
                                alert('Выберите шаблон рекламной кампании и нажмите "Да". В редактор загрузятся все объявления, которые вы создали, и данные по запросам, с которыми вы работали.');
                            }
                        }
                        
                    });
}
var oddShuffle = function()
{
    //alert(id.attr('class'));
    $('.ad').each(function(i)
    {
        $(this).removeClass('oddNode');
        if(i%2)
        {
            $(this).addClass('oddNode');
        }
    })
}

function SaveImageAndRedirect2ExcelDownloader()
{
    SaveImageRoutine(Redirect2ExcelDownloader);
}
function Redirect2ExcelDownloader(imageId)
{
    if (imageId != null)
    {
        window.open('http://my.elama.ru/images.php?action=file&id=' + imageId + '&rs_id=378');
        window.open('http://my.elama.ru/images.php?action=file&id=' + imageId + '&rs_id=377');
        ///my/images.php?action=file&id=687&rs_id=378
    }
}

/* Возвращает */
function ProcessTypicalXEPErrors(XEPResponsePart)
{
	
    if (XEPResponsePart.Status == soapStatusError)
    {
	switch (XEPResponsePart.StatusCode)
	{
	    case XEPErrorCodeNeedAuth:
			alert("Вы очень долго не обращались к сервису, поэтому, пожалуйста, авторизируйтесь еще раз! Спасибо! :)");
			//$('#login-window').dialog('open');
			return true;
		break;
		
	    default:
			return false;
		break;
	}
    }
    else
    {
	if (fDebug == true)
	{
	    alert('Супер-ошибка, которой не может быть. Позвоните разработчикам!');
	}
	return false;
    }
}




/* */
//var yandex = 50, begun = 40, google = 30;
function comparator(el,yaMaxLength,beMaxLength,guMaxLength)
{
    //jQuery(el);
    var res1 = yaMaxLength - jQuery(el).val().length;
    var res2 = beMaxLength - jQuery(el).val().length;
    var res3 = guMaxLength - jQuery(el).val().length;
    var minRes = Math.min(res1,res2,res3);
    var maxRes = Math.max(res1,res2,res3);
    //jQuery('#www').text(res2);
    jQuery('.vsego', jQuery(el).parents('.input-wrap')).text(jQuery(el).val().length);
    jQuery('.ya', jQuery(el).parents('.input-wrap')).text(res1);
    //jQuery('#www').text(jQuery('.ya',jQuery(el).parents('.input-wrap')).text());
    jQuery('.be', jQuery(el).parents('.input-wrap')).text(res2);
    jQuery('.gu', jQuery(el).parents('.input-wrap')).text(res3);
    if (res1 < 0) 
        {
            jQuery('.ya', jQuery(el).parents('.input-wrap')).css({
                color:'red',
                fontWeight:700
            });
        }
    else 
        {
            jQuery('.ya', jQuery(el).parents('.input-wrap')).css({
                color:'#000',
                fontWeight:400
            });
        }
    if (res2 < 0) 
        {
            jQuery('.be', jQuery(el).parents('.input-wrap')).css({
                color:'red',
                fontWeight:700
            });
        }
    else 
        {
            jQuery('.be', jQuery(el).parents('.input-wrap')).css({
                color:'#000',
                fontWeight:400
            });
        }
    if (res3 < 0) 
        {
            jQuery('.gu', jQuery(el).parents('.input-wrap')).css({
                color:'red',
                fontWeight:700
            });
        }
    else 
        {
            jQuery('.gu', jQuery(el).parents('.input-wrap')).css({
                color:'#000',
                fontWeight:400
            });
        }
    if(minRes < 0)
        {
            jQuery(el).css('color','red');
            jQuery(el).parents('.input-wrap').addClass('warning');
        }
    else
        {
            jQuery(el).css('color','#444');
            jQuery(el).parents('.input-wrap').removeClass('warning');
        }
    if(maxRes < 0)
        {
            //jQuery(el).css('background','#fee');
            jQuery(el).parents('.input-wrap').addClass('strictwarning');
        }
    else
        {
            //jQuery(el).css('background','#fff');
            jQuery(el).parents('.input-wrap').removeClass('strictwarning');
        }
    
}
var tabResize = function()
{
    if($('.content').length > 0 )
        	{
        		$('.content').each(function()
        		{
        			var parenTag = $(this).parents('.inbox');
        			if($('.word-filter:visible',parenTag))
        			{
        				var word_filter_height = $('.word-filter:visible',parenTag).height();
        				if(word_filter_height!=null)
        				word_filter_height = word_filter_height + 7;
        			}
        			var panelTabUl_height = $('.panelTabUl',parenTag).height();
                    //console.log(panelTabUl_height);
        			var topPanelBlock_height = $('.topPanelBlock',parenTag).height()+10;
        			if (jQuery.browser.msie)
        			topPanelBlock_height = $('.topPanelBlock', parenTag).height() + 18;
        			var correctHeight = word_filter_height + panelTabUl_height + topPanelBlock_height;
        			$(this).height(parenTag.height()-correctHeight);
        		})
        	}
}
