function getObj(n, d) { 
  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=getObj(n,d.layers[i].document);
	}
  if(!x && d.getElementById) {
		x=d.getElementById(n); 
	}
	return x;
}

function getThingForPreview(thing,isrichtext)
{
	var parentPage = window.dialogArguments;
	if (isrichtext)
	{
		stuff = parentPage.mycontent_minirich.document.body.innerHTML;
	}
	else
	{
		stuff = eval('parentPage.document.theform.' + thing + '.value');
	}
	stuff = replace(stuff,'../media/',"media/");
	document.write(stuff);
}

function replace(argvalue, x, y) {
  if ((x == y) || (parseInt(y.indexOf(x)) > -1)) {
    errmessage = "replace function error: \n";
    errmessage += "Second argument and third argument could be the same ";
    errmessage += "or third argument contains second argument.\n";
    errmessage += "This will create an infinite loop as it's replaced globally.";
    alert(errmessage);
    return false;
  }
    
  while (argvalue.indexOf(x) != -1) {
    var leading = argvalue.substring(0, argvalue.indexOf(x));
    var trailing = argvalue.substring(argvalue.indexOf(x) + x.length, 
	argvalue.length);
    argvalue = leading + y + trailing;
  }

  return argvalue;
}


function emailCheck(emailStr) {
	var emailPat = /^([.a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
	var matchArray = emailStr.match(emailPat);
	if (matchArray == null) {
		return false;
	}

	var IPArray = matchArray[2].match(/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/);
	if (IPArray != null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				return false;
      }
    }
	}
	return true;
}


function addtoorder(theid) {
	theQ = getObj('quantity|' + theid).value;
	getObj('addbasketid').value = theid;
	getObj('addbasketQuantity').value = theQ;
	getObj('F_action').value = 'addbasket';
	document.products.submit();
}

function InStr(Start, String1, String2, Compare) {
  if (Start < 1) {
    alert("Invalid Start argument\n\nInStr function (js2vb.js)"); return "";
  }
  if (Start > Len(String1)) return 0;
  if (Len(String2) == 0) return Start;
  if (Compare == 1) {String1 = LCase(String1); String2 = LCase(String2);}
  if (Start > 1) {
    var index = Right(String1, Len(String1) - Start + 1).indexOf(String2)
    if (index == -1) {return 0;} else {return index + Start;}
  } else {
    return String1.indexOf(String2) + 1
  }
}

function uploadimage(thepath) {
    mywindow=open('upload.asp','upload','status=yes,resizable=no,width=400,height=200');
    mywindow.location.href = 'customscripts/upload.asp?thepath=' + thepath;
    if (mywindow.opener == null) mywindow.opener = self;
}

//FORUM FUNCTIONS
//----------------------------------------------------------------------
function chkmsg() {
	var bad='';
	if (getObj('name').value == '')
		bad += 'Name\n';

	if (getObj('email').value == '')
		bad += 'Email\n';

	if (getObj('msgtitle')) {
		if (getObj('msgtitle').value == '')
			bad += 'Title\n';
	}

	if (getObj('msg').value == '')
		bad += 'Message\n';
	
	if (bad != '') {
		msg = 'The following fields are not complete.\n'
		msg += '----------------------------------------------\n'
		alert(msg + bad);
	} else {
		document.postmsg.submit();
	}
}

//----------------------------------------------------------------------
function OpenImageWindow(img, desc) 
{
	openCenteredWindow('/customscripts/systemfunctions/imagePreview.asp?img=' + img + '&desc=' + desc, '500', '500', null, 'status=yes, resizable=yes, scrollbars=yes');
}

//----------------------------------------------------------------------
function openCenteredWindow(url, height, width, name, parms) 
{
   var left = Math.floor( (screen.width - width) / 2);
   var top = Math.floor( (screen.height - height) / 2);
   var winParms = "top=" + top + ",left=" + left + ",height=" + height + ",width=" + width;
   if (parms) { winParms += "," + parms; }
   var win = window.open(url, name, winParms);
   if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}

//-----------------------------------------------------------------------------
function gotochangepass() {
	javascript:getObj('changepass').value=1;
	document.user.submit();
}

//-----------------------------------------------------------------------------
function checknewpass() {
	var bad='';
	if (getObj('newpass1').value.length < 5) {
		bad += 'PassWord must be 5 characters in Length\n';
	}
	if (getObj('newpass2').value.length < 5) {
		bad += 'Confirm PassWord must be 5 characters in Length\n';
	}
	if (getObj('newpass1').value != getObj('newpass2').value) {
		bad += 'Passwords do not match';
	}
	if (bad != '') {
		msg = 'The following fields are not complete.\n'
		msg += '----------------------------------------------\n'
		alert(msg + bad);
	} else {
		document.changepass.submit();
	}
}


