function  picttoggle(target,open)
{
  target = target.firstChild.firstChild.firstChild;

     if(open==true)
     {
     	setimgonobj(target,'listarrowd');
     }
     if(open==false)
     	setimgonobj(target,'listarrowr');

}
function sortByName(a,b)
{
  if (a[0] == b[0])
    return 0;
  return (a[0] > b[0]? 1 : -1);
}
function sortByPrice(a,b)
{
  return a[1] - b[1];
}

var ep3regionOrderBy = '';

function ep_regions(r,from_price,flighttimetext,img_sun,img_water,img_map,img_info,img_listarrowr,tpl)
{
  var i;
  var rnum = 0;
  if (r)
    document.ep3regionslist = r;
  else
    r = document.ep3regionslist;

  var l=r.length;
  if (from_price)
    document.from_price=from_price;
  if (flighttimetext)
    document.flighttimetext=flighttimetext;
  if (img_sun)
    document.img_sun=img_sun;
  if (img_water)
    document.img_water=img_water;
  if (img_map)
    document.img_map=img_map;
  if (img_info)
    document.img_info=img_info;
  if (img_listarrowr)
    document.img_listarrowr=img_listarrowr;
  if (tpl)
    document.tpl=tpl;
  document.rooturl=r[0];
  
  var ep3regionTable = document.getElementById('ep3regionTable');
  while ( ep3regionTable.childNodes.length >= 1 )
    ep3regionTable.removeChild(ep3regionTable.firstChild);       
  
  ep3regionOrderBy = 'price';
  if (document.getElementById('ep3regionOrderBy'))
    ep3regionOrderBy = document.getElementById('ep3regionOrderBy').options[document.getElementById('ep3regionOrderBy').selectedIndex].value;
  
  var sort_val_list = new Array();
  var current_sort_element = null;
  //var sort_offset_value = (ep3regionOrderBy == 'price' ? 2 : 1 );
  for (i=1;i<l;i++)
  {
    sort_val_list[sort_val_list.length] = [r[i+1],r[i+2]];
    i+=8;
  }
  if (ep3regionOrderBy == 'price')
    sort_val_list.sort(sortByPrice);
  else
    sort_val_list.sort(sortByName);
  
  var h='';
  while (sort_val_list.length)
  {
    var current_value = sort_val_list.shift();
  for (i=1;i<l;i++)
  {
    var rdescode=r[i];
    var link=r[0]+'&'+r[i++];
    var rname=r[i++];
	var rprice=r[i++];
	var curr=r[i++];
    var lat=r[i++];
	var lng=r[i++];
	var regionmap=r[i++];
    var start=i;
      var flighttime=r[i++];
      if (r[i-8+1] == current_value[0] && r[i-8+2] == current_value[1])
      {
        rnum++;
        h='';
    h+= '<tr ep3_mouseover="color0bg@color4bg" class="color1 color0bg color2bob ep3_country">'+
               '<td style="padding: 5px 10px; cursor: pointer; font-size: 12px;"   class="color2bob" width="34%" >'+
                '<strong style="float:left;" '+'id="ep3_RegionRow'+rnum+'"'+' onclick=\'createReg(this,"'+r[i]+'")\'><img '+document.img_listarrowr+' style="vertical-align:text-bottom;" alt="" /> '+rname+'</strong>'+
               '</td>'+
                '<td colspan="3" width="30%" class="color2bob">&nbsp;'+
                (flighttime != '' && flighttime!='00:00'?document.flighttimetext+'&nbsp;'+flighttime.replace(/^0/,''):'')+

              '<td style="text-align:right;" class="color2bob ">'+
              '<a style="padding-right:5px;" class="color12  ep3_price" href="'+link+'" onmouseover="this.className=\'color7 ep3_price\';" onmouseout="this.className=\'color12 ep3_price\';">'+
				document.from_price+'  <span class="color8" onmouseover="this.className=\'color7\';" onmouseout="this.className=\'color8\';" style="font-size: 13px;">'+
				'<strong >'+rprice+'</strong>'+
                  '</span> '+curr+
                '</a>'+
              '</td>'+
              '<td width="17" onclick="self.location=\''+link+'\'" style="cursor: pointer; '+(typeof document.ep3enableRegionCheckbox !== 'undefined' && document.ep3enableRegionCheckbox == 1 ? '' : 'padding-right: 8px;')+'" class="color2bob">'+
                '<img '+document.img_listarrowr+' />'+
              '</td>'+
                (typeof document.ep3enableRegionCheckbox !== 'undefined' && document.ep3enableRegionCheckbox == 1 ? '<td width="20" class="color2bob" style="padding-right: 10px;"><input type="checkbox" id="country'+ep3_getCountryCode(rdescode)+'" value="'+rdescode+'" style="width:16px; height:17px;" onclick="ep3_regionSelect(this)" /></td>':'')+
            '</tr>';
        var tmpdiv = document.createElement('DIV');
        tmpdiv.innerHTML = '<table>'+h+'</table>';
        var trElem = tmpdiv.getElementsByTagName('TR')[0];
        document.getElementById('ep3regionTable').appendChild(trElem);
      }
    }
  }
  //h+='</tbody>';
  //document.write(h);
  for (var i=1; i <= 3; i++)
    if (document.getElementById('ep3_RegionRow'+i))
      document.getElementById('ep3_RegionRow'+i).onclick();
}


