
function NiftyCheck()
{
	if(!document.getElementById || !document.createElement)
		return(false);
	var b=navigator.userAgent.toLowerCase();
	if(b.indexOf("msie 5")>0 && b.indexOf("opera")==-1)
    		return(false);
	return(true);
}

function Rounded(selector,bk,color,size,border)
{
	var i;
	var v=getElementsBySelector(selector);
	var l=v.length;
	for(i=0;i<l;i++)
	{
		AddTop(v[i],bk,color,size,border);
 		AddBottom(v[i],bk,color,size,border);
 	} 
}

function RoundedTop(selector,bk,color,size,border)
{

	var i;
	var v=getElementsBySelector(selector);
	for(i=0;i<v.length;i++)
		AddTop(v[i],bk,color,size,border);
}

function RoundedBottom(selector,bk,color,size,border)
{
	var i;
	var v=getElementsBySelector(selector);
	for(i=0;i<v.length;i++)
		AddBottom(v[i],bk,color,size,border);
}

function AddTop(el,bk,color,size,border)
{
	var i;
	var d=document.createElement("b");
	var cn="r";
	var lim=4;
	if(size && size=="small")
	{ 
		cn="rs"; 
		lim=2;
	}
	d.className="rtop";
	d.style.backgroundColor=bk;
	for(i=1;i<=lim;i++)
	{
		var x=document.createElement("b");
		x.className=cn + i;
		x.style.backgroundColor=color;
		var bw=1;
		if(i==2)
			bw=2;
		x.style.borderLeft=bw+"px solid "+border;
		x.style.borderRight=bw+"px solid "+border;
		if(i==1)
			x.style.borderTop="1px solid "+border;
		d.appendChild(x);
	}
	el.insertBefore(d,el.firstChild);
}

function AddBottom(el,bk,color,size,border)
{
	var i;
	var d=document.createElement("b");
	var cn="r";
	var lim=4;
	if(size && size=="small")
	{ 
		cn="rs"; 
		lim=2;
	}
	d.className="rbottom";
	d.style.backgroundColor=bk;
	for(i=lim;i>0;i--)
	{
		var x=document.createElement("b");
		x.className=cn + i;
		x.style.backgroundColor=color;
		var bw=1;
		if(i==2)
			bw=2;
		x.style.borderLeft=bw+"px solid "+border;
		x.style.borderRight=bw+"px solid "+border;
		if(i==1)
			x.style.borderBottom="1px solid "+border;
		d.appendChild(x);
	}
	el.appendChild(d,el.firstChild);
}

function getElementsBySelector(selector)
{
	var i;
	var s=[];
	var selid="";
	var selclass="";
	var tag=selector;
	var objlist=[];
	if(selector.indexOf(" ")>0)
	{  //descendant selector like "tag#id tag"
    		s=selector.split(" ");
		var fs=s[0].split("#");
		if(fs.length==1) return(objlist);
			return(document.getElementById(fs[1]).getElementsByTagName(s[1]));
	}
	if(selector.indexOf("#")>0)
	{ //id selector like "tag#id"
    		s=selector.split("#");
		tag=s[0];
		selid=s[1];
	}
	if(selid!="")
	{
		objlist.push(document.getElementById(selid));
		return(objlist);
	}
	if(selector.indexOf(".")>0)
	{  //class selector like "tag.class"
		s=selector.split(".");
		tag=s[0];
		selclass=s[1];
	}
	var v=document.getElementsByTagName(tag);  // tag selector like "tag"
	if(selclass=="")
		return(v);
	for(i=0;i<v.length;i++)
	{
		if(v[i].className==selclass)
		{
			objlist.push(v[i]);
		}
	}
	return(objlist);
}

