	// JavaScript Document
	function checkMail(val)
	{
		var x = val;
		var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if (filter.test(x)) {return true;}
		else return false;
	}
	function validateEmail(val)
	{
		var email = val;
		var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if (!filter.test(email)) {
		alert("Invalid email address! \nPlease re-enter!");
		return false;
		}
		else return true;
	}

	function checkForInvalidCharsAtStart(strToTst, bypassMsg)
	{
		//this function tests for any of the following special characters in the entire
		//passed string! and in the firsst instance it returns false!
		
		var invalidChars = "~!@#$%^&*()_+|{}:<>?`-=\[];',./";
		var fStr;
		var i;		//this is just a simple counter!
		//we are doing this trick because " cannot be incorporated between " "...
		invalidChars = invalidChars + '"';
		//check for space char
		invalidChars = invalidChars + " ";

		//stuff the first character into the variable!
		/*alert ("Getting into it!");
		alert (invalidChars);*/
		fStr = strToTst.substring(0,1);
		for(i = 0; i < invalidChars.length; i++)
		{
			if(invalidChars.substring(i,i + 1) != "_")
			{
				//Now chek for the entire passed string!
				for(j = 0; j < strToTst.length; j++)
				{
					//alert(strToTst.substring(j,j + 1) + " and " + invalidChars.substring(i,i + 1));
					if(strToTst.substring(j,j + 1) == invalidChars.substring(i,i + 1))
					{
						if(bypassMsg == false)
						{
							alert ("EparOpar ID cannot have '" + invalidChars.substring(i,i + 1) + "' character!");
						}
						return false;
					}
				}			 
			}
			else
			{
				if(fStr == invalidChars.substring(i,i + 1))
				 {
					if(bypassMsg == false)
					{
						alert ("EparOpar ID cannot start with '" + invalidChars.substring(i,i + 1) + "' character!");
					}
					user_login.user_id.focus();
					return false;
				 }
			}
		}
		return true;		
	}
	
	
	function IsNumeric(sText)
	{
		var ValidChars = "0123456789.";
		var IsNumber=true;
		var Char;
		if(sText != "")
		{
			for (i = 0; i < sText.length && IsNumber == true; i++) 
			{ 
				Char = sText.charAt(i); 
				if (ValidChars.indexOf(Char) == -1) 
				{
					IsNumber = false;
				}
			}
		}
		else
		{
			IsNumber=false;
		}
		return IsNumber;	
	}
	
	function isPhone(num)
	{
		var isPhone=true;
		var reg2 = /[0-9\-\.\,\ ]$/; // valid
		if(!reg2.test(num))
		{
			alert("Invalid Number!");
			isPhone=false;
		}
		return isPhone;
	}
	
	function validDays()
	{
		//validate only for feb...
		if(user_login.month.value=="February")
		{
			//Chk if the selected year is a leap year!v
			if(user_login.year.value%4 == 0)
			{
				//we are into leap year! Day can be upto 29.
				//if(user_login.day.value "30" || user_login.day.value=="31")
				if(user_login.day.value <= 29)
				{
					return true;
				}
				else
				{
					alert("Please select valid date! You have chosen a leap year!");
					user_login.day.focus();
					return false;
				}
			}
			else
			{
				// we are into any non-leap year!
				if(user_login.day.value <= 28)
				{
					return true;
				}
				else
				{
					alert("Please select valid date!");
					user_login.day.focus();
					return false;
				}
			}
		}
		else
		{
			//for any non feb months! First lets check for 30 days month!
			if(user_login.month.value=="April" || user_login.month.value=="June" || user_login.month.value=="September" || user_login.month.value=="November")
			{
				if(user_login.day.value <= 30)
				{
					return true;
				}
				else
				{
					alert("Please select valid date!");
					user_login.day.focus();
					return false;
				}
			}
		}
	}


	
	function isPassword(pass)
	{
			var aflag=false;
			var nflag=false;
			var validcharsA='abcdefghijklmnopqrstuvwxyz';
			var validcharsN='1234567890';
			if(pass.length<6)
			{
					alert("Password must be alpha-numeric, minimum 6 characters.");
					return false;
			}
			
			for(i = 0; i < pass.length; i++)
			{
					
				if(pass.substring(i, i+1) == " ")
				{
					alert("Blank space is not allowed.");
					return false;
					break;
				}
				keychar=pass.substring(i, i+1);
				keychar = keychar.toLowerCase();
				if(!nflag)
				{
					if (validcharsN.indexOf(keychar) != -1)
					{
						nflag=true;
					}
				}
				if(!aflag)
				{
					if (validcharsA.indexOf(keychar) != -1)
					{
						aflag=true;
					}
				}
			}
			if(!aflag)
			{
				alert("Password should contain at least one alphabet.");
				return false;
			}
			if(!nflag)
			{
				alert("Password should contain at least one number.");
				return false;
			}
			return true;
	}
	
	function isIndianPIN(pin)
	{
		var res;
		//First chk if its not empty!
		if(pin == "")
		{
			alert("Pin left empty!");
			res = false;
		}
		else
		{
			//Chk if its in numeric format!
			if(IsNumeric(pin) == false)
			{
				alert("PIN should only contain numbers!");
				res = false;
			}
			else
			{
				if(pin.length != 6)
				{
					alert("Invalid PIN, please check!");
					res = false;
				}
				else
				{
					res = true;
				}
			}
		}
		return res;
	}
	
	function isUSAPIN(pin)
	{
		var regexp=/(^\d{5}$)/;
		return regexp.test(pin);
	}
	
	function isUSAPhone(phone)
	{
		var regexp = /^\d{3}\-\d{3}\-\d{4}$/;
		return regexp.test(phone);
	}
	
	function isUSAFax(fax)
	{
		var regexp = /^\+\d{2}\-\d{4}\-\d{7}$/;
		return regexp.test(fax);
	}
	
	
	
	function isEmpty(value)
	{
		if(value.search(/\S/)==-1)
		{
	   		return true;
	  	}  
	  	return false; 
	}
	
	function getKeyCode(e)
	{
		if (window.event)
			return window.event.keyCode;
		else if (e)
			return e.which;
		else
			return null;
	}
	
	
	
	function keyRestrict(e, validchars) 
	{
		var key='', keychar='';
		key = getKeyCode(e);
		if (key == null) return true;
		keychar = String.fromCharCode(key);
		keychar = keychar.toLowerCase();
		validchars = validchars.toLowerCase();
		if (validchars.indexOf(keychar) != -1)
			return true;
			
		if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
			return true;
		//alert("Plese enter a valid character.");
		return false;
	}
	
	// Functions for trailing spaces.
