function hide_id(nodeId)
{
    var node = document.getElementById(nodeId);
    if (node)
    {
        node.className=node.className.replace('showed', '');
        node.className += ' hidden';
    }
}

function show_id(nodeId)
{
    var node = document.getElementById(nodeId);
    if (node)
    {
        node.className=node.className.replace('hidden', '');
        node.className += ' showed';
    }
}

function toggle_id(nodeId)
{
    var node = document.getElementById(nodeId);
    if (node)
    {
        if (node.className.indexOf('hidden') != -1)
            node.className=node.className.replace('hidden', 'showed')
        else if (node.className.indexOf('showed') != -1)
            node.className=node.className.replace('showed', 'hidden')
        else node.className += ' showed';
     }
}

function setPrintCSS(isPrint) {
// By Akella cssing.org.ua
  if (document.getElementsByTagName)
      x = document.getElementsByTagName('link');
  else
  {
      return;
  }
  for (var i=0;i<x.length;i++) {
      if(x[i].title == 'printview'){x[i].disabled = !isPrint;}
      if(x[i].title == 'screenview'){x[i].disabled = isPrint;}
  }
}


function moveHintsN(e)
{
	document.getElementById('hints').style.visibility = "visible";
	var z = []; 		
	if (!e) e = event;
	if (e.pageX)
		{
			z['left'] = e.pageX ;
			z['top'] = e.pageY-20;
		}
		else
		{
			z['left'] = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
			z['top'] = e.clientY + document.body.scrollTop + document.documentElement.scrollTop - 20;
		}
			z['height'] = 30;
			z['width'] = 20;		
	setPosition(document.getElementById('hints'), z);
}



function hideHintsN(e)
{
	document.onmousemove = null;
	document.onmouseout = null;
    document.getElementById('hints').style.visibility = "hidden";
}

function showHints(text, el)
{
	if (text == "") return;
	document.getElementById('hints').innerHTML = text;
	document.onmousemove = moveHintsN;
	document.onmouseout = hideHintsN;
}

function getBounds(tElement)
{
	var left = tElement.offsetLeft,
		top = tElement.offsetTop,
		parent;
	console.debug(left + ' ' + top);
	for (parent = tElement.offsetParent; parent; parent = parent.offsetParent)
	{
		left += parent.offsetLeft;
		top += parent.offsetTop;
	}
	return {left: left, top: top, width: tElement.offsetWidth, height: tElement.offsetHeight};
}

function setPosition()
{
	var scrollTop = document.documentElement.scrollTop,
		tElement = arguments[0],
		tBounds = arguments[1],
		w = tElement.clientWidth,
		h = tElement.clientHeight,
		winW = document.documentElement.clientWidth,
		winH = document.documentElement.clientHeight,
		vPX = 0,
		tHeightNotSet = true;

	if ((w + tBounds.left > winW) && (winW - w + tBounds.left > w))
		tElement.style.left = tBounds.left - w + tBounds.width + 'px';
	else
		tElement.style.left = tBounds.left + 'px';

	if (h + tBounds.top > winH + scrollTop)
	{
		if (h - tBounds.top > 0)
			if (h + tBounds.top - winH - scrollTop > h - tBounds.top)
				tHeightNotSet = false;
	}
	
	if ((tBounds.top + h > winH + scrollTop) && tHeightNotSet)
		if (tBounds.top - h - scrollTop > 0)
			tHeightNotSet = false;
	
	if ((winH - tBounds.top + scrollTop - h - tBounds.height < 0) && (tBounds.top - scrollTop - h > winH - tBounds.top + scrollTop - h - tBounds.height))
		tHeightNotSet = false;
//alert(tBounds.height);
	if (tHeightNotSet)
		tElement.style.top = tBounds.top + tBounds.height + vPX + 'px';
	else
		tElement.style.top = tBounds.top - h - vPX + 'px';
}


