var isOpera = navigator.userAgent.indexOf("Opera") > -1; 
var isIE = navigator.userAgent.indexOf("MSIE") > 1 && !isOpera; 
var isMoz = navigator.userAgent.indexOf("Mozilla/5.") == 0 && !isOpera;

function replaceText(id,flg)
{
	if((!id) || id=='')
	{
		eng='engraver';
		fnt='fonts';
		view='engraverView';
	}
	else
	{
		eng='engraver_' + id;
		fnt='fonts_' + id;
		view='engraverView_' + id;
	}

	//alert(document.getElementById(eng).value);
  var text = document.getElementById(eng).value;
  text = text.replace(/\+/g,'%2B');
  text = text.replace(/"/g,'%22');
  text = encodeURIComponent(text);
  text = text.replace(/'/g,'%27');
  if(flg=="new")
  {
	text="";  
  }
	
 	imgurl = "https://www.tungstenworld.com/core/engraver/libs/font.php?text="+text+"&style="+encodeURIComponent(document.getElementById(fnt).value);
	//alert('imgurl = '+imgurl);
	//alert(text);
	document.getElementById(view).innerHTML = "<img src='"+imgurl+"' border='0' vspace='5' hspace='5'>";
}

function set_cursor_pos(field,cur_pos)
{
   if (cur_pos == -1) return;
   field.focus();
   if (field.createTextRange) {
      var range = field.createTextRange();
      range.move("Character",cur_pos);
      range.select();
   }
   else if (field.setSelectionRange) field.setSelectionRange(cur_pos,cur_pos);
}

function get_cursor_pos(field)
{
   if (typeof field.selectionStart != "undefined")
      return field.selectionStart;
   else if (document.selection)
      return Math.abs(document.selection.createRange().moveStart("character",-1000000));
}

function get_selection_length(field)
{
   if (typeof field.selectionStart != "undefined") {
      return field.selectionEnd - field.selectionStart;
}
   else if (document.selection) {
      var selected_range = document.selection.createRange();
      return selected_range.text.length;
   }
}

function insert_char(keychar,field,cursor_pos)
{
   field.value = field.value.substring(0,cursor_pos) + keychar + field.value.substring(cursor_pos);
}

function replace_char(keychar,field,cursor_pos)
{
   field.value = field.value.substring(0,cursor_pos) + keychar + field.value.substring(cursor_pos + 1);
}

function delete_chars(field,pos,num_chars)
{
   field.value = field.value.substring(0,pos) + field.value.substring(pos + num_chars);
}

 function addSymbol(btnvalue,id)
 {
	if((!id) || id=='')
	{
		eng='engraver';
		fnt='fonts';
		view='engraverView';
		ve='visibleEngraver';
	}
	else
	{
		eng='engraver_' + id;
		fnt='fonts_' + id;
		view='engraverView_' + id;
		ve='visibleEngraver_' + id;
	}
	if(btnvalue == 'infi')
		btnvl = '\x10';
	if(btnvalue == 'bull')
		btnvl = '\x11';
	if(btnvalue == 'cros')
		btnvl = '\x12';
	if(btnvalue == 'hear')
		btnvl = '\x13';
	if(btnvalue == 'yiny')
		btnvl = '\x14';
		
		
  var visible_field = document.getElementById(ve);
  visible_field.focus();
  if (visible_field.value.length >= 30) return;
  var cursor_pos = get_cursor_pos(visible_field);
  var engraver_field = document.getElementById(eng);
  insert_char(btnvl,engraver_field,cursor_pos);
  var visible_field = document.getElementById(ve);
  insert_char('*',visible_field,cursor_pos);
  replaceText(id);
  set_cursor_pos(visible_field,cursor_pos + 1);
 }

/*
var keyboard_symbols = new Array('','','','','','','','','','','','','','','',
   '','','','','','','','','','','','','','','','','','','!','"','#','$','%',
   '&','\'','(',')','*','+',',','-','.','/','','','','','','','','','','',':',
   ';','<','=','>','?','@','','','','','','','','','','','','','','','','','',
   '','','','','','','','','','','','^','_','`','','','','','','','','','','',
   '','','','','','','','','','','','','','','','','{','|','}','~');

function convert_keycode(event)
{
   if (isIE) var keycode = event.keyCode;
   else var keycode = event.charCode;
   if (((keycode > 32) && (keycode < 48)) ||
       ((keycode > 57) && (keycode < 65)) ||
       ((keycode > 93) && (keycode < 97)) ||
       ((keycode > 122) && (keycode < 127))) return keyboard_symbols[keycode];
   else return String.fromCharCode(keycode);
}
*/

function engraver_keydown(event,id)
{
	//alert("sk1");
   //if (! isIE) return;
   //var keycode = event.keyCode; //comment by kishan
   var keycode=event.charCode? event.charCode : event.keyCode;
   if ((keycode == 8) || (keycode == 46)) engraver_keypress(event,id,true,keycode);
}

function engraver_keypress(event,id,delete_flag,keycode)
{
	
	//alert("sk2");
	if((!id) || id=='')
	{
		ve='visibleEngraver';
		eng='engraver';
	}
	else
	{
		ve='visibleEngraver_' + id;
		eng='engraver_' + id;
	}
   /*if (! event) event = window.event;
   var keycode = event.keyCode;*/
   //above comment is done by kishan
    if(keycode==""){
   
    if (! event) event = window.event;
    var keycode = event.keyCode;
   }
   else{
    var keycode =keycode;
   }
   //alert(keycode);
 //  if ((! isIE) && ((keycode == 8) || (keycode == 46))) delete_flag = true; //comment by kis
   if ((! isIE) && ((keycode == 8) )) delete_flag = true;
// alert('keypress keycode = '+event.keyCode+', delete_flag = '+delete_flag);
//   if ((keycode > 34) && (keycode < 41)) return;
	//alert(ve);
   var visible_field = document.getElementById(ve);
   //alert(visible_field + " " + ve);
   var cursor_pos = get_cursor_pos(visible_field);
   var selection_length = get_selection_length(visible_field);
   var engraver_field = document.getElementById(eng);
//   var selection_length = engraver_field.value.length - visible_field.value.length;
   if ((selection_length > 0) && delete_flag) selection_length--;
   if (selection_length > 0) delete_chars(engraver_field,cursor_pos,selection_length);
   if (delete_flag && (keycode == 8)) {
      if (cursor_pos > 0) delete_chars(engraver_field,cursor_pos - 1,1);
   }
   else if (delete_flag && (keycode == 46)) delete_chars(engraver_field,cursor_pos,1);
   else if (visible_field.value.length < 30) {
//      var current_char = visible_field.value.charAt(cursor_pos - 1);
//      var current_char = convert_keycode(event);
      var current_char = String.fromCharCode(isIE ? event.keyCode : event.charCode);
//      if (selection_length > 0) replace_char(current_char,engraver_field,cursor_pos); else
      insert_char(current_char,engraver_field,cursor_pos);
// alert('inserted '+current_char+', keyCode = '+event.keyCode);
   }
   if(event=="new")
   {
	   delete_flag = true
	   replaceText(id,'new');
	   
	   if (delete_flag)
	   {
		  for(var m=1;m<=cursor_pos;m++)
		  {
		  	delete_chars(engraver_field,cursor_pos - m,1);
		  }
	   }
		//set_cursor_pos(visible_field,0);//cursor_pos=0;
   }
   else
   {
   		replaceText(id);
		
   }
}


