var menuselidx=-1;
var hideidx=-1;
var timer;

function getabsoluteX(element) {
	x=0;
	do {
		x+=element.offsetLeft; 
		element=element.offsetParent;
	} while(element!=null);
	return x;
}

function getabsoluteY(element) {
	y=0;
	do {
		y+=element.offsetTop; 
		element=element.offsetParent;
	} while(element!=null);
	return y;
}

function rollover(idx, state) {
	var item=document.getElementById('item'+idx);
	var itemarrow=document.getElementById('itemarrow'+idx);
	if(state) {
		item.className='menuitemsel';
		itemarrow.src='/i/mainmenu/hoverarrow.gif';
		menuselidx=idx;
	}
	else {
		item.className='menuitem';
		itemarrow.src='/i/empty.gif';
		menuselidx=-1;
		submenu(idx, false);
	}
}

function getAbsolutePos(el, depth) {
	var SL = 0, ST = 0;
	var is_div = /^div$/i.test(el.tagName);
	if (is_div && el.scrollLeft)
		SL = el.scrollLeft;
	if (is_div && el.scrollTop)
		ST = el.scrollTop;
	var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
	if (el.offsetParent) {	    
		var tmp = getAbsolutePos(el.offsetParent,depth+1);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	return r;
};

function getVisib(obj){
	var value = obj.style.visibility;
	if (!value) {
		if (document.defaultView && typeof (document.defaultView.getComputedStyle) == "function") { // Gecko, W3C
			if (!Calendar.is_khtml)
				value = document.defaultView.getComputedStyle(obj, "").getPropertyValue("visibility");
			else
				value = '';
		} else if (obj.currentStyle) { // IE
			value = obj.currentStyle.visibility;
		} else
			value = '';
	}
	return value;
};

function submenu(idx, state) {
	var submenu=document.getElementById('submenu'+idx);
	var item=document.getElementById('item'+idx);
	if(submenu!=null) {
		var itemarrow=document.getElementById('itemarrow'+idx);
		if(state) {
			//positioning submenu
			submenu.style.left=getabsoluteX(item);
			submenu.style.top=getabsoluteY(item)+item.offsetHeight-3;
			submenu.style.display='block';
			
			//for IE
			var p = getAbsolutePos(submenu,0);
			var EX1 = p.x;
			var EX2 = submenu.offsetWidth + EX1;
			var EY1 = p.y;
			var EY2 = submenu.offsetHeight + EY1;
			
			var tags=new Array("applet", "iframe", "select");
			for(var k=tags.length; k>0; ) {
				var ar=document.getElementsByTagName(tags[--k]);
				var cc=null;
				//alert(ar.length);
				for(var i=ar.length; i>0;) {
					cc = ar[--i];
					p = getAbsolutePos(cc,0);
					var CX1 = p.x;
					var CX2 = cc.offsetWidth + CX1;
					var CY1 = p.y;
					var CY2 = cc.offsetHeight + CY1;
					
					if (self.hidden || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) {
						if (!cc.__msh_save_visibility) {
							cc.__msh_save_visibility = getVisib(cc);
						}
						cc.style.visibility = cc.__msh_save_visibility;
					} else {
						if (!cc.__msh_save_visibility) {
							cc.__msh_save_visibility = getVisib(cc);
						}
						cc.style.visibility = "hidden";
					}
				}
			}
			//for IE END
		}
		else {
			submenu.style.display='none';
			//for IE
			var p = getAbsolutePos(submenu,0);
			var EX1 = p.x;
			var EX2 = submenu.offsetWidth + EX1;
			var EY1 = p.y;
			var EY2 = submenu.offsetHeight + EY1;
			
			var tags=new Array("applet", "iframe", "select");
			for(var k=tags.length; k>0; ) {
				var ar=document.getElementsByTagName(tags[--k]);
				var cc=null;
				for(var i=ar.length; i>0;) {
					cc = ar[--i];
					p = getAbsolutePos(cc,0);
					var CX1 = p.x;
					var CX2 = cc.offsetWidth + CX1;
					var CY1 = p.y;
					var CY2 = cc.offsetHeight + CY1;
					
					if (self.hidden || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) {
						if (!cc.__msh_save_visibility) {
							cc.__msh_save_visibility = getVisib(cc);
						}
						cc.style.visibility = cc.__msh_save_visibility;
					} else {
						if (!cc.__msh_save_visibility) {
							cc.__msh_save_visibility = getVisib(cc);
						}
						cc.style.visibility = "visible";
					}
				}
			}
			//for IE END
		}
	}
	return false;
}

function menuover(idx) {
	clearTimeout(timer);
	if(hideidx!=-1 && hideidx!=idx) {
		rollover(hideidx, false);
	}
	rollover(idx, true);
	submenu(hideidx, false);
}

function menuarrowover(idx) {
	menuover(idx);
	var itemarrow=document.getElementById('itemarrow'+idx);
	itemarrow.src='/i/mainmenu/activearrow.gif';
	submenu(idx, true);
}

function menuout(idx) {
	timer=setTimeout('rollover('+idx+', false)', 150);
	hideidx=idx;
}

function menumousedown(idx) {
	//submenu(idx, true);
}

function submenuclick(element) {
	document.location.href=element.href;
}

var expandedimg='/i/buttons/expanded_small.gif';
var collapsedimg='/i/buttons/collapsed_small.gif';

function expand(id) {
	element=document.getElementById(id);
	elementimg=document.getElementById(id+'img');
	if(element==null) return;
	if(element.style.display!='none') {
		element.style.display='none';
		elementimg.src=collapsedimg;
	}
	else {
		element.style.display='block';
		elementimg.src=expandedimg;
	}
}


////////////////////////////////////////////////////////////////////////////////////////////


var menusectionnumber = 0;
var timeoutId = null;
var t_itemname = '';
var t_imgfile = '';
var t_active = true;
var active_menu = '';

function getNextSectionNumber()
{
	var i = menusectionnumber;
	menusectionnumber++;
	return i;
}


function createMenu( itms )
{
	return "<table class=\"mainmenupointsholder\" cellpadding=\"0\" cellspacing=\"0\">"+
		"<tr>"
			+itms+
	"	</tr>"+
	"</table>";
}

function createMenuItem( title, imgfile, url, active, itms, guid )
{
	var imgurl = 'i/roimenu/'+(active==true ? 'active' : 'normal' )+'/'+imgfile+'.gif';
	var itemname = 'menuitem_'+imgfile+(Math.round(Math.abs(Math.random()*1000))).toString();
	
	if(active)
	    active_menu = itemname;
	
    var imgfile = '';

	var submenu = '<div id="'+itemname+'_submenu" class="submenuholder_hidden">'+( itms==undefined ? '' : itms )+'</div>';       
   
	return (active==true ? '<td style="width: 5px"><img src="/i/siteheader/submenu_left.png" alt="x" /></td>' : '') +
	    '<td id="'+itemname+'_holder" class="'+(active==true ? 'itemholder_active' : 'itemholder' )+'" '+
		'onmouseover=\'menuItemState("'+itemname+'","'+imgfile+'",true);\'" onmouseout=\'menuItemState("'+itemname+'","'+imgfile+'",false);\'"'+	
		'>' + 
		'<a class="itemlink" href="'+url+'"'+( guid ? ' name="mnitm'+guid+'"' : '' )+'>'+
		title + 
		'</a>' +
	    ( itms==undefined ? '' : submenu )+
	    '</td>' +
	    (active==true ? '<td style="width: 5px"><img src="/i/siteheader/submenu_right.png" alt="x" /></td>' : '');	    
}


function createSubmenu(itms)
{
	return '<div style=\'height: 24px\' class="submenucontainer" onmouseover=\'clearTime();\' onmouseout=\'timeOutOn()\'>'+itms+'</div>';
}

function clearTime()
{
    if(timeoutId != null)
    {
        clearTimeout(timeoutId);
    }   
}

function timeOutOn()
{
    if(timeoutId != null)
    {
        timeoutId = window.setTimeout(function() { changeMenuItemState(active_menu); }, 1000);
    }
}

function createSubmenuItem(title, imgfile, url, active, guid)
{
	var imgurl = 'i/roimenu/submenu/'+imgfile+'.gif';
	return '<span class="s_menu"><a href="' + url + '">' + title + '</a></span>';
}


function menuItemState(itemname, imgfile, active) {  
    
    if (active == false) {
        clearTime();
        timeoutId = window.setTimeout(function() { changeMenuItemState(active_menu); }, 500);
    }
    else {
        clearTime();
        timeoutId = window.setTimeout(function() { changeMenuItemState(itemname); }, 500);
    }    
}

function changeMenuItemState(itemname)
{
    var subMenuContent = document.getElementById("sub_menu_holder");		
	var holder = findElement(itemname+'_holder');
	var img = findElement(itemname+'_icon');
	var submenu = findElement(itemname+'_submenu');
	
	if (active_menu == itemname) {
	    subMenuContent.innerHTML = "";
	    $get('sub_menu_holder_active').style.display = "inline";
	    
	} else {
	    subMenuContent.innerHTML = submenu.innerHTML;
	    $get('sub_menu_holder_active').style.display = "none";
	}
}


function findElement(elementName)
{
	if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1)
		return document.getElementById(elementName);
	else
		return document.all[elementName];
}

