
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };
var charRegxp = /^([a-zA-Z]+)$/;
var numRegxp = /^([0-9]+)$/;
var charnumRegxp=/^([a-zA-Z0-9]+)$/;
var urlRegxp = /^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([\w]+)(.[\w]+){1,2}$/;
var emailRegxp = /^([\w]+)(.[\w]+)*@([\w]+)(.[\w]{2,3}){1,2}$/;

function countryFn(country){
		  countryNamesAr  = Array('Afghanistan','Albania','Algeria','American Samoa','Andorra','Angola','Anguilla','Antarctica','Antigua And Barbuda','Argentina','Armenia','Aruba','Australia','Austria','Azerbaijan','Bahamas','Bahrain','Bangladesh','Barbados','Belarus','Belgium','Belize','Benin','Bermuda','Bhutan','Bolivia','Bosnia And Herzegovina','Botswana','Bouvet Island','Brazil','British Indian Ocean Territory','Brunei Darussalam','Bulgaria','Burkina Faso','Burundi','Cambodia','Cameroon','Canada','Cape Verde','Cayman Islands','Central African Republic','Chad','Chile','China','Christmas Island','Cocos  Keeling  Islands','Colombia','Comoros','Congo','Congo, D.P.R','Cook Islands','Costa Rica','Cote D ivoire','Croatia','Cuba','Cyprus','Czech Republic','Denmark','Djibouti','Dominica','Dominican Republic','East Timor','Ecuador','Egypt','El Salvador','Equatorial Guinea','Eritrea','Estonia','Ethiopia','Falkland Islands  Malvinas ','Faroe Islands','Fiji','Finland','France','French Guiana','French Polynesia','French Southern Territories','Gabon','Gambia','Georgia','Germany','Ghana','Gibraltar','Greece','Greenland','Grenada','Guadeloupe','Guam','Guatemala','Guinea','Guinea-bissau','Guyana','Haiti','Heard And McDonald Islands','Honduras','Hong Kong','Hungary','Iceland','India','Iran, Islamic Republic Of','Iraq','Ireland','Israel','Italy','Jamaica','Japan','Jordan','Kazakstan','Kenya','Kiribati','Korea, D.P.R.','Korea, Republic Of','Kuwait','Kyrgyzstan','Lao','Latvia','Lebanon','Lesotho','Liberia','Libyan Arab Jamahiriya','Liechtenstein','Lithuania','Luxembourg','Macau','Macedonia','Madagascar','Malawi','Malaysia','Maldives','Mali','Malta','Marshall Islands','Martinique','Mauritania','Mauritius','Mayotte','Mexico','Micronesia','Moldova, Republic Of','Monaco','Mongolia','Montserrat','Morocco','Mozambique','Myanmar','Namibia','Nauru','Nepal','Netherlands','Netherlands Antilles','New Caledonia','New Zealand','Nicaragua','Niue','Norfolk Island','Northern Mariana Islands','Norway','Oman','Pakistan','Palau','Palestine','Panama','Papua New Guinea','Paraguay','Peru','Philippines','Pitcairn','Poland','Portugal','Puerto Rico','Qatar','Reunion','Romania','Russian Federation','Rwanda','Saint Helena','Saint Kitts And Nevis','Saint Lucia','Saint Pierre And Miquelon','Samoa','San Marino','Sao Tome And Principe','Saudi Arabia','Senegal','Seychelles','Sierra Leone','Singapore','Slovakia','Slovenia','Solomon Islands','Somalia','South Africa','Sth Georgia/Sandwich Islands','Spain','Sri Lanka','St Vincent/Grenadines','Sudan','Suriname','Svalbard And Jan Mayen','Swaziland','Sweden','Switzerland','Syrian Arab Republic','Taiwan','Tajikistan','Tanzania, United Republic Of','Thailand','Togo','Tokelau','Tonga','Trinidad And Tobago','Tunisia','Turkey','Turkmenistan','Turks And Caicos Islands','Tuvalu','Uganda','Ukraine','United Arab Emirates','United Kingdom','United States','Uruguay','US Minor Outlying Islands','Uzbekistan','Vanuatu','Vatican City','Venezuela','Vietnam','Virgin Islands, British','Virgin Islands, U.S.','Wallis And Futuna','Western Sahara','Yemen','Yugoslavia','Zambia','Zimbabwe');
							ccodes  = '';
							for(x = 0; x < countryNamesAr.length; x++){
						  if(!country)
							 ccodes += '<option value="' + countryNamesAr[x] + '"' + (countryNamesAr[x] =='India' ? 'selected="selected"':null) + '>' + countryNamesAr[x] + '</option>';
						  else ccodes += '<option value="' + countryNamesAr[x] + '"' + (countryNamesAr[x] ==country ? 'selected="selected"':null) + '>' + countryNamesAr[x] + '</option>';
							}
							document.write(ccodes);
						}
