/* Calling fn Example
<script  src="js/functions.js" type="text/javascript"></script>
<script language="JavaScript" type="text/JavaScript">
function validate(){   
 if(Chk_EmailValid('to')&& Chk_EmailValid('from') && Chk_AlphaNumeric("sub","Please Give the Subject",1))   
		return true;
	else
	  return false;	 
}	
</script>
 */
// JavaScript Document

// Functions used
//        1. Chk_Numeric(obj_nam,rtrn_msg)   2 parameters-object name and return message
//        2. Chk_AlphaNumeric(obj_nam,rtrn_msg,stat) 
//                   3 parameters-object name,return message,stat indicates accept alpha or  alpha numeric
//		  3. Chk_Mail(obj_nam,rtrn_msg)      2 parameters-object name and return message
//		  4. return_false(obj_nam,rtrn_msg)  2 parameters-object name and return message
  
//The purpose of this method is to clear the form element and give focus to that
// This method used by all the above method when it want to return false
//accepts two parameters ,obj_nam is the object name and rtrn_msg is the return message

function return_false(obj_nam,rtrn_msg,divId){
      //alert(rtrn_msg); 	 
	  document.getElementById(divId).innerHTML = rtrn_msg;
	  document.getElementById(divId).style.display = '';
	 // document.getElementById(obj_nam).select();
	  //alert(document.getElementById(obj_nam).type);
	  document.getElementById(obj_nam).focus();
	  return false;
}
//This method accepts only numeric values.
//accepts two parameters .obj_nam is the object name and rtrn_msg is the return message

function Chk_Numeric(obj_nam,rtrn_msg,divId){           
  
  var x=document.getElementById(obj_nam).value;  
  var anum=/(^\d+$)|(^\d+\.\d+$)/;
  
  if (anum.test(x))
       return true;
  else{
      return_false(obj_nam,rtrn_msg,divId);
  }

     
}

//This method either accepts character values only(ie a-z or A-Z) or both chars and nums
//according to stat value.if stat=0 alpha only else both alpha and numeric values
//accepts three parameters .obj_nam is the object name and rtrn_msg is the return message

function Chk_AlphaNumeric(obj_nam,rtrn_msg,stat,divId){
	
    var x = document.getElementById(obj_nam).value;
    var invalids = "";
	 if(stat==0)
      invalids = "`~@#$%^&*()_-+=\|{}[]:;'\"<>,.?/1234567890";
	else
	  invalids = "`~@#$%^&*()_-+=\|{}[]:;'\"<>,.?/";
	  
    for(i=0; i<invalids.length; i++) {
       
	    if(x.indexOf(invalids.charAt(i)) >= 0 || x==false) {
               return_false(obj_nam,rtrn_msg,divId);
               return false;
		}
    }
    return true;
}
function checkRadio (frmName, rbGroupName, msg) 
{
	var radios = document[frmName].elements[rbGroupName];
	for (var i=0; i <radios.length; i++) 
	{
		if(radios[i].checked) 
		{
			return true;
		}
	}
	alert(msg);
	radios[0].focus();
	return false;	
} 
function checkCheckbox (frmName, rbGroupName, rtrn_msg, divId) 
{
	var cbox = document[frmName].elements[rbGroupName];
	var cLength = cbox.length;
	
	for (var i=0; i <cLength; i++) 
	{
		if(cbox[i].checked) 
		{
			return true;
		}
	}
	document.getElementById(divId).innerHTML = rtrn_msg;
	document.getElementById(divId).style.display = '';	
	cbox[0].focus();
	return false;	
}

function Chk_Empty(obj_nam,rtrn_msg,divId){
  
  var x=document.getElementById(obj_nam).value;    
	if(x == "")	    
	 return_false(obj_nam,rtrn_msg,divId); 	
	else
	  return true;
}
function Chk_Select(obj_nam,rtrn_msg,divId){
  
  var x=document.getElementById(obj_nam).value;    
	if(x == "" || x == 0)	    
	 return_false(obj_nam,rtrn_msg,divId); 	
	else
	  return true;
}

function Chk_Image(obj_nam,rtrn_msg,divId)
{
	var x=document.getElementById(obj_nam).value;  
	
	temp=x.split('.');
	check=temp[temp.length-1].toLowerCase();		
	if(!(check=='jpg' || check=='jpeg' || check=='png' || check=='gif' ))
	{
		return_false(obj_nam,rtrn_msg,divId);
	}	
	else
	{
		return true;
	}
}

