  //Script by David F. Miller, http://www.alistapart.com/issues/173/
  
  // this function is needed to work around 
  // a bug in IE related to element attributes
  function hasClass(obj) {
     var result = false;
     if (obj.getAttributeNode("class") != null) {
         result = obj.getAttributeNode("class").value;
     }
     return result;
  }   

 function stripe(id) {

    // the flag we'll use to keep track of 
    // whether the current row is odd or even
    var even = false;
  
    // if arguments are provided to specify the colours
    // of the even & odd rows, then use the them;
    // otherwise use the following defaults:
    var evenColor = arguments[1] ? arguments[1] : "#fff";
    var oddColor = arguments[2] ? arguments[2] : "#F2EEE6";
  
    // obtain a reference to the desired table
    // if no such table exists, abort
    var table = document.getElementById(id);
    if (! table) { return; }
    
    // by definition, tables can have more than one tbody
    // element, so we'll have to get the list of child
    // &lt;tbody&gt;s 
    var tbodies = table.getElementsByTagName("tbody");

    // and iterate through them...
    for (var h = 0; h < tbodies.length; h++) {
    
     // find all the &lt;tr&gt; elements... 
      var trs = tbodies[h].getElementsByTagName("tr");
      
      // ... and iterate through them
      for (var i = 0; i < trs.length; i++) {

        // avoid rows that have a class attribute
        // or backgroundColor style
        if (! hasClass(trs[i]) &&
            ! trs[i].style.backgroundColor) {
 		  
          // get all the cells in this row...
          var tds = trs[i].getElementsByTagName("td");
        
          // and iterate through them...
          for (var j = 0; j < tds.length; j++) {
        
            var mytd = tds[j];

            // avoid cells that have a class attribute
            // or backgroundColor style
            if (! hasClass(mytd) &&
                ! mytd.style.backgroundColor) {
        
              mytd.style.backgroundColor =
                even ? evenColor : oddColor;
            
            }
          }
        }
        // flip from odd to even, or vice-versa
        even =  ! even;
      }
    }
  }

function toggle(smID,hrefObj){
  if(document.getElementById(smID).className == 'submenuHide'){
    document.getElementById(smID).className = 'submenuShow';
    hrefObj.className = 'menuitemActive';
  }else{
    document.getElementById(smID).className = 'submenuHide';
    hrefObj.className = 'menuitem';
  }  
}

function setActiveSubmenu(){
  //var menus = new Array('about','comp','services','registration');
  var menus = new Array('about','comp','registration');
  for(j=0;j<menus.length;j++){
    submenu=document.getElementById(menus[j]);
    k=0;
    for(i=0;i<submenu.children.length;i++){
      if(submenu.children(i).children(0).className=='smenuitemActive') k=1;
    }
    submenu.className=(k==1)?'submenuShow':'submenuHide';
    if(k==1) submenu.parentNode.children(0).className='menuitemActive';
  }
}

function go_anchor(anchor_id){
  var y=0;
  o=document.getElementById(anchor_id);
  while(o = o.offsetParent){ y += o.offsetTop; }
  window.scrollTo(0,y);
}

function reset_form(){
  frm=document.getElementById('RegForm');
  for(i=0;i<frm.elements.length;i++){
    if(frm.elements[i].tagName != "SELECT"){ frm.elements[i].value = ""; frm.elements[i].checked = false;}
  }
}

// ---------- start[region tree functions]
img_root='images/';
function addNode(nodeID,nodeName,nodeText,nodeLink,Options,isOpen,parNode){
	this.nodeID=nodeID;
	this.nodeName=nodeName;
	this.nodeText=nodeText;
	this.nodeLink=nodeLink;
	this.Options=Options;
	if(isOpen) openNodes[openNodes.length]=nodeName;
	this.childNodes=new Array();
	if(parNode){
		this.parentNode=new Object();
		this.parentNode=parNode;
		parNode.childNodes[parNode.childNodes.length]=this;
	}
}
// draw tree in <div id=divID>
function init(divID){
	viewNode(n0,"");
	divID = (divID > "")?divID:"tree";
	document.getElementById(divID).innerHTML=result_str;
}
// is this node last in subtree?
function lastBrother(curNode){
	var parNode=curNode.parentNode;
	if(parNode){
		if(parNode.childNodes[parNode.childNodes.length-1]==curNode) return true;
	}
	return false;
}
// open/close nodes
function openClose(nodeName,isLastBrother){
	bottom=isLastBrother?"bottom":"";
	if(document.getElementById(nodeName).className=="Show"){
		document.getElementById(nodeName).className="Hide";
		document.getElementById("plus_"+nodeName).src=img_root+"plus"+bottom+".gif";
		for(i in openNodes.length) if(openNodes[i]==nodeName) delete openNodes[i];
	}else{
		document.getElementById(nodeName).className="Show";
		document.getElementById("plus_"+nodeName).src=img_root+"minus"+bottom+".gif";
		openNodes[openNodes.length]=nodeName;
	}
}

