var main_page = true;

function trimstr(s) { return s.replace(/^\s+/,'').replace(/\s+$/,''); }
function get_key_code(e) { if (!e) { e = window.event; } return e.keyCode ? e.keyCode : e.which ? e.which : e.charCode; }

function is_fonttester() {
 if (window.location.protocol == 'http:') {
  if ((window.location.hostname.toLowerCase() == 'www.trishasdesignstudio.com') || (window.location.hostname.toLowerCase() == 'trishasdesignstudio.com') || (window.location.href.indexOf('translate') != -1) || (window.location.href.indexOf('cache') != -1)) {
   return true;
  } else { return false; }
 } else { return false; }
}

function font_unit_dropdown_onchange() {
 if (trimstr(document.forms[0].font_size_textbox.value) != '') {
  update_all_spans_font_size(document.forms[0].font_size_textbox.value + document.forms[0].font_size_unit.value);
 }
}
function font_size_dropdown_onchange(it) {
 if (it.value == 'other') {
  document.forms[0].font_size_textbox.disabled = false;
  document.forms[0].font_size_unit.disabled = false;
  update_all_spans_font_size(document.forms[0].font_size_textbox.value + document.forms[0].font_size_unit.value);
 }
 else {
  document.forms[0].font_size_textbox.disabled = true;
  document.forms[0].font_size_unit.disabled = true;
  update_all_spans_font_size(it.value);
 }
}
function update_all_spans_preview_text(new_value) {
  var spans = document.body.getElementsByTagName("SPAN");
  for (var i=0;i<spans.length;i++) {
   spans[i].innerHTML = new_value;
  }
}
function update_all_spans_font_size(new_value) {
  var spans = document.body.getElementsByTagName("SPAN");
  for (var i=0;i<spans.length;i++) {
   spans[i].style.fontSize = new_value;
  }
}
function font_size_textbox_onkeyup() {
 if (key_is_valid) {
  var spans = document.body.getElementsByTagName("SPAN");
  if (spans[0].style.fontSize != (this.value + document.forms[0].font_size_unit.value) ) {
   if (trimstr(this.value) != '') { update_all_spans_font_size(this.value + document.forms[0].font_size_unit.value); }
  }
 }
}
function two_decimal_places_textbox_keydown(e) {
 if (!e) { e = window.event; }
 if (event_already_caught == false) { two_decimal_places_textbox_keypress(e); }
 event_already_caught = false;
}
function two_decimal_places_textbox_keypress(e) {
 event_already_caught = true;
 if (!e) { e = window.event; }
 keycode = get_key_code(e);
 h_s_or_v = false;
 if ((e.srcElement.id == 'h_input') || (e.srcElement.id == 's_input') || (e.srcElement.id == 'v_input') || (e.srcElement.id == 'r_input') || (e.srcElement.id == 'g_input') || (e.srcElement.id == 'b_input')) {
  h_s_or_v = true;
  if (keycode == 46) { key_is_valid = false; event.returnValue = false; return false; }
 }
 if ((window.location.href.indexOf('web-safe-font-size-sample.asp') == -1) && (window.location.href.indexOf('web-safe-font-size-sample.asp') == -1)) {
  main_page = true;
 }
 else { main_page = false; }
 if (main_page == true) { get_element_to_update(); }
 switch(keycode) {
  case 38: // up arrow
   if (e.srcElement.value.length > 0) {
    if (e.srcElement.value.indexOf('.') == -1) {
     if (e.srcElement.id == 'h_input') { if (e.srcElement.value < 359) { e.srcElement.value = parseInt(e.srcElement.value) + 1; } }
     else if ((e.srcElement.id == 's_input') || (e.srcElement.id == 'v_input')) { if (e.srcElement.value < 100) { e.srcElement.value = parseInt(e.srcElement.value) + 1; } }
     else if ((e.srcElement.id == 'r_input') || (e.srcElement.id == 'g_input') || (e.srcElement.id == 'b_input')) { if (e.srcElement.value < 255) { e.srcElement.value = parseInt(e.srcElement.value) + 1; } }
     else {
      e.srcElement.value = parseInt(e.srcElement.value) + 1;
     }
    }
    else { e.srcElement.value = (parseFloat(e.srcElement.value) + 0.1).toFixed(1); }
   }
   key_is_valid = true;
   break;
  case 40: // down arrow
   if (e.srcElement.value.length > 0) {
    if (e.srcElement.value.indexOf('.') == -1) {
     if (h_s_or_v == true) { if (e.srcElement.value > 0) { e.srcElement.value = parseInt(e.srcElement.value) - 1; } }
     else {
      e.srcElement.value = parseInt(e.srcElement.value) - 1;
     }
    }
    else { e.srcElement.value = (parseFloat(e.srcElement.value) - 0.1).toFixed(1); }
   }
   key_is_valid = true;
   break;
  case 46: case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: case 8: case 127:
   key_is_valid = true;
   break;
  default:
   key_is_valid = false;
   e.returnValue = false;
 }
 if (keycode == 46) {
  key_is_valid = false;
  if (e.srcElement.value.indexOf('.') != -1) { // already contains a (.)
   e.returnValue = false;
  }
 }
 if (key_is_valid == true) {
  if (e.srcElement.id == 'font_size_textbox') {
   if (trimstr(e.srcElement.value) != '') {
    if (e.srcElement.value.length > 0) {
     if (e.srcElement.value.substring(e.srcElement.value.length-1) != '.') {
      element_to_update.style.fontSize = e.srcElement.value + document.forms[0].font_size_unit.value;
     }
    } else { element_to_update.style.fontSize = '0' + document.forms[0].font_size_unit.value; }
   }
  }
  else if (e.srcElement.id == 'font_size_textbox') {
   if (trimstr(e.srcElement.value) != '') { update_all_spans_font_size(e.srcElement.value + document.forms[0].font_size_unit.value); }
  }
  else if (e.srcElement.id == 'line_height_textbox') {
   if (trimstr(e.srcElement.value) != '') {
    if (e.srcElement.value.length > 0) {
     if (e.srcElement.value.substring(e.srcElement.value.length-1) != '.') {
      element_to_update.style.lineHeight = e.srcElement.value + document.forms[0].line_height_unit.value;
     }
    } else { element_to_update.style.lineHeight = '0' + document.forms[0].line_height_unit.value; }
   }
  }
  else if (e.srcElement.id == 'text_indent_textbox') {
   if (trimstr(e.srcElement.value) != '') {
    if (e.srcElement.value.length > 0) {
     if (e.srcElement.value.substring(e.srcElement.value.length-1) != '.') {
      element_to_update.style.textIndent = e.srcElement.value + document.forms[0].text_indent_unit.value;
     }
    } else { element_to_update.style.textIndent = '0' + document.forms[0].text_indent_unit.value; }
   }
  }
  else if (e.srcElement.id == 'letter_spacing_textbox') {
   if (trimstr(e.srcElement.value) != '') {
    if (e.srcElement.value.length > 0) {
     if (e.srcElement.value.substring(e.srcElement.value.length-1) != '.') {
      element_to_update.style.letterSpacing = e.srcElement.value + document.forms[0].letter_spacing_unit.value;
     }
    } else { element_to_update.style.letterSpacing = '0' + document.forms[0].letter_spacing_unit.value; }
   }
  }
  else if (e.srcElement.id == 'word_spacing_textbox') {
   if (trimstr(e.srcElement.value) != '') {
    if (e.srcElement.value.length > 0) {
     if (e.srcElement.value.substring(e.srcElement.value.length-1) != '.') {
      element_to_update.style.wordSpacing = e.srcElement.value + document.forms[0].word_spacing_unit.value;
     }
    } else { element_to_update.style.wordSpacing = '0' + document.forms[0].word_spacing_unit.value; }
   }
  }
  else if (e.srcElement.id == 'font_size_adjust_textbox') {
   if (trimstr(e.srcElement.value) != '') {
    if (e.srcElement.value.length > 0) {
     if (e.srcElement.value.substring(e.srcElement.value.length-1) != '.') {
      element_to_update.style.fontSizeAdjust = e.srcElement.value;
     }
    } else { element_to_update.style.fontSizeAdjust = '0'; }
   }
  }
  else if (h_s_or_v == true) {
   if ((e.srcElement.id == 'h_input') || (e.srcElement.id == 's_input') || (e.srcElement.id == 'v_input')) {
    // update RGB
    rgb_arr = HSVtoRGB(document.forms[0].h_input.value, document.forms[0].s_input.value, document.forms[0].v_input.value);
    document.forms[0].r_input.value = rgb_arr[0];
    document.forms[0].g_input.value = rgb_arr[1];
    document.forms[0].b_input.value = rgb_arr[2];
   }
   else if ((e.srcElement.id == 'r_input') || (e.srcElement.id == 'g_input') || (e.srcElement.id == 'b_input')) {
    // update HSV
    hsv_arr = RGBtoHSV(document.forms[0].r_input.value, document.forms[0].g_input.value, document.forms[0].b_input.value);
    document.forms[0].h_input.value = hsv_arr[0];
    document.forms[0].s_input.value = hsv_arr[1];
    document.forms[0].v_input.value = hsv_arr[2];
    rgb_arr[0] = document.forms[0].r_input.value;
    rgb_arr[1] = document.forms[0].g_input.value;
    rgb_arr[2] = document.forms[0].b_input.value;
   }
   // update Hex Textbox
   document.forms[0].cp_hex_input.value = makeHexFromRGB(rgb_arr[0], rgb_arr[1], rgb_arr[2]);
   cp_hex_textbox_has_changed();
  }
  if (main_page == true) {
   make_css_edit_box_text();
  }
 }
}

function write_length_units_dropdown(the_id, disabled, selected_number) {
 var tmp = '<select name="' + the_id + '" id="' + the_id + '"';
 if (disabled == true) { tmp += ' disabled="disabled"'; }
 tmp += ' tabindex="1">';
 var selected = new Array(9);
 selected[selected_number] = ' selected="selected"';
 document.writeln(tmp);
 document.writeln('<option value=""' + selected[0] + '>Select Unit</option>');
 document.writeln('<option value="px"' + selected[1] + '>px</option>');
 document.writeln('<option value="%"' + selected[2] + '>%</option>');
 document.writeln('<option value="em"' + selected[3] + '>em</option>');
 document.writeln('<option value="in"' + selected[4] + '>in</option>');
 document.writeln('<option value="cm"' + selected[5] + '>cm</option>');
 document.writeln('<option value="mm"' + selected[6] + '>mm</option>');
 document.writeln('<option value="pt"' + selected[7] + '>pt</option>');
 document.writeln('<option value="pc"' + selected[8] + '>pc</option>');
 document.writeln('<option value="ex"' + selected[9] + '>ex</option>');
 document.writeln('</select>');
}