function Comp_Password(obj_nam1,obj_nam2,rtrn_msg,divId){           

  var x1=document.getElementById(obj_nam1).value;    
  var x2=document.getElementById(obj_nam2).value;    	
	if(x1 == "")
	 return_false(obj_nam1,"Please enter password",divId);
	else if(x1.length < 6) 
		return_false(obj_nam1,"Password should be minimum of 6 characters.",divId);
	else if(x1.length > 20) 
		return_false(obj_nam1,"Password should be maximum of 20 characters.",divId);
	else if(x2 == "")		
	  return_false(obj_nam2,"Please enter confirm password",divId);		
	else if(x1!= x2)
	       return_false(obj_nam2,"Password does not match",divId);   
	else
        return true;
 
}
function Comp_Email(obj_nam1,obj_nam2,rtrn_msg,divId){           

  var x1=document.getElementById(obj_nam1).value;    
  var x2=document.getElementById(obj_nam2).value;    	
	if(x1 == "")
	 return_false(obj_nam1,"Please Enter Email Address",divId);
	else if(x2 == "")		
	  return_false(obj_nam2,"Please Confirm Your Email Address",divId);		
	else if(x1!= x2)
	       return_false(obj_nam2,rtrn_msg,divId);   
	else
        return true;
 
}
function Chk_Address(obj_nam,rtrn_msg,stat,divId){

    var x = document.getElementById(obj_nam).value;
    var invalids = "";
	if(document.getElementById(obj_nam).value == "")
	return true;
	
	else if(stat==0)
      invalids = "`~@#$%^&*()_-+=\|{}[]:'\"<>?";
    else
	  invalids = "`~@#$%^&*()_-+=\|{}[]:;'\"<>?";
	  	  
    for(i=0; i<invalids.length; i++) {
       
	    if(x.indexOf(invalids.charAt(i)) >= 0 || x==false) {
               return_false(obj_nam,rtrn_msg,divId);
               return false;
		}
    }
    return true;
}

//Email validation
function  Chk_EmailValid(obj_nam,msg,divId){
var str = document.getElementById(obj_nam).value;

var filter=/^.+@.+\..{2,3}$/;
 if (filter.test(str))
    return true;
 else {
	return_false(obj_nam,msg,divId);
    return false;	
  }
}
/// to check the text length
function textLength(obj_nam,rtrn_msg,len,divId)
{
	var x = document.getElementById(obj_nam).value;	
	if(x.length > len)
	{
		 return_false(obj_nam,rtrn_msg,divId);
         return false;	
	}	
	return true;
}
//Floating Point validation
function Chk_Float(val1,msg,divId){
     
	 if(Chk_Empty(val1,msg,divId))
	 {  
		   var val = document.getElementById(val1).value;		  
		   var wrongchar= false
		   var DecimalFound = false
		   
		   for (var i = 0; i < val.length; i++) {
				var ch = val.charAt(i)
				if (i == 0 && ch == "-") {
					  continue
				}
				if (ch == "." && !DecimalFound) {					
					  DecimalFound = true
					  continue
				}
				if (ch < "0" || ch > "9") {					
					wrongchar= true									   
				 
				}
		   }  			
			if(!wrongchar)
			    return true;
	  		else
			{
				 document.getElementById(val1).value = '';
				 return_false(val1,msg,divId); 			 	  
			}
	  }else
	     return false;     

}

// focus on load
function onloadfocus(obj)
{  
 self.focus();
 document.getElementById(obj).focus();
}
//keypress event call these fn check_int(this);
function check_int(obj)
{
	if (event.keyCode < 48 || event.keyCode > 57) 
		event.returnValue = false;
}

function check_char(obj)
{
	if(event.keyCode >=64 && event.keyCode <=122)
		return;
	else if(event.keyCode == 13)
		return;
	else
		event.returnValue = false;
}

function check_alpha(obj)
{
	
	if(event.keyCode >=64 && event.keyCode <=122)
		return;
	else if (event.keyCode >= 48 && event.keyCode <= 57) 
		return;
	else if(event.keyCode == 13)
		return;
	else
		event.returnValue = false;
}
function enterkey(e)
{
	var unicode=e.keyCode? e.keyCode : e.charCode		 
	 if(unicode=13)
		return validate() 	
 }	
 
//calling check_enter(cvent)
function check_enter(e)
{	
	var unicode=e.keyCode? e.keyCode : e.charCode	
	if (unicode == 13) 
	{		
		if(validate())
		  return true;	
	}
	else if(unicode==13) // Netscape/Firefox/Opera
	 if(validate())
		  return true;	
}  

