function dbg(obj){
	ret = '[';
	for(var i in obj){
		ret = ret +"\n["+i+"]"+"=>"+"'"+ obj[i]+"'";
	}
	ret = ret + ']';
	//if(!dump) return ret;
	
	vr = window.open();
	vr.document.write(ret);
}

//function handle date field (dd/mm/yy)
function do_date(obj)
{
	if(event.keyCode==8)
		return;
	len=obj.value.length;
	str=obj.value;
	switch(len)
	{
		case 1:
	  	case 4:
	  	default:
			sub=str.substring(str.length-1,str.length);
   	    	if (isNaN(parseInt(sub)))
	    	{
	    		alert("illegal date");
		  		obj.value=str.substring(0,str.length-1);
		  		return;
			}
			break
		case 2:
	   		if (str.charAt(1)=='/')
	   		{
		 		obj.value=new String("0")+str;
		 		return;
	   		}
	   		day=parseInt(str);
	   		
	   		if (isNaN(day))
			{
				alert("illegal date");
				obj.value=value=obj.value.substring(0,obj.value.length-1);
				return;
			}
			if (day==0)
			   day=parseInt(str.substring(1,2));
			if (day>31 ||day<1)
			{
				alert("illegal date");
				obj.value=value=obj.value.substring(0,obj.value.length-1);
				return;
			}
	    	obj.value=obj.value+'/';
	  		break;
		case 5:
	   		if (str.charAt(4)=='/')
	   		{
		  		obj.value=str.substring(0,3)+'0'+str.charAt(3)+'/';
		  		return;
	   		}
	   		temp=str.substring(3,5);
	   		mon=parseInt(str.substring(3,5));
	   		if (mon==0)
			  mon=parseInt(str.substring(4,5));
	   		if ((isNaN(mon)) || ((mon<1) || mon>12))
	   		{
	   			alert("illegal date");
	   			obj.value=obj.value.substring(0,obj.value.length-1);

			}
	   		else
  		 		obj.value+='/';
  				break;
	
	}
}

function readCookie(name) {
	var start =cookies.indexOf(name + "=");
	start=cookies.indexOf("=",start)+1;
	var end=cookies.indexOf(";",start);
	if (end==-1){
		end =cookies.length;
	}
	//alert(name+':'+cookies.substring(start,end))
	var value = unescape(cookies.substring(start,end));
	
	if (value==null){
		value =0;
	}
	return value;
}

function setCookie(name,value){
	
	//alert(cookieExpire.toGMTString());
	document.cookie=name+'='+value+';expires='+cookieExpire.toGMTString();
	//document.cookie=name+'='+value;
	//alert(document.cookie);
}

function validDate(day,month,year){
	var monthsArr = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug" ,"Sep", "Oct", "Nov", "Dec");
	var daysArr = new Array;
	for (var i=0; i<12; i++) {
		if(i!=1) {
			if((i/2)==(Math.round(i/2))) {
				if(i<=6) {
	 				daysArr[i]="31";
				} else {
	 				daysArr[i]="30";
				}
			} else {
				if(i<=6) {
	 				daysArr[i]="30";
				} else {
	 				daysArr[i]="31";
				}
			}
		} else {
			if((year/4)==(Math.round(year/4))) {
				daysArr[i]="29";
			} else {
				daysArr[i]="28";
			}
		}
	}
	if(parseInt(day)>parseInt(daysArr[month])) {
		alert(monthsArr[month] + ' ' + year + ' does not have ' + day + ' days.');
		return false;
	}
	return true;
}

//this function parses the arguments for validDate() from an editbox
function datecheck(obj)
{
  str=obj.value;
  day=parseInt(str.substring(0,2));
  mon=parseInt(str.substring(3,5));
  year=str.substring(6,8);
  if (day==0)
	 day=parseInt(str.substring(1,2));
  if (mon==0)
	mon=parseInt(str.substring(4,5));
  tempyear=new Date().getFullYear();
  tempyear++;
  year="20"+year;
  year=parseInt(year);
  if (year > tempyear )
	year-=100;
  mon--;
  if(validDate(day,mon,year)==false){
	obj.value="";
	return false;
  }
  return true;
}

function time(){
	return nowadays();
}
//used for unique url to avoid browsers cache
function nowadays() {
	dt = new Date();
	return dt.getDate()+"_"+dt.getMinutes()+"_"+dt.getSeconds()+"_"+dt.getMilliseconds();
}

