//===========================================================================
// Decsription			:Returns a copy of the string, with leading and trailing 
//                       whitespace omitted.
//                        
// Use method		:    s1 = trim(s);
//---------------------------------------------------------------------------
// Author	:	Liu_cb
// Date		:	2008/02/26
//===========================================================================
function trim(str)
{
	return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}  
//===========================================================================
// Decsription		: when click the button,you need not validate, please call this method
//
// Use method		: 
//						notValidate
//						
//---------------------------------------------------------------------------
// Author	:	pang_jh
// Date		:	2008/01/21
//===========================================================================   
    function notValidate() {
       needValid=false;
    }

//===========================================================================
// Decsription		: when click the button,you need do the validate,please call this method
//
// Use method		: 
//						doValidate
//						
//---------------------------------------------------------------------------
// Author	:	pang_jh
// Date		:	2008/01/21
//=========================================================================== 
    function doValidate() {
       needValid=true;
    }
//===========================================================================
// Decsription		: Min the messages div 
//						
//---------------------------------------------------------------------------
// Author	:	Zou_hw
// Date		:	2008/01/21
//===========================================================================
 function minMessages(componentId){
	var mesdiv = componentId+"messageDiv";
	var minMesdiv = componentId+"minMessageDiv";

	$(minMesdiv).style.top = ($(mesdiv).style.top !='')?$(mesdiv).style.top : '40px';
	$(minMesdiv).style.left = ($(mesdiv).style.left !='')?$(mesdiv).style.left : '50px';
	new Effect.Squish($(mesdiv));	
	$(minMesdiv).style.display = 'inline';
	$(mesdiv).style.zIndex = '1001';
	$(minMesdiv).style.zIndex = '1000';
  }
//===========================================================================
// Decsription		: Max the messages div 
//						
//---------------------------------------------------------------------------
// Author	:	Zou_hw
// Date		:	2008/01/21
//===========================================================================
  function maxMessages(componentId){
	var mesdiv = componentId+"messageDiv";
	var minMesdiv = componentId+"minMessageDiv";
	$(mesdiv).style.top = $(minMesdiv).style.top;
	$(mesdiv).style.left = $(minMesdiv).style.left;	
	new Effect.Grow($(mesdiv),{direction: 'top-left'});
	$(mesdiv).style.zIndex = '1000';
	$(minMesdiv).style.zIndex = '1001';
	new Effect.Fade($(minMesdiv));
	return false;
  }
//===========================================================================
// Decsription		: Make messagesTitle div draggable
//						
//---------------------------------------------------------------------------
// Author	:	Zou_hw
// Date		:	2008/01/23
//===========================================================================
  function initDraggable(componentId){
	var mesdiv = componentId+"messageDiv";
	var messageTitle = componentId+"messageTitle";
	var minMesdiv = componentId+"minMessageDiv";
	var minMessageTitle = componentId+"minMessageTitle";
	var newFlgDiv = componentId+"newFlgDiv";
	var lastFlgDiv = componentId+"lastFlgDiv";
	

	if($(newFlgDiv).innerHTML != $(lastFlgDiv).innerHTML){
		if(false){
			new Draggable(mesdiv,{scroll:window,handle:messageTitle,snap: function(x,y,draggable) {
			  function constrain(n, lower, upper) {
				if (n > upper) return upper;
				else if (n < lower) return lower;
				else return n;
			  }
			 
			  element_dimensions = Element.getDimensions(draggable.element);
			  //parent_dimensions = Element.getDimensions(draggable.element.parentNode);
			  parent_dimensions = Element.getDimensions(document.body);
			  return[
				constrain(x, 0, parent_dimensions.width - element_dimensions.width -1),
				constrain(y, 0, parent_dimensions.height - element_dimensions.height -1)];
			},revert:false});

			new Draggable(minMesdiv,{scroll:window,handle:minMessageTitle,snap: function(x,y,draggable) {
			  function constrain(n, lower, upper) {
				if (n > upper) return upper;
				else if (n < lower) return lower;
				else return n;
			  }
			 
			  element_dimensions = Element.getDimensions(draggable.element);
			  //parent_dimensions = Element.getDimensions(draggable.element.parentNode);
			  parent_dimensions = Element.getDimensions(document.body);
			  return[
				constrain(x, 0, parent_dimensions.width - element_dimensions.width -1),
				constrain(y, 0, parent_dimensions.height - element_dimensions.height -1)];
			},revert:false});
			
		}else{
			new Draggable(mesdiv,{scroll:window,handle:messageTitle,revert:false});
			new Draggable(minMesdiv,{scroll:window,handle:minMessageTitle,revert:false});
			
		}
		$(lastFlgDiv).innerText = $(newFlgDiv).innerText;		
	}
	
	return false;
  }
