/*
 *	Returns the element object specified by its id.
 */
//? Iframe allgemein (im Moment nur fuer wuwino); frame, popup...
function wuweiGetElement(id, owner) {

	doc = gD(owner);
//	if (!doc.getElementById(id)) alert(id + 'not found'); else 
	return doc.getElementById(id);
//else alert ('Element not found: \n' + id + '\n\nin\n' + owner);
}

/*
 *	Returns the document object of the given owner.
 */
//? Iframe allgemein (im Moment nur fuer wuwino); frame, popup...
function wuweiGetDocument(owner) {

	doc = (owner) ? wuwinoFindIframe(owner).document : document ;
	return doc;
}

/*
 *	Alternate class of an element
 */

function wuweiSetClass(id, className, owner) {

	var el = gE(id, owner);
	el.className = className;
	
}

/*
 *	Return any style property
 */
//?
// Thanks robertnyman.com
function wuweiGetStyle(id, property, owner) {

	var doc = gD(owner);
	var el = gE(id, owner);
	var strValue = '';
	
	if (doc.defaultView && doc.defaultView.getComputedStyle) {
		strValue = doc.defaultView.getComputedStyle(el, "").getPropertyValue(property);
	}
	
	else if (el.currentStyle) {
	
		property = property.replace(/-(w)/g, function (strMatch, p1) { return p1.toUpperCase(); } );
		strValue = el.currentStyle[property];
	}
	//? parseInt
//	alert(strValue+property);
	if ((property == 'width') || (property == 'height') || (property == 'top') || (property == 'left'))
		strValue = parseInt(strValue);
	return strValue;
}


/*
 *	Set any style property
 */
//?
function wuweiSetStyle(id, property, value, owner) {

	var doc = gD(owner);
	var el = gE(id, owner);

	if ((property == 'width') || (property == 'height') || (property == 'top') || (property == 'left')) 
		value = value.toString() + 'px';
		
	if (doc.defaultView && doc.defaultView.getComputedStyle) {
		//		strValue = doc.defaultView.getComputedStyle(el, "").getPropertyValue(property);
		//? besser??
		
		switch (property) {
		
			case 'width':	el.style.width = value; break;
			case 'height':	el.style.height = value; break;
			case 'top':		el.style.top = value; break;
			case 'left':	el.style.left = value; break;
			case 'visibility':	el.style.visibility = value; break;
		}
	}
	
	else if (el.currentStyle) {

			switch (property) {
		
			case 'width':	el.style.width = value; break;
			case 'height':	el.style.height = value; break;
			case 'top':		el.style.top = value; break;
			case 'left':	el.style.left = value; break;
			case 'visibility':	el.style.visibility = value; break;
		}


if (property == 'visibility') {
el.style.visibility = value;
} else {	
//alert(el); return;
		property = property.replace(/-(w)/g, function (strMatch, p1) { return p1.toUpperCase(); } );
		el.currentStyle[property] = value;
}

	}
}

function wuweiGetContent (id, owner) {

	var el = gE(id, owner);
	return el.innerHTML;
}

function wuweiSetContent (id, html, owner) {

	var el = gE(id, owner);
	el.innerHTML = html;
}

function wuweiAppendContent (id, appendHtml, owner) {

	var html = wuweiGetContent (id, owner);
	wuweiSetContent (id, html + appendHtml, owner)	;
}

function wuweiGreyOut (observedElement, dependentElements) {

	var isDisabled = (gE(observedElement).checked == true) ? false : true ;
	
	for (i=0; i<dependentElements.length; i++) { 
		gE(dependentElements[i]).disabled = isDisabled;
	}
}

/*
 *	Returns the checked value of a radio group given by its name. 
 */

// Tested: op8, ie6, ff2

function wuweiRadioValue (group, owner) {

	var found = false;
	var f, r;
	var doc = gD(owner);

	var i = 0;
	while (f = doc.forms[i]) {

		if (found != false) break;

		var rCnt = 0;
		if(f.elements[group]) {

			while (r = f.elements[group][rCnt]) {

				if (found != false) break;
				if (r.checked) {

					found = r.value;
					break;
				}
				rCnt++;
			}
		}
		i++;	
	}
	return found;
}