function show_hide_div(divid){
	if (document.getElementById(divid)==null)
	    return;
	div=document.getElementById(divid).style;
	div.display=(div.display=='') ? 'none' : ''; 
}

//TODO: binary search
function addSelect(selectObj,vlu,str) {
	if (vlu==-1)
	  return;
	if (str=="")
	  return;
	var addIndex=0;
	var len=selectObj.options.length;
	var text="";
	var i;
	for (i=0;i<len;i++)
	{
		text=selectObj.options[i].text;
		if (text==str)
		  return;
		if (text>str)
		  break;
		addIndex++;
	}
	i=len;
	selectObj.options[len]=new Option("","");
	while(i>addIndex)
	{
		selectObj.options[i].text=selectObj.options[i-1].text;
		selectObj.options[i].value=selectObj.options[i-1].value;
		i--;
	}
	selectObj.options[addIndex].text=str;
	selectObj.options[addIndex].value=vlu;
}

function TmoveBtweenSelects(selectfrom,selectto){
	sf = document.getElementById(selectfrom);
	st = document.getElementById(selectto);
	vlu=sf.value;
	indx=sf.selectedIndex
	if((vlu=="")&&(indx<0))
		return;
	
	var f= new Option(sf.options[indx].text,vlu);
	sf.options[indx]= null;
	addSelect(st,f.value,f.text);
}
function TmoveBtweenSelectsAsIt(selectfrom,selectto){
	sf = document.getElementById(selectfrom);
	st = document.getElementById(selectto);
	vlu=sf.value;
	indx=sf.selectedIndex
	if((vlu=="")&&(indx<0))
		return;
	
	var f= new Option(sf.options[indx].text,vlu);
	sf.options[indx]= null;
	st.options[st.options.length]=f;
}

function TmoveBtweenSelectsMulti(selectfrom,selectto){
	sf = document.getElementById(selectfrom);
	st = document.getElementById(selectto);

	vlu=sf.value;
	indx=sf.selectedIndex
	var f;
	while(!((vlu=="")&&(indx<0))){	
		f= new Option(sf.options[indx].text,vlu);
		sf.options[indx]= null;
		addSelect(st,f.value,f.text);
		vlu=sf.value;
		indx=sf.selectedIndex
	}
}
function TmoveBtweenSelectsMultiAsIt(selectfrom,selectto){
	sf = document.getElementById(selectfrom);
	st = document.getElementById(selectto);

	vlu=sf.value;
	indx=sf.selectedIndex
	var f;
	while(!((vlu=="")&&(indx<0))){	
		f= new Option(sf.options[indx].text,vlu);
		sf.options[indx]= null;
		//addSelect(st,f.value,f.text);
		st.options[st.options.length]=f;
		vlu=sf.value;
		indx=sf.selectedIndex
	}
}
function TmoveBtweenSelectsObject(sf,st){
	vlu=sf.value;
	indx=sf.selectedIndex
	if((vlu=="")&&(indx<0))
		return;
	var e= new Option("","");
	var f= new Option(sf.options[indx].text,vlu);
	len=sf.options.length-1;
	for(i=indx;i<len;i++){
		txt=sf.options[i+1].text;
		vlu=sf.options[i+1].value;
		sf.options[i]=new Option(txt,vlu);
		if(i%2){
		sf.options[i].calssName="m0";
		}
	}
	sf.options[len]=e;
	sf.options.length=sf.options.length-1;
	len=st.options.length-1;
	for(i=0;i<len;i++){
			vl=st.options[i].value;
			if(vl==vlu) return;
	}	
	st.options[st.options.length]=f;
	return;
}
//use to order a selection
function moveSelectOption(selectObj,up_down){
	mopt = (up_down=='up') ? -1 : 1;
	len=selectObj.options.length;
	first=0;last=0;
	for(i=0;i<len;i++){
		if(selectObj.options[i].selected==true){
			first = (first) ? first : i;
			last  = i;
		}
	}
	if(up_down=='up'){
		if (first==0)return
		txt=selectObj.options[first+mopt].text;
		vlu=selectObj.options[first+mopt].value;		
		for(i=0;i<(last-first+1);i++){
			place=first+i;
			selectObj.options[place-1].value=selectObj.options[place].value;
			selectObj.options[place-1].text=selectObj.options[place].text;
			selectObj.options[place-1].selected=true;
		}
			selectObj.options[last].text=txt;
			selectObj.options[last].value=vlu;
			selectObj.options[last].selected=false;
	}else{
		if (last==(len-1))return
		txt=selectObj.options[last+1].text;
		vlu=selectObj.options[last+1].value;
		for(i=0;i<(last-first+1);i++){
			place=last-i;
			selectObj.options[place+1].value=selectObj.options[place].value;
			selectObj.options[place+1].text=selectObj.options[place].text;
			selectObj.options[place+1].selected=true;
		}
			selectObj.options[first].text=txt;
			selectObj.options[first].value=vlu;
			selectObj.options[first].selected=false;
	}
}
function select_all_options(obj){
	if(obj.multiple !=1) obj.multiple=1;
	for(a=0;a<obj.options.length;a++) obj.options[a].selected=1;
}