////////////////////////////////////////////////////////////////////////////////////////////

function openHelpWindow(URL)
{
	w = 760;
	h = 560;
	resizable = "yes";
	if (getPlatform()=="Win" && getBrowser()=="netscape") resizable = "no";
	if (getPlatform()=="Mac" && getBrowser()=="IE") resizable = "no";
	if (getPlatform()=="Mac" && getBrowser()=="netscape") resizable = "no";
	helpwin = window.open(URL,"HelpWindow","width="+w+", height="+h+", left="+(screen.width-w)/2+", top="+(screen.height-h)/2+", scrollbars=no, toolbar=no, menubar=no, status=no, resizable="+resizable);
}

function openAuditWindow(URL)
{
	w = 820;
	h = 570;
	window.open(URL,"AuditWindow","width="+w+", height="+h+", left="+(screen.width-w)/2+", top="+(screen.height-h)/2+", scrollbars=yes, toolbar=no, menubar=no, status=no, resizable=yes");
}

//function openTrWindow(URL)
//{
//	w = 760;
//	h = 600;
//	window.open(URL,"AuditWindow","width="+w+", height="+h+", left="+(screen.width-w)/2+", top="+(screen.height-h)/2+", scrollbars=yes, toolbar=no, menubar=no, status=no, resizable=yes");
//}

