// JavaScript Document 常用方法



String.prototype.inArray = function(arr)
{
	for(var i =0; i<arr.length; i++){
		if(this == arr[i])
		{
			return true;
		//	break;
		}
	}
	return false;
}

//var str="aa";
//alert(str.inArray(['aa','bb']));


var lw=new Object; //先有实例


lw.name='me';//再附加属性
//<body onload="lw.showMe('哈哈哈');">
lw.showMe=function(param) //再附加方法
{
	alert(this.name + param);
}


lw.form={};


/*
 * validate  email 
 */
lw.form.emailValidate=function(inputId)
{
	var emailAddress= document.getElementById(inputId).Value;
	
	var emailReg=/^[-_.a-z0-9]+@([_a-z0-9+\.])+[a-z0-9]{2,4}$/;
	if (emailReg.test(emailAddress)){
		return true;
	}
	else {
		return false;
	}
	
}


lw.form.select={};

lw.form.select.forceSelect=function(el,value)
{
	for (var i=0; i<el.options.length;i++){
		if(el.options[i].value==value){
			el.options[i].selected=true; 
		}
	}
}


lw.form.radio={};

lw.form.radio.forceCheck= function(el,value) 
{
	for (var i=0; i<el.length;i++){
		if(el[i].value==value){
			el[i].checked="checked";
		}
	}
}


lw.form.textarea ={};


lw.form.textarea.autoHeight = function(mode)
{
		var  els ="";
		if (mode =="auto"){
			els = document.getElementsByTagName("textarea");
		}
		else {
			//Todo 
		}
		

		for(i=0; i<els.length; i++){
		  // el = els[i];
		  if(els[i].getAttribute('lw.autoHeight') == "autoHeight"){			 
			  
			  if(els[i].addEventListener){
				  els[i].addEventListener("focus",function(e){				  		 
				  	  var src = e.target || window.event.srcElement;  						 
					  window.activeobj=src;
					  src.clock=setInterval(function(){activeobj.style.height=activeobj.scrollHeight+'px';},300);
				  },false);
				  
				  els[i].addEventListener("blur",function(e){	
				  	  var src = e.target || window.event.srcElement;  			
					  clearInterval(src.clock);
				  },false);
				  
			  }
			  
			  else if (this.attachEvent){
				  els[i].attachEvent("focus",function(e){
					   var src = e.target || window.event.srcElement; 
					  window.activeobj=src;
					  src.clock=setInterval(function(){activeobj.style.height=activeobj.scrollHeight+'px';},300);
				  });
				  
				  els[i].attachEvent("blur",function(e){				
					  clearInterval(src.clock);
				  });
			  }			
		  }
	  }

	
}


/**

*/




lw.form.populate= 	function (formId, data)
{
	
	var form=  document.getElementById(formId);
	
	//populate input 
	var inputs = form.getElementsByTagName('input');
	for(var i =0 ; i<inputs.length; i++){
		if (inputs[i].type=="text" || inputs[i].type=="hidden"){
			if ( inputs[i].getAttribute("lw.populate") != "noPopulate"){
				inputs[i].value = data[inputs[i].name];
			}
		}
		else if (inputs[i].type =="radio"){
			lw.form.radio.forceCheck(document.getElementsByName(inputs[i].name),data[inputs[i].name]);
		}
		else if (inputs[i].type =="checkbox"){
			// checkbox must have a name like <input name="agree[]"
			
			if(data[inputs[i].name.toString().replace('[]','')] != undefined){ // sometimes data might no match from database to form elements
				if(inputs[i].value.toString().inArray(data[inputs[i].name.toString().replace('[]','')])){
					inputs[i].checked="checked";
				}
			}			
		}
				
	}
	
	
	
	//populate select
	var selects = form.getElementsByTagName('select');
	for(var i =0 ; i<selects.length; i++){	
		// every <select must have a unique name 				
		lw.form.select.forceSelect(document.getElementsByName(selects[i].name)[0], data[selects[i].name]);		
	}
	
	
	//populate textareas
	var textareas =  form.getElementsByTagName('textarea');
	for(var i =0 ; i<textareas.length; i++){		
		if(textareas[i].getAttribute("lw.populate") != "noPopulate")	{
			textareas[i].value  = data[textareas[i].name];	
		}
	}
}



lw.events={} ;


/*
 *  fireEvent(tdToday,'click')	as  <tr><td id="tdToday" onclick=""
 */	
lw.events.fireEvent=function (obj,evt)
{	
	var fireOnThis = obj;
	if( document.createEvent ) {
	  var evObj = document.createEvent('MouseEvents');
	  evObj.initEvent( evt, true, false );
	  fireOnThis.dispatchEvent(evObj);
	} 
	else if( document.createEventObject ) {
	  fireOnThis.fireEvent('on'+evt);
	}
}


lw.cookies={};


lw.dom={};

lw.dom.getDivsByName=function( name)
{
	var arr=[];
	var divs= document.getElementsByTagName(div);
	for(var i in divs){
		if(divs[i].getAttribute('name')==name){
			 arr.push(divs[i]);
		}
	}
	return arr;	
}




/*现有一个类
function Person( name )
{
   this.name = name;
   this.say = function()
   {
     alert( this.name );
   }
}

var boy = new Person( 'Wait' );再有实例
boy.say(); 
*/