function createReg(target,r)
{
  target=target.parentNode.parentNode;
 
  if (target.regexist)
  { 
    if(target.nextSibling != null && target.nextSibling.firstChild.getAttribute('region') == 1 )
      {
        while(target.nextSibling != null  && target.nextSibling.firstChild.getAttribute('region') == 1)
	    {
	      target.parentNode.removeChild(target.nextSibling);
        }	  
      }
	
	
   
    target.regexist=false;
    picttoggle(target,false);
    return;
  }
  target.regexist=true;
  from_price=document.from_price;
  img_sun=document.img_sun;
  img_water=document.img_water;
  img_map=document.img_map;
  img_info=document.img_info;
  tpl=document.tpl;
  r=r.split('^');
  picttoggle(target,true);

  var i=1;
  l=r.length;
  var h='';
  for(;i+10<=l;i+=10)
  {
   h='';

	h+='<table width="100%" cellspacing="0" cellpadding="0">'+
          '<tbody>'+
            '<tr >'+
              '<td width="34%" onclick="self.location=\''+document.rooturl+'&'+r[i+5]+'\'" style="cursor: pointer;">'+
                '<strong>'+r[i]+'</strong>'+
              '</td>'+
              '<td width="6%">'+
              ((r[i+6]!='')?'<img class="ep3_htlmap" '+img_map+' onclick="hotelinfo(\''+r[i+6]+'\'); return false" style="cursor: pointer;position:relative;left:0px;" />':'')+
              '</td>'+
              '<td width="6%">'+
              ((r[i+7]!='')?'<img class="ep3_htlmap" '+img_info+' onclick="hotelinfo(\''+r[i+7]+'\'); return false" style="cursor: pointer;position:relative;left:0px;" />':'')+
              '</td>'+
              ((r[i+1]!='')?'<td width="12%" style="text-align:right;padding-right: 5px;">'+
                '<img '+img_sun+' />'+
              '</td>'+
              '<td width="6%" style="text-align:left;">'+r[i+1]+'&deg;C</td>':'<td width="12%"></td>')+
              ((r[i+2]!='')?'<td width="6%" style="text-align:right;padding-right: 5px;">'+
                '<img '+img_water+' />'+
              '</td>'+
              '<td width="6%">'+r[i+2]+'&deg;C</td>':'<td width="12%"></td>')+
              '<td style="text-align:right;" >'+
                '<a class="color12  ep3_price" href="'+document.rooturl+'&'+r[i+5]+'" onmouseover="this.className=\'color7 ep3_price\';" onmouseout="this.className=\'color12 ep3_price\';">'+
				from_price+'  <span class="color8" onmouseover="this.className=\'color7\';" onmouseout="this.className=\'color8\';" style="font-size: 13px;">'+
				'<strong>'+r[i+3]+'</strong>'+
                  '</span> '+r[i+4]+
                '</a>'+
              '</td>'+
              '<td style="text-align: right; cursor: pointer;"  onclick="self.location=\''+document.rooturl+'&'+r[i+5]+'\'" width="20">'+
                '<img '+document.img_listarrowr+' />'+
              '</td>'+
              (typeof document.ep3enableRegionCheckbox !== 'undefined' && document.ep3enableRegionCheckbox == 1 ? '<td width="20"><input type="checkbox" value="'+r[i+5]+'" style="width:16px; height:17px;" onclick="ep3_regionSelect(this)" /></td>':'')+
            '</tr>'+
          '</tbody>'+
        '</table>';
	
	var d=document.createElement('TR');
    var td = document.createElement('TD');
    //td.setAttribute("class","color6 color3bg color2bob ep3_region");
    td.className = "color6 color3bg color2bob ep3_region";
    td.setAttribute("style","padding: 5px 10px 5px 20px;");
    td.style.padding = "5px 10px 5px 20px;";   // for IE
    td.setAttribute("onmouseover","this.className='color6 color4bg color2bob ep3_region';");
	td.setAttribute("onmouseout","this.className='color6 color3bg color2bob ep3_region';");
	td.setAttribute("region","1");
    var tdcolspan = 6;
    if (typeof document.ep3enableRegionCheckbox !== 'undefined' && document.ep3enableRegionCheckbox == 1)
      tdcolspan = 7;
    td.setAttribute("colspan",tdcolspan);
    td.colSpan=tdcolspan;

  td.innerHTML=h;
  d.appendChild(td); 
  
    if (target.nextSibling)
      target.parentNode.insertBefore(d,target.nextSibling);
    else
      target.parentNode.appendChild(d);
   
    target=target.nextSibling;
  }
  if (typeof document.ep3enableRegionCheckbox !== 'undefined' && document.ep3enableRegionCheckbox == 1)
    ep3_update_region_checkbox(target.parentNode);
}