function trim(strText) { 
		// this will get rid of leading spaces
		while (strText.substring(0,1) == ' ')
			strText = strText.substring(1, strText.length);

		// this will get rid of trailing spaces
		while (strText.substring(strText.length-1,strText.length) == ' ')
			strText = strText.substring(0, strText.length-1);
		var pos=0
		var tevePos=0
		while(strText.indexOf("\n",pos)>-1)
		{
			tevePos=strText.indexOf("\n",pos)
			pos=tevePos+1
		}
		
	   return strText;
}
	var win = null;
	function NewWindow(mypage,myname,w,h,scroll){
	var LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
	var TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
	var settings =
	'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',resizable'
	win = window.open(mypage,myname,settings)
	}
	
	function openwin(url,w,h,scrollyes){
		var top = (screen.height-h)/2;
		var left = (screen.width-w)/2;
		var customize = "location=no,toolbar=no,menubar=no,resizable=yes,status=0,scrollbars="+scrollyes+",width="+w+",height="+h+",top="+top+",left="+left;
		window.open(url,'_blank',customize)
	}
	
	function IsInFormat(val,format)
	{
		if(!(val==""))
		{
			var reg2 = format; 
			if(!reg2.test(val))
			{
				return false;
			}
		}
			return true;
			
	}
	
	function chkAlphaNumeric(val)
	{
		var RegExp = /^[a-zA-Z0-9_]*$/;
		if(RegExp.test(val))
		{
			return true;
		}
		else
			return false;
	}
	
	function daysInMonth(iMonth, iYear)
	{
		return 32 - new Date(iYear, iMonth, 32).getDate();
	}
	
	///change value into currency format
	function CurrencyFormatted(amount)
	{
		var i = parseFloat(amount);
		if(isNaN(i)) { i = 0.00; }
		var minus = '';
		if(i < 0) { minus = '-'; }
		i = Math.abs(i);
		i = parseInt((i + .005) * 100);
		i = i / 100;
		s = new String(i);
		if(s.indexOf('.') < 0) { s += '.00'; }
		if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
		s = minus + s;
		return s;
	}
	// end of function CurrencyFormatted()
	
	
	//credit card verification function
	//return true if information right else return false
	function validatecardfunc (cc_number,cc_type) {
	validcard = false;
	ret = stripNonNumbers(cc_number);
	result = cc_type;
	if (result == "Mastercard") {
	if (ret.length == 16)
	validcard = true;
	if ((ret.substring (0, 2) >= "51") &&
	(ret.substring (0, 2) <= "55"))
	validcard = true;
	else
	validcard = false;
	}
	if (result == "Visa") {
	if ((ret.length == 16) || (ret.length ==13))
	validcard = true;
	if (ret.substring (0, 1) != "4")
	validcard = false;
	}
	if (result == "American Express") {
	if (ret.length == 15)
	validcard = true;
	if ((ret.substring (0, 2) != "34") &&
	(ret.substring (0, 2) != "37"))
	validcard = false;
	}
	if (result == "Discover") {
	if (ret.length == 16)
	validcard = true;
	if (ret.substring (0, 4) != "6011")
	validcard = false;
	}
	return (validcard);
	}
	
	function stripNonNumbers (InString) {
	OutString="";
	InString=InString.toString();
	for (Count=0; Count < InString.length; Count++) {
	TempChar=InString.substring (Count, Count+1);
	Strip = false;
	CharString="0123456789";
	for (Countx = 0; Countx < CharString.length; Countx++) {
	StripThis = CharString.substring(Countx, Countx+1)
	if (TempChar == StripThis) {
	Strip = true;
	break;
	}
	}
	if (Strip)
	OutString=OutString+TempChar;
	}
	return (OutString);
	}
	
	function isExpYearValid(expYear,expMonth,curYear,curMonth)
    {

  // Use this if you do not have access to the servers system date.
  // Get current year from client machine
   myDate = new Date();
  myYear = parseInt(curYear);
  myMonth = parseInt(curMonth); 
  // Remember that JavaScript getMonth will return a number between 00 and 11
  // alert(myYear);

  // Get current year from server
  //myYear = (:sYear);
  //myMonth = (:sMonth);
  
	theirYear=parseInt(expYear);
	theirMonth=parseInt(expMonth);
  // Find out if the year they gave is equal or greater or less than currentyear
    if (theirYear > myYear)
        {
        return true;
        }
  else if (myYear > theirYear)
    {
        alert("Your credit card seems to have expired .");
        return false;
    }
  else
    {
        // it is equal, check the month.
    if (myMonth > theirMonth || parseInt(myMonth)==parseInt(theirMonth))
      {
      alert("Your credit card seems to have expired");
	  /*\n(You entered " +
theirMonth + ", " + theirYear + ". It is now " + myMonth + ", " + myYear +
".)\nPlease enter a updated expiration or try another credit card.*/
      return false;
      }
    }
  return true;
    }
	
