//<--------START----cookies-------->
function setCookie (name,value,expires,path,domain,secure) {
  document.cookie = name + "=" + escape (value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}
function deleteCookie (name,path,domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}
function getCookieVal(offset) {
                   var endstr = document.cookie.indexOf(";", offset);
                   if (endstr == -1) endstr = document.cookie.length;
                   return unescape(document.cookie.substring(offset, endstr));
}			   
function getCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
  }
  return null;
}
//<--------END----cookies---------->
//<--------START----list-------->
function getListElement(num)
{			
	var returnElement = null;		
    var listDataLength=this.listData.length;
    var marker=0;
    var numOfSemicolon=0;	
	if (this.length !=0)
	{
		for (var position=0;position<listDataLength;position++)
		{			  
			if (this.listData.substring(position,position+1) ==";")
			{
				numOfSemicolon++;
				if ( num == numOfSemicolon)
				{
					returnElement=this.listData.substring(marker,marker+(position-marker));
					break;
				}
				marker=position+1;
				}
			}
		}                
    return returnElement;
}    
function listLength()
{
	var marker=0;
	var NumOfSemicolon=0;
   	if ( this.listData != '' )
	{
		for (var position=0;position<this.listData.length;position++)
		{
			if (this.listData.substring(position,position+1) ==";")
			{
				NumOfSemicolon++;
				marker = position + 1;
			}
		}
	}
    return NumOfSemicolon;
}	
function inList(element)
{
	var isIn = false;
    for (var position=1;position <= this.length;position++)
    {
    	if (this.getListElement(position) == element)
        {              
        	isIn = true;
            break;
        }
     }
     return isIn;
}
function removeListElement(element)
{	
	var newlistData = '';
	var lengthOfList = this.length;
    for (var position=1;position <= lengthOfList;position++)
    {
	    if (this.getListElement(position) == element)
        {
    	     newlistData="";
			 for (var index=1;index<= lengthOfList;index++)
             {
             	if (index != position)                   
                newlistData=newlistData + this.getListElement(index) + ";";
             }
             this.loadList(newlistData);
             break;
        }
    }
	return this;
}
function removeListPos(positionToRemove)
{
	var thisListLength = this.length;
	var newList = new List();
	if (thisListLength !=0)
		for (var position=1;position<=thisListLength;position++)
			if (position != positionToRemove)
				newList.addListElement(this.getListElement(position));
	if (newList.listData != '')
		this.loadList(newList.listData);	
	return this;
}
function addListElement(element)
{
        this.listData = this.listData + element + ";";
		this.length++;
		return this;
}
function listElementCount(element)
{
	var numElement = 0;
	for (var position=1;position <= this.length;position++)
		if (this.getListElement(position) == element)
			numElement++;	
	return numElement;
}
function appendList(list2)
{
	this.listData += list2.listData;	
}
function listPos(element)
{
	var pos = -1;
    for (var position=1;position <= this.length;position++)
    {
    	if (this.getListElement(position) == element)
        {              
        	pos = position;
            break;
        }
     }
     return pos;
}
function loadList(data)
{
	this.listData = new String(data);
	if (this.listData != null)	
		this.length = this.listLength();
	else
		this.length = 0;
	return this;
}
function staticLoadList(data)
{
	var list = new List()
	list.listData = data;
	list.length = list.listLength();	
	return list;
}
function List()
{
	this.listData = '';
	// Load list using functions arguments array
	for (var load=0;load<List.arguments.length;load++)
		this.listData = this.listData + List.arguments[load] + ";" ;	
	//Allow new List(String listData) constructor instead of new List().loadList(listData)
	var strArg = new String(List.arguments[0]);
	if (List.arguments.length == 1 && List.arguments[0]!=null && strArg.lastIndexOf(';')==strArg.length-1)
		this.listData = List.arguments[0];
	this.listLength = listLength;//method - used for length property
	this.length = this.listLength();//property
	this.getListElement = getListElement;//method
	this.get = getListElement;//method
	this.listElementCount = listElementCount;//method
	this.inList = inList;//method
	this.remove = removeListElement;//method
	this.removePos = removeListPos;//method
	this.add = addListElement;//method
	this.appendList = appendList;//method
	this.loadList = loadList;//method
	this.listPos = listPos;//method
	return this;
}
//<--------END----list---------->
//<--------START----cac_stuff-------->
function getY2kSafeYear()
{	
	var theYear = this.getYear();
	if (theYear< 999)
		theYear += 1900;
	return theYear;
}
Date.prototype.getY2kSafeYear = getY2kSafeYear;
function calc(sum){return Math.round((sum)*100.0)/100.0;}
function addTrailingZero(num)
{//Written by Charles Farrier www.yfactor.co.uk
var stringNum = new String(calc(num));
var checkOK = "£0123456789."; 
var isNumber = true;
for (var i = 0;  i < stringNum.length;  i++)
{ch = stringNum.charAt(i);for (j = 0;  j < checkOK.length;  j++)
if (ch == checkOK.charAt(j)) break;
if (j == checkOK.length){isNumber = false;break;}
}
if (!isNumber) return num;
var dotpos = stringNum.indexOf(".");
var lengthOfNum=stringNum.length;		
if (dotpos == -1) stringNum += ".00";
else if (dotpos == lengthOfNum - 2) stringNum += "0";		
return stringNum;
}
function view_piece(id,param,local)
{	
	var url = 'http://www.commissionacraftsman.com/piece_viewer.asp?id='+id;
	//var url = 'http://localhost/gregpageturner/www/piece_viewer.asp?id='+id;	
	//if (local)
		//url = 'http://localhost/caclive/www/piece_viewer.asp?id='+id;
	if (param)
		url += '&'+param
	win = window.open(url, 'media_win', 'status,resizable,scrollbars,toolbar,menubar,menubar="yes",toolbar="yes",width=510,height=510,');
	if (!win.opener) win.opener = self;
	win.opener = self;
}

