function over(e)
{
    ev = e || window.event;
    var target = ev.target || ev.srcElement;
    target = GetParentByTag(target, 'DIV', 'gt_box');
    document.getElementById('gt_box01').style.backgroundPosition="0 0px";
    document.getElementById('gt_box02').style.backgroundPosition="0 0px";
    document.getElementById('gt_box03').style.backgroundPosition="0 0px";
    document.getElementById('gt_box04').style.backgroundPosition="0 0px";    
    var pos = GetPositionByID(target.id);  
    target.style.backgroundPosition="0 -"+pos+"px";
    try {  
        var box_id = document.getElementById('benefit').getAttribute("box_id");
        pos = GetPositionByID(box_id);
        document.getElementById(box_id).style.backgroundPosition="0 -"+(pos*2)+"px";
    }
    catch(err){}
}
function item_click(e)
{
    try {  
        var item_id = document.getElementById('benefit').getAttribute("item_id");
        var item = document.getElementById(item_id);
        item.style.color = '#42443e';
        item.style.fontWeight='normal';
        var box_id = document.getElementById('benefit').getAttribute("box_id");
        document.getElementById(box_id).style.backgroundPosition="0 0px";
    }
    catch(err){}
    ev = e || window.event;
    var target = ev.target || ev.srcElement;
    target = GetParentByTag(target, 'DIV', 'it');
    target.style.color = '#1b723e';
    target.style.fontWeight='bold';
    var text = target.textContent||target.innerText;
    var input = document.getElementById('benefit');
    input.value= text;
    
    var block = GetParentByTag(target, 'DIV', 'gt_box');
    if(text.length>30)
        text = text.substring(0,30)+"...";   
    if(typeof(target.textContent) == 'undefined') {
        document.getElementById('benefit-text').innerText = text;
        document.getElementById('benefit-cat').value=block.childNodes[0].innerText;
        document.getElementById('gt-block01').setAttribute("className", "gt-selected");   
    }
    else {
        document.getElementById('benefit-text').textContent = text;
        document.getElementById('benefit-cat').value=block.childNodes[1].textContent;
        document.getElementById('gt-block01').setAttribute("class", "gt-selected");   
    }
    var pos = GetPositionByID(block.id); 
    block.style.backgroundPosition="0 -"+(pos*2)+"px";
    input.setAttribute("box_id", block.id);
    input.setAttribute("item_id", target.id);        
}
function other_click(e)
{
    try {  
        var item_id = document.getElementById('benefit').getAttribute("item_id");
        var item = document.getElementById(item_id);
        item.style.color = 'inherit';
        item.style.fontWeight='normal';
        var box_id = document.getElementById('benefit').getAttribute("box_id");
        document.getElementById(box_id).style.backgroundPosition="0 0px";
    }
    catch(err){}
    var input = document.getElementById('benefit');
    var txt_other = 'Other...';
    input.value= txt_other; 
    input.setAttribute("box_id", 'gt_box04');
    var b_text = document.getElementById('benefit-text');
    if(typeof(b_text.textContent) == 'undefined') {
        b_text.innerText = txt_other;
        document.getElementById('gt-block01').setAttribute("className", "gt-selected");
    }
    else {
        b_text.textContent = txt_other;
        document.getElementById('gt-block01').setAttribute("class", "gt-selected");
    }    
    var block = document.getElementById('gt_box04');
    var pos = GetPositionByID('gt_box04'); 
    block.style.backgroundPosition="0 -"+(pos*2)+"px"; 
}
function clear_selection()
{
    document.getElementById('gt_box01').style.backgroundPosition="0 0px";
    document.getElementById('gt_box02').style.backgroundPosition="0 0px";
    document.getElementById('gt_box03').style.backgroundPosition="0 0px";
    document.getElementById('gt_box04').style.backgroundPosition="0 0px";
    try {  
        var box_id = document.getElementById('benefit').getAttribute("box_id");
        pos = GetPositionByID(box_id);
        document.getElementById(box_id).style.backgroundPosition="0 -"+(pos*2)+"px";
    }
    catch(err){} 
}
function clear_boxes()
{
    try {  
        var item_id = document.getElementById('benefit').getAttribute("item_id");
        var item = document.getElementById(item_id);
        item.style.color = '#42443e';
        item.style.fontWeight='normal';
        var box_id = document.getElementById('benefit').getAttribute("box_id");
        document.getElementById(box_id).style.backgroundPosition="0 0px";
    }
    catch(err){} 
    var input = document.getElementById('benefit');
    input.value="";
    input.setAttribute("box_id", "");
    input.setAttribute("item_id", "");
    document.getElementById('benefit-cat').value="";
    var b_text = document.getElementById('benefit-text');
    if(typeof(b_text.textContent) == 'undefined') {
        b_text.innerText = "";
        document.getElementById('gt-block01').setAttribute("className", "");   
    }
    else {
        b_text.textContent = "";
        document.getElementById('gt-block01').setAttribute("class", "");   
    }
}
// get parent element by its child and tag name
function GetParentByTag(src, tagName, pattern)
{
    while (src != null)
    {
        if( src.tagName == tagName && (!pattern || src.id.substring(0,pattern.length) == pattern ) )
        {
          break;
        }
        src = src.parentNode;
    }
    
    return src;
}
function GetPositionByID(id)
{
    var pos = 0;
    if(id=='gt_box01'||id=='gt_box03') pos = 191;
    if(id=='gt_box02') pos = 306;
    if(id=='gt_box04') pos = 101; 
    return pos;  
}
function validate_required(field,alerttxt)
{
 with (field)
  {
   if (value==null||value=="")
   {
        var message = 'Error: \''+alerttxt+'\' must be filled out! Please fill and try again';
        var err_text = document.getElementById('msg-block');
        if(typeof(err_text.textContent) == 'undefined')
            err_text.innerText = message;
        else
            err_text.textContent = message;
        return false;
   }
   else
        return true;
  }
}
function validate_email(field)
{
with (field)
  {
  apos=value.indexOf("@");
  dotpos=value.lastIndexOf(".");
  if (apos<1||dotpos-apos<2)
    {   var message = 'Error: Incorrect email address! Please re-enter and try again';
        var err_text = document.getElementById('msg-block');
        if(typeof(err_text.textContent) == 'undefined')
            err_text.innerText = message;
        else
            err_text.textContent = message;
        return false;
     }
  else {return true;}
  }
}

