var ajaxRequest=null;

function createRequest() {
	if(ajaxRequest) {
		ajaxRequest.abort();
	}
	
	try {
		ajaxRequest=new XMLHttpRequest();
	} catch (trymicrosoft) {
   		try {
    		ajaxRequest=new ActiveXObject("Msxml2.XMLHTTP");
   		} catch (othermicrosoft) {
	 		try {
				ajaxRequest=new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
    	    	ajaxRequest=null;
    		}
  		}
	}
	
	if (ajaxRequest == null) {
		//alert("Error creating ajaxRequest object!");
	}
}



/**
* Description	: This function is a utility function to trim spaces at start and end of the string
*/ 
function strtrim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

    
var DDSPEED = 10;
var DDTIMER = 15;
var OFFSET = -2;
var ZINT = 100;

function ddMenu(id,d){
  var h = document.getElementById(id + '-ddheader');
  var c = document.getElementById(id + '-ddcontent');
  clearInterval(c.timer);
  if(d == 1){
    clearTimeout(h.timer);
    c.style.display = 'block';
    if(c.maxh && c.maxh <= c.offsetHeight){
    	return;
    } else if(!c.maxh){
      c.style.left = (h.offsetWidth - 80) + 'px';//(h.offsetWidth + OFFSET) + 'px';
      c.style.height = 'auto';
      c.maxh = c.offsetHeight;
      c.style.height = '0px';
    }
    ZINT = ZINT + 1;
    c.style.zIndex = ZINT;
    c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER);
  }else{
  //	alert("1. ddMenu - id = " + id + " d = " + d);
    h.timer = setTimeout(function(){
    	ddCollapse(c)},50
    );
  }
}

function ddCollapse(c){
 // alert("1. ddCollapse - c = " + c);
  
  c.timer = setInterval(
  	function(){
  		ddSlide(c,-1)
  		},DDTIMER);
}

function cancelHide(id){
  var h = document.getElementById(id + '-ddheader');
  var c = document.getElementById(id + '-ddcontent');
 // alert("1. cancelHide - h.timer = " + h.timer + " c.timer = " + c.timer);
  
  clearTimeout(h.timer);
  clearInterval(c.timer);
  if(c.offsetHeight < c.maxh){
    c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER);
  }
}

function ddSlide(c,d){
  var currh = c.offsetHeight;
  var dist;
  if(d == 1){
    dist = Math.round((c.maxh - currh) / DDSPEED);
  }else{
    dist = Math.round(currh / DDSPEED);
  }
  if(dist <= 1 && d == 1){
    dist = 1;
  }
  c.style.height = currh + (dist * d) + 'px';
  c.style.opacity = currh / c.maxh;
  c.style.filter = 'alpha(opacity=' + (currh * 100 / c.maxh) + ')';
  if(currh > (c.maxh - 2) && d == 1){
    clearInterval(c.timer);
  }else if(dist < 1 && d != 1){
    clearInterval(c.timer);
    c.style.display = 'none';
  }
}



/**
* Function to check special characters in an array.
* Params : specialCharString - string of special characters
*			string - string in which characters need to be tested.<b>
*	this approach will work fine if length of string is less than length of specialCharString 
*/
function  checkSpecialCharacters(specialCharString, string) {
	
	for(var i = 0; i < string.length; i++) {
		var charAtPos = string.charAt(i);
		if(specialCharString.indexOf(charAtPos) != -1) {
			return true;
		}
	}
	
	return false;
}