function nodeIsOpen(nodeName){
	for(i=0;i<openNodes.length;i++) if(openNodes[i]==nodeName) return true;
	return false;
}
// main recursive function
function viewNode(curNode,joinImage){
	var childNodes=curNode.childNodes.length;
	var isRoot=!curNode.parentNode;
	var nodeName=curNode.nodeName;

	if(showRoot || curNode.parentNode){
		if(childNodes){
			divClose="";
			if(nodeIsOpen(curNode.nodeName)){
				divClass="Show";
				plus="minus";
				folder="folderopen";
			}else{
				divClass="Hide";
				plus="plus";
				folder="folder";
			}
			img="<img src='"+img_root+plus+".gif' onClick='openClose(\""+nodeName+"\",false);' id='plus_"+nodeName+"' align='absbottom' class='cursorHand'>";
			if(lastBrother(curNode) || isRoot) {
                                img="<img src='"+img_root+plus+"bottom.gif' onClick='openClose(\""+nodeName+"\",true);' id='plus_"+nodeName+"' align='absbottom'>";
                        }
		        divOpen="<div class='"+divClass+"' id='"+curNode.nodeName+"'>";
			img+="<input type=checkbox name='" + namePrefix + "["+curNode.nodeID+"]' id='chk__"+nodeName+"' "+curNode.Options+">";
		}else{
			divOpen=divClose="";
			img="<img src='"+img_root+"join.gif' align='absbottom'>";
			if(lastBrother(curNode) || isRoot) {
                                img="<img src='"+img_root+"joinbottom.gif' align='absbottom'>"; divClose="</div>";
                        }
			img+="<input type=checkbox name='" + namePrefix + "["+curNode.nodeID+"]' id='chk__"+nodeName+"' "+curNode.Options+">";
		}
		if(curNode.nodeLink == "#"){node_link=curNode.nodeText+"<br>";}
		else{node_link="<a href='"+curNode.nodeLink+"'>"+curNode.nodeText+"</a><br>";}

		result_str+=joinImage+img+node_link+divClose+divOpen;
		if(lastBrother(curNode) || isRoot){
                        joinImage+="<img src='"+img_root+"empty.gif' align='absbottom'>";
                }else{
                        joinImage+="<img src='"+img_root+"line.gif' align='absbottom'>";
                }
	}
	for(var i=0;i<childNodes;i++){ viewNode(curNode.childNodes[i],joinImage); }
}
// check all regions
function selectAllRegions(allRegsNode){
	n1_chk=document.getElementById('chk__'+allRegsNode.nodeName).checked;
	for(i=0;i<allRegsNode.childNodes.length;i++){
		document.getElementById('chk__'+allRegsNode.childNodes[i].nodeName).checked=n1_chk;
	}
	//document.getElementById('chk__n4').checked=n1_chk;
	//updateAmount(allRegsNode);
}
function selectAllNodes(node, updateFnc){
	n1_chk = document.getElementById('chk__' + node.nodeName).checked;
	for(i = 0; i < node.childNodes.length; i++){
		document.getElementById('chk__' + node.childNodes[i].nodeName).checked = n1_chk;
	}
	if(typeof(updateFnc) == "function") updateFnc(node);
}
function selectAllComp(allRegsNode){
	n4_chk=document.getElementById('chk__n4').checked;
	for(i=0;i<allRegsNode.childNodes.length;i++){
		document.getElementById('chk__'+allRegsNode.childNodes[i].nodeName).checked=n4_chk;
	}
//	document.getElementById('chk__n1').checked=n4_chk;
	document.getElementById('chk__n2').checked=n4_chk;
	document.getElementById('chk__n3').checked=n4_chk;
	updateAmount(allRegsNode);
}

function updateAmount(allRegsNode){
	var sum = checked_num = reg_num = 0;
	var period = parseInt(document.getElementById('period').value);
	reg_num = allRegsNode.childNodes.length;
	for(i=0;i<reg_num;i++){
		//if(document.getElementById('chk__n1').checked) document.getElementById('chk__'+allRegsNode.childNodes[i].nodeName).checked = true;
		if(document.getElementById('chk__'+allRegsNode.childNodes[i].nodeName).checked) checked_num++;
	}
	if(reg_num == checked_num){
		sum = all_reg[period];
		document.getElementById('chk__n1').checked = true;
	}else{
		switch(period){
			case 3:
				if(checked_num < 3) sum = checked_num*900;
				else sum = 2100 + (checked_num - 3)*900;
				break;
			case 6:
				if(checked_num < 3) sum = checked_num*1500;
				else sum = 3570 + (checked_num - 3)*1500;
				break;
			case 12:
				if(checked_num < 3) sum = checked_num*2500;
				else sum = 7000 + (checked_num - 3)*2500;
				break;
		}
		document.getElementById('chk__n1').checked = false;
	}
	if(document.getElementById('chk__n2').checked){
		switch(period){
			case 3: sum += 1800; break;
			case 6: sum += 3000; break;
			case 12: sum += 6000; break;
		}
	}
	if(document.getElementById('chk__n3').checked){
		switch(period){
			case 3: sum += 1800; break;
			case 6: sum += 3000; break;
			case 12: sum += 6000; break;
		}
	}
	if(reg_num == checked_num && document.getElementById('chk__n2').checked && document.getElementById('chk__n3').checked){
		switch(period){
			case 3: sum = 9000; break;
			case 6: sum = 12900; break;
			case 12: sum = 21900; break;
		}
	}
	document.getElementById('amount').value=sum;
}