function validate_gt_form(thisform)
{
 with (thisform)
  {
    if (validate_required(name,"Name")==false)
        {name.focus();return false;}
    if (validate_required(number,"House name/Number")==false)
        {number.focus();return false;}
    if (validate_required(street,"Street")==false)
        {street.focus();return false;}
    if (validate_required(town,"Town")==false)
        {town.focus();return false;}
    if (validate_required(postcode,"Postcode")==false)
        {postcode.focus();return false;}
    if (validate_required(email,"Email")==false)
        {email.focus();return false;}
    if (validate_email(email)==false)
        {email.focus();return false;}
    if (validate_required(phone,"Telephone")==false)
        {phone.focus();return false;}
    if (validate_required(time,"Best time to call")==false)
        {time.focus();return false;}    
    if (validate_required(birthday,"Date of birth")==false)
        {birthday.focus();return false;}
    if (validate_required(area,"I'm interested in")==false)
        {area.focus();return false;} 
    if (validate_required(benefit,"Benefit")==false)
        {return false;}     
  }
}

function validate_ct_form(thisform)
{
 with (thisform)
  {
    if (validate_required(name,"Name")==false)
        {name.focus();return false;}
    if (validate_required(number,"House name/Number")==false)
        {number.focus();return false;}
    if (validate_required(street,"Street")==false)
        {street.focus();return false;}
    if (validate_required(town,"Town")==false)
        {town.focus();return false;}
    if (validate_required(postcode,"Postcode")==false)
        {postcode.focus();return false;}
    if (validate_required(email,"Email")==false)
        {email.focus();return false;}
    if (validate_email(email)==false)
        {email.focus();return false;}
    if (validate_required(phone,"Telephone")==false)
        {phone.focus();return false;}
    if (validate_required(area,"I'm interested in")==false)
        {area.focus();return false;}     
  }
}

function validate_rc_form(thisform)
{
 with (thisform)
  {
    if (validate_required(code,"Voucher code or your name")==false&&validate_required(your_name,"Voucher code or your name")==false)
        {code.focus();return false;}
    if (validate_required(fr_name,"Friends name")==false)
        {fr_name.focus();return false;}
    if (validate_required(email,"Email")==false)
        {email.focus();return false;}
    if (validate_email(email)==false)
        {email.focus();return false;}
    if (validate_required(phone,"Telephone")==false)
        {phone.focus();return false;}
    if (validate_required(address,"Address")==false)
        {address.focus();return false;}
    if (validate_required(town,"Town/City")==false)
        {town.focus();return false;}
    if (validate_required(postcode,"Postcode")==false)
        {postcode.focus();return false;} 
  }
}
function InputHint(el,hint){
	this.hint = hint;
	this.el = el;
	this.el.style.color = '#aaa';
	this.el.value = hint;
	this.el.onfocus = function(){
		el.value = '';
		el.style.color = '';
	}
	this.el.onblur = function(){
		if (el.value == ''){
			el.style.color = '#aaa';
			el.value = hint;
		}else{
			el.onfocus = null;
			el.onblur = null;
		}
	
	}
}