
//-------------------------------------------------------------------------------------
//{{{{ Button
function __initializeButtons()
{
	__appendStyleSheet(document,__config.skin+"Css/__Button.css");
	var arr=document.getElementsByTagName("BUTTON");
	var i=arr.length-1;
	while(arr.length>0)
	{
		var btn=arr[i];
		var strLabel=btn.innerHTML.replace(/\s/g,"&nbsp;");
		var strStyle=btn.getAttribute("width") ? " style='width:"+btn.getAttribute("width")+"px;'" : "";
		var isHidden=btn.getAttribute("hidden");
		
		var btnReplace=document.createElement("span");
		btnReplace.innerHTML="<span class='first-child'><a"+strStyle+">"+strLabel+"</a></span>";
		btnReplace.className="KwanButton ie6";
		btnReplace.onmouseover=button_onmouseover;
		btnReplace.onmouseout=button_onmouseout;
		btnReplace.onmousedown=button_onmousedown;
		btnReplace.onmouseup=button_onmouseup;
		btnReplace.onclick=btn.onclick;
		btnReplace.id=btn.id;
		btnReplace.onselectstart=__blankFunc;
		btnReplace.setVisible=button_setVisible;
		btn.replaceNode(btnReplace);
		
		btnReplace.firstChild.onfocus=button_onfocus;
		btnReplace.firstChild.onblur=button_onblur;
		btnReplace.firstChild.firstChild.onselectstart =__blankFunc;
		
		if(isHidden=="1")btnReplace.setVisible(false);
		
		i--;
	}
	
}
function button_setVisible(bShow)
{
	this.style.display=bShow ? "" : "none";
}
/*function button_focus()
{
	__addClass(this,"hover");
	__addClass(this,"focus");
	this.hasFocus=true;
}*/
function button_onblur()
{
	__removeClass(this.parentElement,"focus");
	__removeClass(this.parentElement,"active");
}
function button_onfocus()
{
	__addClass(this.parentElement,"focus");
	this.parentElement.hasFocus=true;
}
function button_onmousedown(e)
{
	__addClass(this,"active");
}
function button_onmouseup()
{
	__addClass(this,"hover");
	__removeClass(this,"active");
}
function button_onmouseover()
{
	__addClass(this,"hover");
}
function button_onmouseout()
{
	__removeClass(this,"active");
	__removeClass(this,"hover");
}
//}}}
//------------------------------------------------------------------------------------

//-------------------------------------------------------------------------------------------
//{{{Checkbox
var __CheckboxCssAdded=false;
function __initializeCheckboxs()
{
	var imgArr=document.getElementsByTagName("IMG");
	for(var i=0;i<imgArr.length;i++)
	{
		var img=imgArr[i];
		if(img.getAttribute("IsCheckbox")=="1")
		{
			__initializeCheckbox(img);
		}
	}
}
function __initializeCheckbox(img)
{
	if(__CheckboxCssAdded==false)
	{
		__appendStyleSheet(document,__config.skin+"Css/__Checkbox.css");
		__CheckboxCssAdded=true;
	}
	
	if(typeof img=="string")img=$(img);
	img.onclick=checkbox_onclick;
	img.src=__config.skin+"Images/Checkbox.gif";
	var chk=document.createElement("INPUT");
	chk.type="checkbox";
	chk.id=img.id;
	chk.name=chk.id;
	chk.style.display="none";
	chk.value="";
	img.id=__createGUID();
	chk.setAttribute("controlId",img.id);
	
	var val=img.getAttribute("value");
	if(val)chk.value=val;
	img.parentNode.appendChild(chk);
	
	chk.checked=(img.checked>0 ||img.getAttribute("checked")>0) ? 1 : 0;
	if(img.getAttribute("onchange"))
	{
		chk.onchange=img.getAttribute("onchange");
	}
	img.className=chk.checked ? "YzCheckBoxOn" : "YzCheckBox";
	
	img.setAttribute("controlId",chk.id);
}
function checkbox_onclick(obj)
{
	if(arguments.length==0)obj=this;
	var chk=$(obj.getAttribute("controlId"));
	
	chk.checked=!chk.checked;
	obj.className=chk.checked ? "YzCheckBoxOn" : "YzCheckBox";
	
	//if(obj.onchange)obj.onchange.call(chk);
	if(chk.onchange)eval(chk.onchange+".call($('"+chk.id+"'));");
}
function YzCheckbox_setChecked(obj,chk)
{
	if(obj)
	{
		obj.checked=chk;
		$(obj.getAttribute("controlId")).className=chk ? "YzCheckBoxOn" : "YzCheckBox";
		//obj.parentNode.className=chk ? "YzCheckBoxOn" : "YzCheckBox";
	}
}
//-------------------------------------------------------------------------------------------

