// Version 1.0 of the cms js file.

function cms_read_cookie(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;
}

var last_bg_style = null;

function cms_highlight_span(id) {
var obj = document.getElementById("cms_" + id);
last_bg_style = obj.style.backgroundColor;
obj.style.backgroundColor = "#ddf";
}

function cms_unhighlight_span(id){
var obj = document.getElementById("cms_"+id);
//obj.style.background = null;
obj.style.backgroundColor = null;
}


function cms_edit_link(key,required_trust,id) {
	trust = cms_read_cookie('cms_trust');
	if ( parseInt(trust) >= parseInt(required_trust)) {
		if (document.getElementById('cms_missing_' + id) != null) {
			missing = document.getElementById('cms_missing_' + id)
			missing.style.visibility = 'visible';
		}
		var str = " <a href='/' onmouseover='cms_highlight_span(\""+id+"\")' onmouseout='cms_unhighlight_span(\""+id+"\")' onclick='dialog(\"/Admin/admin-content-block-pop.php?"+key+"\",\"translation\",500,560); return false;' style='font-size:10px;color:#fa0;' rel='nofollow'>[edit]<\/a> ";
		document.write(str);
	}
}


function cms_login_link() {
	document.write("<span style='float:right;'>");
	nick = cms_read_cookie("cms_nick");
	if (nick) document.write(" <a href='/Admin/logout.php' style='opacity:0.5'>logout<\/a>&nbsp;");
	else document.write(" <a href='/Admin/login.php' style='opacity:0.5'>login<\/a>&nbsp;");
	document.write("<\/span>"); 
}


function cms_load_js(src) {
// Non ajax - as allows caching of results (headers set properly)
	if( document.createElement && document.childNodes ) {
		var new_script = document.createElement('script');
		new_script.setAttribute('src',src);
		new_script.setAttribute('type','text/javascript');
		document.getElementsByTagName('head')[0].appendChild(new_script);
	} else {
		var ext_js = document.getElementById('ext_js');
		if (ext_js) ext_js.src = src;
		else document.write('<script src="', src, '" type="text/JavaScript"><\/script>');
	}	
}


function cms_dump(arr,level) {
        var dumped_text = "";
        if(!level) level = 0;

        //The padding given at the beginning of the line.
        var level_padding = "";
        for(var j=0;j<level+1;j++) level_padding += "    ";

        if(typeof(arr) == 'object') { //Array/Hashes/Objects
                for(var item in arr) {
                        var value = arr[item];

                        if(typeof(value) == 'object') { //If it is an array,
                                dumped_text += level_padding + "'" + item + "' ...\n";
                                dumped_text += cms_dump(value,level+1);
                        } else {
                                dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
                        }
                }
        } else { //Stings/Chars/Numbers etc.
                dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
        }
        return dumped_text;
}


function cms_debug(obj) {

var mydiv = document.getElementById('debug');
if (mydiv == undefined) {
	document.write('<div id="debug">Debug Area<\/div>'); 
	mydiv = document.getElementById('debug');
	}

var debug = cms_dump(obj);
mydiv.innerHTML = debug;
return;

}


function cms_age(utime) {
// assumption made that the client time is correct... hmm
  if (utime < 1) return;
  var now = cms_now();
  var age = now - utime;
  if (age < 0) age = 0;
  if (age < 600)  document.write("Age:" + age + "s");
  else if (age >= 6000) {
  	var hours = age / 60 / 60;
  	document.write("Age:" + Math.floor(hours) + "h");
  } else if (age >= 600) {
  	var mins = age / 60;
  	document.write("Age:" + Math.floor(mins) + "m");
  }
}

function cms_now() {
	var today = new Date();
	var now = Math.round(today.getTime()/1000.0);
	return now;
}

function cms_timestamp_2_time(timestamp){
	var datetime = new Date(timestamp * 1000);
	return datetime;
}

