var DELIMITER='|230|';
function getServerName()
{
    return(window.location.hostname);
}

function xmlHttpObj () {
   try {
       req = new XMLHttpRequest();
   } catch (e) {
       try {
           req = new ActiveXObject("Microsoft.XMLHTTP");
       } catch (e) {
           try {
               req = new ActiveXObject("Msxml2.XMLHTTP");
           } catch (e) {
               req = false;
           }
       }
   }

   if (!req && typeof XMLHTTPRequest != "undefined") {
       alert("Enabling javascript on your brower would display the page better ;) " + e.message);
   }
   return(req);
}

function xmlHttpReq (req, url, async, data, resp_handler, param) {
    var full_url = 'http://'+getServerName()+'/'+url;
    try {
	req.open("POST", full_url, async);

        req.onreadystatechange = function() {
            if (req.readyState==4) {
                if (req.status==200) {
                    resp_handler(req, param);
                }
            }
        }

        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
        req.send(data);

    } catch (req_err) {
        alert("Error encounterd: " + req_err.message);
    }        


}

function displayPages (divId, url, curPage, lastPage) {
    if (!IsNumber(curPage)) {
        return;
    }
    var pageBegin = Math.floor(curPage/20);
    var pageEnd = Math.min(pageBegin+20, lastPage);
    var a, textNode;

    var pagesLocation = document.getElementById(divId);
    if (!pagesLocation) {
	return;
    }
    // delete existing pagenation
    var pagesHref;
    while (pagesHref = pagesLocation.firstChild) {
        pagesLocation.removeChild(pagesHref);
    }
    
    // alert(url+' '+pageBegin+' '+pageEnd);
    if (pageBegin == pageEnd) {
        return;
    }

    textNode = document.createTextNode("More Pages: ");
    pagesLocation.appendChild(textNode);
    var new_page;
    
    for (var i=pageBegin; i<=pageEnd; i++) {
        var j = i+1;
        if (i==curPage) {
            textNode = document.createTextNode(j);
            pagesLocation.appendChild(textNode);        
        } else {
            a = document.createElement('a');

            if (url.match('page=')) {
                // replace the old page parameter from the url
                new_page = 'page='+i;
                url = url.replace(/page=\d{1,10}/, new_page);
            } else {
                // put new page param
                if (url.match('\\?')) {
                    url += '&page='+i;
                } else {
                    url += '?page='+i;
                }
            }
                
            a.setAttribute('href', url);
            
            // alert(url);

            textNode = document.createTextNode(j);
            a.appendChild(textNode);
            pagesLocation.appendChild(a);
        }
        textNode = document.createTextNode(' ');
        pagesLocation.appendChild(textNode);        
    }
}

function month2str (month) {
    var month_str = new Array("0th", "Jan", "Feb", "Mar", "Apr", "May", "June",
                              "Jul", "Aug", "Sept", "Oct", "Nov", "Dec");
    return(month_str[month]);
}

function tstamp2str (tstamp, include_time) {
    var dateobj = new Date(tstamp*1000);
    var date_str = month2str(dateobj.getMonth()+1)+' '+dateobj.getDate()+', '+
        dateobj.getFullYear();

    if (include_time) {
	date_str += '  '+dateobj.getHours()+':'+dateobj.getMinutes()+':'+
                    dateobj.getSeconds();
    }

    return(date_str);
}

function formatFloat (amount) {
    var i = parseFloat(amount);
    var minus = '';
    
    if(isNaN(i)) {
        i = 0.00;
    }


    i = Math.abs(i);
    i = parseInt((i + .005) * 100);
    i = i / 100;
    s = new String(i);
    
    if (amount < 0) {
        s = '-'+s;
    }

    if (s.indexOf('.') < 0) {
        s += '.00';
    }
    if (s.indexOf('.') == (s.length - 2)) {
        s += '0';
    }

    return(s);
}

function IsNumber (sText) {
   var ValidChars = "0123456789.-";
   if (!sText) {
       return false;
   }
   for (i=0; i<sText.length; i++) { 
       if (ValidChars.indexOf(sText.charAt(i)) == -1) {
           return(false);
       }
   }
   return true;
}

function displayText (div, text) {
    var i, j, mailto_len;
    var contents = text.split("\r\n");
    var href_str;
    var url_end_delimiters = new Array(' ', ',', '. ', '"', ')',
                                       '\r', '\n');
    var short_text, href_str_end, href_str_start=0,
        str_before, str_after, href_str, start, end, temp, k=0;
    
    for (i=0; i<contents.length; i++) {
        if (contents[i].match('http://') ||
            contents[i].match('https://') ||
            contents[i].match('mailto:')) {
            href_str_end = contents[i].length;
            start = href_str_start;
            end = href_str_end;
            while (k<100) {
                k++;
                href_str_start = contents[i].indexOf('http://', start);
                if (href_str_start < 0) {
                    href_str_start = contents[i].indexOf('https://', start);
                }
                if (href_str_start < 0) {
                    href_str_start = contents[i].indexOf('mailto:', start);
                }
                
                if (href_str_start < 0) {
                    str_after = contents[i].substring(start, end);
                    div.appendChild(document.createTextNode(str_after));
                    break;
                }
                
                str_before = contents[i].substring(start, href_str_start);
                
                href_str_end = end;
                for (j=0; j<url_end_delimiters.length; j++) {
                    temp = contents[i].indexOf(url_end_delimiters[j],
                                               href_str_start);
                    if (temp > 0) {
                        href_str_end = Math.min(temp, href_str_end);
                    }
                }

                href_str = contents[i].substring(href_str_start, href_str_end);
                // special handling for url ending with .
                if (href_str.charAt(href_str.length-1)=='.') {
                    href_str_end--;
                    href_str = contents[i].substring(href_str_start,
                                                     href_str_end);
                }


                mailto_len =  href_str.match('mailto:') ? 'mailto:'.length : 0;
                if (href_str.length > 42) {
                    short_text = href_str.substring(mailto_len, 42)+'...';
                } else {
                    short_text = href_str.substring(mailto_len, href_str.length);
                }

                a = document.createElement('a');
                a.setAttribute('href', href_str);
                a.appendChild(document.createTextNode(short_text));
                
                div.appendChild(document.createTextNode(str_before));  
                div.appendChild(a);
                
                start = href_str_end;
            }
            div.appendChild(document.createElement('br'));
        } else if (contents[i]){
	    // textNode = document.createTextNode(contents[i]);
            // div.appendChild(textNode);
            para = document.createElement('p');
            para.className = 'noI';
            para.innerHTML = contents[i];
            div.appendChild(para);
        } else {
            div.appendChild(document.createElement('br'));
        }
    }
}