//	Filename:					common.js
//	Content:					common site functions - do not edit this file
//	Creation Date:				13/08/2007
//	Last Modification Date:		19/12/2008
//	Author:						Robert Cherry
//	Copyright:					Digitise.co.nz

function openWindow(url) {
  popupWin = window.open(url, 'popup', 'scrollbars,resizable,width=650,height=420,left=30,top=30');
}

function openWindowCust(url,w,h,l,t) {
  var popupWin = window.open(url, 'popup', 'scrollbars,resizable,width='+w+',height='+h+',left='+l+',top='+t);
  popupWin.focus();
}

function addToFavorites(urlAddress,pageName) {
	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(pageName, urlAddress,"");
	} 
	else if	(window.external) { // IE Favorite
		window.external.AddFavorite( urlAddress, pageName);
	}
	else if(window.opera && window.print) { // Opera Hotlist
		return true;
	}
}

// window size functions
function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}

function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}

function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}

function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}

function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}
// end window size functions

//init automatic popup images - any img tag with class="popup"
function autopopupimages() {
	//add div for pop-up image
	if (!document.getElementById('auto_popupimage')) {
		var newdiv = document.createElement('div');
		newdiv.setAttribute('id','auto_popupimage');
		document.getElementsByTagName('body')[0].appendChild(newdiv);
		document.getElementById('auto_popupimage').style.position = 'absolute';
		document.getElementById('auto_popupimage').style.zIndex = '9999';
		document.getElementById('auto_popupimage').style.top = '15px';
		document.getElementById('auto_popupimage').style.display = 'none';
		document.getElementById('auto_popupimage').style.border = '1px solid #000000';
		document.getElementById('auto_popupimage').style.padding = '15px';
		document.getElementById('auto_popupimage').style.backgroundColor = '#ffffff';
	}
	
	var arrPopupImages = document.getElementsByTagName('img')
    for (i=0;i<arrPopupImages.length;i++){
        if (arrPopupImages[i].className == 'popup') {
			var popupImage = arrPopupImages[i];
			var strSrc = popupImage.src;
			if (strSrc.indexOf('/classes/tnimage.asp?f=') < 0) { //only insert aspjpeg code if needed
				if (strSrc.indexOf('//') > -1) {
					strSrc = strSrc.substring(strSrc.indexOf('//')+2);
				}
				if (strSrc.indexOf('/') > -1) {
					strSrc = strSrc.substring(strSrc.indexOf('/'));
					}
				if ((popupImage.width !=0) &&  (popupImage.height !=0)){
					popupImage.src =  '/classes/tnimage.asp?f=' + strSrc + '&w=' + popupImage.width + '&h=' + popupImage.height;
				}
			}
			if (popupImage.title.indexOf('click to enlarge') == -1) {
				popupImage.setAttribute('title','click to enlarge ' + popupImage.title);
			}
			arrPopupImages[i].onclick = function(){autopopupimage(this.src,'');}
       }
    }
}

function autopopupimage(strImage,strCaption){
	document.onscroll = function(){
		document.getElementById('auto_popupimage').style.top = (f_scrollTop() * 1 + 20) + 'px';
	}
	window.onscroll = function(){
		document.getElementById('auto_popupimage').style.top = (f_scrollTop() * 1 + 20) + 'px';
	}
	document.getElementById('auto_popupimage').style.display = 'block';

	var scrolltop = f_scrollTop() * 1 + 20;
	var winwidth = f_clientWidth() * 1 + 20;
	document.getElementById('auto_popupimage').style.top = scrolltop + 'px';
	document.getElementById('auto_popupimage').style.left = ((winwidth/2)-(632/2)) +'px'; 	// 600 + 15 x 2 padding + 1 x 2 border
			
	document.getElementById('auto_popupimage').innerHTML = 'Loading image... <br />please wait';
	callAJAX('/classes/ajax_loadimage.asp','img='+strImage+'&cap='+strCaption,'auto_popupimage','fixautopopupimagewidth');
}

function fixautopopupimagewidth(){
	//var winwidth = f_clientWidth() * 1 + 20;
	//document.getElementById('auto_popupimage').style.left = ((winwidth/2)-(632/2)) +'px'; 	
}

function closeautopopup(){
	document.getElementById('auto_popupimage').style.display = 'none';
}


function isValidCCNumber(ccnumber){
	var result = true;
	var calc = 0;
	var tempcalc = '';
	var reqLen = false;
	
	
	var cardexp = /^[0-9]{13,16}$/;
	if (!cardexp.exec(ccnumber))  {
		result = false;
		return result;
	}			
	
	var prefix = ccnumber.charAt(0);
	switch (prefix){
		case '3': //amex 34,37 diners 300-305, 36, 38
			if ((ccnumber.length == 14) || (ccnumber.length == 15) || (ccnumber.length == 16)) {
				reqLen = true;
			}				
		break;
		case '4': //visa
			if ((ccnumber.length == 13) || (ccnumber.length == 16)) {
				reqLen = true;
			}
		break;
		case '5'://mastercard 51-55 Diners 55
			if ((ccnumber.length == 14) || (ccnumber.length == 16)) {
				reqLen = true;
			}
		break;
	}
	
	if (!reqLen) {
		result = false;
		return result;
	}
	
	var even = false;
	for (var i=ccnumber.length-1;i>=0;i=i-1){
		tempcalc = ccnumber.charAt(i);
		if (even) {
			tempcalc = tempcalc * 2;
			if (tempcalc>9){
				tempcalc = tempcalc - 9; //adds 2 digits together (casting out 9s)
			}
		} else
		{
			tempcalc = tempcalc * 1;
		}
		calc = calc + tempcalc;
		even = !even;
		//alert(tempcalc);
	}
	if (calc % 10 != 0){
		result = false;
		return result;				
	}

	return result;
}



var m_0 = 'hr';
var m_1 = 'mai';
var m_2 = 'lto';
var m_3 = '@';
var m_4 = 'su';
var m_5 = 'bj';
var m_6 = 'ect';

function m2(data){
	document.write('<a '+m_0+'ef="'+m_1+m_2+':'+m2n(data)+m_3+m2u(data)+m2s(data)+'">'+m2d(data)+'</a>');
}

function m2n(data){
	var n;
	n = data.split('>');
	return n[2];
	//return data;
}

function m2x(data){
	var d = data;
	var s;
	var o;
	o = 0;
	s = '';
	for (i=0;i<d.length;i++){
		o = o + 1;
		if (o == 2) {
			o = 0;
		}
		
		if (o == 1) {
			if (i != d.length-1) {
				s = s + d.charAt(i+1);
			} else
			{
				s = s + d.charAt(i);
			}
		}
		else
		{
			s = s + d.charAt(i-1);
		}
	}
	return s;
}

function m2u(data){
	var n;
	n = data.split('>');
	return m2x(n[0]) + n[1].replace(/</g,'co').replace(/;/g,'.');
}

function m2s(data){
	var n;
	n = data.split('>');
	if (n.length >= 5 ) {
		if (n[4] != '') {
			return('?' + m_4 + m_5 + m_6 + '=' + n[4]);
		} 
		else
		{
			return '';
		}
	}
	else
	{
		return '';
	}
}

function m2d(data){
	var n;
	n = data.split('>');
	if (n[3] == ','){
		return m2n(data)+m_3+m2u(data);
	} else
	{
		return n[3];
	}
}

function addOnLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}