/* custom function, get all element with specific class */
function getElementsByClassName(className)
{
   var arr = new Array();
   var elems = document.getElementsByTagName("*");
   for(var i = 0; i < elems.length; i++)
   {
      var elem = elems[i];
      var id = elem.getAttribute("id");
      var cls = elem.getAttribute("class");
      if(cls == className)
      {
      arr[arr.length] = elem;
      }
   }
   return arr;
}

/* function for setting alert box , DO NOT delete */
var timer;
function getScrollHeight()
{
   var h = window.pageYOffset ||
           document.body.scrollTop ||
           document.documentElement.scrollTop;
           
   return h ? h : 0;
}

function getHeight()
{
    var y = 0;
    if (self.innerHeight){
        y = self.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientHeight){
        y = document.documentElement.clientHeight;
    }
    else if (document.body){
        y = document.body.clientHeight;
    }
    return y;
}
/* AJAX communication for all forms, DO NOT DELETE*/ 
function getHTTPObject() {
    if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
        else if (window.XMLHttpRequest) return new XMLHttpRequest();
        else {
            alert("Your browser does not support AJAX.");
            return null;
        }
     }
function submitData(target_page, params, method, addition_script){
    httpObject = getHTTPObject();
    if (httpObject != null) {
        httpObject.open(method, target_page, true);
        if(method=="GET")
            httpObject.send(null);
        else{
            //Send the proper header information along with the request
            httpObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            httpObject.setRequestHeader("Content-length", params.length);
            httpObject.setRequestHeader("Connection", "close");
            httpObject.send(params);
        }
        httpObject.onreadystatechange = function () {
                setAlertBox(addition_script);
        }
    }
}
/* AJAX function for retrieving latest blog post, DO NOT delete */
function getLatestComment(){
    var id=document.getElementById('read').value;
    var method='POST';
    var target_page='blog/latest_comments.php';
    var params='id='+id;
    commentObj = getHTTPObject();
    if (commentObj != null) {
        commentObj.open(method, target_page, true);
        if(method=="GET")
            commentObj.send(null);
        else{
            //Send the proper header information along with the request
            commentObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            commentObj.setRequestHeader("Content-length", params.length);
            commentObj.setRequestHeader("Connection", "close");
            commentObj.send(params);
        }
        commentObj.onreadystatechange = function () {
            update_blog_comment();
        }
    }
}
function update_blog_comment(){
    if(commentObj.readyState == 4){
       var comment_area=document.getElementById('comment_area');
       comment_area.innerHTML=commentObj.responseText;
    }
}
/* DO NOT DELETE these functions */
function setAlertBox(addition_script){
    if(httpObject.readyState == 4){
        alertBox(httpObject.responseText);
        if(addition_script!=''){
            eval(addition_script);
        }
    }
}

function closeAlertBox(){
   $("#alertBlock").fadeOut('slow');
   clearTimeout(timer);
}
function alertBox(header, message){
   var alertHeader=$("#alertHeader");
   var alertMSG=$("#alertMSG");
   var alertBlock=$("#alertBlock");
   var height=getScrollHeight();
   var winHeight=getHeight();
   $(alertHeader).html(header);
   $(alertMSG).html(message);
   $(alertBlock).css('margin-top', winHeight/2-100+'px');
   $(alertBlock).css('top', height+'px');
   $(alertBlock).fadeIn();
   timer=setTimeout("closeAlertBox()", 5000);
}

/* show red balloon over element as an error msg */
function inputError(errorString, input){
   $(input).addClass('error_input');
   var offset=$(input).offset();
   var errorBlock=$("#errorBlock");
   var errorContent=$("#errorContent");
   $(errorBlock).fadeOut('slow', function(){
      $(errorContent).html(errorString);
      $(errorBlock).css('top', offset.top-55+'px');
      $(errorBlock).css('left', offset.left+'px');
      $(errorBlock).fadeIn();
   });
   clearTimeout(timer);
   timer=setTimeout("closeErrorBlock()", 5000);
}
function groupError(errorString, groupname){
   $("#"+groupname).addClass('error_input');
   var offset=$("#"+groupname).offset();
   var errorBlock=$("#errorBlock");
   var errorContent=$("#errorContent");
   $(errorContent).html(errorString);
   $(errorBlock).fadeOut('slow', function(){
      $(errorContent).html(errorString);
      $(errorBlock).css('top', offset.top-55+'px');
      $(errorBlock).css('left', offset.left+'px');
      $(errorBlock).fadeIn();
   });
   clearTimeout(timer);
   timer=setTimeout("closeErrorBlock()", 5000);
}

function closeErrorBlock(){
   $("#errorBlock").fadeOut();
}
function reset_input(formid){
   $("#errorBlock").fadeOut();
   $("#"+formid).find(".error_input").removeClass("error_input");
}