function isUrl(s) {
	var regexp = /^[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_%&\?\/.=]+$/
	return regexp.test(s);
}

function getfileextension(filename) 
{ 
	
	 if( filename.length == 0 ) return ""; 
	 var dot = filename.lastIndexOf("."); 
	 if( dot == -1 ) return ""; 
	 var extension = filename.substr(dot,filename.length); 
	 return extension.toLowerCase(); 
} 

//==========================================
// Check All boxes
//==========================================
function CheckAll(fmobj) {
  for (var i=0;i<fmobj.elements.length;i++) {
    var e = fmobj.elements[i];
    if ( (e.name != 'allbox') && (e.type=='checkbox') && (!e.disabled) ) {
      e.checked = fmobj.allbox.checked;
    }
  }
}

//==========================================
// Check all or uncheck all?
//==========================================
function CheckCheckAll(fmobj) {
  var TotalBoxes = 0;
  var TotalOn = 0;
  for (var i=0;i<fmobj.elements.length;i++) {
	
    var e = fmobj.elements[i];
    if ((e.name != 'allbox') && (e.type=='checkbox')) {
	
      TotalBoxes++;
      if (e.checked) {
       TotalOn++;
      }
    }
  }
 
	  if (TotalBoxes==TotalOn) {
		fmobj.allbox.checked=true;
	  }
	  else {
	   fmobj.allbox.checked=false;
	  }
}

