/*
* Provides common support functions for Lab pages
*/

$.fn.formatForDisplay = function() {
  if (this.size()==0) return "<em>wrapped set is empty</em>"
  var text = '';
  this.each(function(){
    text += '<div>' + this.tagName;
	text += '::' + this.name +'::' +this.type+'::' +this.checked;
    if (this.id) text += '#' + this.id;
    text += '</div>';
  });
  return text;
}
$.fn.formnames = function() {
	var qery= new Array();
	var i=0;
//var flag_radio=false;
  this.each(function(){
	try {
		   if(qery.length==0) 
					   {
					   var i =qery.length;
					   }
					   else 
					   {
					   i =qery.length;
					   }
					 if(this.name==qery[i-1])
					 {
						 
					  }
					else
					 {
					qery[i]=this.name;
					i++;
					  }
		}
          catch(e) {
            alert('error:'+e);
          }
   
  });
  //alert(qery)
  return qery;
	}
function validCheck (val,msg){
	//alert(val)
var f=0;
  for (ad in val){
			 //alert(val[ad])
		
				
					 var zx=document.getElementsByName(""+val[ad]+"");
					 //alert(zx[0].type)
				 switch (val[ad])
			    {
						case "email":
						  {
							  if(emailCheck(zx[0].value))
							  {
								   f++;
							  }
							  else
							  {
							     alert(""+msg[ad]+"")
									return false;
							  }
						  }
						  break;
						case "phone":
						  {
							   var b=zx[0].value;
                               //alert(b)
                               var c="\\D";
                               myregexp = new RegExp(c);
                               var d=myregexp.test(b);
                                //alert(b.length)
                              if(d)
                                {
                                    alert(""+msg[ad]+"")
									return false;
	                            }
							  else
							  {
								   f++;
							  }
						  }
						  break;
						
						default:
						{		 
							 switch (zx[0].type)
								{
								case "radio":
								  {
									  
									
									var c=0;
									 //alert(zx)
									/*for(hj in zx)
									{alert(hj+"---"+zx[hj])	
										 if(zx[hj].checked==false) 
										 {c++;//alert(c)}
									}*/
									for(h=0; h<zx.length; h++)
									{
										if(zx[h].checked==false)
										c++;
									}
									if(zx.length==c) 
									{
										
									alert(""+msg[ad]+"")
									return false;
									}
									else
									{
										f++;
									}
								 }
								  break;
								case "checkbox":
								  {
									  
									
									var c=0;
									 //alert(zx)
									/*for(hj in zx)
									{alert(hj+"---"+zx[hj])	
										 if(zx[hj].checked==false) 
										 {c++;//alert(c)}
									}*/
									for(h=0; h<zx.length; h++)
									{
										if(zx[h].checked==false)
										c++;
									}
									if(zx.length==c) 
									{
										
									alert(""+msg[ad]+"")
									return false;
									}
									else
									{
										f++;
									}
								  }
								  break;
								case "text":
								  {
									//alert(zx[0].value.length)    
									if(zx[0].value.length==0)
									{
										alert(""+msg[ad]+"")
										return false;
									}
									else
									{
										f++;
									}
								  }
								  break;
								  case "select-one":
								  {
									if(zx[0].value=="")
									{
										alert(""+msg[ad]+"")
										return false;
									}
									else
									{
										f++;
									}
								  }
								  break;
								case "textarea":
								  {
									if(zx[0].value==" ")
									{
										alert(""+msg[ad]+"")
										return false;
									}
									else
									{
										f++;
									}
								  }
								  break;
								default:
								}
						}
	   
                }
  }
            
            return true;
  
}
$.toSource = function(target) {
   if (typeof target.toSource !== 'undefined' && typeof target.callee === 'undefined') {
      return target.toSource().slice(1,-1);
   }
   switch (typeof target) {
      case 'number':
      case 'boolean':
      case 'function':
         return target;
         break;
      case 'string':
         return '\'' + target + '\'';
         break;
      case 'object':
         var result;
         if (target instanceof Date) {
            result = 'new Date('+target.getTime()+')';
         }
         else if (target.constructor === Array || typeof target.callee !== 'undefined') {
            result = '[';
            var i, length = target.length;
            for (i = 0; i < length-1; i++) { result += $.toSource(target[i]) + ','; }
            result += $.toSource(target[i]) + ']';
         }
         else {
            result = '{';
            var key;
            for (key in target) { result += key + ':' + $.toSource(target[key]) + ','; }
            result = result.replace(/\,$/, '') + '}';
         }
         return result;
         break;
      default:
         return '?unsupported-type?';
         break;
   }
}
// JavaScript Document