window.onload=function()
{
  if(!NiftyCheck())
    return;
    Rounded("div.darkBox",BODYBGCOLOR,DARKBOXBGCOLOR,"",BORDERCOLOR);
    Rounded("div.lightBox",DARKBOXBGCOLOR,LIGHTBOXBGCOLOR,"",BORDERCOLOR);
    Rounded("div.blueBox",LIGHTBOXBGCOLOR,FOOTERBOXBGCOLOR,"",BORDERCOLOR);
    Rounded("div.blueAdBox",DARKBOXBGCOLOR,FOOTERBOXBGCOLOR,"",BORDERCOLOR);
    Rounded("div#footerBox",BODYBGCOLOR,FOOTERBOXBGCOLOR,"",BORDERCOLOR);
    Rounded("div.errorBox",LIGHTBOXBGCOLOR,FOOTERBOXBGCOLOR,"",WARNINGCOLOR);        
  
	  var i;
	  var v=getElementsBySelector("div.borderBox");
	  var l=v.length;
	  for(i=0;i<l;i++)
	  {
		  v[i].style.borderLeft="1px solid "+BORDERCOLOR;
		  v[i].style.borderRight="1px solid "+BORDERCOLOR;
        }
  
	  var i;
	  var v=getElementsBySelector("div.errorBorderBox");
	  var l=v.length;
	  for(i=0;i<l;i++)
	  {
		  v[i].style.borderLeft="1px solid "+WARNINGCOLOR;
		  v[i].style.borderRight="1px solid "+WARNINGCOLOR;
    }

    doFade('div#fadeBox', FADECOLOR, 60, 20);
}

  function showOrHideElement(element_id)
  {
    var element=document.getElementById(element_id);
    if(element)
    {
      if(element.style.display=='none')
	element.style.display='block';
      else 
	element.style.display='none';
    }
  }

  function show(id)
  {
    var element=document.getElementById(id);
    if(element)
          element.style.display='block';
  }

  function hideCross(id)
  {
    hide(id);
  }

  function showCross(id)
  {
    var element1=document.getElementById('refimg'+id);
    var element2=document.getElementById('cross'+id);
    if(element1 && element2)
    {
      if(element1.src!='http://' + IMGBASEDOMAIN + '/tyonaytteet/noimage.jpg')
      {
	      var x=getPositionX(element1);
	      var y=getPositionY(element1);
	      element2.style.left=x+element1.offsetWidth-18+'px';
	      element2.style.top=y+2+'px';
	      element2.style.display='inline';
      }
    }
  }

  function hide(id)
  {
    var element=document.getElementById(id);
    if(element)
          element.style.display='none';
  }

  popup_window='';
  function uploadFile(url_id)
  {
    var ext=''
    if(url_id!=undefined)
      ext=url_id+'/';
    popup_window=window.open('http://'+BASEDOMAIN+'/lisaa-liite/'+ext, '', ',location=0,status=no,menubar=no,scrollbars=yes,resizable=yes,width=450,height=460,screenX=100,screenY=100,toolbar=no');
  }

  function uploadReference(num)
  {
    popup_window=window.open('http://'+BASEDOMAIN+'/lisaa-tyonayte/?'+num, '', ',location=0,status=no,menubar=no,scrollbars=yes,resizable=yes,width=450,height=460,screenX=100,screenY=100,toolbar=no');
  }

  function uploadFileDone(filename, description, image, newid, ext)
  {
    if(description=='' || description=='undefined')
      description=filename;
    if(newid=='' || newid=='undefined')
      newid='';
    var element=document.getElementById('reference_pics');
    if(element)
    {
      var i=Math.ceil(Math.random()*100000);
      var buffer='';
      buffer += '<div id="refdiv'+i+'" class="refitem" onmouseover="javascript:showCross(\''+i+'\');" onmouseout="javascript:hideCross(\'cross'+i+'\');">';

      buffer += '<div id="refitem'+i+'" style="display:inline;">';

      buffer += '<input type="hidden" name="attachment[]" value="' + filename + '" /><input type="hidden" name="attachment_desc[]" value="' + description + '" />';

      if(image=='1')
      {
        buffer += '<a href="http://' + IMGBASEDOMAIN + '/liite-tmp/m_' + filename + '" target="_blank" rel="lightbox[roadtrip]" title="' + description +'"><img src="http://' + IMGBASEDOMAIN + '/liite-tmp/t_' + filename + '" alt="" id="refimg'+i+'" /></a>';
      }
      else
      {
        buffer += '<a href="http://' + IMGBASEDOMAIN + '/liite-tmp/' + filename + '" target="_blank" title="' + description +'"><img src="http://' + IMGBASEDOMAIN + '/icon/' + ext + '/' + LINKCOLOR.substr(1,6) + '/" alt="" id="refimg'+i+'" /></a>';
      }
      buffer += '</div>';

      buffer += '<img src="http://' + IMGBASEDOMAIN + '/cross.png" alt="" id="cross'+i+'" style="display:none;border:0;position:absolute;left:0px;bottom:0px;cursor:pointer;width:16px;height:16px;" title="Poista liitetiedosto" onclick="removeAttach(\''+i+'\', \''+newid+'\');" onmouseover="javascript:showDeleteBorder(\''+i+'\');" onmouseout="javascript:hideDeleteBorder(\''+i+'\');" />';

      buffer += '</div>';
      element.innerHTML +=  buffer;
    }
    if(popup_window!='')
      popup_window.close();
  }

  function uploadReferenceDone(num, filename)
  {
    var element=document.getElementById('refitem'+num);
    if(element)
    {
      element.innerHTML = '<img src="http://' + IMGBASEDOMAIN + '/tyonaytteet-tmp/' + filename + 's" alt="" id="refimg'+num+'" onclick="javascript:uploadReference('+num+');" /><input type="hidden" name="ref['+num+']" value="'+filename+'" />';
    }
    if(popup_window!='')
      popup_window.close();
  }

  function removeImage(num)
  {
    var element=document.getElementById('refitem'+num);
    if(element)
    {
      element.innerHTML = '<img src="http://' + IMGBASEDOMAIN + '/tyonaytteet/noimage.jpg" alt="" id="refimg'+num+'" onclick="javascript:uploadReference('+num+');" /><input type="hidden" name="ref['+num+']" value="" />';
      hide('cross'+num);
    }
  }

  function removeAttach(num, fileid)
  {
    var element=document.getElementById('refdiv'+num);
    if(element)
    {
      if(fileid!='')
      {
        new Ajax.Request('http://'+BASEDOMAIN+'/ajax/remove-attachment/'+fileid+'/', 
        {
          method: 'get',
          onSuccess: function(transport)
          {
            if(transport.responseText=='OK') 
            {
              element.innerHTML = '';
              hide('cross'+num);
            }
          }
        });
      }
      else
      {
        element.innerHTML = '';
        hide('cross'+num);
      }
    }
  }

  function removeTmpAttach(num, fileid)
  {
    var element=document.getElementById('refdiv'+num);
    if(element)
    {
      element.innerHTML = '';
      hide('cross'+num);
    }
  }

  function showDeleteBorder(num)
  {
    var element=document.getElementById('refimg'+num);
    if(element)
    {
      //alert(num);
      element.style.borderColor=WARNINGCOLOR;
    }
  }

  function hideDeleteBorder(num)
  {
    var element=document.getElementById('refimg'+num);
    if(element)
    {
      //alert(num);
      element.style.borderColor='';
    }
  }

  function getPositionX(element) {
    if( typeof( element.offsetParent ) != 'undefined' ) {
      for( var posX = 0, posY = 0; element; element = element.offsetParent ) {
	posX += element.offsetLeft;
	posY += element.offsetTop;
      }
      return posX;
    } else {
      return element.x;
    }
  }

