function Rsshelp(){ // function for mail this page
   var addurl = "http://www.blogadda.com/rsshelp.php";
   window.open(addurl,null,"height=400,width=400,status=yes,toolbar=no,menubar=no,location=no,left=100,top=0");

}
function avatargallery(){ // function for mail this page
   var addurl = "http://www.blogadda.com/avatargallery.php";
   window.open(addurl,null,"height=400,width=400,status=yes,toolbar=no,menubar=no,location=no,left=100,top=0");

}
function termsconditions(){ // function for mail this page
   var addurl = "http://www.blogadda.com/termsconditions.php";
   window.open(addurl,null,"height=400,width=400,status=yes,toolbar=no,menubar=no,location=no,left=100,top=0,scrollbars=yes");

}

function getaddcat(catval){

  document.getElementById("lastchk").innerHTML = catval;

}

function redtopath(addedcat){

  window.parent.opener.getaddcat(addedcat);
  self.close();

}

function textCounter(field,maxlimit) {
	// text width//
	var fieldWidth =  parseInt(field.offsetWidth);
	var charcnt = field.value.length;        

	if (charcnt > maxlimit) { 
		field.value = field.value.substring(0, maxlimit);
	}
}


function specChar(keyval){

 var isNS4 = (navigator.appName=="Netscape")?1:0;

if(!isNS4){
if ((keyval.keyCode > 32 && keyval.keyCode < 44) || (keyval.keyCode > 45 && keyval.keyCode < 47) || (keyval.keyCode > 57 && keyval.keyCode < 65) || (keyval.keyCode > 90 && keyval.keyCode < 97) || (keyval.keyCode > 123 && keyval.keyCode < 127)) keyval.returnValue = false;
}else{
if ((keyval.which > 32 && keyval.which < 44) || (keyval.which > 45 && keyval.which < 47) || (keyval.which > 57 && keyval.which < 65) || (keyval.which > 90 && keyval.which < 97) || (keyval.which > 123 && keyval.which < 127)) return false;
}
}
function getSelectedRadio(buttonGroup) {

     if (buttonGroup[0]) {
       for (var i=0; i<buttonGroup.length; i++) {
           if (buttonGroup[i].checked) {
              return i
           }
        }
      }
      else {
       if (buttonGroup.checked) {
         return 0;
       }
    }
   return -1;
}
function isValidweb(url){
    var RegExp = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
    if(RegExp.test(url)){
        return true;
    }else{
        return false;
    }
}