function emailCheck(emailStr) { 
						var emailPat=/^(.+)@(.+)$/
						var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
						var validChars="\[^\\s" + specialChars + "\]"
						var quotedUser="(\"[^\"]*\")"
						var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
						var atom=validChars + '+'
						var word="(" + atom + "|" + quotedUser + ")"
						var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
						var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
						var matchArray=emailStr.match(emailPat)
						if(emailStr=="")
						{ return true}
						if (matchArray==null) {
							alert("Email address seems incorrect (check @ and .'s)")
							return false
						}
						var user=matchArray[1]
						var domain=matchArray[2]
						if (user.match(userPat)==null) {
							 alert("The username doesn't seem to be valid.")
							return false
						}
						var IPArray=domain.match(ipDomainPat)
						if (IPArray!=null) {
							  for (var i=1;i<=4;i++){
									if (IPArray[i]>255)     {
										alert("Destination IP address is invalid!")
									return false
												}
										}
									return true 
								}
						
						var domainArray=domain.match(domainPat)
						if (domainArray==null) {
							alert("The domain name doesn't seem to be valid.")
							return false
						}
						var atomPat=new RegExp(atom,"g")
						var domArr=domain.match(atomPat)
						var len=domArr.length
						if (domArr[domArr.length-1].length<2 ||
							domArr[domArr.length-1].length>7) {
						   alert("The address must end in a valid domain, or two letter country.")
						   return false
						}
						if (len<2) {
						   var errStr="This address is missing a hostname!"
						   alert(errStr)
						   return false
						}
						return true;
						}  
					
    // Date Validation Javascript
				function checkValidDate(dateStr) {
				// dateStr must be of format month day year with either slashes
				// or dashes separating the parts. Some minor changes would have
				// to be made to use day month year or another format.
				// This function returns True if the date is valid.
				var slash1 = dateStr.indexOf("/");
				if (slash1 == -1) { slash1 = dateStr.indexOf("-"); }
				// if no slashes or dashes, invalid date
				if (slash1 == -1) { return false; }
				var dateMonth = dateStr.substring(0, slash1)
				var dateMonthAndYear = dateStr.substring(slash1+1, dateStr.length);
				var slash2 = dateMonthAndYear.indexOf("/");
				if (slash2 == -1) { slash2 = dateMonthAndYear.indexOf("-"); }
				// if not a second slash or dash, invalid date
				if (slash2 == -1) { return false; }
				var dateDay = dateMonthAndYear.substring(0, slash2);
				var dateYear = dateMonthAndYear.substring(slash2+1, dateMonthAndYear.length);
				if ( (dateMonth == "") || (dateDay == "") || (dateYear == "") ) { return false; }
				// if any non-digits in the month, invalid date
				for (var x=0; x < dateMonth.length; x++) {
					var digit = dateMonth.substring(x, x+1);
					if ((digit < "0") || (digit > "9")) { return false; }
				}
				// convert the text month to a number
				var numMonth = 0;
				for (var x=0; x < dateMonth.length; x++) {
					digit = dateMonth.substring(x, x+1);
					numMonth *= 10;
					numMonth += parseInt(digit);
				}
				if ((numMonth <= 0) || (numMonth > 12)) { return false; }
				// if any non-digits in the day, invalid date
				for (var x=0; x < dateDay.length; x++) {
					digit = dateDay.substring(x, x+1);
					if ((digit < "0") || (digit > "9")) { return false; }
				}
				// convert the text day to a number
				var numDay = 0;
				for (var x=0; x < dateDay.length; x++) {
					digit = dateDay.substring(x, x+1);
					numDay *= 10;
					numDay += parseInt(digit);
				}
				if ((numDay <= 0) || (numDay > 31)) { return false; }
				// February can't be greater than 29 (leap year calculation comes later)
				if ((numMonth == 2) && (numDay > 29)) { return false; }
				// check for months with only 30 days
				if ((numMonth == 4) || (numMonth == 6) || (numMonth == 9) || (numMonth == 11)) { 
					if (numDay > 30) { return false; } 
				}
				// if any non-digits in the year, invalid date
				for (var x=0; x < dateYear.length; x++) {
					digit = dateYear.substring(x, x+1);
					if ((digit < "0") || (digit > "9")) { return false; }
				}
				// convert the text year to a number
				var numYear = 0;
				for (var x=0; x < dateYear.length; x++) {
					digit = dateYear.substring(x, x+1);
					numYear *= 10;
					numYear += parseInt(digit);
				}
				// Year must be a 2-digit year or a 4-digit year
				if ( (dateYear.length != 2) && (dateYear.length != 4) ) { return false; }
				// if 2-digit year, use 50 as a pivot date
				if ( (numYear < 50) && (dateYear.length == 2) ) { numYear += 2000; }
				if ( (numYear < 100) && (dateYear.length == 2) ) { numYear += 1900; }
				if ((numYear <= 0) || (numYear > 9999)) { return false; }
				// check for leap year if the month and day is Feb 29
				if ((numMonth == 2) && (numDay == 29)) {
					var div4 = numYear % 4;
					var div100 = numYear % 100;
					var div400 = numYear % 400;
					if (div4 != 0) { return false; }
					if ((div100 == 0) && (div400 != 0)) { return false; }
				}
				// date is valid
				return true;
			}