var gimgsun='';
var gimgwater='';
var gimgarrow='';
var gtpldir='';

function ep_regions_MGM(r,from_price,img_sun,img_water,tpl)
{
  var l=5000;//regionsDict.length;
  var i=0;
  for (; i<l; i++)
  {
    if (regionsDict[i] == undefined)
      continue;
    if (regionsDict[i].l == 0)
      continue;
    //if (regionsDict[i] != undefined)
      document.write('<div style="padding-left:'+(10*regionsDict[i].l)+'px">'+regionsDict[i].n+'</div>');
  }
}

function hideRegion(id)
{
  var regionRow = document.getElementById('subregion_'+id);
  if (regionRow.style.display == 'none')
    regionRow.style.display = '';
  else
    regionRow.style.display = 'none'
}

function ep_regions_MGM2(r,o,target,tfromprice,imgsun,imgwater,imgarrow, tpldir, curr)
{
  if (curr)
    document.from_curr=curr;
  if (r && document.ep3regionslist === undefined)
    document.ep3regionslist = r;
  if (!r)
    r = document.ep3regionslist;
  if (o && document.ep3regionslistlevel === undefined)
    document.ep3regionslistlevel = o;
  if (!o)
    o = document.ep3regionslistlevel;

  if ((imgsun != undefined) && imgsun != '')
    gimgsun = imgsun;
  if ((imgwater != undefined) && imgwater != '')
    gimgwater = imgwater;
  if ((imgarrow != undefined) && imgarrow != '')
    gimgarrow = imgarrow;
  if ((tpldir != undefined) && tpldir != '')
    gtpldir = tpldir;
  
  var inner=false;
  if (o>2)
  {
    inner=true;
    var d;
    
    if ((d=target.parentNode.parentNode.nextSibling) && d.ischild)
    {
      target.parentNode.parentNode.parentNode.removeChild(d);
      setimgonobj(target.firstChild,'listarrowr');
     
      return;
    }
    setimgonobj(target.firstChild,'listarrowd');

  }
  else
  {
    var ep3regionTable = document.getElementById('ep3regionTable');
    while ( ep3regionTable.childNodes.length >= 1 )
      ep3regionTable.removeChild(ep3regionTable.firstChild);
  }       
  
  ep3regionOrderBy = 'price';
  if (document.getElementById('ep3regionOrderBy'))
    ep3regionOrderBy = document.getElementById('ep3regionOrderBy').options[document.getElementById('ep3regionOrderBy').selectedIndex].value;
  
  var sort_val_list = new Array();
  var current_sort_element = null;
  for (i=1;i < r.length;i+=2)
  {
    if (regionsDict[r[i]] === undefined)
    {
      r.splice(i, 2);
      i-=2;
    }
  }
  for (i=1;i < r.length;i+=2)
  {

    var n=i;
    var z=0;
    var subRegions = [];
    var lowerRegion = [];
    var lastSubRegion = null;
    if (o==2 && (regionsDict[r[i]] != undefined) && (regionsDict[r[i+2]] != undefined) && (regionsDict[r[i+2]].l > regionsDict[r[i]].l) && regionsDict[r[i]].l==1)
    {
      n=i+2;
      while ((n<(r.length+2)) && regionsDict[r[n]] !== undefined && regionsDict[r[n]].l >= o )
      {
        if (regionsDict[r[n]].l == 2)
        {
          var srl = subRegions.length;
          subRegions[srl] = [];
          subRegions[srl][0] = regionsDict[r[n]].n;
          subRegions[srl][1] = r[n+1];
          subRegions[srl][2] = regionsDict[r[n]].l
          subRegions[srl][3] = r[n];
          lastSubRegion = r[n];
          z++;
        }
        else
        {
          if (lowerRegion[lastSubRegion] === undefined)
            lowerRegion[lastSubRegion] = [];
          lowerRegion[lastSubRegion][lowerRegion[lastSubRegion].length] = r[n];
          lowerRegion[lastSubRegion][lowerRegion[lastSubRegion].length] = r[n+1];
          z++;
        }
        n+=2;
      }
      n-=2;
    }
    if (o==2 && regionsDict[r[i]] !== undefined && regionsDict[r[i]].l == 1 && subRegions.length)
    {
      if (ep3regionOrderBy == 'price')
        subRegions.sort(sortByPrice);
      else
        subRegions.sort(sortByName);
      
      var m=i+2;
      //r.splice(m, (z*2)-4);//(n+4-m)
      while(subRegions.length)
      {
        var subRegionVal = subRegions.shift();
        r.splice(m++, 1, subRegionVal[3]);
        r.splice(m++, 1, subRegionVal[1]);
        if (lowerRegion[subRegionVal[3]] !== undefined)
        {
          while(lowerRegion[subRegionVal[3]].length)
          {
            var lrv = lowerRegion[subRegionVal[3]].shift();
            r.splice(m++, 1, lrv);
          }
        }
      }
    }


    if (regionsDict[r[i]] !== undefined && regionsDict[r[i]].l == 1 || (o>2 && regionsDict[r[i]].l == o))
    {
      sort_val_list[sort_val_list.length] = [regionsDict[r[i]].n, r[i+1], r[i]];
    }
  }
  if (ep3regionOrderBy == 'price')
    sort_val_list.sort(sortByPrice);
  else
    sort_val_list.sort(sortByName);

  
  
  
  var h='';

  while (sort_val_list.length)
  {
    var current_value = sort_val_list.shift();
    var matched_region = false;
    var l=r.length;
    var i=1;
    for (; i<l; i+=2)
    {
      if (regionsDict[r[i]] != undefined && (current_value[2] == r[i] || matched_region))
      {
        if (current_value[2] == r[i] && regionsDict[r[i]].l == (o-1))
          matched_region = true;
        else if (current_value[2] != r[i] && regionsDict[r[i]].l == (o-1))
        {
          matched_region = false;
          continue;
        }
          if ((regionsDict[r[i+2]] != undefined) && (regionsDict[r[i+2]].l > regionsDict[r[i]].l))
          {
            regionplus = '<img width="15" height="15" '+gimgarrow+' alt="" />';
          }
          else
          {
            regionplus = '';
          }
          
          var n=i;
          var subRegions = [];
          if ((regionsDict[r[i+2]] != undefined) && (regionsDict[r[i+2]].l > regionsDict[r[i]].l) && regionsDict[r[i]].l==o)
          {
            n=i+2;
            while (n<l+2 && regionsDict[r[n]] !== undefined && regionsDict[r[n]].l>o )
            {
              subRegions[subRegions.length] = r[n];
              n+=2;
            }
            regionclick = ' onclick="ep_regions_MGM2(\''+r[0]+'^'+r.slice(i+2,n).join('^')+'\'.split(\'^\'),'+(o+1)+',this)" ';
            n-=2;
          }
          else
          {
            subRegions = [];
            regionclick='';
          }
          
        if (regionsDict[r[i]].l == 1 )
        {
          h += '<div style="height: 23px; padding-right: 0pt;overflow:hidden;" onmouseout="this.className=\'normalstate destination color3bg color3bot color3bob destcountry\'" onmouseover="this.className=\'normalstate destination color4bg color4bot color4bob destcountry\'" class="normalstate destination color3bg color3bot color3bob destcountry">'+
            '<span class="destination color6">'+
              '<span class="dest color6">&nbsp;'+regionsDict[r[i]].n+'</span>'+
              '<span class="sun2 color1"></span>'+
              '<span class="sun" style="visibility:hidden;">&nbsp;</span>'+
              '<span class="water2  color1"></span>'+
              '<span class="water" style="visibility:hidden;">&nbsp;</span>'+
              '<span class="map">'+
              '</span>'+
            '</span>'+
          '</div>';
        }
        else
        {
            h += '<div class="destination_price normalstate color0bg" style="padding-left:'+(24*(regionsDict[r[i]].l - 2))+'px; height:23px; overflow:hidden">' +
            '<span class="destination">'+
            '<span class="dest color6" '+(regionclick?regionclick:'style="cursor:auto;"')+'>'+regionplus+'&nbsp;'+regionsDict[r[i]].n+'</span>'+
            '<a href="'+r[0]+/*'&ds='+*/(/*subRegions.length?subRegions.join(','):*/r[i])+'">'+
            '<nobr><span onmouseout="this.className=\'price color8\'" onmouseover="this.className=\'price color7\'" style="font-size: 12px;" class="price color8">'+' '+r[i+1]+' '+document.from_curr+'</span></nobr>'+
            '</a>'+
          '</span>'+
          '</div>'
            i=n;
        } 
      }
      else {
        //alert(r[i]);
      }  
    }
  }
  if (inner)
  {
    var d=document.createElement('DIV');
    d.innerHTML=h;
    d.ischild=true;
    if (target.parentNode.parentNode.nextSibling)
      target.parentNode.parentNode.parentNode.insertBefore(d,target.parentNode.parentNode.nextSibling);
    else
      target.parentNode.parentNode.parentNode.appendChild(d);
  }
  else
    document.getElementById('ep3regionTable').innerHTML = h;
}

