String.prototype.toProperCase = function()
{
     return this.toLowerCase().replace(/\w+/g,function(s)
       {
            return s.charAt(0).toUpperCase() + s.substr(1);
       }
     )
}

function engraving_step_1(Instance)
{
  try // Engraving Style
  {
     EngraveStyle = Form.getInputs('updateproduct', 'radio', 'rdo_engravestyle_' + Instance).find(function(radio) { return radio.checked; }).value;
  }
  catch(e)
  {
    EngraveStyle = '';
  }
  
  if (0 == EngraveStyle.length)
  {
     $('msg_engravedetail_' + Instance).show();
  }
  else
  {
    $('msg_engravedetail_' + Instance).hide();
    $('engraving_step_1_' + Instance).hide();
    $('engraving_style_' + Instance + '_selected').innerHTML = EngraveStyle.toProperCase() + ' Engraving';
    $('engraving_style_' + Instance + '_selected').show();
    $('step_1_edit_' + Instance).show();
    $('step_1_title_' + Instance).removeClassName('active');
    
    $('engraving_step_2_' + Instance).show();
    $('step_2_title_' + Instance).addClassName('active');
  }
  
  return false;
}

function engraving_step_1_show(Instance)
{
  $('msg_engravedetail_' + Instance).hide();
  $('engraving_step_1_' + Instance).show();
  $('engraving_style_' + Instance + '_selected').hide();
  $('step_1_edit_' + Instance).hide();
  $('step_1_title_' + Instance).addClassName('active');
  
  // Hide step 2
  $('engraving_step_2_' + Instance).hide();
  $('engraving_position_' + Instance + '_selected').hide();
  $('step_2_edit_' + Instance).hide();
  $('step_2_title_' + Instance).removeClassName('active');
  
  // Hide step 3
  $('engraving_step_3_' + Instance).hide();
  $('step_3_title_' + Instance).removeClassName('active');
  
  return false;
}

function engraving_step_2(Instance)
{
  try // Engraving Placement Option 1
  {
      EngraveOption1  = Form.getInputs('updateproduct', 'radio', 'rdo_engraveplacement1_' + Instance).find(function(radio) { return radio.checked; }).value;
  }
  catch(e)
  {
    EngraveOption1 = '';
  }

  try // Engraving Placement Option 2
  {
    EngraveOption2  = Form.getInputs('updateproduct', 'radio', 'rdo_engraveplacement2_' + Instance).find(function(radio) { return radio.checked; }).value;
  }
  catch(e)
  {
    EngraveOption2 = '';
  }
  
  if (0 == EngraveOption1.length) $('msg_engraveplacement1_' + Instance).show();

  if (0 == EngraveOption2.length) $('msg_engraveplacement2_' + Instance).show();

  if ((0 != EngraveOption1.length) && (0 != EngraveOption2.length))
  {
    // Sort out step 2
    $('msg_engraveplacement1_' + Instance).hide();
    $('msg_engraveplacement2_' + Instance).hide();
    $('engraving_step_2_' + Instance).hide();
    $('engraving_position_' + Instance + '_selected').innerHTML = '<span class="float_l" style="width: 50%">Option 1: ' + $('rdo_engraveplacement1_' + Instance + '_' + EngraveOption1 + '_label').innerHTML + '</span><span class="float_r" style="width: 50%">Option 2: ' + $('rdo_engraveplacement2_' + Instance + '_' + EngraveOption2 + '_label').innerHTML + '</span><br class="clear" />';
    $('engraving_position_' + Instance + '_selected').show();
    $('step_2_edit_' + Instance).show();
    $('step_2_title_' + Instance).removeClassName('active');
    
    // Show the right engraving for step 3
    EngraveStyle = Form.getInputs('updateproduct', 'radio', 'rdo_engravestyle_' + Instance).find(function(radio) { return radio.checked; }).value;
    $('engravefont_' + EngraveStyle + '_' + Instance + '_block').show();
    
    $('engraving_step_3_' + Instance).show();
	$('step_3_title_' + Instance).addClassName('active');
  }
}

function engraving_step_2_show(Instance)
{
  $('msg_engraveplacement1_' + Instance).hide();
  $('msg_engraveplacement2_' + Instance).hide();
  $('engraving_step_2_' + Instance).show();
  $('engraving_position_' + Instance + '_selected').hide();
  $('step_2_edit_' + Instance).hide();
  $('engraving_bg_' + Instance).style.height = '470px';
  $('step_2_title_' + Instance).addClassName('active');
  
  // Hide step 3
  $('engraving_step_3_' + Instance).hide();
  $('step_3_title_' + Instance).removeClassName('active');
  $('step_1_title_' + Instance).removeClassName('active');
  
  return false;
}

