/* Major Javascript functions */

function ajaxData(url,writeto){
	var xmlHttp=GetXmlHttpObject();
	xmlHttp.onreadystatechange=function(){
		if(xmlHttp.readyState==4){
			document.getElementById(writeto).innerHTML=xmlHttp.responseText;
		}
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}
function ajaxDataWait(url,writeto){
	document.getElementById(writeto).innerHTML="Please wait...";
	ajaxData(url,writeto);
}

function GetXmlHttpObject(){
	var xmlHttp=null;
	try { // Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	} catch (e){ // Internet Explorer
		try{
	   	xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e){
			try{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
	return xmlHttp;
} 

function makeLayer(whichLayer,dowith){
  var style2 ='';
  if (document.getElementById){
    style2 = document.getElementById(whichLayer).style;
  }else if (document.all){
    style2 = document.all[whichLayer].style;
  }else if (document.layers){
    style2 = document.layers[whichLayer].style;
  }
	style2.display=dowith;
}

function toggleLayer(whichLayer){
  var s = document.getElementById(whichLayer).style;
  if(s.display=='block'){
    s.display='none';
  }else{
    s.display='block';
  }
}

function toggleRow(whichLayer){
  var s = document.getElementById(whichLayer).style;
  if(s.display=='table-row'){
    s.display='none';
  }else{
    s.display='table-row';
  }
}

function toggleBC(){
	var s = document.getElementById('breadcrumb').style;
	if(s.display=='none'){
		s.display='block';
		document.getElementById('breadcrumbToggle').className='bcVisible';
		createCookie('showBreadCrumbs','1');
	}else{
		s.display='none';
		document.getElementById('breadcrumbToggle').className='bcHidden';
		createCookie('showBreadCrumbs','0');
	}
}


function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function roundNumber(rnum,rlength) {
	if (rnum > 8191 && rnum < 10485) {
		rnum = rnum-5000;
		var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
		newnumber = newnumber+5000;
	} else {
		var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
	}
	return newnumber;
}

function pad(number,length){
    var str = '' + number;
    while (str.length < length)
        str = '0' + str;
    return str;
}


function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

var aaaUsed = {}

function _(s) {
	if ( typeof il8n != 'undefined' && typeof il8n[s] != 'undefined') {
		// aaaUsed[s] = il8n[s];
		return il8n[s];
	}
	aaaUsed[s] = 'unknown';
	return s;
}

function pluralise(s, p, n) {
	if (n != 1) return _(p);
	return _(s);
}

function sprintf(s) {
	var bits = s.split('%');
	var out = bits[0];
	var re = /^([ds])(.*)$/;
	for (var i=1; i<bits.length; i++) {
		p = re.exec(bits[i]);
		if (!p || arguments[i]==null) continue;
		if (p[1] == 'd') {
			out += parseInt(arguments[i], 10);
		} else if (p[1] == 's') {
			out += arguments[i];
		}
		out += p[2];
	}
	return out;
}

var onloadArray = new Array();
function addOnload(func){
	onloadArray.push(func);
	window.onload=onloadEvent;
}

function onloadEvent(){
	for(var i = 0; i< onloadArray.length; i++){
		// if('function'==typeof window.onloadArray[i]) onloadArray[i]();
		onloadArray[i]();
		// alert(onloadArray[i]);
	}
}

function startList() {
	if(!document.getElementById("mnav")) return;
	document.getElementById("mnav").innerHTML = MENU;
	if (document.all&&document.getElementById) {
		navRoot = document.getElementById("menu");
		for (i=0; i<navRoot.childNodes.length; i++) {
			node = navRoot.childNodes[i];
			if (node.nodeName=="LI") {
				node.onmouseover=function() {
					this.className+=" over";
				}
				node.onmouseout=function() {
					this.className=this.className.replace(" over", "");
				}
			}
		}
	}
}

function textAreaSize(t) {
	a = t.value.split('\n');
	b=1;
	for (x=0;x < a.length; x++) { if (a[x].length >= t.cols) b+= Math.ceil(a[x].length/t.cols); }
	b+= a.length;
	// if (b > t.rows)
	t.rows = b;
}

addOnload(startList);
// window.onload=startList;

var arVersion = navigator.appVersion.split("MSIE")
var brVersion = parseFloat(arVersion[1])

function fixPNG(myImage){
    if ((brVersion >= 5.5) && (brVersion < 7) && (document.body.filters)){
       var imgID = (myImage.id) ? "id='" + myImage.id + "' " : ""
	   var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : ""
	   var imgTitle = (myImage.title) ? 
		             "title='" + myImage.title  + "' " : "title='" + myImage.alt + "' "
	   var imgStyle = "display:inline-block;" + myImage.style.cssText
	   var strNewHTML = "<span " + imgID + imgClass + imgTitle
                  + " style=\"" + "width:" + myImage.width 
                  + "px; height:" + myImage.height 
                  + "px;" + imgStyle + ";"
                  + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                  + "(src='" + myImage.src + "', sizingMethod='scale');\"></span>"
	   myImage.outerHTML = strNewHTML	  
    }
}

function viewport(){
	if (typeof window.innerWidth != 'undefined'){
		return { width : window.innerWidth , height : window.innerHeight }
	}else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth !='undefined' && document.documentElement.clientWidth != 0){
		return { width : document.documentElement.clientWidth , height : document.documentElement.clientHeight }
	}else{
		return { width : document.getElementsByTagName('body')[0].clientWidth , height : document.getElementsByTagName('body')[0].clientHeight }
	}
}

function filterTable( term, tableID ) {
	createCookie('filter',term.value);
	var table = document.getElementById( tableID );
	var terms = term.value.toLowerCase().split(" ");
	for (var r = 1; r < table.rows.length; r++) {
		var display = '';
		for (var i = 0; i < terms.length; i++) {
			if (table.rows[r].innerHTML.replace(/<[^>]+>/g, "").toLowerCase().indexOf(terms[i]) < 0) {
				display = 'none';
			}
			table.rows[r].style.display = display;
		}
	}
}
function filterTableLoad(){
	if( document.getElementById( 'filterTable' ) && document.getElementById( 'filter' )){
		var val = readCookie('filter');
		if( val ){
			document.getElementById( 'filterTable' ).value = val;
			filterTable( { value : val } , 'filter');
		}
	}
}
addOnload(filterTableLoad);

function checkNameVisability(d){
	var s = document.getElementById('input'+d)
	var sv = s.options[s.selectedIndex].value;
	if(document.getElementById('div-' + d + '-name')){
		
		if(sv==1000){
			makeLayer('div-' + d + '-name','none');
		}else{
			makeLayer('div-' + d + '-name','block');
		}
	}
}
function checkMetaVisibility(){
	var s = document.getElementById('add_meta');
	var sv = s.options[s.selectedIndex].value;
	if( sv != '0' ){
		metaData[sv].visible = true;
	}
	var num = 0;
	while(s.options[0]){ s.removeChild(s.options[0]); }
	for( var i in metaData ){
    	if( ! metaData[i].visible ){
	   		var newo = document.createElement('Option');
	   		newo.value = i;
	  		newo.innerHTML = metaData[i].name;
	 		s.appendChild(newo);
	 		num++;
	 		if(document.getElementById('d' + i )) document.getElementById('d' + i ).style.display = 'none';
		}else{
			if(document.getElementById('d' + i )) document.getElementById('d' + i ).style.display = 'block';
		}
	}
	var dd = document.getElementById('metadd');
	if( num <= 1 ){ dd.style.display = 'none'; }else{ dd.style.display = 'block'; };
}
function removeMeta(id){
	metaData[id].visible = false;
	document.getElementById('m_' + id ).value = '';
	checkMetaVisibility();
}