function openEmailDistributionWindow(URL)
{
	w = 500;
	h = 380;
	window.open(URL,"EmailDitributionWindow","width="+w+", height="+h+", left="+(screen.width-w)/2+", top="+(screen.height-h)/2+", scrollbars=yes, toolbar=no, menubar=no, status=no, resizable=yes");
}

function openExportedListWindow(URL) {
    w = 1000;
    h = 650;
    window.open(URL, "ExportedListWindow", "width=" + w + ", height=" + h + ", left=" + (screen.width - w) / 2 + ", top=" + (screen.height - h) / 2 + ", scrollbars=yes, toolbar=no, menubar=no, status=no, resizable=yes");
}

function openStrategyDiagramWindow(URL)
{
	w = 860;
	h = 300;
	window.open(URL,"StrategyDiagramWindow","width="+w+", height="+h+", left="+(screen.width-w)/2+", top="+(screen.height-h)/2+", scrollbars=yes, toolbar=no, menubar=no, status=no, resizable=yes");
}

function openEditKeywordPopup(ParentKeywordID, paramID) {
    var w = 900;
    var h = 650;
    var args = getArgs(h, w);
    window.open('/?_t=EditKeyword&KeywordID=' + ParentKeywordID + '&KeywordParameterID=' + paramID, 'windowEditKeyword', args);
    return false;
}

function openEditAdPopup(adid, categoryid, type) {
    if (!categoryid) categoryid = false;
    var w = 900;
    var h = 750;
    var args = getArgs(h, w);
    if (!categoryid) {
        window.open('/?_t=editad&adid=' + adid, 'windowEditKeyword', args);
    } else {
    window.open('/?_t=editad&catid=' + categoryid + '&type=' + type, 'windowEditKeyword', args);
    }
    return false;
}

function openEditPlacementPopup(placementid, accid) {
    var w = 750;
    var h = 350;
    var args = getArgs(h, w);
    window.open('/?_t=editplacement&accid=' + accid + '&placementid=' + placementid, 'windowEditKeyword', args);    
    return false;
}

function getArgs(h, w) {
    var left = (screen.width - w) / 2;
    var top = (screen.height - h) / 2;
    return 'resizable=yes,scrollbars=yes,status=0,titlebar=no,width=' + w + ',height=' + h + ',left=' + left + ',top=' + top;
}


