function view_image(img,width,height,prop) {
	var scroll = "no"
	var w = width;
	var h = height;
	if (width>=800) { w=800; scroll = "yes"; }
	if (height>=800) { h=800; scroll = "yes"; }
	view_image_win=window.open("",'','toolbar=no,location=no,directories=no,menubar=no,status=no,scrollbars='+scroll+',resizable=yes,width='+w+',height='+h);
	view_image_win.focus();
	view_image_win.document.write("<html>\n");
	view_image_win.document.write("<title>"+img+" : "+width+"x"+height+" pixel</title>\n");
	view_image_win.document.write("<body bgcolor=white topmargin=0 leftmargin=0 rightmargin=0 bottommargin=0>\n");
	view_image_win.document.write("<center><img src='"+img+"' ><center>");
	view_image_win.document.write("</body>\n");
	view_image_win.document.write("</html>\n");
	view_image_win.document.close();
}

function CheckAll(FormName, CheckAllBox) {
  for (var i=0; i<FormName.elements.length; i++) {
    var e = FormName.elements[i];
    if ((e.name != CheckAllBox.name) && (e.type=='checkbox')) {
      e.checked = CheckAllBox.checked;
    }
  }
}

function checkedVolumn(colId,usedVolumn) {
	usedVolumnList=usedVolumn.split(';')
	usedVolumn=false
	if (colId != "") {
		for (i=0;i<usedVolumnList.length;i++) {
			if (colId == usedVolumnList[i]) {
				usedVolumn=true
				break
			}
		}
	}
	if (usedVolumn) {
		document.all.volumnList.style.visibility='visible'
	} else {
		document.all.volumnList.style.visibility='hidden'
	}
}

function ConfirmDelete(PromptMessage,DeleteCommand) {
	if ( PromptMessage == '' ) PromptMessage="ต้องการลบรายการนี้ออกจากฐานข้อมูลจริงหรือไม่?";
	if (confirm(PromptMessage)) {
		window.location = DeleteCommand;
		return true;
	}
}

function ConfirmWindow(PromptMessage,Command) {
	if (confirm(PromptMessage)) {
		window.location = Command;
		return true;
	}
}