function wuweiSetRadioValue(group, value, owner) {

	var found = false;
	var f, r;
	var doc = gD(owner);

	var i = 0;
	while (f = doc.forms[i]) {

		if (found != false) break;

		var rCnt = 0;
		if(f.elements[group]) {

			while (r = f.elements[group][rCnt]) {

				if (found != false) break;
				if (r.value == value) {

					found = true;
					r.checked = true;
					break;
				}
				rCnt++;
			}
		}
		i++;	
	}
}

function wuweiSelect(id, value, owner) {

	var el = gE(id, owner);
	var i;

	for (i = 0; i < el.length; i++){

		if (el.options[i].value == value) {
			
			el.options[i].selected = true;
			break;
		}
	}
}

/*
 *	Get total height (client height)
 */
 // nach x.js
//?
function wuweiTotalHeight () {

	 var h=0;
if(document.compatMode == 'CSS1Compat' && !window.opera && document.documentElement && document.documentElement.clientHeight)
    h=document.documentElement.clientHeight;
  else if(document.body && document.body.clientHeight)
    h=document.body.clientHeight;
  else if(xDef(window.innerWidth,window.innerHeight,document.width)) {
    h=window.innerHeight;
    if(document.width>window.innerWidth) h-=16;
  }
  return h;
}

function wuweiBringUp (idPattern, nr, indexList) {

	if (!indexList) {

		var i = 0;
		while (gE(idPattern.replace(/___/, i.toString()))) {

			hE(idPattern.replace(/___/, i.toString()));
			i++; 
		}
		
	} else {
	
		for (i=0; i<indexList.length; i++) {

//alert(indexList[i] + idPattern.replace(/___/, indexList[i].toString()) + gE(idPattern.replace(/___/, indexList[i].toString())))		
			if (gE(idPattern.replace(/___/, indexList[i].toString())))
				hE(idPattern.replace(/___/, indexList[i].toString()));
		}		
	}
//alert(idPattern.replace(/___/, nr.toString()) + gE(idPattern.replace(/___/, nr.toString()))		

	//if (nr > 0) 
	if (gE(idPattern.replace(/___/, nr.toString())))
		sE(idPattern.replace(/___/, nr.toString()));
}

function wuweiGetValue (id, owner) {

	var el = gE(id, owner);

	return (el) ? el.value : false ;	
}

function wuweiSetValue (id, value, owner) {

	var el = gE(id, owner);
	el.value = value;	
}

function wuweiDisable (id, mode, owner) {

	var el = gE(id, owner);

	if (mode == 'on') disable = false;	
	if (mode == 'off') disable = true;	

	el.disabled = disable;
}

function wuweiAjax(script, paraString, functionResponding, additionalArguments) {

		var ajaxParaString, responderParaString, newRequest, responseHandler, i;
		
		if (!additionalArguments) additionalArguments = new Array();
		ajaxParaString = (paraString) ? '&' + paraString : '' ;
				
		// Getting a blank request
		newRequest = wuweiAjaxRequest();

		// Making response function's argument list
		responderParaString = 'this.request.responseText';
		
		for (i=0; i<additionalArguments.length; i++) {
	
			responderParaString += ', this.additionalArguments[' + i.toString() + ']';
		}

		// Making response function
		responseHandler = new Function ("", 'if (this.request.readyState == 4) { if (this.request.status == 200) { ' + functionResponding + '(' + responderParaString + ')' + '}}'); 
		responseHandler.request = newRequest;	
		responseHandler.additionalArguments = new Array();
	
		for (i=0; i<additionalArguments.length; i++) {
	
			responseHandler.additionalArguments[i] = additionalArguments[i];
		}
		
		// Performing request
		newRequest.onreadystatechange = responseHandler;
		newRequest.open('GET', rootURL + 'wuwino/ajax.php?script=' + script + ajaxParaString);
		newRequest.send(null);
} 

function wuweiAjaxRequest() {

	if (window.XMLHttpRequest) { // Mozilla, Safari,...

	    request = new XMLHttpRequest();
//	    if (request.overrideMimeType) request.overrideMimeType('text/xml');
	    
	} else if (window.ActiveXObject) { // IE
	    
		try {
	        request = new ActiveXObject("Msxml2.XMLHTTP");
	    } catch (e) {
	    
		    try {
	            request = new ActiveXObject("Microsoft.XMLHTTP");
	        } catch (e) {}
	    }
	}
	
	return request;
}	