////////////////////////////////////////////////////////////////////////////////////////////
var iactive = new Array();
var inormal = new Array();
var smbg;
//var smbg1;
var smbg2;

function cacheIcons()
{
	inames=new Array("agency","tracking","ppcsemanager","keywordsmanager","reports","description","gettingstarted","price","products");		
	N = inames.length;	
	for (i=0;i<N;i++){
		iactive[i] = new Image();
		iactive[i].src = APP_PATH+"/i/roimenu/active/"+inames[i]+".gif";
		inormal[i] = new Image();
		inormal[i].src = APP_PATH+"/i/roimenu/normal/"+inames[i]+".gif";		
	}
	smbg = new Image();
	smbg.src = APP_PATH+"/i/roimenu/mainmenu_bg_tip.gif";
	smbg1 = new Image();
	smbg1.src = APP_PATH+"/i/roimenu/mainmenu_tip.gif";
	smbg2 = new Image();
	smbg2.src = APP_PATH+"/i/siteheader/logo_bg.gif";	
}


var hidePoint=new Array();

function doHidePoint(){	
	if (!hidePoint) return;
	if (hidePoint.length==0) return;
	hp = hidePoint.shift();
	hp.className = "menuitem";	
}

function cutPoint(link){
	var index=-1;
	for ( i=0; i<hidePoint.length; i++ )
	{
		if (hidePoint[i]==link) index=i;
	}
	if (index<0) return;
	hidePoint.splice(index,1);
}