function isValidEmail(email){
    var RegExp = /^((([a-z]|[0-9]|!|#|$|%|&|'|\*||\-|\/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*||\-|\/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.)[\w]{2,4}|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$/
    if(RegExp.test(email)){
        return true;
    }else{
        return false;
    }
}
function isaN(str){

var ans = str.substring(1,str.length);
var alpha = "ABCDEFGHIJKLMNOPQRST";
var chk = 0;

for(var i=0;i<str.length;i++){

      if(str.indexOf(alpha[i]) != -1){

        chk += 1;

      }

}
  if(chk > 0){

    return false;

  }else if(str.indexOf("-") != -1){

    var nos = str.split("-");

    for(var j=0;j<nos.length;j++){

      if((nos[j].charAt(0) == "0") && (parseInt(nos[j].substring(1,nos[j].length)) != nos[j]) ){

        return false;

      }
      if((nos[j].charAt(0) != "0") && (parseInt(nos[j]) != nos[j])){

        return false;

      }

    }

  }else if((str.charAt(0) == "0") && (parseInt(ans) != ans) ){

    return false;

  }else if((str.charAt(0) != "0") && (parseInt(str) != str)){

    return false;

  }

  return true;

}
/*---------alphanumeric chk with no notations------*/
function isProper(string) {

   if (!string) return false;
   var iChars = "*|,\":<>[]/{}`;()@&$#%_";

   for (var i = 0; i < string.length; i++) {
   if(iChars.indexOf(string.charAt(i)) != -1){
         return false;
   }
} return true;
}
function isChar(string) {
   var onlyChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
   var onlyNums = "0123456789";
   if (!string) return false;

   for (var i = 0; i < string.length; i++) {
   if(onlyChars.indexOf(string.charAt(i)) == -1){
         return false;
      }
  
  }return true;
}
function istagspecchar(myString) {

   if (!myString) return false;
   var iChars = "`~=!@#$%^&*()<>+_[]{}\\;:\"\'?\/";

   for (var i = 0; i < myString.length; i++) {
 if(iChars.indexOf(myString.charAt(i)) != -1){
  return false;
   }
  }
  return true;
}
function isspecchar(myString) {

   if (!myString) return false;
   //var iChars = "*|\":<>[]\/{}\\;@$%~`^?_";
   var iChars = "*|\":<>[]\{};@$%~`^_";

   for (var i = 0; i < myString.length; i++) {
 if(iChars.indexOf(myString.charAt(i)) != -1){
  return false;
   }
  }
  return true;
}



function istitlespecchar(myString) {

   if (!myString) return false;
   var iChars = "~|=`@#$%^*()[]{}+;:\"<>\/\\";

   for (var i = 0; i < myString.length; i++) {
 if(iChars.indexOf(myString.charAt(i)) != -1){
  return false;
   }
  }
  return true;
}

function isusernamespecchar(myString) {

   if (!myString) return false;
   var iChars = "*|\":_<>[]\{};@&$%!~`^()=+,\/\\?\'. ";

   for (var i = 0; i < myString.length; i++) {
 if(iChars.indexOf(myString.charAt(i)) != -1){
  return false;
   }
  }
  return true;
}

function isfullnamespecchar(myString) {

   if (!myString) return false;
   var iChars = "*|\"<>#[]\{}=@&$%!~`^()+:;,\/?\'-";

   for (var i = 0; i < myString.length; i++) {
 if(iChars.indexOf(myString.charAt(i)) != -1){
  return false;
   }
  }
  return true;
}


/*---------alphanumeric chk with no notations ends------*/

/*----Chkasswd------*/


function chkPasswd(frmName){

var form = frmName;
if(form.passwd.value == ""){
  alert("Please enter password.");
  form.passwd.focus();
  return false;
}
if((form.name=="blogFrm")&&((form.passwd.value.length < 7) || (form.passwd.value.length > 15))){
  alert("Please enter password between 7 to 15 characters.");
  form.passwd.focus();
  return false;
}
if((form.name=="login_frm")&&((form.passwd.value.length < 5) || (form.passwd.value.length > 15))){
  alert("Please enter password between 4 to 15 characters.");
  form.passwd.focus();
  return false;
}

return true;
}
function compareDates (value1, value2) {

   var date1, date2;
   var month1, month2;
   var year1, year2;

   month1 = value1.substring (3, 5);
   date1 = value1.substring (0, 2);
   year1 = value1.substring (6, value1.length);

   month2 = value2.substring (3, 5);
   date2 = value2.substring (0, 2);
   year2 = value2.substring (6, value2.length);

   if ((year1 == year2) && (month1 < month2)) return -1;
   if ((year1 == year2) && (month1 == month2) && (date1 < date2)) return -1;
   if ((year1 == year2) && (month1 > month2)) return 1;
   if (year1 < year2) return -1;

}

function validatepass(frmName){

  var elem = frmName.elements;
 
 for(var i=0;i<elem.length;i++){


if((elem[i].type =="password") && (elem[i].value == "")){
  alert("Please enter password.");
  elem[i].focus();
  return false;
}else if((elem[i].type =="password") && (elem[i].name =="crf_passwd") && (frmName.new_passwd.value != frmName.crf_passwd.value)){
  alert("Confirm password do not match.");
   frmName.crf_passwd.focus();
  return false;
}
else if((elem[i].type =="password") && ((elem[i].value.length < 5) || (elem[i].value.length > 15))){
  alert("Please enter password between 5 to 15 characters.");
  elem[i].focus();
  return false;
}
}
  return true;
}
function validatepersonal(frmName){

  var elem = frmName.elements;
 
 for(var i=0;i<elem.length;i++){


if(frmName.username.value == ""){

  alert("Please enter username.");
  frmName.username.focus();
  return false;

}else if((frmName.username.value.length < 5) || (frmName.username.value.length > 15)){

  alert("Please enter your correct Username.");
  frmName.username.focus();
  return false;

}else if(isusernamespecchar(frmName.username.value)==false){ 

alert("special characters are not allowed.");
  frmName.username.focus();
  return false;

}else if(frmName.passwd && (chkPasswd(frmName) == false)){

  return false;

}
if((elem[i].type =="password") && (elem[i].name =="confmpasswd") && (elem[i].value == "")){
  alert("Please enter confirm password.");
  frmName.confmpasswd.focus();
  return false;
}
if((elem[i].type =="password") && (elem[i].name =="confmpasswd") && (frmName.passwd.value != frmName.confmpasswd.value)){
  alert("Confirm password do not match.");
   frmName.confmpasswd.focus();
  return false;
}
else if((elem[i].type =="text") && (elem[i].name =="email") && (!isValidEmail(elem[i].value))){
    
        alert("Please enter valid Email-id");
                    frmName.email.focus();
        return false;
    
}else if((elem[i].type =="select-one") && (elem[i].selectedIndex == 0) && (elem[i].name =="birthd")){
        
	alert("Please select proper Date");
              elem[i].focus();
              return false;
        
}else if((elem[i].type =="select-one") && (elem[i].selectedIndex == 0) && (elem[i].name =="birthm")){
        
	alert("Please select proper Month");
              elem[i].focus();
              return false;
        
}else if((elem[i].type =="select-one") && (elem[i].selectedIndex == 0) && (elem[i].name =="birthy")){
        
              alert("Please select proper Year");
              elem[i].focus();
              return false;
}if((elem[i].type =="checkbox") && (elem[i].checked!=true) && (elem[i].name =="aggrement")){
        
              alert("You have to agree to the terms and conditions to proceed with registration");
              elem[i].focus();
              return false;
}   

    }
    return true;
}

function validatechanges(frmName){

  var elem = frmName.elements;
 for(var i=0;i<elem.length;i++){
if((elem[i].type =="text") && (elem[i].name =="fname") && (elem[i].value =="")){
    
        alert("Please enter fullname");
                    frmName.fname.focus();
        return false;
    
}else if((elem[i].type =="text") && (elem[i].name =="fname")&&(isfullnamespecchar(elem[i].value) == false)){
  alert("Please enter a full name with characters from 'a-z / A-Z' and '0-9'.");
 frmName.fname.focus();
  return false;
}
else if((elem[i].type =="text") && (elem[i].name =="city") && (elem[i].value =="")){
    
        alert("Please enter city");
                    frmName.city.focus();
        return false;
    
}else if((elem[i].type =="text") && (elem[i].name =="city") && (isChar(frmName.city.value)==false)){
    
        alert("Please enter proper city");
                    frmName.city.focus();
        return false;
    
}

else if((elem[i].type == "text") && (elem[i].name =="zip") && (isaN(elem[i].value) == false) && (elem[i].value != "NA")){

    alert("Please enter a zip code");
    frmName.zip.focus();
    return false;

    }else if((elem[i].type =="select-one") && (elem[i].selectedIndex == 0) && (elem[i].name =="state")){
        
              alert("Please select state");
              elem[i].focus();
              return false;
} else if((elem[i].type =="text") && (elem[i].name =="email") && (!isValidEmail(elem[i].value))){
    
        alert("Please enter valid Email-id");
                frmName.email.focus();
        return false;
   
} else if((elem[i].type =="select-one") && (elem[i].selectedIndex == 0) && (elem[i].name =="birthd")){
        
	alert("Please select proper Date");
              elem[i].focus();
              return false;
        
}if ((elem[i].type =="textarea") &&(elem[i].name =="authaddress") &&(elem[i].value!="") && (!isspecchar(elem[i].value))){
           alert("special characters are not allowed");
          elem[i].focus();
          return false;
    
        }if ((elem[i].type =="text") &&(elem[i].name =="phone") &&(elem[i].value!="") && (isaN(elem[i].value) == false)){
           alert("only numbers are allowed in phone number");
          elem[i].focus();
          return false;
    
        }if ((elem[i].type =="text") &&(elem[i].name =="mobile") &&(elem[i].value!="") && (isaN(elem[i].value) == false)){
           alert("only numbers are allowed in mobile number");
          elem[i].focus();
          return false;  
        }        if ((elem[i].type =="textarea") &&(elem[i].name =="about") &&(elem[i].value!="") && (elem[i].value.length>500)){
	          alert("Description about you should be less than 500 characters");
	          elem[i].focus();
	          return false;
	    
        } if ((elem[i].type =="textarea") &&(elem[i].name =="interest") &&(elem[i].value!="") && (elem[i].value.length>500)){
	  	  alert("Description about your interest should be less than 500 characters");
	          elem[i].focus();
	          return false;
	    
        }        if ((elem[i].type =="textarea") &&(elem[i].name =="about") &&(elem[i].value!="") && (elem[i].value.length<51)){
	          alert("Description about you should be more than 50 characters");
	          elem[i].focus();
	          return false;
	    
        } if ((elem[i].type =="textarea") &&(elem[i].name =="interest") &&(elem[i].value!="") && (elem[i].value.length<51)){
	  	  alert("Description about your interest should be more than 50 characters");
	          elem[i].focus();
	          return false;
	    
        }

      else if((elem[i].type =="select-one") && (elem[i].selectedIndex == 0) && (elem[i].name =="birthm")){
        
	alert("Please select proper Month");
              elem[i].focus();
              return false;
        
}else if((elem[i].type =="select-one") && (elem[i].selectedIndex == 0) && (elem[i].name =="birthy")){
        
              alert("Please select proper Year");
              elem[i].focus();
              return false;
}  
    }
    return true;
}

function validatecomment(commentFrm){

  var elem = commentFrm.elements;
 
 for(var i=0;i<elem.length;i++){
	if(commentFrm.comname.value == ""){
  	alert("Please enter username.");
    commentFrm	.comname.focus();
  	return false;

	}else if((commentFrm.comname.value.length < 3) || (commentFrm.comname.value.length > 15)){

	 alert("Please enter only valid characters.");
      	 commentFrm.comname.focus();
  	 return false;

	}else if((elem[i].type =="text") && (elem[i].name =="comemail") && (!isValidEmail(elem[i].value))){

        alert("Please enter valid Email-id");
        commentFrm.comemail.focus();
        return false;

        }else if((elem[i].type =="textarea") && (elem[i].name =="comments") && ((elem[i].value == "")||(!isspecchar(elem[i].value)))){

        alert("Please enter valid characters");
commentFrm	.comments.focus();
        return false;

        }
    }
    return true;
}
function validatecontact(frmName){
  var elem = frmName.elements;

 for(var i=0;i<elem.length;i++){
	if(frmName.comname.value == ""){
  	alert("Please enter username.");
    	frmName.comname.focus();
  	return false;

	}else if((frmName.comname.value.length < 3) || (frmName.comname.value.length > 15)){

	 alert("Please enter only valid characters.");
      	 frmName.comname.focus();
  	 return false;

	}else if((elem[i].type =="text") && (elem[i].name =="comemail") && (!isValidEmail(elem[i].value))){

        alert("Please enter valid Email-id");
        frmName.comemail.focus();
        return false;

        }else if((elem[i].type =="textarea") && (elem[i].name =="comment") && (elem[i].value == "")){

        alert("Please enter valid comment");
	frmName.comment.focus();
        return false;

        }
    }
    return true;
}
function validateMsg(frmName){

  var elem = frmName.elements;
 for(var i=0;i<elem.length;i++){
	if(frmName.comname.value == ""){
  	alert("Please enter username.");
    	frmName.comname.focus();
  	return false;

	}else if((frmName.comname.value.length < 3) || (frmName.comname.value.length > 15)){

	 alert("Please enter only valid characters.");
      	 frmName.comname.focus();
  	 return false;
  	 }
	else if((elem[i].type =="textarea") && (elem[i].name =="message") && ((elem[i].value == "")||(!isspecchar(elem[i].value)))){

        alert("Say Something Yaar!");
	frmName.message.focus();
        return false;

        }
    }
    return true;
}
String.prototype.replaceAll=function(s1, s2) { 
	  return this.replace(new RegExp(s1,"g"), s2);
	}
function validatefrm(frmName){
//  var startdate = frmName.lastupdt.value ;
//  var enddate =frmName.createdt.value  ;
  var elem = frmName.elements;
  
   var commacout = frmName.keywords.value.replaceAll("[^,]","").length;
  
  var keys=new Array();
  keys=frmName.keywords.value.split(",");
  for (i=0;i<keys.length;i++)
      {
         var keyspace =new Array();
         keys[i]=keys[i].replace(/^\s*/, '').replace(/\s*$/, '');
        
         keyspace= keys[i].replaceAll("[^ ]","");
      if((keys[i].length>20) && (keyspace.length==0)){
          	alert("keyword \""+ keys[i]+"\" is very long !\n\nEnter tags with maximum 20 characters without space.");
      		frmName.keywords.focus();
		return false;
      }      if((keys[i].length>30) && (keyspace.length>1)){
          	alert("keyword \""+ keys[i]+"\" is very long !\n\nEnter tags with maximum 30 characters with space.");
      		frmName.keywords.focus();
		return false;
      }
      	if (keyspace.length>3){
		alert("keyword \""+ keys[i]+"\" is very long !\n\nEnter Keyword with maximum 3 words.");
		frmName.keywords.focus();
		return false;
        }
      }   

  for(var i=0;i<elem.length;i++){

    if((elem[i].type =="text") && (elem[i].name == "title") && (elem[i].value =="")){
   
         alert("Please enter the " +elem[i].name);
         elem[i].focus();
         return false;
   
    } else if((elem[i].type =="text") && (elem[i].name == "title") && (!istitlespecchar(elem[i].value))){
   
         alert("Please enter a proper title without any notations");
         elem[i].focus();
         return false;
    } else if((elem[i].type =="text") && (elem[i].name == "url") && (!isValidweb(elem[i].value))){
             alert("Please enter the valid Url");
             elem[i].focus();
             return false;   
     } else if((elem[i].type =="text") && (elem[i].name == "rssurl") && (!isValidweb(elem[i].value))){
           alert("Please enter the valid Rss Url");
           elem[i].focus();
           return false;
    } else if((elem[i].type =="textarea") && (elem[i].value =="")){
    
          alert("Please enter the " +elem[i].name);
          elem[i].focus();
          return false;
    
        }        else if (((elem[i].type =="textarea") && (elem[i].name =="keywords") && (elem[i].value.length < 25)) || ((elem[i].type =="textarea") && (elem[i].name =="keywords") && (commacout<1))){
           alert("Please enter the atleast 25 characters");
          elem[i].focus();
          return false;
    
               }else if ((elem[i].type =="textarea") && (elem[i].name =="keywords") && (!istagspecchar(elem[i].value))){
           alert("special characters are not allowed in tags");
          elem[i].focus();
          return false;
    
        }else if ((elem[i].type =="textarea") && (elem[i].name =="descr") && (!isspecchar(elem[i].value))){
           alert("special characters are not allowed");
          elem[i].focus();
          return false;
    
        }else if  ((elem[i].type =="textarea") && (elem[i].name =="keywords") && (elem[i].value.length > 301)){
    
          alert("Please enter the keywords in limited characters");
          elem[i].focus();
          return false;
    
        }else if((elem[i].type =="textarea") && (elem[i].name =="descr") && (elem[i].value.length < 25)){

          alert("Please enter the minimum description of blog");
            elem[i].focus();
          return false;

    	}else if  ((elem[i].type =="textarea") && (elem[i].name =="descr") && (elem[i].value.length > 201)){
    
          alert("Please enter the description in limited characters");
          elem[i].focus();
          return false;
    
        }
            if((elem[i].type =="select-one") && (elem[i].selectedIndex == 0)&& (elem[i].name =="state")){
        
              alert("Please select the " +elem[i].name);
              elem[i].focus();
              return false;
        
        } if((elem[i].type =="select-one") && (elem[i].selectedIndex == 0) && (elem[i].name =="created")){
        
	alert("Please select proper Date");
              elem[i].focus();
              return false;
        
}if((elem[i].type =="select-one") && (elem[i].selectedIndex == 0) && (elem[i].name =="createdm")){
        
	alert("Please select proper Month");
              elem[i].focus();
              return false;
        
} if((elem[i].type =="select-one") && (elem[i].selectedIndex == 0) && (elem[i].name =="createdy")){
        
              alert("Please select proper Year");
              elem[i].focus();
              return false;
}  
      if((elem[i].type =="text") && (elem[i].name == "fullname") && (elem[i].value =="")){
     
           alert("Please enter the fullname");
           elem[i].focus();
           return false;
     
    }
     if((elem[i].type =="text") && (elem[i].name == "city") && (elem[i].value =="")){
         
               alert("Please enter the city");
               elem[i].focus();
               return false;
         
    }else if((elem[i].type =="text") && (elem[i].name =="city") && (isChar(frmName.city.value)==false)){
    
        alert("Please enter proper city");
                    frmName.city.focus();
        return false;
    
}if((elem[i].type == "text") && (elem[i].name =="zip") && (isaN(elem[i].value) == false) && (elem[i].value != "NA")){
    
        alert("Please enter a zip code");
	elem[i].focus();
        return false;
    
    }
    
    }

  return true;
}
/*--------------------------ajax.js-------------------*/
function createXMLHttpRequest() {

  var req;

  if(window.XMLHttpRequest){

     try {

       req = new XMLHttpRequest();

     }catch(e){

       req = false;

     }

  }else if(window.ActiveXObject){

    try{

      req = new ActiveXObject("Microsoft.XMLHTTP");

    }catch(e){

      req = false;

    }

  }

  return req;

}

var req = createXMLHttpRequest();

function chkUser(nick){
  if(nick == ""){

    document.getElementById("validName").innerHTML = "Please enter a value...";

  }else if(nick.length >= 5){

    document.getElementById("validName").innerHTML = "checking availability...";

  }
  req.open("GET","../chkuser.php?username="+nick);
  req.onreadystatechange = handleResponse;
  req.send(null);
}

var msg = createXMLHttpRequest();

 function msgdelete(id){
      document.getElementById('delMsg'+id).innerHTML = "<em>deleting...</em>";
      var title = document.title;
      var url = location.href.toString();
	//alert("Hi \n"+id+"\n"+title+"\n"+feed);
           
      msg.open('GET', 'http://www.blogadda.com/delete.php?msgid='+id);
      msg.onreadystatechange = handleResponse;

      msg.send(null);
    }
function handleResponse(){


  if(req.readyState == 4){

    var response = req.responseText;
    var update = new Array();
	if(response.indexOf("<div id=answer>" != -1) && response.indexOf("</div>" != -1)){

      update = response.split("<div id=answer>");
	
  		if(update[1].indexOf("</div>" != -1)){
      	var lastpos = update[1].split("</div>");
	      	var answer = lastpos[0].substr(0, lastpos[0].length);
       document.getElementById("validName").innerHTML = answer;
		}
    }

  }
 if(msg.readyState == 4){
          
                 var response = msg.responseText;
                 var update = new Array();
          
                 if(response.indexOf("<div class='errorMessage'>" != -1) && response.indexOf("</div>" != -1)) {
                   update = response.split("<div class='errorMessage'>");
          
                   if(update[1].indexOf("</div>" != -1)){
                     var lastPos = update[1].split("</div>");
                     var ans = lastPos[0].substr(0,lastPos[0].length);
          msgtodel=ans.split('|');
          document.getElementById("delMsg"+msgtodel[1]).innerHTML = msgtodel[0];
          
                   }
                 }
            }
}

/*--------------------------highlighter.js-------------------*/
// Highlighter script By Ilija Studen - http://ilija.biz/
// Modified from Woofoo forms

/*--------------------------------------------------------------------------*/

//http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/
function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];		
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}	
	}
	return (arrReturnElements)
}