//-----------------------------------------------------------------------------
function checkUserDetails(oldPassword)
{
	if (!checkPassword(oldPassword))
	{
		return false;
	}

	// Validate input fields
    var strError = '';
	if (getObj('UserName').value == '')
	{
		strError += 'User Name / Email\n';
	}
	if (getObj('RealName').value == '')
	{
		strError += 'Real Name\n';
	}
	if (getObj('Password') == '') 
	{
		strError += 'Password\n';
	}

	if (strError != '') 
	{
		msg = 'The following fields are not complete.\n'
		msg += '----------------------------------------------\n'
		alert(msg + strError);
	}
	else
	{
		document.user.submit();
	}
}

//-----------------------------------------------------------------------------
function DisplayDivForTime(theDiv, msg, nMilliSecs)
{
	getObj(theDiv).style.display = 'block';
	if (msg != '')
	{
        getObj(theDiv).innerHTML = msg;
    }
	setTimeout('getObj(\'' + theDiv + '\').style.display = \'none\';', nMilliSecs);
}

//-----------------------------------------------------------------------------
function HideDivForTime(theDiv, nMilliSecs)
{
	getObj(theDiv).style.display = 'none';
	setTimeout('getObj(\'' + theDiv + '\').style.display = \'block\';', nMilliSecs);
}

//-----------------------------------------------------------------------------
function IsNumeric(thefield) 
{
	sText = getObj(thefield).value;
	var ValidChars = "0123456789.";
	var IsNumber = true;
	var Char;
	
	for (i = 0; i < sText.length && IsNumber == true; i++) 
	{
		Char = sText.charAt(i);
		if (ValidChars.indexOf(Char) == -1) 
		{
			IsNumber = false;
		}
	}

	return IsNumber;
}

//-----------------------------------------------------------------------------
function AddToBasket(productID)
{
    var product = getObj('product|' + productID);
    product.value = 1;

    var msg = '';
    var opt1 = getObj('option1|' + productID);
    var opt2 = getObj('option2|' + productID);
    var nInvalidOptions = 0;
    var nOptions = 0;
    if (opt1 != null)
    {
        nOptions++;
        if (opt1.value == 0)
        {
            nInvalidOptions++;
        }
    }
    
    if (opt2 != null)
    {
        nOptions++;
        if (opt2.value == 0)
        {
            nInvalidOptions++;
        }
    }
    if (nInvalidOptions > 0)
    {
        if (nOptions == 1)
        {
            msg = 'Please select an option for this product before \nadding it to your basket';
        }
        else
        {
            msg = 'Please complete all of the options for this product \nbefore adding it to your basket';
        }
    }

    if (msg != '')
    {
        msg = 'The following validation errors occurred:\n------------------------------------------------\n' + msg;
        alert(msg);
    }
    else
    {
        if (getObj('F_action') != null)
        {
            getObj('F_action').value = 'AddToBasket';
        }
        
        document.basket.submit();

        if (getObj('F_action') != null)
        {
            getObj('F_action').value = '';
        }
    }
}

//-----------------------------------------------------------------------------
function SearchGo()
{
	if (getObj('keyword') != null)
    {
        if (getObj('keyword').value.length >= 3)
        {
	        document.search.submit();
        }
        else
        {
		    alert('Please enter a Search Keyword of at least 3 characters in length');
	    }
	}
}

//-----------------------------------------------------------------------------
function ChangePager(newPage, formName)
{
    var thePage = getObj('pager');
    thePage.value = newPage;
    
    var theForm = eval('document.' + formName);
    
    theForm.submit();
    
    return;
}

//-----------------------------------------------------------------------------
function DisplayDeliveryAddress()
{
    getObj('delivery_diff').style.display = 'none';
    getObj('delivery_address').style.display = 'block';
}

//-----------------------------------------------------------------------------
function ConfirmOrder()
{
    var strError = '';
	if (getObj('FirstName').value == '')
	{
		strError += 'First Name\n';
	}
	if (getObj('Surname').value == '')
	{
		strError += 'Surname\n';
	}
	if (getObj('Email').value == '' || emailCheck(getObj('Email').value) == false) 
	{
		strError += 'Email Address - missing or invalid\n';
	}
    if (getObj('Tel').value == '')
	{
		strError += 'Phone Number\n';
	}
	if (getObj('Street1').value == '')
	{
		strError += 'Invoice Street Address\n';
	}
	if (getObj('City').value == '')
	{
		strError += 'Invoice City\n';
	}
	if ((getObj('Postcode1').value == '') || (getObj('Postcode2').value == ''))
    {
	    strError += 'You must enter your Invoice Post Code.\n';
    }

    if (getObj('delivery_diff').style.display == 'none')
    {
        if (getObj('DelStreet1').value == '')
	    {
		    strError += 'Delivery Street1\n';
	    }
	    if (getObj('DelCity').value == '')
	    {
		    strError += 'Delivery City\n';
	    }
	    if ((getObj('DelPostcode1').value == '') || (getObj('DelPostcode2').value == ''))
        {
	        strError += 'You must enter your Delivery Post Code.\n';
        }
    }

	if (strError != '') 
	{
		msg = 'The following fields are not complete.\n'
		msg += '----------------------------------------------\n'
		alert(msg + strError);
	}
	else
	{
		getObj('F_action').value = 'FinishOrder';
        document.order.submit();
	}
}