function getPositionY(element) {
    if( typeof( element.offsetParent ) != 'undefined' ) {
      for( var posX = 0, posY = 0; element; element = element.offsetParent ) {
	posX += element.offsetLeft;
	posY += element.offsetTop;
      }
      return posY;
    } else {
      return element.y;
    }
  }

function doFade(element, color, h, extra)
{
  var i;
  var v=getElementsBySelector(element);

  var r=hexdec(color.substr(1,1)+color.substr(2,1));
  var g=hexdec(color.substr(3,1)+color.substr(4,1));
  var b=hexdec(color.substr(5,1)+color.substr(6,1));
	
  var rm=(255-r)/h;
  var gm=(255-g)/h;
  var bm=(255-b)/h;

  r=255;
  g=255;
  b=255;

  for(i=0;i<h;i++)
  {
    r=r-rm;
    g=g-gm;
    b=b-bm;
    AddFadeRow(v[0],'#'+dechex(r)+dechex(g)+dechex(b));
  }
  for(i=0;i<extra;i++)
  {
    AddFadeRow(v[0],'#'+dechex(r)+dechex(g)+dechex(b));
  }
}
function AddFadeRow(element,color)
{
  var d=document.createElement("b");
  var cn="r";
  var lim=4;

  d.className="rtop";
  d.style.backgroundColor=color;

  var x=document.createElement("b");
  x.className='fade';
  x.style.backgroundColor=color;
  d.appendChild(x);

  element.insertBefore(d,element.firstChild);
}

function dechex (number) 
{
  if (number < 0) 
  {
    number = 0xFFFFFFFF + number + 1;
  }
  return parseInt(number, 10).toString(16);
}


function hexdec (hex_string) 
{
  hex_string = (hex_string+'').replace(/[^a-f0-9]/gi, '');
  return parseInt(hex_string, 16);
}