//get total checked box numbers
function getTotalCheckBox(fmobj)
{
	var TotalOn=0;
	 for (var i=0;i<fmobj.elements.length;i++) {
		var e = fmobj.elements[i];
		if ((e.name != 'allbox') && (e.type=='checkbox')) {
		  if (e.checked) {
		   TotalOn++;
		  }
		}
	  }
	  return TotalOn;
}


//Create Additional Photo & Caption

function addAlbumPhotoChildNode(Node)
{// IE detection
    if(navigator.userAgent.toLowerCase().indexOf("msie") != -1) { isIE = true; } else { isIE = false; }
	var tbody = document.getElementById("PhotoTableBody");
	//Get the TBODY Object
	var obj=document.getElementById(Node);
	
	
	var trObj = document.createElement("TR");
		
	trObj.setAttribute('id',"divPhotoTR"+totPhotoTR);
	
	
	
	 if(isIE)
	 	var trtdObj = document.createElement("<TD></TD>");
	 else
		var trtdObj = document.createElement("TD");
	
	var trtdtableObj = document.createElement("TABLE");
	trtdtableObj.setAttribute("width", "100%");
	trtdtableObj.setAttribute("cellpading", "0");
	trtdtableObj.setAttribute("cellspacing", "0");
	//trtdObj.setAttribute("style", "padding-top:10px");
	
	var trtdtabletbodyObj = document.createElement("TBODY");
	trtdtabletbodyObj.setAttribute("width", "100%");
	
	//Create Rows
	var trtdtabletr1Obj = document.createElement("TR");
	
	
	 if(isIE)
	 {
	 	var trtdtabletr1td1Obj = document.createElement("<TD align='right'></TD>");
		var trtdtabletr1td2Obj = document.createElement("<TD align='left'></TD>");
		var trtdtabletr1td3Obj = document.createElement("<TD align='right'></TD>");
		var trtdtabletr1td4Obj = document.createElement("<TD align='left'></TD>");
		var trtdtabletr1td5Obj = document.createElement("<TD align='left'></TD>");
	 }
	 else
	 {
		var trtdtabletr1td1Obj = document.createElement("TD");
		var trtdtabletr1td2Obj = document.createElement("TD");
		var trtdtabletr1td3Obj = document.createElement("TD");
		var trtdtabletr1td4Obj = document.createElement("TD");
		var trtdtabletr1td5Obj = document.createElement("TD");
	 }
	 
	 trtdtabletr1td1Obj.setAttribute("width", "27%");
	 trtdtabletr1td1Obj.setAttribute("align", "right");
	 trtdtabletr1td2Obj.setAttribute("width", "28%");
	 trtdtabletr1td2Obj.setAttribute("align", "left");
	 trtdtabletr1td3Obj.setAttribute("width", "10%");
	 trtdtabletr1td3Obj.setAttribute("align", "right");
	 trtdtabletr1td4Obj.setAttribute("width", "23%");
	 trtdtabletr1td4Obj.setAttribute("align", "left");
	 trtdtabletr1td5Obj.setAttribute("width", "12%");
	 trtdtabletr1td5Obj.setAttribute("align", "left");
	 	
	 var row1cell1Obj = document.createTextNode("Upload Photo:");
	 var row1cell3Obj = document.createTextNode("Caption:");
	
	 
	
	 if(isIE) {
        row1cell2Obj = document.createElement('<INPUT type="file" name=\'up_photo[]\' class="forminputelement" />');
		row1cell4Obj = document.createElement('<INPUT name=\'txtCaption[]\' class="forminputelement" />');
		
		row1cell5Obj =  document.createElement('<INPUT name=\'removeButton\' class="button" />');
    } else {
        row1cell2Obj = document.createElement('INPUT');
		
        row1cell2Obj.name = 'up_photo[]';
		row1cell4Obj = document.createElement('INPUT');
        row1cell4Obj.name = 'txtCaption[]';
		row1cell5Obj = document.createElement('INPUT');
        row1cell5Obj.name = 'removeButton';
    }
	
   
    row1cell2Obj.type="file";
    row1cell2Obj.value = '';
	row1cell2Obj.className="forminputelement";
	
	row1cell4Obj.type = 'text';
    row1cell4Obj.value = '';
	row1cell4Obj.className="forminputelement";
	
	
	row1cell5Obj.type = 'button';
  	row1cell5Obj.value = 'Remove';
	row1cell5Obj.className='button';
	row1cell5Obj.name = totPhotoTR;
    row1cell5Obj.style.display = 'block';
    row1cell5Obj.onclick = function() {
        removeTRNode("divPhotoTR"+this.name);
    }
	
	
	trtdtabletr1td1Obj.appendChild(row1cell1Obj);
	trtdtabletr1td2Obj.appendChild(row1cell2Obj);
	trtdtabletr1td3Obj.appendChild(row1cell3Obj);
	trtdtabletr1td4Obj.appendChild(row1cell4Obj);
	trtdtabletr1td5Obj.appendChild(row1cell5Obj);
	
	trtdtabletr1Obj.appendChild(trtdtabletr1td1Obj);
	trtdtabletr1Obj.appendChild(trtdtabletr1td2Obj);
	trtdtabletr1Obj.appendChild(trtdtabletr1td3Obj);
	trtdtabletr1Obj.appendChild(trtdtabletr1td4Obj);
	trtdtabletr1Obj.appendChild(trtdtabletr1td5Obj);
	
	trtdtabletbodyObj.appendChild(trtdtabletr1Obj);
	
	trtdtableObj.appendChild(trtdtabletbodyObj);
	trtdObj.appendChild(trtdtableObj);
	trObj.appendChild(trtdObj);
	
	
	obj.appendChild(trObj);
	document.getElementById("PhotoTable").appendChild(obj);
	//increment
	totPhotoTR=parseInt(totPhotoTR)+1;
}

function removeTRNode(Node)
{
	if(confirm("Are you sure want to delete this record?"))
	{
		var el = document.getElementById(Node);
		el.parentNode.removeChild(el);
	}
	//document.getElementById(Node).removeChild(true);
}

//function to focus in first input box
function focusFirst()
{
	var frmobj=document.forms[0];
	if(!(frmobj==null))
	 for (var i=0;i<frmobj.elements.length;i++) {
			var e = frmobj.elements[i];
				
			if (e.type=='text' || e.type=='select' || e.type=='file' || e.type=='password' || e.type=='select-one' || e.type=='checkbox' || e.type=='radio' || e.type=='textarea') {
			  e.focus();
			  break;
		}
	  }
}