//===========================================================================
// Decsription		: do init when lzt:messages load
//						
//---------------------------------------------------------------------------
// Author	:	Zou_hw
// Date		:	2008/01/23
//===========================================================================
  function loadMessageIframe(fra,componentId,topValue,leftValue,widthValue,heightValue){
	fra.style.top=0;
	fra.style.left=0;
	fra.style.width=fra.parentNode.scrollWidth-2;
	fra.style.height=fra.parentNode.scrollHeight-2;

	
	var heightTemp = 80;
	var widthTemp = 300;
	var imageWidth = 17;

	var patrn=/^[1-9]\\d*\\.?\\d*|0\\.[0-9]*|0?\\.0+|0$/;

	var realWidth = $(componentId+'messageDiv').style.width;

	if(realWidth.indexOf('px') != -1){
		realWidth = realWidth.substring(0,realWidth.indexOf('px'));
	}

	if(patrn.test(realWidth)){
		$(componentId+'messageTitleRight').style.left = realWidth -17;		
	}
	
	componentId = componentId+'messageDiv';


	if(patrn.test(heightValue)){
		heightTemp = heightValue;
		
	}

	if(patrn.test(widthValue)){
		widthTemp = widthValue;
		
	}
	
	if(patrn.test(topValue)){
		$(componentId).style.top = topValue;
		
	}else{		
		if(window.dialogArguments){
			if(document.body.scrollHeight > heightTemp ){
					$(componentId).style.top = (document.body.scrollHeight - heightTemp)/2
						
			}
		}else{
			if(screen.height > heightTemp ){
					$(componentId).style.top = (screen.height - heightTemp)/2
						
			}
		}		
	}

	if(patrn.test(leftValue)){
		$(componentId).style.left = leftValue;
		
	}else{		
		if(window.dialogArguments){
			if(document.body.scrollWidth > widthTemp ){
					$(componentId).style.left = (document.body.scrollWidth - widthTemp)/2
		
			}
		}else{
			if(screen.width > widthTemp ){
					$(componentId).style.left = (screen.width - widthTemp)/2
						
			}
		}		
	}


	return false;
  }
//===========================================================================
// Decsription			:Use for the inputText that only numeric is valid.
//
// Use method		:
//						<h:inputText id="weight" value="#{pBean.weight}" onkeyup="clearNoNum(this);"/>
//---------------------------------------------------------------------------
// Author	:	Liu_cb
// Date		:	2008/01/10
//===========================================================================

function clearNoNum(obj)
{
	if (event.keyCode == 9) { //Tab key
		return;
	}
	if (String.fromCharCode(event.keyCode)!="0" &&
		String.fromCharCode(event.keyCode)!="1" &&
		String.fromCharCode(event.keyCode)!="2" &&
		String.fromCharCode(event.keyCode)!="3" &&
		String.fromCharCode(event.keyCode)!="4" &&
		String.fromCharCode(event.keyCode)!="5" &&
		String.fromCharCode(event.keyCode)!="6" &&
		String.fromCharCode(event.keyCode)!="7" &&
		String.fromCharCode(event.keyCode)!="8" &&
		String.fromCharCode(event.keyCode)!="9" &&
		event.keyCode != 8 && event.keyCode != 37 &&
		event.keyCode != 38 && event.keyCode != 39 && event.keyCode != 40)
		event.returnValue=false;
}
//===========================================================================
// Decsription		: resize image
//
// Use method       : <img src='' onload="javascript:resizeimg(this,90,90)"/>
//
//---------------------------------------------------------------------------
// Author	:	Wu_kg
// Date		:	2008/02/10
//============================================================================
  function resizeimg(ImgD,iwidth,iheight) {
     var image=new Image();
     image.src=ImgD.src;
     if(image.width>0 && image.height>0){
        if(image.width/image.height>= iwidth/iheight){
           if(image.width>iwidth){
               ImgD.width=iwidth;
               ImgD.height=(image.height*iwidth)/image.width;
           }else{
                  ImgD.width=image.width;
                  ImgD.height=image.height;
                }
        }
        else{
                if(image.height>iheight){
                       ImgD.height=iheight;
                       ImgD.width=(image.width*iheight)/image.height;
                }else{
                        ImgD.width=image.width;
                        ImgD.height=image.height;
                     }
            }
    }
}