//http://www.bigbold.com/snippets/posts/show/2630
function addClassName(objElement, strClass, blnMayAlreadyExist){
   if ( objElement.className ){
      var arrList = objElement.className.split(' ');
      if ( blnMayAlreadyExist ){
         var strClassUpper = strClass.toUpperCase();
         for ( var i = 0; i < arrList.length; i++ ){
            if ( arrList[i].toUpperCase() == strClassUpper ){
               arrList.splice(i, 1);
               i--;
             }
           }
      }
      arrList[arrList.length] = strClass;
      objElement.className = arrList.join(' ');
   }
   else{  
      objElement.className = strClass;
      }
}

//http://www.bigbold.com/snippets/posts/show/2630
function removeClassName(objElement, strClass){
   if ( objElement.className ){
      var arrList = objElement.className.split(' ');
      var strClassUpper = strClass.toUpperCase();
      for ( var i = 0; i < arrList.length; i++ ){
         if ( arrList[i].toUpperCase() == strClassUpper ){
            arrList.splice(i, 1);
            i--;
         }
      }
      objElement.className = arrList.join(' ');
   }
}

// Highlighter
// Highlights the parent's parent of the focused form control (input, textarea, checkbox, select, radio)

var Highlighter = window.Highlighter || {};

Highlighter.settings = {
  'row_class'   : 'highlight_row',
  'field_class' : 'highlight_field',
  'focus_class' : 'focus'
}