//Coll ans Expand
//show OR hide funtion depends on if element is shown or hidden

function coll(maxblock)
  {   
    for(i=1;i<=maxblock;i++)     
        document.getElementById(i).style.display = 'none';     
      
      document.getElementById(10000).style.display = 'none';
      document.getElementById(10001).style.display = 'block';
  }
  
function expand(maxblock)
  {   
    for(i=1;i<=maxblock;i++)      
        document.getElementById(i).style.display = 'block';     
      
      document.getElementById(10000).style.display = 'block';
      document.getElementById(10001).style.display = 'none';
  }  

function shoh(id,maxblock) 
{ 
    
    if (document.getElementById)
    { 
        if (document.getElementById(id).style.display == "none")        
            document.getElementById(id).style.display = 'block';
        else
            document.getElementById(id).style.display = 'none';         
    }
    else 
    { 
        if (document.layers)
        {  
            if (document.id.display == "none")          
                document.id.display = 'block';            
            else
                document.id.display = 'none';            
        }
        else
        {
            if (document.all.id.style.visibility == "none")         
                document.all.id.style.display = 'block';
            else
                document.all.id.style.display = 'none';            
        }
    }
    var flag1=0;
    var flag2=0;
    
    for(i=1;i<=maxblock;i++)    
      {
        if(document.getElementById(i).style.display == 'block')
          {
             flag1=flag1+1; 
          }
        else
          {     
             flag2=flag2+1; 
          }
      }
      
      if(flag1==maxblock)
       {
          document.getElementById(10000).style.display = 'block';
          document.getElementById(10001).style.display = 'none';
       }
      else if(flag2==maxblock)
       {
          document.getElementById(10000).style.display = 'none';
          document.getElementById(10001).style.display = 'block';
       }
}