function checkForm()
{
 var err = '';

 if (document.getElementById('message').value == '')
 {
  err += '<li>' + '<strong>Message</strong> - required to be filled' + '</li>';
 }


 if (document.getElementById('first_name').value == '')
 {
  err += '<li>' + '<strong>First Name</strong> - required to be filled' + '</li>';
 }


if (document.getElementById('last_name').value == '')
 {
  err += '<li>' + '<strong>Last Name</strong> - required to be filled' + '</li>';
 }


if (document.getElementById('telephone').value == '' && document.getElementById('telephone2').value == '')
 {
  err += '<li>' + '<strong>Telephone</strong> - required to be filled' + '</li>';
 }

if (document.getElementById('telephone').value != '' && document.getElementById('telephone2').value != '')
 {
  if (!checkPhone(document.getElementById('telephone').value && document.getElementById('telephone2').value))
  {
   err = err + '<li>' + '<strong>Valid Phone</strong> - phone number must consist of digits' + '</li>';
  }
 }


if (document.getElementById('email').value == '')
{
	err = err + '<li>' + '<strong>Email</strong> - required to be filled' + '</li>';
}
else
if (!checkEmail(document.getElementById('email').value))
{
	err = err + '<li>' + '<strong>Email</strong> - format is invalid' + '</li>';
}

if (document.getElementById('repeat_email').value == '')
{
	err = err + '<li>' + '<strong>Repeat email</strong> - required to be filled' + '</li>';
}
else
if (!checkEmail(document.getElementById('repeat_email').value))
{
	err = err + '<li>' + '<strong>Repeat email</strong> - format is invalid' + '</li>';
}

if (document.getElementById('email').value != '' && document.getElementById('repeat_email').value != '')
 {
  if (document.getElementById('email').value != document.getElementById('repeat_email').value)
  {
   err = err + '<li><strong>Email does not match</strong></li>';
  }
}




if (err != '')
 {
  err = '<span>You forgot or did not correctly enter one or more fields. Please correct these errors:</span><ul>' + err + '</ul>';
  document.getElementById('fill_form').innerHTML = err;
  document.getElementById('fill_form').className="visible";
//alert ('ddd');
return false;
 }
 
 return true;
}



function checkForm1()
{
 var err = '';

 if (document.getElementById('initials').value == '')
 {
  err += '<li>' + '<strong>Initials</strong> - required to be filled' + '</li>';
 }

 if (document.getElementById('feedback').value == '')
 {
  err += '<li>' + '<strong>Feedback message</strong> - required to be filled' + '</li>';
 }





if (err != '')
 {
  err = '<span>You forgot or did not correctly enter one or more fields. Please correct these errors:</span><ul>' + err + '</ul>';
  document.getElementById('fill_form').innerHTML = err;
  document.getElementById('fill_form').className="visible";
//alert ('ddd');
return false;
 }
 
 return true;
}




function checkEmail(e)
{
 ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";

 for(i=0; i < e.length ;i++)
  if(ok.indexOf(e.charAt(i))<0)
   return (false);

 if (document.images)
 {
  re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
  re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
  if (!e.match(re) && e.match(re_two))
   return true;
  else
   return false;

 }
 return true;

}


function checkPhone(e)
{

	if(e.match(/\+?[0-9\- ]{5,}/))

 return true;
  else
   return false;
 }












function refreshTotalCost()
{
	var el = document.getElementsByTagName("select"), price, total = 0;
	for (var i=0; i<el.length; i++)
	{
		price = el[i].getAttribute("price");
		if (price)
		{
			total = total + el[i].value * price;
		}
		
//		console.debug (price);
	}
	if ( document.getElementById('regular_ship').checked)
	{
		total = total + 1*document.getElementById('regular_ship').getAttribute("price");
		document.getElementById('shipping').innerHTML = '$' + document.getElementById('regular_ship').getAttribute("price");
	}
	else
	{
		total = total + 1*document.getElementById('rush_ship').getAttribute("price");
		document.getElementById('shipping').innerHTML = '$' + document.getElementById('rush_ship').getAttribute("price");
	}
	
	document.getElementById('total').innerHTML = formatCurrency(total);
	
//console.debug (total);
}
function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + '$' + num + '.' + cents);
}
/* *********************************
        ON LOAD
********************************* */
window.onload = function(){
	if (document.getElementById('total')){
	refreshTotalCost();
	}
}