//Checkbox -Check ALL 
function SetChecked(form,val,chkName) {
  dml=document.forms[form];
  len = dml.elements.length;
  var i=0;
  for( i=0 ; i<len ; i++) {
  if (dml.elements[i].name==chkName) {
    dml.elements[i].checked=val;
  }
 }
}

function showDiv(divId)
{
	document.getElementById(divId).style.display = 'block';
	return true;
}
function hideDiv(divId)
{
	document.getElementById(divId).style.display = 'none';
	return true;
}
/*
 * this is to return the checked radio button value
 * if no radio button is checked returns null
 */
function getRadioValue(elementName)  
{  
  var element = document.getElementsByName(elementName);   
  var bt_count = element.length;
  var j=0;
  for (var i = 0; i <bt_count; i++) 
  {	  
	  if (element[i].checked == true) 
		return element[i].value;  
	  else
	  	j++;	  
  }
  if(i == j)
  	return '';
}
/************* end function ******************/

/*
 * checkes the named checkboxes are checked or not 
 * and returns the count of checked checkboxes
 * checkBoxName is the checkbox name ex: check[]
 * formName is window.document.formName
 */
function checkedNumReturn(checkBoxName,formName)
{
	var checked = 0;
	with(formName)
	{	 
		totalElements = elements.length;		
		for(i = 0; i < totalElements; i++)
		{	
			if(elements[i].type == 'checkbox')
			{				
				if(elements[i].name == checkBoxName)
				{	
					if(elements[i].checked == true)
						checked++;							
				}
			}
		}// end for	
	}// end with
	return checked;
}
/************* end function ******************/

/**** this block is to display popup *****/
function getposOffset(overlay, offsettype,adjustoffset,sign)
{
	var totaloffset=(offsettype=="left")? overlay.offsetLeft : overlay.offsetTop;
	var parentEl=overlay.offsetParent;
	while (parentEl!=null)
	{
		totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
	}
	if(sign=="minus")
	{	  
		totaloffset = totaloffset - adjustoffset;
	}
	else
	{
		totaloffset = totaloffset + adjustoffset;
	}
	return totaloffset;
}
function getPageSizeWithScroll()
{
	if (window.innerHeight && window.scrollMaxY) 
	{// Firefox
		yWithScroll = window.innerHeight + window.scrollMaxY;
		xWithScroll = window.innerWidth + window.scrollMaxX;
	}
	else if (document.body.scrollHeight > document.body.offsetHeight)
	{ // all but Explorer Mac
		yWithScroll = document.body.scrollHeight;
		xWithScroll = document.body.scrollWidth;
	} 
	else 
	{ // works in Explorer 6 Strict, Mozilla (not FF) and Safari
		yWithScroll = document.body.offsetHeight;
		xWithScroll = document.body.offsetWidth;
	}	
	if(xWithScroll<document.documentElement.clientWidth)
		xWithScroll=document.documentElement.clientWidth
	if(yWithScroll<document.documentElement.clientHeight)	
		yWithScroll = document.documentElement.clientHeight;
	
	arrayPageSizeWithScroll = new Array(xWithScroll,yWithScroll);
	return arrayPageSizeWithScroll;
}

function showPopup(curobj,div,grey,x,y)
{
	var pagesize=getPageSizeWithScroll();
	document.getElementById('greybg').style.height=pagesize[1]+'px';
	var el1 = $('greybg');
	var el2 = $(div);
	var obj =  document.getElementById(div);		

	if(grey=='1')
		el1.hide;
		
	el2.hide;
	
	if(grey=='1')
		el1.fade(0,0.8);
	
	el2.fade(0,1);

	var xpos=getposOffset(curobj,"left",x,"add")+((typeof opt_position!="undefined" && opt_position.indexOf("right")!=-1)? -(subobj.offsetWidth-curobj.offsetWidth):0);
	var ypos=getposOffset(curobj, "top",y,"add")+((typeof opt_position!="undefined" && opt_position.indexOf("bottom")!=-1)? curobj.offsetHeight : 0);

	obj.style.left=xpos+"px";
	obj.style.top=ypos+"px";	
	
	return false;
}
function hidePopup(div,grey)
{
	var el1 = $('greybg');
	var el2 = $(div);
	
	if(grey=='1')
		el1.fade(0);
				
	el2.fade(0);
}
/********** end block of showing popups ******/