function validate_input(str,rgxp)
{
	var result;
	if (str=="")
	    return true;
    results=str.match(rgxp);
	if (results==null)//no match at all
	    return false; //only part of the string matches
	if (results[0].length!=str.length)
	    return false;
	return true;
}
	    


// iterative function that returns the name position into the select.options array:
//TIP: to use this function to detect where to insert the next option for keeping the options list ordered, use the global s_p_center that declared here into your code:
var s_p_center;
function select_position(obj,text){
	start = s_p_center = 0;
	end=obj.length-1;
//alert("end: "+end);
	if(end==-1) return -1;
	
	s_p_center = Math.floor(start+(end-start)/2);
	while(1){
//alert('start '+start+'; s_p_center '+s_p_center+ '; end '+end);
//alert(obj[s_p_center].text+'=='+text);
//alert(obj[s_p_center].text+'('+string_as_charcode(obj[s_p_center].text)+')'+'\n'+text+'('+string_as_charcode(text)+')');
		if(obj[s_p_center].text==text){
			return s_p_center;
		} else if(obj[s_p_center].text > text){
			if(end==s_p_center) {
				return -1;
			}
			end = s_p_center;
		} else {
			if(start==s_p_center){
				//we already round down so we have to check this bound case:
				if(obj[end].text==text){
//alert("edge case end: "+end);
					return end;
				} else if (obj[end].text < text){
					s_p_center=end+1;
				} else {
					s_p_center=end;
				}
				return -1;
			}
			start = s_p_center;
		}
		s_p_center = Math.floor(start+(end-start)/2);
	}
	
	return -1;
}

function string_as_charcode(text){
	tmp='';
	for(a=0;a<text.length;a++){
		tmp+=text.charCodeAt(a)+',';
	}
	return tmp;
}

function datecheck_with_return_value(str)
{
  regexp=/[0-3]?[0-9]\/[0-1]?[0-9]\/[0-9]{4}/;
  var results=str.match(regexp);
  if (results==null)//no match at all
	    return false;
	 //only part of the string matches
  if (results[0].length!=str.length)
	    return false;
  day=parseInt(str.substring(0,2));
  mon=parseInt(str.substring(3,5));
  year=str.substring(6);
  if (day==0)
	 day=parseInt(str.substring(1,2));
  if (mon==0)
	mon=parseInt(str.substring(4,5));
  mon--;
  if(validDate(day,mon,year)==false)
  	return false;
  return true;
}

function cleanquote(str){
	var i;
	var ret  = "";
	var arr =  str.split('\'');
	
	for(i=0; i< arr.length; i++){
	     ret+=arr[i];
	}	
	return ret;
}

function validateemail(str){
	emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[a-zA-Z]$";
	var regex = new RegExp(emailReg);
	if (regex.test(str))
		return true;
	return false;
}

function mytrim(inputString) {
   // Removes leading white spaces from the passed string. 
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " "||ch=='\t' || ch=='\r' || ch=='\n')
   {
      // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " "|| ch=='\t' || ch=='\r' || ch=='\n') {
 // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   return retValue;
}

function round_to_decimal_place(X, M){
  with (new Object(Math.round(Math.pow(10, M)*X)+''))
    { return substring(0,length-M)+
        '.'+substring(length-M,length)}
}
function my_round(num,digit){
	var offset_10=Math.pow(10,digit);
	return (Math.round(num*offset_10))/(offset_10)
}
/**
 * @return true or false
 * @param id = the id of the obj
 * @param what = what to check for (empty => alert if the field is empty,is_nan => alert if the field is nun)
 * @param alrt = the text to alert if the test fail, the function have default alrt text
 * @param without_focus the obj will not get the focus, to use in case of "onblur" ,to prevent infinite loop
 * @desc the function chk form fileds
*/