Highlighter.init = function() {
  var fields = getElementsByClassName(document, '*', Highlighter.settings.field_class);
	for(i = 0; i < fields.length; i++) {
		if(fields[i].type == 'radio' || fields[i].type == 'checkbox' || fields[i].type == 'file') {
			fields[i].onclick = function() {
			  Highlighter.unhighlight();
			  addClassName(this.parentNode.parentNode, "focused", true);
			};
			fields[i].onfocus = function() {
			  Highlighter.unhighlight();
			  addClassName(this.parentNode.parentNode, "focused", true);
		  };
		} else {
			fields[i].onfocus = function() {
			  Highlighter.unhighlight();
			  addClassName(this.parentNode.parentNode, "focused", true);
		  };
			fields[i].onblur = function() {
			  removeClassName(this.parentNode.parentNode, "focused");
      };
		}
	} 
};

Highlighter.unhighlight = function() {
  var fields = getElementsByClassName(document, '*', Highlighter.settings.field_class);
	for(i = 0; i < fields.length; i++) {
	  removeClassName(fields[i].parentNode.parentNode, "focused");
	} 
};
/*--------------------------fade.js-------------------*/
//this is js to give fading ot error messages
/*--------------------------------------------------------------------------*/

var Fat = {
    make_hex : function (r,g,b) 
    {
        r = r.toString(16); if (r.length == 1) r = '0' + r;
        g = g.toString(16); if (g.length == 1) g = '0' + g;
        b = b.toString(16); if (b.length == 1) b = '0' + b;
        return "#" + r + g + b;
    },
    fade_all : function ()
    {
        var a = document.getElementsByTagName("*");
        for (var i = 0; i < a.length; i++) 
        {
            var o = a[i];
            var r = /fade-?(\w{3,6})?/.exec(o.className);
            if (r)
            {
                if (!r[1]) r[1] = "";
                if (o.id) Fat.fade_element(o.id,null,null,"#"+r[1],"#fdfae9");
            }
        }
    },
    fade_element : function (id, fps, duration, from, to) 
    {
        if (!fps) fps = 40;
        if (!duration) duration = 2000;
        if (!from || from=="#") from = "#fff4ce";
        if (!to) to = this.get_bgcolor(id);
        
        var frames = Math.round(fps * (duration / 1000));
        var interval = duration / frames;
        var delay = interval;
        var frame = 0;
        
        if (from.length < 7) from += from.substr(1,3);
        if (to.length < 7) to += to.substr(1,3);
        
        var rf = parseInt(from.substr(1,2),16);
        var gf = parseInt(from.substr(3,2),16);
        var bf = parseInt(from.substr(5,2),16);
        var rt = parseInt(to.substr(1,2),16);
        var gt = parseInt(to.substr(3,2),16);
        var bt = parseInt(to.substr(5,2),16);
        
        var r,g,b,h;
        while (frame < frames)
        {
            r = Math.floor(rf * ((frames-frame)/frames) + rt * (frame/frames));
            g = Math.floor(gf * ((frames-frame)/frames) + gt * (frame/frames));
            b = Math.floor(bf * ((frames-frame)/frames) + bt * (frame/frames));
            h = this.make_hex(r,g,b);
        
            setTimeout("Fat.set_bgcolor('"+id+"','"+h+"')", delay);

            frame++;
            delay = interval * frame; 
        }
        setTimeout("Fat.set_bgcolor('"+id+"','"+to+"')", delay);
    },
    set_bgcolor : function (id, c)
    {
        var o = document.getElementById(id);
        o.style.backgroundColor = c;
    },
    get_bgcolor : function (id)
    {
        var o = document.getElementById(id);
        while(o)
        {
            var c;
            if (window.getComputedStyle) c = window.getComputedStyle(o,null).getPropertyValue("background-color");
            if (o.currentStyle) c = o.currentStyle.backgroundColor;
            if ((c != "" && c != "transparent") || o.tagName == "BODY") { break; }
            o = o.parentNode;
        }
        if (c == undefined || c == "" || c == "transparent") c = "#fdfae9";
        var rgb = c.match(/rgb\s*\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/);
        if (rgb) c = this.make_hex(parseInt(rgb[1]),parseInt(rgb[2]),parseInt(rgb[3]));
        return c;
    }
}

window.onload = function () 
    {
    Fat.fade_all();
    }