var text_enter_url      = "Enter the complete URL for the hyperlink";
var text_enter_url_name = "Enter the title of the webpage";
var error_no_url        = "You must enter a URL";
var error_no_title      = "You must enter a title";


var myAgent   = navigator.userAgent.toLowerCase();
var myVersion = parseInt(navigator.appVersion);
var is_ie   = ((myAgent.indexOf("msie") != -1)  && (myAgent.indexOf("opera") == -1));
var is_nav  = ((myAgent.indexOf('mozilla')!=-1) && (myAgent.indexOf('spoofer')==-1)
                && (myAgent.indexOf('compatible') == -1) && (myAgent.indexOf('opera')==-1)
                && (myAgent.indexOf('webtv') ==-1)       && (myAgent.indexOf('hotjava')==-1));

var is_win   =  ((myAgent.indexOf("win")!=-1) || (myAgent.indexOf("16bit")!=-1));
var is_mac    = (myAgent.indexOf("mac")!=-1);

function doInsert(ibTag, ibClsTag, isSingle, inputObject)
{
	var isClose = false;
	var obj_ta = inputObject;

	if ( (myVersion >= 4) && is_ie && is_win) // Ensure it works for IE4up / Win only
	{
		if(obj_ta.isTextEdit){ // this doesn't work for NS, but it works for IE 4+ and compatible browsers
			obj_ta.focus();
			var sel = document.selection;
			var rng = sel.createRange();
			rng.colapse;
			if((sel.type == "Text" || sel.type == "None") && rng != null){
				if(ibClsTag != "" && rng.text.length > 0)
					ibTag += rng.text + ibClsTag;
				else if(isSingle) {
					isClose = true;
					ibTag += ibClsTag;
				}

					rng.text = ibTag;
			}
		}
		else{
			if(isSingle)
				isClose = true;
				obj_ta.value += ibTag;
		}
	}
	else
	{
		if(isSingle)
			isClose = true;
			obj_ta.value += ibTag;
	}

	obj_ta.focus();
	
	// clear multiple blanks
//	obj_ta.value = obj_ta.value.replace(/  /, " ");

	return isClose;
}	


function tag_url(inputObject)
{
    var FoundErrors = '';
	var sel = document.selection;
	var rng = sel.createRange();
	var URLValue;
	if (rng!=null) {
		URLValue = rng.text;
	}
	
	if (URLValue=="") {
		URLValue = "My Webpage"
	}
    var enterURL   = prompt(text_enter_url, "http://");
    var enterTITLE = prompt(text_enter_url_name, URLValue);

    if (!enterURL) {
        FoundErrors += " " + error_no_url;
    }
    if (!enterTITLE) {
        FoundErrors += " " + error_no_title;
    }

    if (FoundErrors) {
        alert("Error!"+FoundErrors);
        return;
    }

	doInsert("<a href=\""+enterURL+"\">"+enterTITLE+"</a>", "", false,inputObject);
}

//--------------------------------------------
// SIMPLE TAGS (such as B, I U, etc)
//--------------------------------------------

function simpletag(thetag, withEnding, inputObject)
{
	if (withEnding) 
		doInsert("<" + thetag + ">", "</" + thetag + ">", true, inputObject);
	else
		doInsert("<" + thetag + ">", "", true, inputObject);
		
}

function winOpen(filename){
	
  width = 350;
  height = 150;
  
  window.open(filename,"Upload"," resizable=no,scrollbars=no,status=no, width=" + width + ",height=" + height);
  //window.open(filename,"Upload");

}

function Trim_space(s) 	{
		// ruf (11-26-2004)  	
		// Remove leading spaces and carriage returns
/*		while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
			{
		    	s = s.substring(1,s.length);
			}

	  	// Remove trailing spaces and carriage returns
		while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
		  	{
		    	s = s.substring(0,s.length-1);
		  	}
*/		  
		  s = this != window? this : s;
		  return s.replace(/^\s+/g, '').replace(/\s+$/g, '');
//		return s;
	}

function lTrim(s) {
		// ruf (11-26-2004) 
		// Remove leading spaces and carriage returns
		while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
			{
		    	s = s.substring(1,s.length);
		  	}

	  	return s;
	}
	
function rTrim(s) {
		// ruf (11-26-2004) 
	  	// Remove trailing spaces and carriage returns
		while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
		  	{
		    	s = s.substring(0,s.length-1);
		  	}
		
	  	return s;
	}
	

function checkValidDate(dateStr) {
   var slash1 = dateStr.indexOf("/");
   if (slash1 == -1) { slash1 = dateStr.indexOf("-"); }
   if (slash1 == -1) { return false; }
   var dateMonth = dateStr.substring(0, slash1)
   var dateMonthAndYear = dateStr.substring(slash1+1, dateStr.length);
   var slash2 = dateMonthAndYear.indexOf("/");
   if (slash2 == -1) { slash2 = dateMonthAndYear.indexOf("-"); }
   
   if (slash2 == -1) { return false; }
   var dateDay = dateMonthAndYear.substring(0, slash2);
   var dateYear = dateMonthAndYear.substring(slash2+1, dateMonthAndYear.length);
   if ( (dateMonth == "") || (dateDay == "") || (dateYear == "") ) { return false; }
   
   for (var x=0; x < dateMonth.length; x++) {
       var digit = dateMonth.substring(x, x+1);
       if ((digit < "0") || (digit > "9")) { return false; }
   }
   
   var numMonth = 0;
   for (var x=0; x < dateMonth.length; x++) {
       digit = dateMonth.substring(x, x+1);
       numMonth *= 10;
       numMonth += parseInt(digit);
   }
   if ((numMonth <= 0) || (numMonth > 12)) { return false; }
   
   for (var x=0; x < dateDay.length; x++) {
       digit = dateDay.substring(x, x+1);
        if ((digit < "0") || (digit > "9")) { return false; }
    }
    
    var numDay = 0;
    for (var x=0; x < dateDay.length; x++) {
        digit = dateDay.substring(x, x+1);
        numDay *= 10;
        numDay += parseInt(digit);
    }
    if ((numDay <= 0) || (numDay > 31)) { return false; }
    
    if ((numMonth == 2) && (numDay > 29)) { return false; }
    
    if ((numMonth == 4) || (numMonth == 6) || (numMonth == 9) || (numMonth == 11)) { 
        if (numDay > 30) { return false; } 
    }
    
    for (var x=0; x < dateYear.length; x++) {
        digit = dateYear.substring(x, x+1);
        if ((digit < "0") || (digit > "9")) { return false; }
    }
    
    var numYear = 0;
    for (var x=0; x < dateYear.length; x++) {
        digit = dateYear.substring(x, x+1);
        numYear *= 10;
        numYear += parseInt(digit);
    }
    
    if ( (dateYear.length != 2) && (dateYear.length != 4) ) { return false; }
    
    if ( (numYear < 50) && (dateYear.length == 2) ) { numYear += 2000; }
    if ( (numYear < 100) && (dateYear.length == 2) ) { numYear += 1900; }
    if ((numYear <= 0) || (numYear > 9999)) { return false; }
    
    if ((numMonth == 2) && (numDay == 29)) {
        var div4 = numYear % 4;
        var div100 = numYear % 100;
        var div400 = numYear % 400;
       if (div4 != 0) { return false; }
        if ((div100 == 0) && (div400 != 0)) { return false; }
    }
    
    return true;
}	