function chk_form_fields(id,what,alrt,without_focus){
	var obj = document.getElementById(id);
	if((what=='empty')&&(obj.value=="")){
			if(alrt!="")
				alert(alrt);
			else
				alert("×”× ×ª×•×? ×—×™×™×‘ ×?×§×‘×? ×¢×¨×?");
			if(without_focus==0)
				obj.focus();
			return true;
	}
	if((what=='is_nan')&&(isNaN(obj.value))){
			if(alrt!="")
				alert(alrt);
			else
				alert("×”× ×ª×•×? ×—×™×™×‘ ×?×§×‘×? ×¢×¨×? ×?×¡×¤×¨×™");
			obj.value="";
			if(without_focus==0)
				obj.focus();
			return true;
	}
	return false;
}

function to_local_time(tr_time,is_loc){
		var arrMon = new Array("Jan","Feb","Mar","Apr","May","Jun", "Jul","Aug","Sep","Oct","Nov","Dec");
		var now = new Date()
		var offset = now.getTimezoneOffset();
		var dd = new Date(tr_time*1000 -offset*60*1000);
		var day = dd.getDate();
		var str_mouth;
		var month = dd.getMonth();
		var year = dd.getFullYear();
		 for(i=0; i<arrMon.length; i++) {
	      if(parseInt(month) == i){
	      		str_mouth=arrMon[i];
	    	}
		 }	
		 if(is_loc){
			document.write(dd.toLocaleString());
		 }else{
		 	document.write(day+'/'+(month+1)+'/'+year+' '+dd.toLocaleTimeString())
		 }
}

function disable_comp(){	
	var is_dis=arguments[0];	
   for(var i=1; i<arguments.length; i++){
   	if(is_dis){  
   		if(document.getElementById(arguments[i])!=undefined && document.getElementById(arguments[i])!=null){
			document.getElementById(arguments[i]).disabled=false;
   		}
	}else{
		if(document.getElementById(arguments[i])!=undefined && document.getElementById(arguments[i])!=null){
			document.getElementById(arguments[i]).disabled=true;
   		}
	}
   }
   if(is_dis){
	   	if(document.getElementById(arguments[1])!=undefined && document.getElementById(arguments[1])!=null){
			document.getElementById(arguments[1]).focus();
	   	}
	}
}
function get_el(elmnt){
	return document.getElementById(elmnt);
}
function el_val(elmnt){
	return document.getElementById(elmnt).value;
}
function call_hlpifrm(elmnt){
	var ndys=nowadays();
	document.getElementById('hlpifrm').src=elmnt+'&v'+ndys+'='+ndys;
}
function call_instant_access(a1,a2){
	var myWin=window.open('?a=instant_access/main&dtype='+document.getElementById(a1).value+'&id='+document.getElementById(a2).value+'&v='+nowadays(),'displayWindow', 'width=810,height=570,status=no,toolbar=no,menubar=no, resizable=yes, scrollbars = yes ');	
	myWin.focus();
}
function open_buyer_new_search(){
	if(document.getElementById('dtype_for_new_s').value==1){
		document.location='?a=search_filter/main&home_page_buyer_new='+document.getElementById('dtype_for_new_s').value;
	}
	else{
		document.location='?a=search_filter_fancy/main&home_page_buyer_new='+document.getElementById('dtype_for_new_s').value;	
	}
}
function ie_fire_mouseout(trn){
	var agt = navigator.userAgent.toLowerCase();
	var is_ie = (agt.indexOf("msie") != -1) && document.all;
	if(is_ie){
		if(document.getElementById(trn)!=null && document.getElementById(trn)!=undefined){
			document.getElementById(trn).fireEvent('onmouseout');
		}
		if(parent.document.getElementById(trn)!=null && parent.document.getElementById(trn)!=undefined){
			parent.document.getElementById(trn).fireEvent('onmouseout');
		}
	}
}
 var oldwho=null;
 var inMenu=false;
  function pshow(who){
  if (oldwho!=null){
   document.getElementById(oldwho).className='lireg';
   }
 document.getElementById(who).className='lishow';
 }

 

 function pout(who){
 oldwho=who;
 window.setTimeout("pgoout('" + who + "')",300);
 
 }
 function pgoout(who){
  if (inMenu == false){
  document.getElementById(who).className='lireg';
  }else{
  window.setTimeout("pgoout('" + who + "')",1500);
  }
 }
