var sentClicked = false;
var selectedAll = false;

function getElement(id) {
  if (document.layers) {
    return document.form[id];
  } else
    return document.getElementById(id);
}

// uses showUsed field
function showChars(input, len) {
  var tot = input.value.length;
  var avail = len - tot;
  var availfield = 'showUsed' + input.name;
  getElement(availfield).value = avail;
  if (avail < 0) {
    input.value = input.value.substring(0, len);
    getElement(availfield).value = 0;
    return false;
  }
  return true;
}

// Used to count number of parts an SMS message makes
function partCount(input, banner) {
  
  // Check if text or banner contains UTF-8 characters
  // In that case part count is calculates based on UTF-8 encoding
  var utf8 = false;
  if (isUTF8(input) || isUTF8(banner)) {
  	utf8 = true;
  }
  
  var tot = input.value.length + banner.value.length;
  if (!utf8) {
   	tot = getGSMLength(input.value + banner.value);
  }
  
  var parts = 1;
  if (!utf8 && tot > 160) {
    // multiple messages, each. max 153 chars
    var parts  = tot / 153;
    parts = Math.ceil(parts); // round
  } else if (utf8 && tot > 70) {
    var parts = tot / 66;
    parts = Math.ceil(parts);
  }  
  var availfield = 'partCount' + input.name;
  getElement(availfield).value = parts;
  return parts;
}

function isUTF8(text) {

  var utf8 = false;  
  var len = text.value.length;
  for (var i = 0; i < len; i++) {  
	var ch = text.value.charCodeAt(i);
	//alert(ch);
  	if (ch > parseInt(0x007F, 16) && ch != 8364) {
	  utf8 = true;
  	}
  }  	
  return utf8;
}


// Shows number of characters available 
function showAvail(input, banner, len) {

  // Check if text or banner contains UTF-8 characters
  // In that case part count is calculates based on UTF-8 encoding
  var utf8 = false;
  if (isUTF8(input) || isUTF8(banner)) {
  	utf8 = true;
  }

  var tot = input.value.length + banner.value.length;
  if (!utf8) {
   	tot = getGSMLength(input.value + banner.value);
  }
  
  var avail = tot;
  var availfield = 'showUsed' + input.name;
  
  var parts = partCount(input, banner);
  if (parts == 1 && !utf8) {
  	avail = 160 - tot;
  } else if (parts == 1 && utf8) {
  	avail = 70 -tot;
  } else if (utf8) {
  	if (parts > len) { // too many parts
  	  input.value = input.value.substring(0, len * 66);
  	  getElement(availfield).value = 0;
  	  return false; 
  	}
  	avail = (parts * 66) - tot;  
  } else if (!utf8) {
  
  	if (parts > len) { // too many parts
  	  input.value = input.value.substring(0, len * 153);
  	  getElement(availfield).value = 0;
  	  return false; 
  	}
  	avail = (parts * 153) - tot;
  }  
  getElement(availfield).value = avail;
  return true;
}

function getGSMLength(text) {

	var l = 0;
	var ll = text.length;
	for (var i = 0; i < ll; i++) {
		var ch = text.charAt(i);		
		switch (ch) {
			
			case '|':
				l++;
				l++;
				break;
			case '^':
				l++;
				l++;
				break;
			case '\u20AC':
				l++;
				l++;
				break;
			case '{':
				l++;
				l++;
				break;
			case '}':
				l++;
				l++;
				break;
			case '[':
				l++;
				l++;
				break;
			case '~':
				l++;
				l++;
				break;
			case ']':
				l++;
				l++;
				break;
			case '\\':
				l++;
				l++;
				break;
			default:
				l++;
				
			
		}
	}
	return l;

}

function link(url, name, w, h) {
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(url, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=" + w + ",height=" + h + "');");
}

function findInListbox(listbox, str, str2) {
  var i = 0;
  var newstr = "";
  if (str.length < str2.length) {
    newstr = str2;
  } else { newstr = str; }
  newstr = str2;
  alert(str);
  alert(str2);
  newstr = newstr.toLowerCase();
  if (listbox.selectedIndex == -1) i = 0; else
    i = listbox.selectedIndex + 1;
  if (listbox.selectedIndex == listbox.options.length-1)
    i = 0;
  var found = 0;
  for (i; i < listbox.options.length; i++) {
    var s = listbox.options[i].text.toLowerCase();
    if (s.indexOf(newstr) != -1) {
      listbox.selectedIndex = i;
      found = 1;
      break;
    }
  }
}

function findInListbox(listbox, str) {
  var i = 0;
  str = str.toLowerCase();
  if (str.charAt(0) == '0') str = str.substring(1);
  if (listbox.selectedIndex == -1) i = 0; else
    i = listbox.selectedIndex + 1;
  if (listbox.selectedIndex == listbox.options.length-1)
    i = 0;
  var found = 0;
  for (i; i < listbox.options.length; i++) {
    var s = listbox.options[i].text.toLowerCase();
    if (s.indexOf(str) != -1) {
      listbox.selectedIndex = i;
      found = 1;
      break;
    }
  }
}

function alreadyClicked() {
  if (sentClicked == false) return true;
  sentClicked = true;
  return false;
}

function popUp(URL) {
day = new Date();
id = day.getTime();

  eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=250,height=120,left = 451,top = 382');");
}

function selectAll() {	
	if (!selectedAll) {
		for (var i = 0; i < document.form.elements.length; i++) document.form.elements[i].checked = true;
		selectedAll = true;
	} else {
		for (var i = 0; i < document.form.elements.length; i++) document.form.elements[i].checked = false;
		selectedAll = false;		
	}
}

function redirectFBS(url) {
	var e = document.form.autorefresh.options[document.form.autorefresh.selectedIndex].value;
    window.location= url + "&autorefresh=" + e;
}