function newImage(arg) {
	if (document.images) {
		var rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
	return true;
}

function changeImages() {
	if (document.images && (preloadFlag == true)) 
		for (var i=0; i<arguments.length; i+=2) document[arguments[i]].src = arguments[i+1];
}

function open_window(url,width,height) {
	cusuwinpopup=window.open(url,'','toolbar=no,location=no,directories=no,menubar=no,status=yes,scrollbars=yes,resizable=no,width='+width+',height='+height);
	return false;
}

function fillSelectFromArray(selectCtrl, itemArray, goodPrompt, badPrompt, defaultItem) {
var i, j;
var prompt;
// empty existing items
	for (i = selectCtrl.options.length; i >= 0; i--) {
		selectCtrl.options[i] = null;
	}
	prompt = (itemArray != null) ? goodPrompt : badPrompt;
	if (prompt == null) {
		j = 0;
	} else {
		selectCtrl.options[0] = new Option(prompt);
		j = 1;
	}
	if (itemArray != null) {
// add new items
		for (i = 0; i < itemArray.length; i++) {
			selectCtrl.options[j] = new Option(itemArray[i][0]);
			if (itemArray[i][1] != null) {
				selectCtrl.options[j].value = itemArray[i][1];
			}
			j++;
		}
// select first item (prompt) for sub list
		selectCtrl.options[0].selected = true;
	}
}

function fillSelect(id, fillList, selectValue , clearCtrl) {
var i,j;
	// clear old option
	if ( typeof(clearCtrl) != 'undefined' ) {
		debug_str=''
		for ( i=0; i<clearCtrl.length; i++ ) {
			for (j = getElement(clearCtrl[i]).options.length; j > 0; j--) getElement(clearCtrl[i]).options[j] = null;
			getElement(clearCtrl[i]).options[0].selected = true;
		}
	}
	// add new items
	for ( i=2; i < fillList.length; i++ ) {
		if (typeof(fillList[i]) != 'undefined') {
			getElement(id).options[i-1] = new Option(fillList[i][1])
			getElement(id).options[i-1].value = fillList[i][0]
			if ( fillList[i][0] == selectValue ) getElement(id).options[i-1].selected = true;
		}
	}
}

function showImage(id,str) {
	myImage = new Image()
	myImage.src = "file:///"+str

	getElement(id).src = "file:///"+str
}

function sb(txt) { window.status = txt; return true; }

document.write( "<script type='text/javascript' src='/scripts/boxover.js'><\/script>" );
//document.write( "<div id=\"debug\" style=\"background-color:#fff;position:absolute;top:0;border:1px red solid;\"></div>" );

function debug(html,clear) {
	var elem=document.getElementById('debug');
	if (elem==undefined) return;
	if (clear) elem.innerHTML='';
	elem.innerHTML = elem.innerHTML+html;
}

/******************************
    dom tools functions
*******************************/
dom = {
	toggle : function (id) {
		o=document.getElementById(id)
		var display = dom.getStyle(o, "display");
	    if (o.style) o.style.display = (display != "none") ? "none" : dom.getDisplayStyleByTagName(o);
	} , 
	getDisplayStyleByTagName : function (o) {
		n = o.nodeName.toLowerCase(); 
		return (
			n == "span"
			|| n == "img"
			|| n == "a"
			) ? "inline" : "block";
	} ,
	getStyle : function (el, style) {
		if (!document.getElementById || !el) return;
		if (document.defaultView && document.defaultView.getComputedStyle) {
			return document.defaultView.getComputedStyle(el, "").getPropertyValue(style);
		} else if (el.currentStyle) {
			return el.currentStyle[style];
		} else {
			return el.style.display;
		}
	}
}

/******************************
    Ajax tools functions
*******************************/

Ajax = {
	Version: '0.0.1',
	loadStatusText:"<img src='/img/loading.gif' /> Requesting content...",
	boxHeader:'<div style="text-align:right;"><input type="submit" value="close" onClick="Ajax.HideBox()"></div>',
	activeRequestCount: 0,
	getTransport : function() {
		var xmlHttp=null;
		// Firefox, Opera 8.0+, Safari
		try { xmlHttp=new XMLHttpRequest(); }
		catch (e) {
			// Internet Explorer
			try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }
			catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}
		}
		return xmlHttp;
	} ,
	
	Updater : function(container, url, headerText) {
		this.container=container;
		this.stateChange = function stateChange() {
			if (transport.readyState==4) {
				document.getElementById(container).innerHTML=(typeof(headerText)!='undefined'?headerText:'')+transport.responseText;
			}
		}
		
		document.getElementById(this.container).innerHTML=Ajax.loadStatusText;
		var transport=Ajax.getTransport();
		if (transport==null) {
			alert ("Your browser does not support AJAX!");
			return;
		}
		transport.onreadystatechange=this.stateChange;
		transport.open("GET",url,true);
		transport.send(null);
	} ,

	getAbsolutePos : function(el) {
		var r = { x: el.offsetLeft, y: el.offsetTop };
		if (el.offsetParent) {
			var tmp = Ajax.getAbsolutePos(el.offsetParent);
			r.x += tmp.x;
			r.y += tmp.y;
		}
		return r;
	} ,

	Box : function (e,width,height,text){
	//	Ajax.HideBox();
		if(document.all)e = event;
		
		var obj = document.getElementById('box');

		obj.style.display = 'block';
		obj.style.position= 'absolute';
		obj.style.width = width+'px';
		if (height>0) obj.style.height= height+'px';
		var st = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
		if(navigator.userAgent.toLowerCase().indexOf('safari')>=0)st=0; 
		if (obj.offsetParent) parent_r=Ajax.getAbsolutePos(obj.offsetParent);

		var leftPos = e.clientX - parent_r.x;
		if(leftPos<0)leftPos = 0;
		obj.style.left = leftPos + 'px';
	//	obj.style.top = e.clientY - obj.offsetHeight -1 + st + 'px';
		obj.style.top = e.clientY+st+10+ 'px';
	//	text = text+'left='+obj.style.left+', top='+obj.style.top+',clientX='+e.clientX+',clientY='+e.clientY+',offsetHeight='+obj.offsetHeight;
		if (text.substr(0,4)=='url:') {
			url=text.substr(4,text.length-4);
			new Ajax.Updater('box',url,Ajax.boxHeader);
		} else {
			obj.innerHTML = text;
		}
	} ,

	HideBox : function() {
		document.getElementById('box').style.display = 'none';
	} ,
	
	linkRelationInit : function () {
		var a_list=document.getElementsByTagName("a") //array containing the A elements
		for (var x=0; x<a_list.length; x++){ //loop through each A element
			alink=a_list[x];
			if (alink.getAttribute("rel")){
				var modifiedurl=alink.getAttribute("href").replace(/^http:\/\/[^\/]+\//i, "http://"+window.location.hostname+"/")
				alink.setAttribute("href", modifiedurl) //replace URL's root domain with dynamic root domain, for ajax security sake
				alink.onclick=function(){
					Ajax.Updater(this.getAttribute("rel"),this.getAttribute("href"))
					return false
				}
			}
	}
}
	
}