function get_diamond(){
	var index = document.getElementById('dtype_for_i').selectedIndex;
	var number = document.getElementById('id_to_search').value;
	myWin=window.open('?a=openDiamond&number='+number+'&index='+index+'&v='+nowadays(),"displayWindow"+parent.nowadays(), "width=840,height=570,status=no,toolbar=no,menubar=no, resizable=yes, scrollbars = yes ");
	myWin.focus();

}


	function menuBox(elm){
	var pdiv=null;
		if(elm.parentElement!='undefind'){
		pdiv=elm.parentNode
		}else{
		pdiv=elm.parentElement
		}
		
		if(pdiv.className=='menuBox'){
			pdiv.className='menuBoxOff'
		}else{
			pdiv.className='menuBox'
		}
	}
	function choose_cur(cur){		
		if(document.getElementById('navTabs')!=undefined && document.getElementById('navTabs')!=null){
			var divtop=document.getElementById('navTabs').children;
			var i;
			for(i=0;i< divtop.length;i++){
				divtop.item(i).className='';
			}
			if(document.getElementById(cur)!=undefined && document.getElementById(cur)!=null){
				document.getElementById(cur).className="cur";
			}else{
				if(cur!=undefined && cur!=null){
					cur.className="cur";
				}
			}
		}
	}

	