function ep3_getCountryCode(regcode)
{
  if (regcode == '')
    return '';
  if (regcode.indexOf('=') !== -1)
    regcode = regcode.slice(regcode.indexOf('=')+1,regcode.length);
  regcode = unescape(unescape(regcode));
  if (regcode.indexOf('=') !== -1)
    regcode = regcode.slice(regcode.indexOf('=')+1,regcode.length);
  if (regcode.indexOf(':') !== -1)
    return regcode.slice(0,regcode.indexOf(':'));
  if (regcode.indexOf('_') !== -1)
    return regcode.slice(0,regcode.indexOf('_'));
}

ep3SelectedRegions = [];
ep3SelectedCountries = [];
ep3regLinkBegin = '';
function ep3_regionSelect(regioninput)
{
  var regInpVal = regioninput.value;
  
  var countryInp = null;
  if (!regioninput.id)
    countryInp = document.getElementById('country'+ep3_getCountryCode(regInpVal));
  else
    countryCode = ep3_getCountryCode(regInpVal);
  
  ep3regLinkBegin = '';
  ep3regLinkBegin = regInpVal.slice(0, regInpVal.indexOf('=')+1);
  regInpVal = regInpVal.slice(regInpVal.indexOf('=')+1,regInpVal.length);
  regInpVal = unescape(regInpVal);
  if (regInpVal.indexOf('=') !== -1)
  {
    ep3regLinkBegin += escape(regInpVal.slice(0, regInpVal.indexOf('=')+1));
    regInpVal = regInpVal.slice(regInpVal.indexOf('=')+1,regInpVal.length);
  }
  if (regioninput)
  { 
    if (regioninput.checked)
    {
      if (inArray(regioninput.value, ep3SelectedRegions) === -1)
        ep3SelectedRegions.push(regInpVal);
      if (countryInp)
      {
        ep3SelectedCountries.push(ep3_getCountryCode(regInpVal))
        countryInp.checked = false;
        countryInp.disabled = true;
      }
      else
      {
        var rt = document.getElementById('ep3regionTable');
        var inputs = rt.getElementsByTagName('input');
        for (var i=0; i<  inputs.length; i++)
        {
          if (ep3_getCountryCode(inputs[i].value) == countryCode && inputs[i].id == '')
          {
            inputs[i].checked = false;
            inputs[i].disabled = true;
          }
        }
      }
    }
    else
    {
      var regIdx = -1;
      if ((regIdx = inArray(regInpVal, ep3SelectedRegions)) !== -1)
        ep3SelectedRegions.splice(regIdx,1);
      if (countryInp)
      {
        if ((cntryIdx = inArray(ep3_getCountryCode(regInpVal), ep3SelectedCountries)) !== -1)
          ep3SelectedCountries.splice(cntryIdx,1);
        if (inArray(ep3_getCountryCode(regInpVal), ep3SelectedCountries) === -1)
          countryInp.disabled = false;
      }
      else
      {
        var rt = document.getElementById('ep3regionTable');
        var inputs = rt.getElementsByTagName('input');
        for (var i=0; i<  inputs.length; i++)
        {
          if (ep3_getCountryCode(inputs[i].value) == countryCode && inputs[i].id == '')
            inputs[i].disabled = false;
        }
      }
    }
  }
}
function ep3_selRegionsGroup()
{
  var prev = document.URL;
  prev = prev.replace(/&bk=1/g, "");
  prev = prev.replace(/#.*/g, ""); // remove possible anker from link (IE)
  document.location = prev + '&' + ep3regLinkBegin.replace('ds','dsr') + ep3SelectedRegions.join(',');
}
function ep3_update_region_checkbox(target)
{
  var inputs = target.getElementsByTagName('input');
  var region_code = '';
  for (var i=0, il=inputs.length; i < il; i++)
  {
    if (inputs[i].value != '')
    {
      var regInpVal = inputs[i].value;
      regInpVal = regInpVal.slice(regInpVal.indexOf('=')+1,regInpVal.length);
      regInpVal = unescape(regInpVal);
      if (regInpVal.indexOf('=') !== -1)
      {
        ep3regLinkBegin += escape(regInpVal.slice(0, regInpVal.indexOf('=')+1));
        regInpVal = regInpVal.slice(regInpVal.indexOf('=')+1,regInpVal.length);
      }
      if (inArray(regInpVal, ep3SelectedRegions) !== -1)
      {
        if (!inputs[i].id)
          inputs[i].checked = true;
        if (inputs[i].id)
          inputs[i].onclick();
      }
    }
  }
}