/* Email validation rules */
/*
Copyright 2005, 4word systems
All rights reserved.

This software may not be reproduced or distributed in any form without the express 
written consent of 4word systems or it's designee.

Revision 1.1:  20050729 Added underscore to list of valid characters
*/
function isValidEmail(objname) {
    var input_obj=document.getElementsByName(objname);
    var obj=input_obj[0];
    if(obj.value!=""){
        if (! allValidChars(obj.value)) {  // check to make sure all characters are valid
            return false;
        }
        if (obj.value.indexOf("@") < 1) { //  must contain @, and it must not be the first character
            return false;
        } else if (obj.value.lastIndexOf(".") <= obj.value.indexOf("@")) {  // last dot must be after the @
            return false;
        } else if (obj.value.indexOf("@") == obj.value.length) {  // @ must not be the last character
            return false;
        } else if (obj.value.indexOf("..") >=0) { // two periods in a row is not valid
            return false;
        } else if (obj.value.indexOf(".") == obj.value.length) {  // . must not be the last character
            return false;
        }
    }
    return true;
}

function allValidChars(email) {
    var parsed = true;
    var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
    for (var i=0; i < email.length; i++) {
      var letter = email.charAt(i).toLowerCase();
      if (validchars.indexOf(letter) != -1)
        continue;
      parsed = false;
      break;
    }
    return parsed;
}
function allNums(string) {
    var parsed = true;
    var validchars = "0123456789";
    for (var i=0; i < string.length; i++) {
      var letter = string.charAt(i).toLowerCase();
      if (validchars.indexOf(letter) != -1)
        continue;
      parsed = false;
      break;
    }
    return parsed;
}


/* less than x chars validation rules */
function minlength8(objname){
    var input_obj=document.getElementsByName(objname);
    var obj=input_obj[0];
    if(obj.value!=""){
        if(obj.value.length<8) 
            return false;
        else
            return true;
    }
    else
        return true;
}

/* telephone validation rules */
function is_phone_number(objname) 
{
    var input_obj=document.getElementsByName(objname);
    var obj=input_obj[0];
    if(obj.value!=""){
        if((obj.value.length<8) || (obj.value.length>16) || (!allNums(obj.value)))
            return false;
        else
            return true;
    }
    else
        return true;
}

/* ** DO NOT DELETE check if the checkbox is checked*/
function chkboxIsChecked(objname){
    var input_obj=document.getElementsByName(objname);
    var total=input_obj.length;
    var found=false;
    var i=0;
    while ((!found)&&(i<total)){
	if (input_obj[i].checked==true)
            found=true;
	else
	    found=false;
	i=i+1;
    }
    return found;
}
/* ** DO NOT DELETE check if the radio button is checked */
function radioIsChecked(objname){
    var input_obj=document.getElementsByName(objname);
    var total=input_obj.length;
    var found=false;
    var i=0;
    while ((!found)&&(i<total)){
	if (input_obj[i].checked==true)
	    found=true;
	else
	    found=false;
	i=i+1;
    }
    return found;
}

/* check if content is more than 1000 chars */
function maxlength1000(objname){
    var input_obj=document.getElementsByName(objname);
    var obj=input_obj[0];
    if(obj.value!=""){
        if(obj.value.length>1000)
            return false;
        else
            return true;
    }
    else
        return true;
}
/* check if select box has been selected, first value must be a dummy */
function selectBoxIsSelected(objname){
    var input_obj=document.getElementsByName(objname);
    var obj=input_obj[0];
    if(obj.selectedIndex==0)
        return false;
    else
        return true;
}
/* check if select box with MULTIPLE is selected at least one row*/
function mSelectIsSelected(objname){
    var input_obj=document.getElementsByName(objname);
    var obj=input_obj[0];
    var found=false;
    var i=0;
    var total=obj.length;
    while ((!found) && (i<total)){
        if(obj.options[i].selected)
            found=true;
        else
            i=i+1;
    }
    return found;
}
/* check if field's value is numeric */
function IsNumeric(objname)
{
    var input_obj=document.getElementsByName(objname);
    var obj=input_obj[0];
    var ValidChars = "0123456789.";
    var IsNumber=true;
    var Char;
    var str=obj.value;
    var strLen=str.length;
    if(obj.value!=""){
        for (i = 0; i < strLen && IsNumber == true; i++) 
           { 
           Char = str.charAt(i); 
           if (ValidChars.indexOf(Char) == -1) 
              {
              IsNumber = false;
              }
           }
    }
   return IsNumber;
}
function minLength2000(objname){
    var input_obj=document.getElementsByName(objname);
    var obj=input_obj[0];
    if(obj.value!=""){
        if(obj.value.length<=2000)
            return false;
        else
            return true;
    }
    else
        return true;
}
// check if service select box is selected at least one, item with "No select" won't be count
function servicesIsSelected(objname){
    var input_obj=document.getElementsByName(objname);
    var obj=input_obj[0];
    var total=obj.length;
    var found=false;
    var i=0;
    while (i<total){
        if(obj.options[i].value!="No select")
            if(obj.options[i].selected){
                found=true;
                i=i+1;
            }
            else
                i=i+1;
        else
            if(obj.options[i].selected){
                obj.options[i].selected=false;
                i=i+1;
            }
            else
                i=i+1;
    }
    return found;
}