function isset(elmnt){
	if(document.getElementById(elmnt)!=null && document.getElementById(elmnt)!=undefined){
		return true;
	}
	if(String(elmnt)=='[object]'){
		return true;
	}
	return false;
}
// Returns a reference to the element specified
function $(id)
{
	return document.getElementById(id)
}
var styles = {
	Set: function(id, method, value) {
		return id.style[method] = value;
	},
	Get: function(id, method) {
		return id.style[method]
	}
}
document.getElementsByClassName = function(node, classname) {
    var elements = [];
    var re = new RegExp('(^| )' + classname + '( |$)');
    var children = node.getElementsByTagName("*");
    for (var i = 0, j = children.length; i < j; i++)
        if (re.test(children[i].className)) elements.push(children[i]);
    return elements;
}
// Adds an event handler to an element
function addEvent(element, type, handler)
{
	if (element.addEventListener) {
		element.addEventListener( type, handler, false );
	}
	else if (element.attachEvent) {
		element["e" + type + handler] = handler;
		element[type + handler] = function() { element["e" + type + handler](window.event); }
		element.attachEvent("on" + type, element[type + handler]);
	}
}
function nowadays(){
	dt = new Date();
	return dt.getDate()+"_"+dt.getMinutes()+"_"+dt.getSeconds()+"_"+dt.getMilliseconds();
}
var xmlSch=null;
var ajax = {
	Server:function(url,target,is_async,is_uncach){		
		if(!isset(is_uncach)){
			is_uncach=true;
		}
		var cUrl=url;
		var return_value=true;
		if(is_uncach){
			cUrl+='&v='+nowadays();
		}
		if(target){
			cUrl+='&target='+target;
		}
		if(is_async==null || is_async==undefined){
			is_async=true;
		}
		cUrl+='&at_ajax=1';		
		if(isset('ajax_debug_div')){
			if(!ajax.numLoading || ajax.numLoading<2){
				$('ajax_debug_div').innerHTML='';
			}
	   	$('ajax_debug_div').innerHTML+='<br/>'+cUrl+'&debug_mode=1';
	   }
	   var loaded=new serverLoad();
		return loaded.sendAndLoad(cUrl,'GET',is_async,target);		
	},
	//expect to receive the xmlhttprequest object
	XmlToHtml:function(rslt){	
		var return_value=true;	
		if(xmlSch==null){
			if (window.ActiveXObject){				
				this.conname = new ActiveXObject('Microsoft.XMLHTTP');
				xmlSch = new ActiveXObject("Microsoft.XMLDOM");
				xmlSch.async = false;
			}else if(document.implementation && document.implementation.createDocument){				
				this.conname = new XMLHttpRequest();
				xmlSch = document.implementation.createDocument("", "doc", null);
				xmlSch.async = false;
			}
		}
		
		if (window.ActiveXObject){	
			xmlSch.load(rslt.responseXML);		
		}else{
			xmlSch=rslt.responseXML;
		}/*
		xmlSch.load(rslt.responseXML);		
	   var root=rslt.responseXML.documentElement;	  
		xmlSch.load(rslt.responseXML);		*/
	   var root=xmlSch.documentElement;	  
	   if(rslt.responseText==''){
	   	return null;
	   }
	   if((root==null || root==undefined)){
	   	if(isset('ajax_debug_div')){
		   	//$('ajax_debug_div').innerHTML+="<br/>"+rslt.responseText;
		   	var win=window.open();		  
				win.document.writeln(rslt.responseText);
		   	//alert(cUrl + " can't found");
		   }
		   window.status='error at ajax praser';
	   	//document.body.innerHTML=cUrl + " can't found";
	   	return null;
	   }
	   //window.open(cUrl);
	   var current_child=root.firstChild;
	   var i,j,id,attr,method_length,elmnt,val;
	   while(current_child!=null && current_child!=undefined){	   	
	   	if(current_child.nodeName=='todo'){
		   	for(i=0;i<current_child.getElementsByTagName('elmnt_id').length;i++){
		   		//document.getElementById('test1').getAttribute('style');
		   		elmnt=document.getElementById(current_child.getElementsByTagName('elmnt_id')[i].firstChild.nodeValue);
		   		val=current_child.getElementsByTagName('elmnt_val')[0].firstChild.nodeValue;
		   		if(current_child.getElementsByTagName('method')!=null && current_child.getElementsByTagName('method')!=undefined){
		   			method_length=current_child.getElementsByTagName('method').length-1;
			   		for(j=0;j<current_child.getElementsByTagName('method').length && elmnt!=null && elmnt!=undefined;j++){
			   			attr=current_child.getElementsByTagName('method')[j].firstChild.nodeValue;
			   			if(j==method_length){
			   				if (window.ActiveXObject){
			   				elmnt.setAttribute(attr,val);
			   				}else{
			   					this.mozilaSetAttribute(elmnt,attr,val)
			   				}
			   			}else{
			   				elmnt=elmnt.getAttribute(attr);
			   			}
			   		}
		   		}
		   	}
	   	}else{
	   		if(current_child.nodeName=='js_data'){
	   			//document.location='http://helena4love.com/icms2/htdocs/archive/he/prog_search_search_simple_cmd_main';
	   			eval(current_child.firstChild.nodeValue);
	   		}else{
	   			if(current_child.nodeName=='return_value'){
	   				return_value =current_child.firstChild.nodeValue;
	   			}
	   		}
	   	}
	   	current_child=current_child.nextSibling;
	   }
	   return return_value;
	},
	mozilaSetAttribute:function (elmnt,attr,val){
		if(attr=='innerHTML'){
			elmnt.innerHTML=val;
		}
	},
	Submit:function (id,action,target){		
		if(isset($(id))){id=$(id)};
		if(!isset(id)){alert("no such id");return false;}
		var url="";
		var mytarget=false;
		if(action){
			url=action;
		}else{
			if(id.action!=null && id.action!=''){
				url=id.action;
			}else{
				alert('no action');return false;
			}
		}
		if(target!=null && target!=''){
			//url+='&target='+target;
			mytarget=target;
		}else{
			if(id.target!=null && id.target!=''){
				//url+='&target='+id.target;
				mytarget=id.target;
			}
		}
		url+='&'+this.FormToGet(id);
		if(mytarget){
			this.Server(url,mytarget);
		}else{
			this.Server(url);
		}
		return false;
	},
	FormToGet:function(obj){
		var getstr = "";
	   var i;
	   for (i=0; i<obj.childNodes.length; i++) {   	
	   	//if(obj.childNodes[i].name=='undefined' || obj.childNodes[i].name=='' || obj.childNodes[i].name==null)continue;   	
	      if (obj.childNodes[i].tagName == "INPUT") {
	         if (obj.childNodes[i].type == "text" || obj.childNodes[i].type == "hidden" || obj.childNodes[i].type == "password") {
	            getstr += encodeURIComponent(obj.childNodes[i].name) + "=" + encodeURIComponent(obj.childNodes[i].value) + "&";
	         }
	         if (obj.childNodes[i].type == "checkbox") {
	            if (obj.childNodes[i].checked) {
	               getstr += encodeURIComponent(obj.childNodes[i].name) + "=" + encodeURIComponent(obj.childNodes[i].value) + "&";
	            } else {
	               // HTML not sending unchecked element!:
	               //getstr += obj.childNodes[i].name + "=&";
	            }
	         }
	         if (obj.childNodes[i].type == "radio") {
	            if (obj.childNodes[i].checked) {
	               getstr += encodeURIComponent(obj.childNodes[i].name) + "=" + encodeURIComponent(obj.childNodes[i].value) + "&";
	            }
	         }
	      }   else if (obj.childNodes[i].tagName == "SELECT") {
	      	var sel = obj.childNodes[i];
	      	//if(sel.type='select-one'){		         
		         getstr += encodeURIComponent(sel.name) + "=" + encodeURIComponent(sel.options[sel.selectedIndex].value) + "&";
	      	/*}else{
	      		for (var j=0; j<sel.options.length; j++) {
	            if (sel.options[j].selected) {
	            	getstr += encodeURIComponent(sel.name) + "=" + encodeURIComponent(sel.options[j].value) + "&";
	            }
	          }
	      	}*/
	      }  else if (obj.childNodes[i].tagName == "TEXTAREA") {
	         var sel = obj.childNodes[i];
	         getstr += encodeURIComponent(obj.childNodes[i].name) + "=" + encodeURIComponent(obj.childNodes[i].value) + "&";
	      } else {
	      	var elmnt=obj.childNodes[i];
	      	if(elmnt.childNodes.length && elmnt.childNodes.length>0 && elmnt.childNodes[0] && elmnt.childNodes[0].tagName!='undefined'){
	      			getstr +=this.FormToGet(elmnt);
	      	}
	      }
	      
	   }
	   return getstr;
	}
}

