// Macromedia Dreamweaver functions

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_validateForm() { //v4.0
  var i,p,q,nm,nid,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) {
    test=args[i+2]; val=MM_findObj(args[i]);
    if (val) {
      nm=val.name; nid=val.id; nid=nid.replace(/_/g,' ');
      if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) {
	  p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
        } else if (test!='R') {
	  num = parseFloat(val);
          if (test.indexOf('isSel')!=-1) {
	    if (num<0) {
	      errors += '- '+nid+' must be chosen.\n';
	    }
          }
	  else if (isNaN(val)) {
	    errors+='- '+nid+' must contain a number.\n';
	  }
          if (test.indexOf('inRange') != -1) {
	    p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nid+' must contain a number between '+min+' and '+max+'.\n';
          }
	}
      } else if (test.charAt(0) == 'R') errors += '- '+nid+' is required.\n';
    }
  }
  if (errors) alert('The following error(s) occurred:\n\n'+errors);
  document.MM_returnValue = (errors == '');
}

// Custom functions
function url_encode(clearString) {
  var output = '';
  var x = 0;
  clearString = clearString.toString();
  var regex = /(^[a-zA-Z0-9_.]*)/;
  while (x < clearString.length) {
    var match = regex.exec(clearString.substr(x));
    if (match != null && match.length > 1 && match[1] != '') {
    	output += match[1];
      x += match[1].length;
    } else {
      if (clearString[x] == ' ')
        output += '+';
      else {
        var charCode = clearString.charCodeAt(x);
        var hexVal = charCode.toString(16);
        output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
      }
      x++;
    }
  }
  return output;
}
	
function get_book_info(id)
{
	try //Internet Explorer 5.5+
	{
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
//		alert("ie");
	}
	catch(e)
	{
		try //Gecko
		{
			xmlDoc=document.implementation.createDocument("","",null);
//			alert("gecko");
		}
		catch(e)
		{
			alert(e.message);
			return;
		}
	}
	xmlDoc.async=false;
	xmlDoc.load("/bookmetadata.asp?id=" + id);
	document.book_form.bk_title.value=xmlDoc.getElementsByTagName("Title")[0].childNodes[0].nodeValue;
	document.book_form.bk_author.value=xmlDoc.getElementsByTagName("Author")[0].childNodes[0].nodeValue;
	document.book_form.bk_isbn13.value=xmlDoc.getElementsByTagName("EAN")[0].childNodes[0].nodeValue;
	document.book_form.bk_isbn10.value=xmlDoc.getElementsByTagName("ISBN")[0].childNodes[0].nodeValue;
	document.book_form.bk_pubdate.value=xmlDoc.getElementsByTagName("PublicationDate")[0].childNodes[0].nodeValue;
	document.book_form.bk_format.value=xmlDoc.getElementsByTagName("Binding")[0].childNodes[0].nodeValue;
	document.book_form.bk_pagecount.value=xmlDoc.getElementsByTagName("NumberOfPages")[0].childNodes[0].nodeValue;
}
	
function get_xho()
{
	var xmlHttp=null, error_mesg;
	try
	{
	  xmlHttp=new XMLHttpRequest(); // Gecko
	}
	catch (e)
	{
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // IE 6
		}
		catch (e)
		{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); // IE 5.5
		}
	}
	return xmlHttp;
}



function chClass(id, newClass) {
	identity=document.getElementById(id);
	identity.className=newClass;
}
function confirmLink(str, loc) {
  if (confirm(str)) {
    document.location = loc;
  }
}
function confLink(loc, str) {
  if (confirm(str)) {
    document.location = loc;
  }
}
function confirmDel(loc, str) {
  var mesg='Are you sure you want to delete\n\n- '+str+'?\n\nThis action can NOT be undone';
  if (confirm(mesg)) {
    document.location.href = loc;
  }
}
function vEmail(src) {
   var emailReg = "^[\\w-\.]*[\\w-_\.]\@[\\w-\.]*[\\w][\\w]+\\.+[\\w]+[\\w]$";
   var regex = new RegExp(emailReg);
   if (!(regex.test(src))) {
     alert('You have entered an invalid email address!\nPlease provide an email address like:\n\n- xx@yy.zz\n- joe@bloggs.com\n\nOr\n\n- aa@bb.cc.dd\n- john@joe.bloggs.com');
     return false;
   }
}

function sHeight() {
	var i = 90, screenH = 600 - i;
	if (parseInt(navigator.appVersion)>3) {
		screenH = screen.height;
	}
	else if (navigator.appName == 'Netscape' && parseInt(navigator.appVersion)==3 && navigator.javaEnabled()) {
		var jToolkit = java.awt.Toolkit.getDefaultToolkit();
		var jScreenSize = jToolkit.getScreenSize();
		screenH = jScreenSize.height;
	}
	screenH = screenH - i;
	return screenH;
}

function checkDouble(a,b,err) { // check if a = b; if not return 'err' message as document.returnVal
  var error='';
  if (a!=b) { error=err; alert(error); }
  document.returnVal = (error=='');
}