function view_biog(id,pg,path)
{
	var page='';
	if (pg==1)
		page = 't_makers_biography.asp?id='+id;
	if (pg==2)		
		page = 't_makers_procedure.asp?id='+id;
	if (pg==3)
		page = 't_makers_prices.asp?id='+id;
	if (pg==4)
		page = 't_makers_press.asp?id='+id;	
	var url = (path)? path+"/"+page : page;
	win = window.open(url, 'biog_win', 'status,resizable,scrollbars,toolbar,menubar,menubar="yes",toolbar="yes",width=710,height=400,');
	if (!win.opener) win.opener = self;
	win.opener = self;
}

function inBasket(id)
{
	var mediaCookie = getCookie('media');
	var mediaList = (mediaCookie!=null && mediaCookie!='')?new List(mediaCookie):new List();
	return mediaList.inList(id);
	
}

function basketAdd(id)
{
	var mediaCookie = getCookie('media');
	var mediaList = (mediaCookie!=null && mediaCookie!='')?new List(mediaCookie):new List();
	if (!mediaList.inList(id))
	{
		var newList = mediaList.add(id);
		var now = new Date();
		var expires = new Date();
		expires.setYear(now.getY2kSafeYear() + 1);
		setCookie('media',newList.listData,expires,'/');
	}
	view_basket();
}

function basketRemove(id)
{
	var mediaCookie = getCookie('media');
	if (mediaCookie !=null && mediaCookie != '')
	{
		var mediaList = new List(mediaCookie);
		if (mediaList.inList(id))
		{
			var newList = mediaList.remove(id);
			var now = new Date();
			var expires = new Date();
			expires.setYear(now.getY2kSafeYear() + 1);
			setCookie('media',newList.listData,expires,'/');
		}
	}
}

function getBasket()
{
	var mediaCookie = getCookie('media');
	return mediaCookie;
}

function emptyBasket()
{
	deleteCookie('media','/');
	deleteCookie('mediaQty','/');
}