//Simplified XMLHttpRequest Connector
//constructor
function serverLoad(){
        this.browser = (window.XMLHttpRequest) ? 'mozilla' : 'ie';
    this.conname = (this.browser == 'mozilla') ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
}
//methods

function connectionResult(connection,target){
    switch(connection.readyState){
            case 0://
            //uninitialized
            //window.status = "serverLoad Request Status- Unknown";
            break;
            case 1:
            if(target && isset(target)){
            	$(target).innerHTML='<div class="onload"><img src="onload.gif" /></div>'+$(target).innerHTML;
            }
            //loading 
            //window.status = "serverLoad Request Status- Loading";
            break;
            case 2:
            //loaded
            //window.status = "serverLoad Request Status- Loaded";
            break;
            case 3:
            //interactive state - whatever that means
            //window.status = "serverLoad Request Status- Interactive";
            break;
            case 4:
            	var ret=false;
            		ajax.numLoading--;
                 if (connection.status==200){ 
                         ret=ajax.XmlToHtml(connection);
                       if(ajax.numLoading==0){
                       	window.status='Done';
                       	         				
                       	
                       }else{
                       		window.status='Loading '+ajax.numLoading+' Object ...';
                       }
                 }else{
                         window.status='error on request';
                       if(ajax.numLoading==0){
                       		window.status='error on request';
                       }else{
                       		window.status='Loading '+ajax.numLoading+' Object, error on request' + (ajax.numLoading+1);
                       }
                 }
                 //clear connection
                 connection.abort();
                 this.conname=null;
                 return ret;
            break;
    }
};

//send and load
//param 1: url 
//param 2: "POST" "GET" 
//param 4: async
//param 5: to send - (xml or url encoded string)
//note: callback function should expect to receive the xmlhttprequest object
serverLoad.prototype.sendAndLoad = function(url, method, async,target,tosend){
        var connection = this.conname;
        if(!ajax.numLoading){
        		ajax.numLoading=0;
        }
        ajax.numLoading++;
        window.status='Loading '+ajax.numLoading+' Object ...';
        if(async){
	        this.conname.onreadystatechange = function(){
	        		connectionResult(connection,target);                
	        }
        }
        this.conname.open(method,url,async);
        if(tosend == undefined || tosend == null){
                var vars = null;        
        }else{
                var vars = tosend;
        }
        this.conname.send(vars);
        if(!async){
        		return connectionResult(connection,target);
        }

};
//get object reference
serverLoad.prototype.getRef = function(){
   return this.conname;
};
//shortcut to responsetext
serverLoad.prototype.getResponseText = function(){
   return this.conname.responseText;
};
//shortcut to responseXML
serverLoad.prototype.getResponseXML = function(){
   return this.conname.responseXML;
};
//abort request
serverLoad.prototype.abortRequest = function(){
   this.conname.abort();
};	