function AjaxLink(id,url) {
	new Ajax.Updater(id,url);
}

function AjaxConfirm(id,prompt,url) {
	if ( prompt== '' ) prompt='Please confirm to continue?';
	if (confirm(prompt)) {
		new Ajax.Updater(id,url);
	}
}

/******************************
    Editor functions
*******************************/
editor = {
	version : '0.0.2b',
	controls : new Array() ,
	start_tag : '',
	end_tag : '',
	
	click : function (e) {
		e?evt=e:evt=event;
		var cSrc=evt.target?evt.target:evt.srcElement;
		var elem=document.getElementsByTagName('textarea');
		var ctrl=cSrc.parentNode;
//alert('click '+ctrl+' : '+ctrl.id+' : '+ctrl.className);
		if (ctrl.className=='editor') {
			myField=document.getElementById(ctrl.title);
//			alert('set myField ',editor.myField.id);
//			debug('<p>control parent id '+ctrl.id+' : '+ctrl.title+' : '+ctrl.className+' : '+ctrl.parentNode.id+'</p>',false);
//			debug('insert into id '+myField.id+' tag = '+editor.start_tag+' | '+editor.end_tag);
			editor.insertCode(myField,editor.start_tag,editor.end_tag);
		}
		editor.start_tag='';
		editor.end_tag='';
	} ,

	insert : function (i,o) {
		if(o == undefined) { o=''; }
		this.start_tag=i;
		this.end_tag=o;
	} ,
	
	insertCode : function(myField,i,o) {
		// IE selection support
		if (document.selection) {
			myField.focus();
			sel = document.selection.createRange();
			if (sel.text.length > 0) {
				sel.text = i + sel.text + o;
			} else {
				sel.text = i + o;
			}
			myField.focus();
		// MOZILLA selection support
		} else if (myField.selectionStart || myField.selectionStart == '0') {
			var startPos = myField.selectionStart;
			var endPos = myField.selectionEnd;
			var cursorPos = endPos;
			var scrollTop = myField.scrollTop;
			if (startPos != endPos) {
				myField.value = myField.value.substring(0, startPos)
				+ i
				+ myField.value.substring(startPos, endPos) 
				+ o
				+ myField.value.substring(endPos, myField.value.length);
				cursorPos = cursorPos + i.length + o.length;
			} else {
				myField.value = myField.value.substring(0, startPos) 
				+ i 
				+ o 
				+ myField.value.substring(endPos, myField.value.length);
				cursorPos = startPos + i.length;
			}
			myField.focus();
			myField.selectionStart = cursorPos;
			myField.selectionEnd = cursorPos;
			myField.scrollTop = scrollTop;
		// SAFARI and others
		} else {
			myField.value += i+o;
			myField.focus();
		}
	} ,
	
	url : function (i) {
	    var defaultValue = 'http://';
		var url = prompt('enter your url' ,defaultValue);
		if (url == undefined) return;

	    if (url) {
			ii = '[url='+ url + ']';
			this.insert(ii,'click here[/url]');
		} else {
			this.insert('[url=]','[/url]');
		}
	} ,
	
	image : function (src) {
	    var defaultValue = 'http://';
		if (src == undefined) {
			src = prompt('enter your image location', defaultValue);
			if (src == undefined || src==defaultValue) return;
		}
		this.insert('[img]'+src,'[/img]');
	} ,

	emotion : function (id) {
		dom.toggle(id);
	} ,
	
	color : function (id) {
		this.COLORS = [
		  ["ffffff", "cccccc", "c0c0c0", "999999", "666666", "333333", "000000"], // blacks
		  ["ffcccc", "ff6666", "ff0000", "cc0000", "990000", "660000", "330000"], // reds
		  ["ffcc99", "ff9966", "ff9900", "ff6600", "cc6600", "993300", "663300"], // oranges
		  ["ffff99", "ffff66", "ffcc66", "ffcc33", "cc9933", "996633", "663333"], // yellows
		  ["ffffcc", "ffff33", "ffff00", "ffcc00", "999900", "666600", "333300"], // olives
		  ["99ff99", "66ff99", "33ff33", "33cc00", "009900", "006600", "003300"], // greens
		  ["99ffff", "33ffff", "66cccc", "00cccc", "339999", "336666", "003333"], // turquoises
		  ["ccffff", "66ffff", "33ccff", "3366ff", "3333ff", "000099", "000066"], // blues
		  ["ccccff", "9999ff", "6666cc", "6633ff", "6600cc", "333399", "330099"], // purples
		  ["ffccff", "ff99ff", "cc66cc", "cc33cc", "993399", "663366", "330033"] // violets
		  ];

		var cell_width = 14;
		var html = "";
		for (var i = 0; i < this.COLORS.length; i++) {
		  for (var j = 0; j < this.COLORS[i].length; j++) {
			html=html+'<img src="/img/none.gif" width="'+cell_width+'" height="'+cell_width+'" onClick="editor.insert(\'[color=#' + this.COLORS[i][j] + ']\',\'[/color]\')" style="background-color:#'+this.COLORS[i][j]+';margin:0 1px 1px 0;">';
		  }
		}
		var elem=document.getElementById(id);
		if (elem==undefined) return;
		elem.innerHTML = html;
		dom.toggle(id);
	}
}

// drop-down menu
// this function is from gotoknow.org http://gotoknow.org//javascripts/application.js
// bug for IE
sfHover = function () {
	// add class property sfhover to id user-menu LI tags
	if (document.getElementById("user-menu")) {
		var sfEls = document.getElementById("user-menu").getElementsByTagName("LI");

		// add class property sfhover to all LI tags
		// var sfEls = document.getElementsByTagName("LI");

		for (var i=0; i<sfEls.length; i++) {
			sfEls[i].onmouseover=function() { this.className+=" sfhover"; }
			sfEls[i].onmouseout=function() { this.className=this.className.replace(new RegExp(" sfhover\\b"), "");}
		}
	}
}

/* init bb click */
if (typeof document.attachEvent!='undefined') {
	window.attachEvent("onload", sfHover);
	window.attachEvent("onload", Ajax.linkRelationInit);
	document.attachEvent('onclick',editor.click);
} else {
	window.addEventListener('load',Ajax.linkRelationInit,false);
	document.addEventListener('click',editor.click,false);
}