//===========================================================================
// Decsription		: get row index
//						
//---------------------------------------------------------------------------
// Author	:	Hu_y
// Date		:	2008/02/19
//============================================================================
     function getRowIndex(obj){
            return obj.parentNode.parentNode.rowIndex;
        }
   function onFocus(buttonID){
   	     document.getElementById(buttonID).disabled=true;
   }
   function onBlur(buttonID){
   		document.getElementById(buttonID).disabled=false;
   }

//===========================================================================
// Decsription		: Disable all buttons in the form
//					
// Use method		: disableBtn("QuotationOrderForm");
//					
//---------------------------------------------------------------------------
// Author	:	Liu_cb
// Date		:	2008/03/20
//===========================================================================
 function disableBtn(formID){   
   var form = document.getElementById(formID);

   for(i=0; i<form.elements.length; i++){
		if( form.elements[i].type == 'button' || form.elements[i].type == 'submit'){
			form.elements[i].disabled = true;
		}
   }
}
//===========================================================================
// Decsription		: Enable all buttons in the form
//					
// Use method		: enableBtn("QuotationOrderForm");
//					
//---------------------------------------------------------------------------
// Author	:	Liu_cb
// Date		:	2008/03/20
//===========================================================================
 function enableBtn(formID){
   var form = document.getElementById(formID);

   for(i=0; i<form.elements.length; i++){
		if( form.elements[i].type == 'button' || form.elements[i].type == 'submit'){
			form.elements[i].disabled = false;
		}
   }
}


//===========================================================================
// Decsription		: add params to window.alert() function
//					
// Use method		: alert("hello {0} and {1} !","A","B");
//					  output:	hello A and B !
//					
//---------------------------------------------------------------------------
// Author	:	Zou_hw
// Date		:	2008/02/01
//===========================================================================

  var lztAlert = window.alert;
  window.alert = function(){
	  if(arguments.length == 0){  
		  lztAlert("");
		  return; 
	  }
	  if(arguments.length == 1){  		  
		  lztAlert(arguments[0]);
		  return;
	  }
      if(arguments.length > 1){
		  var str = arguments[0];
		  var startflg = false;
		  var endflg = false;
		  var newStr = "";
		  var newSubStr = "default";
		  var tmp = 0;

		  for(var i=0;i<str.length;i++){
			
			if(str.charAt(i) == '{'){
				startflg = true;
				
			}
			if(str.charAt(i) == '}'){
				endflg = true;
			
			}
			if(startflg){
				if(!endflg){
					if(newSubStr == "default"){
						newSubStr = "";
					}else{
						newSubStr += str.charAt(i);
					}
				}else{				
					if(arguments.length >= 1){					
						tmp = Number(newSubStr);					
						if(tmp >= 0){
							if(arguments[tmp+1] != undefined){
								newStr += arguments[tmp+1];
							}else{
								newStr += "{"+tmp+"}";	
							}

							startflg = false;
							endflg = false;	
							newSubStr = "default";
						}else{
							newStr += "{"+newSubStr+"}";	
							startflg = false;
							endflg = false;	
							newSubStr = "default";
						}
						
					}
				}
			}else{
				newStr += str.charAt(i);
			}
			
		  }

		  lztAlert(newStr);
		  return;
	  }
  }   
