

function isbn_init(){

	if (!document.getElementsByTagName) return;
	var spans = document.getElementsByTagName("span");
	for (var i=0; i<spans.length; i++) {
	  var span = spans[i];
	  if (span.className == "isbn")
	    span.innerHTML =isbn_expand(span.innerHTML);
	    
	}


}


function isbn_expand(xstr){
	var str = xstr;

  
	var regex = /\-/;

	if(!str.match(regex)){
		if(str.length == 10){
			return isbn_expand10(str);
		}else if(str.length == 13){
			var isbn10;
			var prefix;
				
			prefix = str.substr(0,3);
			isbn10 = str.substr(3,12);
				
			return prefix+"-"+isbn_expand10(isbn10);

		}else{
			return xstr;
		}
	}else{
		return xstr;
	}

}



function isbn_expand10(xstr)
{
  var len,rslt=1;
  var grp_val;
  var cp,grp,pub,seq,check,str;
  str = xstr;
  cp = xstr;

  
  if(str.length != 10)
   {
     /* ISBN must be 10 digits to expand */
     return xstr;
   }
  else
   {
     check = str.substr(str.length - 1, 1);
     len = 1;
     cp = str;

     if (cp.substr(0,1) <= "7")
		len = 1;
	 else if (cp.substr(0,2) <= "94")
			  len = 2;
		  else if (cp.substr(0,3) <= "997")
			  len = 3;
			   else if (cp.substr(0,4) <= "9989")
			        len = 4;
				    else
					len = 5;

     grp = str.substring(0,len);
     str = str.substring(len, str.length)
	 cp = str
     grp_val = grp;


	 switch(grp_val)
	 {
	    case "99920": /* Andorra */
                if(cp.substr(0,1) < "5")
                   len = 1;
                else if(cp.substr(0,1) < "9")
                   len = 2;
                else
                   len = 3;
                break;
   case "99916": /* Namibia */
                if(cp.substr(0,1) < "3")
                   len = 1;
                else if(cp.substr(0,1) < "7")
                   len = 2;
                else
                   len = 3;
                break;
   case "99915": /* Maldives */
                if(cp.substr(0,1) < "5")
                   len = 1;
                else if(cp.substr(0,1) < "8")
                   len = 2;
                else
                   len = 3;
                break;
   case "99914": /* Suriname */
                if(cp.substr(0,1) < "5")
                   len = 1;
                else if(cp.substr(0,1) < "9")
                   len = 2;
                else if(cp.substr(1,1) < "5")
                   len = 3;
                else
                   len = 0;
                break;
   case "99913": /* Andorra */
                len = 0;
                break;
   case "99912": /* Botswana */
                if(cp.substr(0,1) < "6")
                   len = 1;
                else if(cp.substr(0,1) < "9")
                   len = 2;
                else
                   len = 3;
                break;
   case "99911": /* Lesotho */
                if(cp.substr(0,1) < "6")
                   len = 2;
                else
                   len = 3;
                break;
   case "99908": /* Malawi */
                if(cp.substr(0,1) == "0")
                   len = 1;
                else if(cp.substr(0,1) < "9")
                   len = 2;
                else
                   len = 3;
                break;
   case "99904": /* Netherlands Antilles */
                if(cp.substr(0,1) == "6")
                   len = 1;
                else if(cp.substr(0,1) < "9")
                   len = 2;
                else
                   len = 3;
                break;
    case "9988": /* Ghana */
                len = 0;
                break;
    case "9987": /* Tanzania */
                if(cp.substr(0,1) < "2")
                   len = 1;
                else if(cp.substr(0,1) < "5" || (cp.substr(0,1) == "5" && cp.substr(1,1) < "5"))
                   len = 2;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) < "8"))
                   len = 3;
                else if(cp.substr(0,1) < "9")
                   len = 4;
                else
                   len = 0;
                break;
    case "9983": /* Gambia */
                if(cp.substr(0,1) < "8")
                   len = 0;
                else if(cp.substr(0,1) < "9" || cp.substr(1,1) < "5")
                   len = 2;
                else if(cp.substr(1,1) == "5")
                   len = 7;
                else if(cp.substr(1,1) == "9")
                   len = 4;
                else
                   len = 0;
                break;
    case "9982": /* Zambia */
                if(cp.substr(0,1) < "4")
                   len = 2;
                else if(cp.substr(0,1) < "8")
                   len = 0;
                else if(cp.substr(0,1) == "8" && cp.substr(1,1) < "9")
                   len = 3;
                else if(cp.substr(0,1) == "9" && cp.substr(1,1) == "9")
                   len = 4;
                break;
    case "9980": /* Papua New Guinea */
                if(cp.substr(0,1) < "4")
                   len = 1;
                else if(cp.substr(0,1) < "9")
                   len = 2;
                else if(cp.substr(1,1) < "9")
                   len = 3;
                else
                   len = 4;
                break;
    case "9979": /* Iceland */
                if(cp.substr(0,1) < "5")
                   len = 1;
                else if(cp.substr(0,1) < "8")
                   len = 2;
                else if(cp.substr(0,1) < "9")
                   len = 3;
                else
                   len = 4;
                break;
    case "9977": /* Costa Rica */
                if(cp.substr(0,1) <= "8")
                   len = 2;
                else if(cp.substr(1,1) <= "8")
                   len = 3;
                else
                   len = 4;
                break;
    case "9976": /* Tanzania */
                if(cp.substr(0,1) <= "5")
                   len = 1;
                else if(cp.substr(0,1) < "9")
                   len = 2;
                else if(cp.substr(1,1) < "9")
                   len = 3;
                else
                   len = 4;
                break;
    case "9974": /* Uruguay */
                if(cp.substr(0,1) < "3")
                   len = 1;
                else if(cp.substr(0,1) < "5" || (cp.substr(0,1) == "5" && cp.substr(1,1) < "5"))
                   len = 2;
                else if(cp.substr(0,1) < "7" || (cp.substr(0,1) == "7" && cp.substr(1,1) < "5"))
                   len = 3;
                else
                   len = 4;
                break;
    case "9973": /* Tunisia */
                if(cp.substr(0,1) < "1")
                   len = 1;
                else if(cp.substr(0,1) < "7")
                   len = 2;
                else if(cp.substr(0,1) < "9" || (cp.substr(0,1) == "9" && cp.substr(1,1) < "7"))
                   len = 3;
                else
                   len = 4;
                break;
     case "9971": /* Singapore */
                if(cp.substr(0,1) <= "5")
                   len = 1;
                else if(cp.substr(0,1) < "9")
                   len = 2;
                else if(cp.substr(1,1) < "9")
                   len = 3;
                else
                   len = 4;
                break;
     case "9968": /* Costa Rica */
                if(cp.substr(0,1) == "0")
                   len = 1;
                else if(cp.substr(0,1) < "7")
                   len = 2;
                else if(cp.substr(0,1) < "9" || (cp.substr(0,1) == "9" && cp.substr(1,1) < "7"))
                   len = 3;
                else
                   len = 4;
                break;
     case "9966": /* Kenya */
                if(cp.substr(0,1) < "2")
                   len = 0;
                else if(cp.substr(0,1) < "7")
                   len = 2;
                else if(cp.substr(0,1) < "8")
                   len = 0;
                else if(cp.substr(0,1) < "9")
                   len = 3;
                else if(cp.substr(1,1) < "7")
                   len = 0;
                else
                   len = 4;
                break;
     case "9964": /* Ghana */
                if(cp.substr(0,1) <= "6")
                   len = 1;
                else if(cp.substr(0,1) < "9" || cp.substr(1,1) <= "4")
                   len = 2;
                else
                   len = 3;
                break;
     case "9963": /* Cyprus */
                if(cp.substr(0,1) < "3")
                   len = 1;
                else if(cp.substr(0,1) < "5" || (cp.substr(0,1) == "5" && cp.substr(1,1) <= "4"))
                   len = 2;
                else if(cp.substr(0,1) < "7" || (cp.substr(0,1) == "7" && cp.substr(1,1) <= "4"))
                   len = 3;
                else
                   len = 4;
                break;
      case "987": /* Argentina */
                break;
      case "984": /* Bangladesh */
                if(cp.substr(0,1) < "4")
                   len = 2;
                else if(cp.substr(0,1) < "8")
                   len = 3;
                else if(cp.substr(0,1) < "9")
                   len = 4;
                else
                   len = 5;
                break;
      case "983": /* Malaysia */
                if(cp.substr(0,1) < "5")
                   len = 1;
                else if(cp.substr(0,1) < "8")
                   len = 2;
                else if(cp.substr(0,1) < "9")
                   len = 3;
                else if(cp.substr(1,1) < "9")
                   len = 4;
                else
                   len = 5;
                break;
      case "981": /* Singapore */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "3")
                   len = 3;
                else
                   len = 4;
                break;
      case "980": /* Venezuela */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "6")
                   len = 3;
                else
                   len = 4;
                break;
      case "979": /* Indonesia */
                if(cp.substr(0,1) < "1")
                   len = 1;
                else if(cp.substr(0,1) < "2")
                   len = 0;
                else if(cp.substr(0,1) < "3")
                   len = 2;
                else if(cp.substr(0,1) < "4")
                   len = 0;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) < "9" || (cp.substr(0,1) == "9" && cp.substr(1,1) < "5"))
                   len = 4;
                else
                   len = 5;
                break;
      case "978": /* Nigeria */
                if(cp.substr(0,1) < "5")
                   len = 2;
                else if(cp.substr(0,1) < "9")
                   len = 3;
                else if(cp.substr(1,1) < "9")
                   len = 4;
                else
                   len = 5;
                break;
      case "977": /* Egypt */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "5")
                   len = 3;
                else if(cp.substr(0,1) < "7")
                   len = 4;
                else
                   len = 5;
                break;
      case "976": /* Caribbean Community */
                if(cp.substr(0,1) < "4")
                   len = 1;
                else if(cp.substr(0,1) < "6")
                   len = 2;
                else if(cp.substr(0,1) < "8")
                   len = 3;
                else
                   len = 4;
                break;
      case "975": /* Turkey */
                if(cp.substr(0,1) < "3")
                   len = 2;
                else if(cp.substr(0,1) < "6")
                   len = 3;
                else if(cp.substr(0,1) < "9" || (cp.substr(0,1) == "9" && cp.substr(1,1) < "2"))
                   len = 4;
                else
                   len = 5;
                break;
      case "974": /* Thailand */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) == "7" || (cp.substr(0,1) == "8" && cp.substr(1,1) <= "4"))
                   len = 4;
                else if(cp.substr(0,1) < "9")
                   len = 5;
                else
                   len = 0;
                break;
      case "973": /* Romania */
                if(cp.substr(0,1) < "2")
                   len = 1;
                else if(cp.substr(0,1) < "5" || (cp.substr(0,1) == "5" && cp.substr(1,1) < "5"))
                   len = 2;
                else if(cp.substr(0,1) < "9")
                   len = 3;
                else if(cp.substr(1,1) < "5")
                   len = 4;
                else
                   len = 5;
                break;
      case "972": /* Portugal */
                if(cp.substr(0,1) < "2")
                   len = 1;
                else if(cp.substr(0,1) < "5" || (cp.substr(0,1) == "5" && cp.substr(1,1) < "5"))
                   len = 2;
                else if(cp.substr(0,1) < "8")
                   len = 3;
                else if(cp.substr(0,1) < "9" || (cp.substr(0,1) == "9" && cp.substr(1,1) < "5"))
                   len = 4;
                else
                   len = 5;
                break;
      case "971": /* Philippines */
                if(cp.substr(0,1) < "5")
                   len = 2;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) < "5"))
                   len = 3;
                else if(cp.substr(0,1) < "9" || (cp.substr(0,1) == "9" && cp.substr(1,1) < "1"))
                   len = 4;
                else
                   len = 5;
                break;
      case "970": /* Mexico */
                if(cp.substr(0,1) < "6")
                   len = 2;
                else if(cp.substr(0,1) < "9")
                   len = 3;
                else if(cp.substr(1,1) < "1")
                   len = 4;
                else
                   len = 5;
                break;
      case "969": /* Pakistan */
                if(cp.substr(0,1) < "2")
                   len = 1;
                else if(cp.substr(0,1) < "4")
                   len = 2;
                else if(cp.substr(0,1) < "8")
                   len = 3;
                else
                   len = 4;
                break;
      case "968": /* Mexico */
                if(cp.substr(0,1) < "1")
                   len = 0;
                else if(cp.substr(0,1) < "4")
                   len = 2;
                else if(cp.substr(0,1) < "5")
                   len = 3;
                else if(cp.substr(0,1) == "5")
                   len = 0;
                else if(cp.substr(0,1) < "8")
                   len = 4;
                else if(cp.substr(0,1) < "9")
                   len = 3;
                else
                   len = 0;
                break;
      case "967": /* Malaysia */
                if(cp.substr(0,1) < "6")
                   len = 1;
                else if(cp.substr(0,1) < "9")
                   len = 2;
                else if(cp.substr(1,1) < "9")
                   len = 3;
                else if(cp.substr(2,1) < "9")
                   len = 4;
                else
                   len = 5;
                break;
      case "965": /* Israel */
                len = 0;
                break;
      case "963": /* Hungary */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) < "5"))
                   len = 4;
                else if(cp.substr(0,1) < "9")
                   len = 5;
                else
                   len = 0;
                break;
      case "962": /* Hong Kong */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) < "5"))
                   len = 4;
                else
                   len = 0;
                break;
      case "960": /* Greece */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) < "5"))
                   len = 4;
                else
                   len = 5;
                break;
      case "958": /* Colombia */
                if(cp.substr(0,1) < "6")
                   len = 2;
                else if(cp.substr(0,1) < "9")
                   len = 3;
                else if(cp.substr(1,1) < "5")
                   len = 4;
                else
                   len = 5;
                break;
      case "957": /* Taiwan, China */
                if(cp.substr(0,1) < "4" || (cp.substr(0,1) == "4" && cp.substr(1,1) < "5"))
                   len = 2;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) < "5"))
                   len = 3;
                else if(cp.substr(0,1) < "9" || (cp.substr(0,1) == "9" && cp.substr(1,1) < "7"))
                   len = 4;
                else
                   len = 5;
                break;
      case "956": /* Chile */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else
                   len = 4;
                break;
      case "955": /* Sri Lanka */
                if(cp.substr(0,1) < "2")
                   len = 1;
                else if(cp.substr(0,1) < "5" || (cp.substr(0,1) == "5" && cp.substr(1,1) < "5"))
                   len = 2;
                else if(cp.substr(0,1) < "9")
                   len = 3;
                else if(cp.substr(1,1) < "5")
                   len = 4;
                else
                   len = 5;
                break;
      case "954": /* Bulgaria */
                if(cp.substr(0,1) < "4")
                   len = 2;
                else if(cp.substr(0,1) < "8")
                   len = 3;
                else if(cp.substr(0,1) < "9")
                   len = 4;
                else
                   len = 5;
                break;
      case "952": /* Finland */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "5")
                   len = 3;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) < "9"))
                   len = 4;
                else if(cp.substr(0,1) < "9" || (cp.substr(0,1) == "9" && cp.substr(1,1) < "5"))
                   len = 2;
                else if(cp.substr(1,1) < "9")
                   len = 4;
                else
                   len = 5;
                break;
      case "951": /* Finland */
                if(cp.substr(0,1) < "2")
                   len = 1;
                else if(cp.substr(0,1) < "5" || (cp.substr(0,1) == "5" && cp.substr(1,1) <= "4"))
                   len = 2;
                else if(cp.substr(0,1) < "9")
                   len = 3;
                else if(cp.substr(1,1) < "5")
                   len = 4;
                else
                   len = 5;
                break;
      case "950": /* Argentina */
                if(cp.substr(0,1) < "5")
                   len = 2;
                else if(cp.substr(0,1) < "9")
                   len = 3;
                else if(cp.substr(1,1) < "9")
                   len = 4;
                else
                   len = 5;
                break;
       case "93": /* India */
                len = 0;
                break;
       case "92": /* International Publishers (Unesco) */
                if(cp.substr(0,1) < "6")
                   len = 1;
                else if(cp.substr(0,1) < "8")
                   len = 2;
                else if(cp.substr(0,1) < "9")
                   len = 3;
                else
                   len = 4;
                break;
       case "91": /* Sweden */
                if(cp.substr(0,1) < "2")
                   len = 1;
                else if(cp.substr(0,1) < "5")
                   len = 2;
                else if(cp.substr(0,1) < "6" || (cp.substr(0,1) == "6" && cp.substr(1,1) <= "4"))
                   len = 3;
                else if(cp.substr(0,1) < "7")
                   len = 0;
                else if(cp.substr(0,1) < "8")
                   len = 4;
                else if(cp.substr(0,1) == "8" && cp.substr(1,1) < "5")
                   len = 0;
                else if(cp.substr(0,1) < "9" || (cp.substr(0,1) == "9" && cp.substr(1,1) < "5"))
                   len = 5;
                else if(cp.substr(1,1) < "7")
                   len = 0;
                else
                   len = 6;
                break;
       case "90": /* Belgium/Netherlands (Dutch) */
			
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "5")
                   len = 3;
                else if(cp.substr(0,1) < "7")
                   len = 4;
                else if(cp.substr(0,1) < "8")
                   len = 5;
                else
                   len = 6;
                   
                break;
       case "89": /* Korea */
                if(cp.substr(0,1) < "3")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) <= "4"))
                   len = 4;
                else if(cp.substr(0,1) < "9" || (cp.substr(0,1) == "9" && cp.substr(1,1) < "5"))
                   len = 5;
                else
                   len = 6;
                break;
       case "88": /* Italy */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) <= "4"))
                   len = 4;
                else if(cp.substr(0,1) == "8")
                   len = 5;
                else
                   len = 6;
                break;
       case "87": /* Denmark */
                if(cp.substr(0,1) < "3")
                   len = 2;
                else if(cp.substr(0,1) < "4")
                   len = 0;
                else if(cp.substr(0,1) < "6" || (cp.substr(0,1) == "6" && cp.substr(1,1) < "5"))
                   len = 3;
                else if(cp.substr(0,1) < "7")
                   len = 0;
                else if(cp.substr(0,1) < "8")
                   len = 4;
                else if(cp.substr(0,1) == "8" && cp.substr(1,1) < "5")
                   len = 0;
                else if(cp.substr(0,1) < "9" || (cp.substr(0,1) == "9" && cp.substr(1,1) < "5"))
                   len = 5;
                else if(cp.substr(0,1) != "9" || cp.substr(1,1) < "7")
                   len = 0;
                else
                   len = 6;
                break;
       case "86": /* Yugoslavia */
                if(cp.substr(0,1) < "3")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) < "8")
                   len = 4;
                else if(cp.substr(0,1) < "9")
                   len = 5;
                else
                   len = 6;
                break;
       case "85": /* Brazil */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) < "5"))
                   len = 4;
                else if(cp.substr(0,1) < "9")
                   len = 5;
                else
                   len = 6;
                break;
       case "84": /* Spain */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) < "5"))
                   len = 4;
                else if(cp.substr(0,1) < "9")
                   len = 5;
                else
                   len = 6;
                break;
       case "83": /* Poland */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) < "4"))
                   len = 4;
                else if(cp.substr(1,1) < "9")
                   len = 5;
                else
                   len = 6;
                break;
       case "82": /* Norway */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) < "9")
                   len = 4;
                else if(cp.substr(1,1) < "9")
                   len = 5;
                else
                   len = 6;
                break;
       case "81": /* India */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) < "5"))
                   len = 4;
                else if(cp.substr(1,1) < "9")
                   len = 5;
                else
                   len = 6;
                break;
       case "80": /* Czechoslovakia */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) < "5"))
                   len = 4;
                else if(cp.substr(1,1) < "9")
                   len = 5;
                else
                   len = 6;
                break;
        case "7": /* China */
                if(cp.substr(0,1) < "1")
                   len = 2;
                else if(cp.substr(0,1) < "5")
                   len = 3;
                else if(cp.substr(0,1) < "8")
                   len = 4;
                else if(cp.substr(0,1) < "9")
                   len = 5;
                else
                   len = 6;
                break;
        case "5": /* Commonwealth of Independent States & Georgia */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) < "5"))
                   len = 4;
                else if(cp.substr(0,1) < "9")
                   len = 5;
                else if(cp.substr(1,1) < "5")
                   len = 6;
                else
                   len = 7;
                break;
        case "4": /* Japan */      /* No documentation, but looks like USA */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) < "5"))
                   len = 4;
                else if(cp.substr(0,1) < "9")
                   len = 5;
                else if(cp.substr(1,1) < "5")
                   len = 6;
                else
                   len = 7;
                break;
        case "3": /* Austria/Fed. Rep. of Germany/Switzerland (Germany) */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) < "5"))
                   len = 4;
                else if(cp.substr(0,1) < "9")
                   len = 5;
                else if(cp.substr(1,1) < "5")
                   len = 6;
                else
                   len = 7;
                break;
        case "2": /* Belgium/Canada/France/Switzerland (French) */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) < "4"))
                   len = 4;
                else if(cp.substr(0,1) < "9")
                   len = 5;
                else if(cp.substr(1,1) < "5")
                   len = 6;
                else
                   len = 7;
                break;
	 
	 
	 
	 
	 
	 case "1": /* Australia/England/Canada/US/South Africa/Zimbabwe */
                if(cp.substr(0,1) < "5" || (cp.substr(0,1) == "5" && cp.substr(1,1) < "5"))
                   len = 4;
                else if(cp.substr(0,1) < "8")
                   len = 5;
                else if(cp.substr(0,1) == "8")
                 {
                   if(cp.substr(1,1) < "6")
                      len = 5;
                   else if(cp.substr(1,1) > "6")
                      len = 6;
                   else if(cp.substr(2,1) < "9" || (cp.substr(2,1) == "9" && cp.substr(3,1) < "8"))
                      len = 5;
                   else
                      len = 6;
                 }
                else if(cp.substr(1,1) < "9" || cp.substr(2,1) < "9")
                   len = 6;
                else
                   len = 7;
                break;
	 case "0": /* Australia/England/Canada/US/South Africa/Zimbabwe */
                if(cp.substr(0,1) < "2")
                   len = 2;
                else if(cp.substr(0,1) < "7")
                   len = 3;
                else if(cp.substr(0,1) < "8" || (cp.substr(0,1) == "8" && cp.substr(1,1) < "5"))
                   len = 4;
                else if(cp.substr(0,1) < "9")
                   len = 5;
                else if(cp.substr(1,1) < "5")
                   len = 6;
                else
                   len = 7;
                break;
      }

	}	

		pub = str.substr(0,len)	
        seq = str.substring(len, str.length - 1)
        return grp + "-" + pub + "-" + seq + "-" + check 

}


