//AJAX object
var ajHttp;
function fRet(){};
function createAjaxObj(){
	try{
        // Firefox, Opera 8.0+, Safari
	    ajHttp = new XMLHttpRequest();
	}
	catch (e){
    // Internet Explorer
        try{
            ajHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e){
            try{
                ajHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
    }
}
function ajaxSend(page,args,ret){
	if(ajHttp.readyState == 0 || ajHttp.readyState == 4){
		var str = new Array();
		for(allitems in args){
			str.push(allitems+"="+String(args[allitems]).replace(/&/g,'|amp|').replace(/\n/g,'|lb|').replace(/#/g,'|diese|'));
		}
		var action = str.join("&");
		ajHttp.open("POST",page,true);
		ajHttp.onreadystatechange = ajaxReturn;
		ajHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		ajHttp.setRequestHeader("Content-length", action.length);
		ajHttp.setRequestHeader("Connection", "close");
		ajHttp.send(action);
		fRet = ret;
	}
}
function ajaxReturn(){
	if(ajHttp.readyState == 4){
		fRet(ajHttp.responseText);
	}
}
//ajax image upload
AIM = {
	frame : function(c) {
		var n = 'f' + Math.floor(Math.random() * 99999);
		var d = document.createElement('DIV');
		d.innerHTML='<iframe style="display:none" src="about:blank" id="'+n+'" name="'+n+'" onload="AIM.loaded(\''+n+'\')"></iframe>';
		document.body.appendChild(d);
		var i = document.getElementById(n);
		if (c && typeof(c.onComplete) == 'function') {
			i.onComplete = c.onComplete;
		}
		return n;
	},
	form : function(f, name) {
		f.setAttribute('target', name);
	},
	submit : function(f, c) {
		AIM.form(f, AIM.frame(c));
		if (c && typeof(c.onStart) == 'function') {
			return c.onStart();
		} else {
			return true;
		}
	},
	loaded : function(id) {
		var i = document.getElementById(id);
		if (i.contentDocument) {
			var d = i.contentDocument;
		} else if (i.contentWindow) {
			var d = i.contentWindow.document;
		} else {
			var d = window.frames[id].document;
		}
		if (d.location.href == "about:blank") {
			return;
		}
		if (typeof(i.onComplete) == 'function') {
			i.onComplete(d.body.innerHTML);
		}
	}
}
//trim string
function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}
//add slashes
function replaceAjaxChars(str) {
	str=str.replace(/&/g,"|amp|");
	str=str.replace(/#/g,"|diese|");
	str=str.replace(/<br \/>/g,"|lb|");
	return str;
}
function replaceHTMLChars(str){
	str = str.replace(/</g,"&lt;");
	str = str.replace(/>/g,"&gt;");
	str = str.replace(/&/g,"&amp;");
	str = str.replace(/'/g,"&#03;");
	str = str.replace(/\"/g,"&quot;");
	return str;
}
function unReplaceHTMLChars(str){
	str = str.replace(/&lt;/g,"<");
	str = str.replace(/&gt;/g,">");
	str = str.replace(/&amp;/g,"&");
	str = str.replace(/&#03/g,"'");
	str = str.replace(/&quot;/g,'"');
	return str;
}
function replaceQuotes(str){
	str = str.replace(/\'/g,"\'");
	str = str.replace(/\"/g,'\"');
	return str;
}
//restrict upload file types
function TestFileType(fileName, fileTypes) {
	if (!fileName) return;
	dots = fileName.toLowerCase().split(".");
	fileType = "." + dots[dots.length-1];
	return (fileTypes.join(".").indexOf(fileType) != -1) ? true : false;
}
function grayOut(vis, options) {
  // Pass true to gray out screen, false to ungray
  // options are optional.  This is a JSON object with the following (optional) properties
  // opacity:0-100         // Lower number = less grayout higher = more of a blackout 
  // zindex: #             // HTML elements with a higher zindex appear on top of the gray out
  // bgcolor: (#xxxxxx)    // Standard RGB Hex color code
  // grayOut(true, {'zindex':'50', 'bgcolor':'#0000FF', 'opacity':'70'});
  // Because options is JSON opacity/zindex/bgcolor are all optional and can appear
  // in any order.  Pass only the properties you need to set.
  var options = options || {}; 
  var zindex = options.zindex || 50;
  var opacity = options.opacity || 70;
  var opaque = (opacity / 100);
  var bgcolor = options.bgcolor || '#000000';
  var dark=document.getElementById('darkenScreenObject');
  if (!dark) {
    // The dark layer doesn't exist, it's never been created.  So we'll
    // create it here and apply some basic styles.
    // If you are getting errors in IE see: http://support.microsoft.com/default.aspx/kb/927917
    var tbody = document.getElementsByTagName("body")[0];
    var tnode = document.createElement('div');           // Create the layer.
        tnode.style.position='absolute';                 // Position absolutely
        tnode.style.top='0px';                           // In the top
        tnode.style.left='0px';                          // Left corner of the page
        tnode.style.overflow='hidden';                   // Try to avoid making scroll bars            
        tnode.style.display='none';                      // Start out Hidden
        tnode.id='darkenScreenObject';                   // Name it so we can find it later
    tbody.appendChild(tnode);                            // Add it to the web page
    dark=document.getElementById('darkenScreenObject');  // Get the object.
  }
  if (vis) {
    // Calculate the page width and height 
    if( document.body && ( document.body.scrollWidth || document.body.scrollHeight ) ) {
        var pageWidth = document.body.scrollWidth+'px';
        var pageHeight = document.body.scrollHeight+'px';
    } else if( document.body.offsetWidth ) {
      var pageWidth = document.body.offsetWidth+'px';
      var pageHeight = document.body.offsetHeight+'px';
    } else {
       var pageWidth='100%';
       var pageHeight='100%';
    }   
    //set the shader to cover the entire page and make it visible.
    dark.style.opacity=opaque;                      
    //dark.style.MozOpacity=opaque;                   
    dark.style.filter='alpha(opacity='+opacity+')'; 
    dark.style.zIndex=zindex;        
    dark.style.backgroundColor=bgcolor;  
    dark.style.width= pageWidth;
    dark.style.height= pageHeight;
    dark.style.display='block';                          
  } else {
     dark.style.display='none';
  }
}

function getElementsByClassName(root,cla){
	var tg = document.getElementById(root);
	var elements = new Array();
	for(var a=0; a<tg.childNodes.length; a++){
		var node = tg.childNodes[a];
		if(node.className == cla) elements.push(node);
		for(var b=0; b<node.childNodes.length; b++){
			var node2 = node.childNodes[b];
			if(node2.className == cla) elements.push(node2);
			for(var c=0; c<node2.childNodes.length; c++){
				var node3 = node2.childNodes[c];
				if(node3.className == cla) elements.push(node3);
				for(var d=0; d<node3.childNodes.length; d++){
					node4 = node3.childNodes[d];
					if(node4.className == cla) elements.push(node4);
					for(var e=0; e<node4.childNodes.length; e++){
						var node5 = node4.childNodes[e];
						if(node5.className == cla) elements.push(node5);
						for(var f=0; f<node5.childNodes.length; f++){
							var node6 = node5.childNodes[f];
							if(node6.className == cla) elements.push(node6);
							
							
						}
					}
				}
			}
		}
	}
	return elements;
}
function scrollTop(){
	window.document.body.scrollTop = 0;
    window.document.documentElement.scrollTop = 0;
}

