// JavaScript Document
Element.implement({
   getNextHighestZindex: function(){
		var highestIndex = 0;
		var currentIndex = 0;
		var elArray = Array();
		if(this){ elArray = this.getElementsByTagName('*'); }else{ elArray = document.getElementsByTagName('*'); }
		for(var i=0; i < elArray.length; i++){
			if (elArray[i].currentStyle){
			currentIndex = parseFloat(elArray[i].currentStyle['zIndex']);
			}else if(window.getComputedStyle){
				currentIndex = parseFloat(document.defaultView.getComputedStyle(elArray[i],null).getPropertyValue('z-index'));
			}
			if(!isNaN(currentIndex) && currentIndex > highestIndex){ highestIndex = currentIndex; }
		}
		return(highestIndex+1);
	},
	getFormValues: function(){
		var r = this.elements; var l = this.length; var o = new Object();
		for(var  i=0; i < l; i++) {
			if (r[i].get('type') == "radio"){
				if (r[i].checked){
					o[r[i].get('name')] = r[i].get('value');
				}
			}else{
				o[r[i].get('name')] = r[i].get('value');
			}
		}
		return o;
	}
});

function xmlData(v) { return (v?(v['#cdata']?v['#cdata']:(v['#text']?v['#text']:v)):''); }

function parseXml(xml) {
   var dom = null;
   if (window.DOMParser) {
	  try { 
		 dom = (new DOMParser()).parseFromString(xml, "text/xml"); 
	  } 
	  catch (e) { dom = null; }
   }
   else if (window.ActiveXObject) {
	  try {
		 dom = new ActiveXObject('Microsoft.XMLDOM');
		 dom.async = false;
		 if (!dom.loadXML(xml)) // parse error ..

			window.alert(dom.parseError.reason + dom.parseError.srcText);
	  } 
	  catch (e) { dom = null; }
   }
   else
	  alert("cannot parse xml string!");
   return dom;
}

function fitAspectRatio(mov,targ){
	var tc = targ.getCoordinates();
	var mc = mov.getCoordinates();
	var NewHeight = mc.height*tc.width/mc.width;
	targ.setStyle('position', 'relative');
	mov.setStyle('position', 'absolute');
	if (NewHeight > tc.height)
	{
		mov.setStyle('width', (mc.width*tc.height/mc.height)+'px');
		mov.setStyle('height', tc.height+'px');
	}else{
		mov.setStyle('width', tc.width+'px');
		mov.setStyle('height', NewHeight+'px');
	}
	mc = mov.getCoordinates();
	mov.setStyle('left', ((tc.width-mc.width)/2)+'px');
	mov.setStyle('top', ((tc.height-mc.height)/2)+'px');
}

function getAspectRatio(currW, currH,targW, targH){
	var NewWidth;
	var NewHeight = currH*targW/currW;
	if (NewHeight > targH)
	{
		NewWidth = currW*targH/currH;
		NewHeight = targH;
	}else{
		NewWidth = targW;
	}
	return [NewWidth, NewHeight];
}