function update_engraving(Instance)
{
  EngraveStyle = Form.getInputs('updateproduct', 'radio', 'rdo_engravestyle_' + Instance).find(function(radio) { return radio.checked; }).value;
  EngraveOption1  = Form.getInputs('updateproduct', 'radio', 'rdo_engraveplacement1_' + Instance).find(function(radio) { return radio.checked; }).value;
  EngraveOption2  = Form.getInputs('updateproduct', 'radio', 'rdo_engraveplacement2_' + Instance).find(function(radio) { return radio.checked; }).value;

  EngraveInstructions = '';

  try // Engraving Type
	{
    EngraveType = Form.getInputs('updateproduct', 'radio', 'rdo_engravedetail_' + Instance).find(function(radio) { return radio.checked; }).value;
  }
  catch(e)
  {
    EngraveType = '';
  }
  
	try // Engraving Text
	{
	  EngraveText	= $('eng_text_' + Instance).value;
	}
	catch(e)
	{
	  EngraveText = '';
	}

	if(0 < EngraveStyle.length)
	{
	  try // Engraving Font
		{
			EngraveFont = Form.getInputs('updateproduct', 'radio', 'rdo_engravefont_' + EngraveStyle + '_' + Instance).find(function(radio) { return radio.checked; }).value;
		}
		catch(e)
		{
		  EngraveFont = '';
		}
	}
	else
	{
		EngraveFont = '';
	}

	// Only if the items are valid.
	if((0 < EngraveType.length)
	&& (0 < EngraveStyle.length)
	&& (0 < EngraveOption1.length)
	&& (0 < EngraveOption2.length)
	&& (0 < EngraveFont.length)
	&& (0 < EngraveText.length))
	{
		new Ajax.Request('/ajax/'+EshopPositionName+'/updateengraving', {
		  method: 'get',
		  parameters: {
		    instance:Instance,
  			engrave_details_sku:Instance,
  			engrave_details_type:EngraveType,
  			engrave_details_style:EngraveStyle,
  			engrave_details_option1:EngraveOption1,
  			engrave_details_option2:EngraveOption2,
  			engrave_details_font:EngraveFont,
  			engrave_details_text:EngraveText,
  			engrave_details_instructions:EngraveInstructions
		   },
		  onSuccess: function(transport)
		  {
		    window.location.reload(true);
		  }
		});
	}
	else
	{
	   if (0 == EngraveType.length) $('msg_engravedetail_' + Instance).show();
	   else $('msg_engravedetail_' + Instance).hide();

	   if (0 == EngraveText.length) $('msg_eng_text_' + Instance).show();
	   else $('msg_eng_text_' + Instance).hide();

	   if(0 < EngraveStyle.length)
	   {
	     if (0 == EngraveFont.length) $('msg_engravefont_' + Instance).show();
	     else $('msg_engravefont_' + Instance).hide();
	   }
	}
	
	return false;
}

function filter(obj, event) {
						
						var e = event || window.event;         // Key event object
						var code = e.charCode || e.keyCode;    // What key was pressed
						var messageId = obj.id;
						var product = messageId.slice(13);
						var messageBox = 'gift_message_' + product;
						var messageIndexBox = 'message_length_' + product;
						
						if ($(messageBox).value.length >= 100) {
							
							if (code == 8 ) {
								$(messageIndexBox).value = 1;
								//alert('t');
								$(messageBox).value = $(messageBox).value.substring(0, 100);
							} else { $(messageIndexBox).value = 0;
							$(messageBox).value = $(messageBox).value.substring(0, 99);
							}
							//$(messageIndexBox).value = 0;
						
						} else if (code == 8 ) {
							$(messageIndexBox).value = ((100 - $(messageBox).value.length) + 1);
							//alert('t2');
						}
						else {
							$(messageIndexBox).value = ((100 - $(messageBox).value.length) - 1);
						}
							  
						/*if (code == 8 ) { 
							//alert('back');
							$(messageIndexBox).value = ((5 - $(messageBox).value.length));
						} else {
							//alert('all other');
							$(messageIndexBox).value = ((5 - $(messageBox).value.length));
							
						}*/
						
						/*if ($(x).value.length >= 100) {
							$(x).value = ($(x).value.substring(0, 99));
							$(index).value = 0;
							} else {
							$(index).value = (100 - $(x).value.length);
							}*/

						
					}