function menuItemState_Old(state, item_code, img_filename, section){	
	if (lockMainMenu) return;	
	//if (!section) alert ("Section is null!!!");	
	var img = document.images['menuimg'+item_code];
	if (!state)
	{
		//alert("here am i!!!");
		if (getPlatform()=="Mac" && getBrowser()=="IE"){
			section.className = "menuitem";
		}
		else
		{
			hidePoint.push(section);
			window.setTimeout(doHidePoint,400);
		}
	}
	else
	{
		section.className = (state)?"menuitemhover":"menuitem";
		cutPoint(section);
	}
	img.src="/i/siteheader/menuicons/"+((state==1)?"active":"normal")+"/"+img_filename;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////


function findElement(elementName){
	if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
		return document.getElementById(elementName);
	}
	else {
		return document.all[elementName];
	}
}
function countField(fieldPointer,maxValue){
	var cC = findElement(fieldPointer.id+'Counter');
	if (fieldPointer.value.length > Number(maxValue)) fieldPointer.value = fieldPointer.value.substr(0,Number(maxValue));
	cC.innerHTML=fieldPointer.value.length+' of '+maxValue+'';
}
function findElementById(form, elementId)
{
	for (var i = 0; i < form.elements.length; i++) 
	{
		if (form.elements[i] && form.elements[i].id && form.elements[i].tagName) 
		{
			var pos = form.elements[i].id.indexOf(elementId);
			if (pos >= 0 && (pos + elementId.length) == form.elements[i].id.length) 
			{
				return form.elements[i];
			}
		}
	}
	return null;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////

				var formDefaultButton='';
				var currentDefB='';
				var disableDefaultButton=false;
				var lockDefB=false;

				function checkFormSubmit(event){
					if (lockDefB)return;
					if (disableDefaultButton && currentDefB=='') { filterButtons(event); return; }
					if (formDefaultButton=='' && currentDefB=='')return;
					if (currentDefB=='') {
						//if (document.all) btn=document.all[formDefaultButton];
						//	else
						
						//if (document.getElementById) 
						btn=document.getElementById(formDefaultButton);
					}
						else
							//btn=document.all[currentDefB];
							btn=document.getElementById(currentDefB);
					if (btn) {
						fnTrapKD(btn, event);
                        return false;						
					}
				}
				function registerDefaultButton(btn){
					currentDefB=btn;
				}
				function unRegisterDefaultButton(btn){
					currentDefB='';
				}
				function lockDefaultButton(){
					lockDefB=true;
				}
				function unlockDefaultButton(){
					lockDefB=false;
				}
				function fnTrapKD(btn, event){
						if (document.all){
							if (event.keyCode == 13){
								event.returnValue=false;
								event.cancel = true;
								btn.click();
							}
						}
					else 
						if (document.getElementById){   // Äëÿ Firefox
							if (event.which == 13){
								event.returnValue=false;
								event.cancel = true;
								btn.click();
                                if (event.preventDefault) {  
                                    event.preventDefault();	
                                }								
							}
						}
					else 
						if(document.layers){
							if(event.which == 13){
								event.returnValue=false;
								event.cancel = true;
								btn.click();
							}
						}
				}
				
				
				
				function filterButtons(event){
						if (document.all){
							if (event.keyCode == 13){
								event.returnValue=false;
								event.cancel = true;
							}
						}
					else 
						if (document.getElementById){
							if (event.which == 13){
								event.returnValue=false;
								event.cancel = true;
							}
						}
					else 
						if(document.layers){
							if(event.which == 13){
								event.returnValue=false;
								event.cancel = true;
							}
						}
				}

////// main menu fixing  ///////////////////////////////////////////////////////////////////////////////


var lockMainMenu=false;
function setWaitMode(page){
	lockMainMenu=true;
	if (!page) page="";
	window.status = "Opening page "+page+"...";
}

////// multiplatformic ///////////////////////////////////////////////////////////////////////////////


function getPlatform() {
  var isMac, isPC, machine;
  if (parseInt(navigator.appVersion)>=4) {
   isMac = (navigator.platform == "MacPPC");
   isPC = (navigator.platform == "Win32");
   if (isMac)
   machine="Mac";
   if(isPC)
   machine="Win";
  }
  return machine;
 }
 
 function getBrowser(){
	if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
		return "netscape"
	}
	if (window.navigator.appName.toLowerCase().indexOf("microsoft inter") > -1) {
		return "IE"
	}
 }
 
 /*~~~~~~~~*/
 function fixHelpForNetscape(){
	var hp = findElement("helppanel");
	if (!hp) return;
	ht.style.pixelHeight=window.innerHeight;
 }
 /*~~~~~~~~*/

  function stringUnicodeLength(str) {
      var valueLen = 0;
      for (i = 0; i < str.length; i++){
          var code = escape(str.charAt(i));
          if ((code.length >= 4) && (code < '%uFF60' || code > '%uFF9F')){
            valueLen += 2;
          } else {
            valueLen +=1;
          }
      }
      return valueLen;
  }

  function limitExtensionForDynamicText(field, yahoo) {
      if (yahoo) {
          var templateTokens = new Array("keyword:");
      } else {
          var templateTokens = new Array("keyword:", "param1:", "param2:");
      }
      var extendBy = 0;
      for (var i = 0; i < templateTokens.length; i++) {
          var templateBase = "{" + templateTokens[i] + "}";
          var templateRegExp = new RegExp("\\{" + templateTokens[i] + "[^\\}]+\\}", "i");
          var results = templateRegExp.exec(field.value);
          if (results) {
              extendBy += templateBase.length;
          }
      }

      var results = field.value.match(/\{keyword\}/);
      if (results) {
          extendBy += "{keyword}".length - 1;
      }

      if (field.maxLength) {
          if (!field.maxLengthSaved) {
              field.maxLengthSaved = field.maxLength;
          }
          field.maxLength = field.maxLengthSaved + extendBy;
      }
      
      return extendBy;
  }

  //if target = null and checkit_only = true returns count of checked checkboxes
  //checkall button object
  //check - check or uncheck, if 'invert' - invert current value
  //checkit_only - set the initial state of checkall button
  //part of id of checkboxes to check
  function CheckAllCheckboxes(target, check, checkit_only, id2check) {
      if (!checkit_only) checkit_only = false;

      var elements = document.body.getElementsByTagName("INPUT");
      var cChecked = 0;
      var cAll = 0;
      for (var i = 0; i < elements.length; i++) {
          var elem = elements[i];
          if (elem.name) {
              if (elem.name.indexOf(id2check) > -1) {
                  if (!checkit_only) {
                      if (check == 'invert')
                          elem.checked = !elem.checked;
                      else
                          elem.checked = check;
                  }
                  if (elem.checked) cChecked++;
                  cAll++;
              }
          }
      }
      if (checkit_only) {
          if (target) {
              var cbAll = target;
              if (cAll == cChecked) {
                  cbAll.checked = true;
              } else {
                  cbAll.checked = false;
              }
          }
          return cChecked;
      }
  }

  function CountCheckedCheckboxes(id2check) {
      var count = CheckAllCheckboxes(null, false, true, id2check);
      return count;
  }