function updateAmountIndustry(allIndNode){
	var sum = checked_num = reg_num = 0;
	var period = parseInt(document.getElementById('period').value);
	reg_num = allIndNode.childNodes.length;
	for(i=0;i<reg_num;i++){
		if(document.getElementById('chk__'+allIndNode.childNodes[i].nodeName).checked) checked_num++;
	}
	if(reg_num == checked_num){
		sum = all_reg[period];
		document.getElementById('chk__n1').checked = true;
	}else{
		switch(period){
			case 6:
				if(checked_num < 2) sum = checked_num * 3900;
				else sum = 7500 + (checked_num - 2) * 3900;
				break;
			case 12:
				if(checked_num < 2) sum = checked_num * 6500;
				else sum = 9500 + (checked_num - 2) * 6500;
				break;
		}
		document.getElementById('chk__n1').checked = false;
	}
	if(document.getElementById('chk__n2').checked){
		switch(period){
			case 6: sum += 3000; break;
			case 12: sum += 6000; break;
		}
	}
	if(document.getElementById('chk__n3').checked){
		switch(period){
			case 6: sum += 3000; break;
			case 12: sum += 6000; break;
		}
	}
	if(reg_num == checked_num && document.getElementById('chk__n2').checked && document.getElementById('chk__n3').checked){
		switch(period){
			case 6: sum = 12900; break;
			case 12: sum = 21900; break;
		}
	}
	document.getElementById('amount').value=sum;
}
/*function updateAmountIndustry(allIndNode){
        var sum = checked_num = 0;
        for(i = 0; i < allIndNode.childNodes.length; i++){
		if(document.getElementById("chk__" + allIndNode.childNodes[i].nodeName).checked) checked_num++;
	}
        if(checked_num == allIndNode.childNodes.length){
		document.getElementById('chk__n1').checked = true;
                sum = (document.getElementById('period').value == 6)?18000:18000;
        }else if(checked_num >= discountNum){
		document.getElementById('chk__n1').checked = false;
                sum = (document.getElementById('period').value == 6)?(8200 + (checked_num - discountNum)*3600):(13120 + (checked_num - discountNum)*5760);
        }else{
		document.getElementById('chk__n1').checked = false;
                sum = (document.getElementById('period').value == 6)?checked_num*3600:checked_num*5760;
        }
	if(document.getElementById('chk__n2').checked){sum += parseInt(document.getElementById('chk__n2').value)*parseInt(document.getElementById('period').value);}
	if(document.getElementById('chk__n3').checked){sum += parseInt(document.getElementById('chk__n3').value)*parseInt(document.getElementById('period').value);}
	document.getElementById('amount').value=sum;
}*/

function onchange_region(page_link,val){
	document.getElementById('null_frame').src=page_link+'&org_region='+val;
}


// ---------- end[region tree functions]
// 
var IDarr,IDarr1;
IDarr = new Array();
IDarr1 = new Array();
function onIndustryChange(obj){
	id = obj.options[obj.selectedIndex].value;
	SubTR = document.getElementById("SuID");
	if (id != ""){
		SubTR.style.display = 'block';
		document.getElementById("subindustry"+id).style.display = 'block';
		document.getElementById("subindustry"+id).disabled = false;
		IDarr[id] = 1;
	}else{
		SubTR.style.display = 'none';
	}
	for (j in IDarr){
		if (j != id) {
			document.getElementById("subindustry"+j).style.display = 'none';
			document.getElementById("subindustry"+j).disabled = true;
		}
	}
}

function onRegionChange(obj){
	id = obj.options[obj.selectedIndex].value;
	SubTR = document.getElementById("CiID");
	try{
	if (id != ""){
		SubTR.style.display = 'block';
		document.getElementById("city"+id).style.display = 'block';
		document.getElementById("city"+id).disabled = false;
		IDarr1[id] = 1;
	}else{
		SubTR.style.display = 'none';
	}
	for (j in IDarr1){
		if (j != id) {
			document.getElementById("city"+j).style.display = 'none';
			document.getElementById("city"+j).disabled = true;
		}
	}
	}catch(e){
		SubTR.style.display = 'none';		
	}
}

function add_favorite(){
  window.external.addFavorite('http://volga-konkurs.ru/','Поволжское Агентство Конкурсных Технологий'); return false;
}

function fnShowProps(obj, objName){
    var result = "";
    for (var i in obj)
        result += objName + "." + i + " = " + obj[i] + "<br />\n";
    document.write(result);
}
function submit_onenter(form_name){
	if(event.keyCode==13 && (event.srcElement.tagName=='INPUT' || event.srcElement.tagName=='SELECT' || event.srcElement.tagName=='TEXTAREA')){
		document.forms[form_name].submit();
	}
}