function view_basket()
{ 
	winL = window.open('basket.asp', 'lbox_win', 'status,resizable,scrollbars,toolbar,menubar,menubar="yes",toolbar="yes",width=650,height=500,');
	if (!winL.opener) winL.opener = self;
	winL.opener = self;
}
function getQty(theForm)
{
	var qtyCookie = getCookie('mediaQty');
	var mediaCookie = getCookie('media');		
	var mediaList = (mediaCookie!=null && mediaCookie!='')? new List(mediaCookie) : new List();		
	var qtyArray = (qtyCookie!=null && qtyCookie!='')? new String(qtyCookie).split(";"):new Array();
	for (var q=0;q<qtyArray.length;q++)
	{
		var thisQArray = qtyArray[q].split("*");
		var thisQty = thisQArray[1];
		var thisId = thisQArray[0];
		if (mediaList.inList(thisId) && theForm['Item_'+thisId+'_Qty']) 
			theForm['Item_'+thisId+'_Qty'].value = thisQty;		
	}
}
function totalCalc(theForm)
{
	var mediaCookie = getCookie('media');		
	var mediaList = (mediaCookie!=null && mediaCookie!='')? new List(mediaCookie) : new List();
	var gTotal = 0;
	var qtyStr = "";
	for (var m=1;m<=mediaList.length;m++)
	{
		var thisId = mediaList.get(m);
		var qty = (theForm['Item_'+thisId+'_Qty'])? theForm['Item_'+thisId+'_Qty'].value : 0;
		qtyStr += ((m!=1)?';':'') + thisId + "*" + qty;
		var price = (theForm['Item_'+thisId+'_Price'])? theForm['Item_'+thisId+'_Price'].value : 0;
		var stotal = calc(parseFloat(qty) * parseFloat(price));
		if (theForm['Item_' + thisId + '_Stotal']) theForm['Item_' + thisId + '_Stotal'].value = addTrailingZero(stotal);
		gTotal += stotal;
	}
	if (theForm.orderTotal) theForm.orderTotal.value= addTrailingZero(gTotal);
	if (mediaList.length > 0)
	{
		var now = new Date();
		var expires = new Date();
		expires.setYear(now.getY2kSafeYear() + 1);			
		setCookie("mediaQty",qtyStr,expires,'/');
	}
	else
		deleteCookie("mediaQty");
}
function weddingTotalCalc(theForm, idList)
{
	var ids = (idList && idList!='')? idList.split(";") : new Array();
	var selectedItems = "";
	var gTotal = 0;
	var qtyStr = "";
	for (var m=0;m<ids.length;m++)
	{
		var thisId = ids[m];
		var req = (theForm['Item_' + thisId + '_QtyReq'])? theForm['Item_' + thisId + '_QtyReq'].value : 0;
		var qty = (theForm['Item_' + thisId + '_QtyBuy'])? theForm['Item_' + thisId + '_QtyBuy'].value : 0;
		if (qty == '' || isNaN(qty) || qty<0) qty = 0;
		qty = parseInt(qty);req=parseInt(req);
		if (qty > req)
		{
			theForm['Item_' + thisId + '_QtyBuy'].value = req;
			qty = req;
		}
		qtyStr += ((m!=1)?';':'') + thisId + "*" + qty;
		var price = theForm['Item_' + thisId + '_Price'].value;
		var stotal = calc(parseFloat(qty) * parseFloat(price));
		if (!isNaN(qty) && qty > 0)
			selectedItems += theForm['Item_' + thisId + '_name'].value + ' - £' + addTrailingZero(stotal) + '\n';
		theForm['Item_' + thisId + '_Stotal'].value = + addTrailingZero(stotal);
		gTotal += stotal;
	}
	if (theForm.pooledFunds && theForm.pooledFunds.value!='')
	{
		var pooled = parseFloat(theForm.pooledFunds.value);
		if (pooled <= 0 || isNaN(pooled)) 
		{
			pooled = 0
			theForm.pooledFunds.value = 0;
		}
		else 
		{
			theForm.pooledFunds.value = pooled;
			gTotal += pooled;
			selectedItems += "Pooled Funds - £" + addTrailingZero(pooled) + "\n";
		}
	}
	if (theForm.orderTotal) theForm.orderTotal.value = addTrailingZero(gTotal);	
	if (theForm.qtyStr) theForm.qtyStr.value = qtyStr;
	if (theForm.selectedItems) 
	{
		if (gTotal > 0) selectedItems += '\nTotal - £' + addTrailingZero(gTotal);		
		theForm.selectedItems.value = selectedItems;		
	}
}
function changeView(newSrc)
{
	if (document.piece)
		document.piece.src = "media/" + newSrc;
}
function send_portfolio(id)
{
		
	var url = "sendportfolio.asp?id="+id
	win = window.open(url, 'send_port_win', 'status,resizable,scrollbars,toolbar,menubar,menubar="yes",toolbar="yes",width=710,height=400,');
	if (!win.opener) win.opener = self;
	win.opener = self;
}
//<--------END----rgb_stuff---------->