//Select control
//{{{
//-------------------------------------------------------------------------------------------
function __initializeSelectControls()
{
	__appendStyleSheet(document,__config.skin+"Css/__SelectControl.css");
	var selArr=document.getElementsByTagName("SELECT");
	var i=0,l=selArr.length,sel,selElt;
	for(i=0;i<l;i++)
	{
		sel=selArr[i]; sel.display="none";
		selElt=document.createElement("DIV");
		selElt.className="YzSelectControl";
		selElt.innerHTML="<table cellpadding=0 cellspacing=0><tr><td class='YzSelectControlText'>&nbsp;</td><td class='YzSelectControlArrow'><img src='"+__config.skin+"Images/ArrowDown.gif'></td></tr></table>";
		var width=parseInt(sel.getAttribute("width"));
		if(isNaN(width) || width<=0)width=100;
		selElt.style.width=width;
		selElt.innerSelectControlId=sel.id;
		if(sel.getAttribute("readonly")=="1")
		{
			selElt.setAttribute("readonly","1");
		}
		sel.parentNode.appendChild(selElt);
		selElt.id=__createGUID();
		sel.setAttribute("controlId",selElt.id);
		
		var t=selElt.firstChild;
		t.rows[0].cells[0].width=width-15;
		
		var itemPanelId=selElt.itemPanelId=YzPanelCreate();
		var itemPanel=YzPanelGetPanel(itemPanelId);
			__appendStyleSheet(itemPanel.contentWindow.document,__config.skin+"Css/__SelectControl.css");
		var mainNode=itemPanel.contentWindow.document.body.firstChild;	
			mainNode.className="YzSelectControlItemPanel";
		
		selElt.onclick=YzSelectControl_onclick;
		YzSelectControlBuilItems(selElt,document);
		
		if(__YzAshman)__YzAshman.addItem(selElt,YzSelectControlFinalRelease);
	}
	
}
function YzSelectControlBuilItems(entityElement,doc)
{
	var innerSelectControlId=entityElement.getAttribute("innerSelectControlId");
	if(!innerSelectControlId)return;
	
	var innerSel=$(innerSelectControlId,doc),l=innerSel.options.length,item,html="";
		innerSel.style.display="none";
	
	for(var i=0;i<l;i++)
	{
		item=innerSel.options[i];
		
		var indent=parseInt(item.getAttribute("indent"));
		if(!isNaN(indent) && indent>0)indent="padding-left:"+indent+"px;";
		
		
		html+="<tr value='"+item.value+"' class='YzSelectControlItem' onmouseout=this.className='YzSelectControlItem'; onmouseover=this.className='YzSelectControlItemOver';><td style='"+indent+item.style.cssText+"'>"+item.text+"</td></tr>";
	}
	itemPanelId=entityElement.itemPanelId;
	var itemPanel=YzPanelGetPanel(itemPanelId);
	var mainNode=itemPanel.contentWindow.document.body.firstChild;	
		mainNode.innerHTML="<table panelId='"+itemPanelId+"' controlId='"+entityElement.id+"' class='YzSelectControlItemTable' width='100%' cellpadding='0' cellspacing='0'>"+html+"</table>";
		
	mainNode.firstChild.onclick=YzSelectControlItem_onclick;	
	
	if(innerSel.selectedIndex<0)innerSel.selectedIndex=0;
	entityElement.firstChild.rows[0].cells[0].innerHTML=innerSel.options[innerSel.selectedIndex].text;
}
function YzSelectControlRebuildItems(selCtrl,width)
{
	var selElt=$(selCtrl.getAttribute("controlId"));
	selElt.style.width=width+"px";
	selElt.firstChild.rows[0].cells[0].width=(width-15)+"px";
	YzSelectControlBuilItems(selElt,__getElementDocument(selElt));
}

function YzSelectControlFinalRelease()
{
	YzPanelFinalRelease(this.itemPanelId);
}

function YzSelectControl_onclick()
{
	if(this.getAttribute("readonly")=="1")return;
	
	//列表的每一项的高度是20px
	//总高度是 行数*20+2(上下边框的高度),我们这里限制高度为200px
	//把高度设为0表示自动计算高度
	var t=YzPanelGetMainNode(this.itemPanelId).firstChild;
	var h=t.rows.length*18+2; if(h>200)h=200; if(h<200)h=0;
	
	var pos=__getElementPosition(this);
	var doc=__getElementDocument(this);
	
	YzPanelShow(this.itemPanelId,pos.X,pos.Y+this.offsetHeight-1,this.offsetWidth-(__IsIE ? 0 : 2),h,doc.body);
}

function YzSelectControlItem_onclick(e)
{
	var doc=__getElementDocument(this);
	var win=__getDocumentWindow(doc);
	
	var td=e ? e.target : doc.elementFromPoint(win.event.x,win.event.y);
		if(!td)return;
	var	tr=td.parentNode;
	var sel=$(this.getAttribute("controlId"));
		sel.firstChild.rows[0].cells[0].innerHTML=__IsIE ? td.innerText : td.textContent;
		
	var selCtrl=$(sel.getAttribute("innerSelectControlId"));
	var oldValue=selCtrl.value;
		selCtrl.value=tr.value;
		if(oldValue!=tr.Value && selCtrl.onchange)selCtrl.onchange.call(selCtrl);
	
	YzPanelHide(this.getAttribute("panelId"));
}
//}}}
//----------------------------------------------------------------------------------------

